github.com/sercand/please@v13.4.0+incompatible/test/cc_rules/clang/BUILD (about)

     1  # Identical set of tests to the main cc ones, but using Clang and Gold instead.
     2  # (Note that this only controls the tools we invoke directly, not what they
     3  # might use underneath - ie. we are not passing -fuse-ld or similar).
     4  
     5  # Must pass -stdlib so the STL implementation matches what we use for other deps (i.e. unittest)
     6  package(
     7      default_dbg_cppflags = "--std=c++11 -g3 -DDEBUG -Wall -Wextra -Werror -Wno-unused-parameter -stdlib=libstdc++",
     8      default_opt_cppflags = "--std=c++11 -O2 -DNDEBUG -Wall -Wextra -Werror -Wno-unused-parameter -stdlib=libstdc++",
     9  )
    10  
    11  package(
    12      cpp_tool = "clang++",
    13      ld_tool = "gold",
    14  )
    15  
    16  cc_embed_binary(
    17      name = "embedded_file_1",
    18      src = "embedded_file_1.txt",
    19  )
    20  
    21  genrule(
    22      name = "embedded_file_3_gen",
    23      outs = ["embedded_file_3.txt"],
    24      cmd = "echo \"testing message 3\" > $OUT",
    25  )
    26  
    27  c_embed_binary(
    28      name = "embedded_file_3",
    29      src = ":embedded_file_3_gen",
    30      deps = [":embedded_file_3_gen"],
    31  )
    32  
    33  cc_test(
    34      name = "embed_file_test",
    35      srcs = ["embed_file_test.cc"],
    36      labels = [
    37          "clang",
    38          "gold",
    39      ],
    40      deps = [
    41          ":embedded_file_1",
    42          ":embedded_file_3",
    43      ],
    44  )
    45  
    46  # This is a little chain of tests to exercise the cc_shared_object rule.
    47  cc_library(
    48      name = "embedded_files",
    49      srcs = ["embedded_files.cc"],
    50      hdrs = ["embedded_files.h"],
    51      deps = [
    52          ":embedded_file_1",
    53          ":embedded_file_3",
    54      ],
    55  )
    56  
    57  cc_shared_object(
    58      name = "so_test",
    59      srcs = ["so_test.cc"],
    60      linker_flags = ["-bundle -undefined dynamic_lookup"] if (CONFIG.OS == "darwin") else [],
    61      pkg_config_cflags = ["python3"],
    62      deps = [
    63          ":embedded_files",
    64      ],
    65  )
    66  
    67  python_test(
    68      name = "shared_object_test",
    69      srcs = ["shared_object_test.py"],
    70      labels = [
    71          "cc",
    72          "clang",
    73          "gold",
    74          "py3_pkg_config",
    75      ],
    76      zip_safe = False,
    77      deps = [
    78          ":so_test",
    79      ],
    80  )
    81  
    82  # Make sure we have at least one working cc_binary rule.
    83  cc_binary(
    84      name = "test_binary",
    85      srcs = ["test_binary.cc"],
    86      deps = [
    87          ":embedded_files",
    88      ],
    89  )
    90  
    91  gentest(
    92      name = "cc_binary_test",
    93      data = [":test_binary"],
    94      labels = [
    95          "cc",
    96          "clang",
    97          "gold",
    98      ],
    99      no_test_output = True,
   100      test_cmd = "$(exe :test_binary)",
   101  )