[roll] Roll third_party/fuchsia-infra-bazel-rules [roll] Roll third_party/googletest cmake: Fix declspec of gtest flag when using BUILD_SHARED_LIBS=ON and absl

On windows flags declaration must be prepend by `GTEST_API_`
to have the correct declspec (dllexport or dllimport)

This patch also fix super build integration of googletest by adding the necessary `INSTALL_RPATH` and `$<BUILD_INTERFACE:` needed to be able to `FetchContent` or `add_subdirectory()` googletest in a user CMake project.

Fix #4718
related to abseil/abseil-cpp#1817

PiperOrigin-RevId: 854187933
Original-Revision: ff6133ab49b364a883a55ba75c39e520fea6245b

Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia-infra-bazel-rules/+/1470681
Original-Revision: d6e487207809139bfdc7bf4f429a1a70f6fce790

Roller-URL: https://cr-buildbucket.appspot.com/build/8693138712097424033
CQ-Do-Not-Cancel-Tryjobs: true
Change-Id: Icf9224016c0b49be56f3552bf825ee5996def226
Reviewed-on: https://fuchsia-review.googlesource.com/c/sdk-samples/drivers/+/1470664
Commit-Queue: GI Roller <global-integration-roller@fuchsia-infra.iam.gserviceaccount.com>
1 file changed
tree: 7bb900c47d218838c786f97adbdfc934e4aaffb9
  1. manifests/
  2. scripts/
  3. src/
  4. third_party/
  5. tools/
  6. .bazelrc
  7. .clang-format
  8. .gitignore
  9. .gitmodules
  10. AUTHORS
  11. BUILD.bazel
  12. CONTRIBUTING.md
  13. driver-samples.code-workspace
  14. fuchsia_env.toml
  15. LICENSE
  16. MODULE.bazel
  17. MODULE.bazel.lock
  18. OWNERS
  19. PATENTS
  20. README.md
  21. rollers.textproto
  22. shac.star
  23. shac.textproto
  24. WORKSPACE.bzlmod
README.md

Fuchsia samples using the Fuchsia SDK

This repository contains instructions and source code to build, package and run Fuchsia samples using only the Fuchsia SDK.

Set up and bootstrap the SDK driver samples repository

Clone this SDK driver samples repository on your host machine. This repository contains sample driver components and the Bazel-based Fuchsia SDK.

The tasks include:

  • Bootstrap the SDK driver samples repository.
  • Download the SDK toolchain to initialize the SDK environment.
  • Verify that you can run ffx commands.

Do the following:

  1. Open a terminal.

  2. In the terminal, change to your home directory:

    cd
    
  3. Clone the SDK driver samples repository:

    git clone https://fuchsia.googlesource.com/sdk-samples/drivers fuchsia-drivers --recurse-submodules
    

    This git clone command creates a new directory named fuchsia-drivers and clones the content of the SDK driver samples repository{:.external}.

  4. Go to the new directory:

    cd fuchsia-drivers
    
  5. Run the bootstrap script to install Bazel and other required dependencies:

    scripts/bootstrap.sh
    
  6. Download the SDK toolchain:

    tools/bazel build @fuchsia_sdk//:fuchsia_toolchain_sdk
    

    The first build may take a few minutes to download dependencies, such as Clang and Fuchsia IDK (which includes the ffx tool).

    When finished successfully, it prints output similar to the following:

    $ tools/bazel build @fuchsia_sdk//:fuchsia_toolchain_sdk
    ...
    INFO: Elapsed time: 23.608s, Critical Path: 0.03s
    INFO: 1 process: 1 internal.
    INFO: Build completed successfully, 1 total action
    
  7. To verify that you can use the ffx tool in your environment, run the following command:

    tools/ffx sdk version
    

    This command prints output similar to the following:

    $ tools/ffx sdk version
    14.20230811.2.1
    

    At this point, you only need to confirm that you can run ffx commands without error.

    Note: The output above shows the version 14.20230811.2.1, which indicates that this SDK was built and published on August 11, 2023.