github.com/sercand/please@v13.4.0+incompatible/test/cc_rules/BUILD (about) 1 subinclude("//build_defs:plz_e2e_test") 2 3 # Test the way cc rules depend on one another; ideally we should be able to 4 # pick up all transitive dependencies correctly but compile the .o files independently. 5 6 cc_library( 7 name = "lib1", 8 srcs = ["lib1.cc"], 9 hdrs = ["lib1.h"], 10 ) 11 12 cc_library( 13 name = "lib2", 14 srcs = ["lib2.cc"], 15 hdrs = ["lib2.h"], 16 visibility = ["//test/cc_rules/..."], 17 deps = [ 18 ":lib1", 19 ], 20 ) 21 22 cc_test( 23 name = "cc_deps_test", 24 srcs = ["deps_test.cc"], 25 deps = [ 26 ":lib2", 27 ], 28 ) 29 30 # lib2 should express a direct dependency on lib1 31 plz_e2e_test( 32 name = "cc_query_somepath_test_1", 33 cmd = "plz query somepath //test/cc_rules:lib2 //test/cc_rules:lib1", 34 expected_output = "cc_query_somepath_test_1.txt", 35 ) 36 37 # lib2's object file should not have any dependency on lib1's though. 38 plz_e2e_test( 39 name = "cc_query_somepath_test_2", 40 cmd = "plz query somepath //test/cc_rules:_lib2#cc //test/cc_rules:_lib1#cc", 41 expected_output = "cc_query_somepath_test_2.txt", 42 ) 43 44 # These rules test that cc_library correctly accepts multiple srcs. 45 cc_library( 46 name = "multisrc_lib", 47 srcs = [ 48 "multisrc_1.cc", 49 "multisrc_2.cc", 50 ], 51 hdrs = ["multisrc.h"], 52 ) 53 54 cc_test( 55 name = "cc_multisrc_test", 56 srcs = ["cc_multisrc_test.cc"], 57 deps = [":multisrc_lib"], 58 ) 59 60 # This tests that cc_library works correctly with inputs that are multiple sources. 61 filegroup( 62 name = "cc_multiple_srcs", 63 srcs = [ 64 "multisrc_1.cc", 65 "multisrc_2.cc", 66 ], 67 ) 68 69 cc_library( 70 name = "multisrc_lib_2", 71 srcs = [":cc_multiple_srcs"], 72 hdrs = ["multisrc.h"], 73 ) 74 75 cc_test( 76 name = "cc_multisrc_test_2", 77 srcs = ["cc_multisrc_test.cc"], 78 deps = [":multisrc_lib_2"], 79 )