github.phpd.cn/thought-machine/please@v12.2.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 deps = [ 17 ':lib1', 18 ], 19 ) 20 21 cc_test( 22 name = 'cc_deps_test', 23 srcs = ['deps_test.cc'], 24 deps = [ 25 ':lib2', 26 ], 27 ) 28 29 # lib2 should express a direct dependency on lib1 30 plz_e2e_test( 31 name = 'cc_query_somepath_test_1', 32 cmd = 'plz query somepath //test/cc_rules:lib2 //test/cc_rules:lib1', 33 expected_output = 'cc_query_somepath_test_1.txt', 34 ) 35 36 # lib2's object file should not have any dependency on lib1's though. 37 plz_e2e_test( 38 name = 'cc_query_somepath_test_2', 39 cmd = 'plz query somepath //test/cc_rules:_lib2#cc //test/cc_rules:_lib1#cc', 40 expected_output = 'cc_query_somepath_test_2.txt', 41 ) 42 43 # These rules test that cc_library correctly accepts multiple srcs. 44 cc_library( 45 name = 'multisrc_lib', 46 srcs = [ 47 'multisrc_1.cc', 48 'multisrc_2.cc', 49 ], 50 hdrs = ['multisrc.h'], 51 ) 52 53 cc_test( 54 name = 'cc_multisrc_test', 55 srcs = ['cc_multisrc_test.cc'], 56 deps = [':multisrc_lib'], 57 ) 58 59 # This tests that cc_library works correctly with inputs that are multiple sources. 60 filegroup( 61 name = 'cc_multiple_srcs', 62 srcs = [ 63 'multisrc_1.cc', 64 'multisrc_2.cc', 65 ], 66 ) 67 68 cc_library( 69 name = 'multisrc_lib_2', 70 srcs = [':cc_multiple_srcs'], 71 hdrs = ['multisrc.h'], 72 ) 73 74 cc_test( 75 name = 'cc_multisrc_test_2', 76 srcs = ['cc_multisrc_test.cc'], 77 deps = [':multisrc_lib_2'], 78 )