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 )