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  )