Home | History | Annotate | Download | only in gn
      1 # Copyright (c) 2013 The Chromium Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 defines = [ "GN_BUILD" ]
      6 
      7 static_library("gn_lib") {
      8   sources = [
      9     "action_target_generator.cc",
     10     "action_target_generator.h",
     11     "action_values.cc",
     12     "action_values.h",
     13     "args.cc",
     14     "args.h",
     15     "binary_target_generator.cc",
     16     "binary_target_generator.h",
     17     "build_settings.cc",
     18     "build_settings.h",
     19     "builder.cc",
     20     "builder.h",
     21     "builder_record.cc",
     22     "builder_record.h",
     23     "c_include_iterator.cc",
     24     "c_include_iterator.h",
     25     "command_args.cc",
     26     "command_check.cc",
     27     "command_desc.cc",
     28     "command_gen.cc",
     29     "command_format.cc",
     30     "command_help.cc",
     31     "command_ls.cc",
     32     "command_refs.cc",
     33     "commands.cc",
     34     "commands.h",
     35     "config.cc",
     36     "config.h",
     37     "config_values.cc",
     38     "config_values.h",
     39     "config_values_extractors.cc",
     40     "config_values_extractors.h",
     41     "config_values_generator.cc",
     42     "config_values_generator.h",
     43     "copy_target_generator.cc",
     44     "copy_target_generator.h",
     45     "deps_iterator.cc",
     46     "deps_iterator.h",
     47     "err.cc",
     48     "err.h",
     49     "escape.cc",
     50     "escape.h",
     51     "filesystem_utils.cc",
     52     "filesystem_utils.h",
     53     "functions.cc",
     54     "functions.h",
     55     "functions_target.cc",
     56     "function_exec_script.cc",
     57     "function_foreach.cc",
     58     "function_get_label_info.cc",
     59     "function_get_path_info.cc",
     60     "function_get_target_outputs.cc",
     61     "function_process_file_template.cc",
     62     "function_read_file.cc",
     63     "function_rebase_path.cc",
     64     "function_set_default_toolchain.cc",
     65     "function_set_defaults.cc",
     66     "function_template.cc",
     67     "function_toolchain.cc",
     68     "function_write_file.cc",
     69     "group_target_generator.cc",
     70     "group_target_generator.h",
     71     "header_checker.cc",
     72     "header_checker.h",
     73     "import_manager.cc",
     74     "import_manager.h",
     75     "input_conversion.cc",
     76     "input_conversion.h",
     77     "input_file.cc",
     78     "input_file.h",
     79     "input_file_manager.cc",
     80     "input_file_manager.h",
     81     "item.cc",
     82     "item.h",
     83     "label.cc",
     84     "label.h",
     85     "label_pattern.cc",
     86     "label_pattern.h",
     87     "label_ptr.h",
     88     "loader.cc",
     89     "loader.h",
     90     "location.cc",
     91     "location.h",
     92     "ninja_action_target_writer.cc",
     93     "ninja_action_target_writer.h",
     94     "ninja_binary_target_writer.cc",
     95     "ninja_binary_target_writer.h",
     96     "ninja_build_writer.cc",
     97     "ninja_build_writer.h",
     98     "ninja_copy_target_writer.cc",
     99     "ninja_copy_target_writer.h",
    100     "ninja_group_target_writer.cc",
    101     "ninja_group_target_writer.h",
    102     "ninja_utils.cc",
    103     "ninja_utils.h",
    104     "ninja_target_writer.cc",
    105     "ninja_target_writer.h",
    106     "ninja_toolchain_writer.cc",
    107     "ninja_toolchain_writer.h",
    108     "ninja_writer.cc",
    109     "ninja_writer.h",
    110     "operators.cc",
    111     "operators.h",
    112     "output_file.cc",
    113     "output_file.h",
    114     "parse_tree.cc",
    115     "parse_tree.h",
    116     "parser.cc",
    117     "parser.h",
    118     "path_output.cc",
    119     "path_output.h",
    120     "pattern.cc",
    121     "pattern.h",
    122     "scheduler.cc",
    123     "scheduler.h",
    124     "scope.cc",
    125     "scope.h",
    126     "scope_per_file_provider.cc",
    127     "scope_per_file_provider.h",
    128     "settings.cc",
    129     "settings.h",
    130     "setup.cc",
    131     "setup.h",
    132     "source_dir.cc",
    133     "source_dir.h",
    134     "source_file.cc",
    135     "source_file.h",
    136     "source_file_type.cc",
    137     "source_file_type.h",
    138     "standard_out.cc",
    139     "standard_out.h",
    140     "string_utils.cc",
    141     "string_utils.h",
    142     "substitution_list.cc",
    143     "substitution_list.h",
    144     "substitution_pattern.cc",
    145     "substitution_pattern.h",
    146     "substitution_type.cc",
    147     "substitution_type.h",
    148     "substitution_writer.cc",
    149     "substitution_writer.h",
    150     "target.cc",
    151     "target.h",
    152     "target_generator.cc",
    153     "target_generator.h",
    154     "template.cc",
    155     "template.h",
    156     "token.cc",
    157     "token.h",
    158     "tokenizer.cc",
    159     "tool.cc",
    160     "tool.h",
    161     "tokenizer.h",
    162     "toolchain.cc",
    163     "toolchain.h",
    164     "trace.cc",
    165     "trace.h",
    166     "unique_vector.h",
    167     "value.cc",
    168     "value.h",
    169     "value_extractors.cc",
    170     "value_extractors.h",
    171     "variables.cc",
    172     "variables.h",
    173     "visibility.cc",
    174     "visibility.h",
    175   ]
    176 
    177   deps = [
    178     "//base",
    179     "//base/third_party/dynamic_annotations",
    180   ]
    181 }
    182 
    183 action("last_commit_position") {
    184   script = "last_commit_position.py"
    185 
    186   # This dependency forces a re-run when the code is synced.
    187   inputs = [ "//build/util/LASTCHANGE" ]
    188 
    189   outfile = "$target_gen_dir/last_commit_position.h"
    190   outputs = [ outfile ]
    191 
    192   args = [
    193     rebase_path("//", root_build_dir),
    194     rebase_path(outfile, root_build_dir),
    195     "TOOLS_GN_LAST_COMMIT_POSITION_H_",
    196   ]
    197 }
    198 
    199 executable("gn") {
    200   sources = [
    201     "gn_main.cc",
    202   ]
    203 
    204   deps = [
    205     ":gn_lib",
    206     ":last_commit_position",
    207   ]
    208 }
    209 
    210 test("gn_unittests") {
    211   sources = [
    212     "action_target_generator_unittest.cc",
    213     "builder_unittest.cc",
    214     "c_include_iterator_unittest.cc",
    215     "command_format_unittest.cc",
    216     "config_values_extractors_unittest.cc",
    217     "escape_unittest.cc",
    218     "filesystem_utils_unittest.cc",
    219     "function_foreach_unittest.cc",
    220     "function_get_label_info_unittest.cc",
    221     "function_get_path_info_unittest.cc",
    222     "function_get_target_outputs_unittest.cc",
    223     "function_process_file_template_unittest.cc",
    224     "function_rebase_path_unittest.cc",
    225     "function_write_file_unittest.cc",
    226     "functions_target_unittest.cc",
    227     "functions_unittest.cc",
    228     "header_checker_unittest.cc",
    229     "input_conversion_unittest.cc",
    230     "label_pattern_unittest.cc",
    231     "label_unittest.cc",
    232     "loader_unittest.cc",
    233     "ninja_action_target_writer_unittest.cc",
    234     "ninja_binary_target_writer_unittest.cc",
    235     "ninja_copy_target_writer_unittest.cc",
    236     "ninja_group_target_writer_unittest.cc",
    237     "ninja_target_writer_unittest.cc",
    238     "ninja_toolchain_writer_unittest.cc",
    239     "operators_unittest.cc",
    240     "parse_tree_unittest.cc",
    241     "parser_unittest.cc",
    242     "path_output_unittest.cc",
    243     "pattern_unittest.cc",
    244     "run_all_unittests.cc",
    245     "scope_per_file_provider_unittest.cc",
    246     "scope_unittest.cc",
    247     "source_dir_unittest.cc",
    248     "string_utils_unittest.cc",
    249     "substitution_pattern_unittest.cc",
    250     "substitution_writer_unittest.cc",
    251     "target_generator_unittest.cc",
    252     "target_unittest.cc",
    253     "template_unittest.cc",
    254     "test_with_scope.cc",
    255     "test_with_scope.h",
    256     "tokenizer_unittest.cc",
    257     "unique_vector_unittest.cc",
    258     "value_unittest.cc",
    259     "visibility_unittest.cc",
    260   ]
    261   deps = [
    262     ":gn_lib",
    263     "//base/test:test_support",
    264     "//testing/gtest",
    265   ]
    266 }
    267 
    268 executable("generate_test_gn_data") {
    269   sources = [ "generate_test_gn_data.cc" ]
    270   deps = [ "//base" ]
    271 }
    272