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_help.cc", 30 "command_refs.cc", 31 "commands.cc", 32 "commands.h", 33 "config.cc", 34 "config.h", 35 "config_values.cc", 36 "config_values.h", 37 "config_values_extractors.cc", 38 "config_values_extractors.h", 39 "config_values_generator.cc", 40 "config_values_generator.h", 41 "copy_target_generator.cc", 42 "copy_target_generator.h", 43 "err.cc", 44 "err.h", 45 "escape.cc", 46 "escape.h", 47 "file_template.cc", 48 "file_template.h", 49 "filesystem_utils.cc", 50 "filesystem_utils.h", 51 "functions.cc", 52 "functions.h", 53 "functions_target.cc", 54 "function_exec_script.cc", 55 "function_foreach.cc", 56 "function_get_label_info.cc", 57 "function_get_path_info.cc", 58 "function_get_target_outputs.cc", 59 "function_process_file_template.cc", 60 "function_read_file.cc", 61 "function_rebase_path.cc", 62 "function_set_default_toolchain.cc", 63 "function_set_defaults.cc", 64 "function_template.cc", 65 "function_toolchain.cc", 66 "function_write_file.cc", 67 "group_target_generator.cc", 68 "group_target_generator.h", 69 "header_checker.cc", 70 "header_checker.h", 71 "import_manager.cc", 72 "import_manager.h", 73 "input_conversion.cc", 74 "input_conversion.h", 75 "input_file.cc", 76 "input_file.h", 77 "input_file_manager.cc", 78 "input_file_manager.h", 79 "item.cc", 80 "item.h", 81 "label.cc", 82 "label.h", 83 "label_ptr.h", 84 "loader.cc", 85 "loader.h", 86 "location.cc", 87 "location.h", 88 "ninja_action_target_writer.cc", 89 "ninja_action_target_writer.h", 90 "ninja_binary_target_writer.cc", 91 "ninja_binary_target_writer.h", 92 "ninja_build_writer.cc", 93 "ninja_build_writer.h", 94 "ninja_copy_target_writer.cc", 95 "ninja_copy_target_writer.h", 96 "ninja_group_target_writer.cc", 97 "ninja_group_target_writer.h", 98 "ninja_helper.cc", 99 "ninja_helper.h", 100 "ninja_target_writer.cc", 101 "ninja_target_writer.h", 102 "ninja_toolchain_writer.cc", 103 "ninja_toolchain_writer.h", 104 "ninja_writer.cc", 105 "ninja_writer.h", 106 "operators.cc", 107 "operators.h", 108 "output_file.h", 109 "parse_tree.cc", 110 "parse_tree.h", 111 "parser.cc", 112 "parser.h", 113 "path_output.cc", 114 "path_output.h", 115 "pattern.cc", 116 "pattern.h", 117 "scheduler.cc", 118 "scheduler.h", 119 "scope.cc", 120 "scope.h", 121 "scope_per_file_provider.cc", 122 "scope_per_file_provider.h", 123 "settings.cc", 124 "settings.h", 125 "setup.cc", 126 "setup.h", 127 "source_dir.cc", 128 "source_dir.h", 129 "source_file.cc", 130 "source_file.h", 131 "standard_out.cc", 132 "standard_out.h", 133 "string_utils.cc", 134 "string_utils.h", 135 "target.cc", 136 "target.h", 137 "target_generator.cc", 138 "target_generator.h", 139 "template.cc", 140 "template.h", 141 "token.cc", 142 "token.h", 143 "tokenizer.cc", 144 "tokenizer.h", 145 "toolchain.cc", 146 "toolchain.h", 147 "trace.cc", 148 "trace.h", 149 "value.cc", 150 "value.h", 151 "value_extractors.cc", 152 "value_extractors.h", 153 "variables.cc", 154 "variables.h", 155 "visibility.cc", 156 "visibility.h", 157 ] 158 159 deps = [ 160 "//base", 161 "//base/third_party/dynamic_annotations", 162 ] 163 } 164 165 executable("gn") { 166 sources = [ 167 "gn_main.cc", 168 ] 169 170 deps = [ 171 ":gn_lib", 172 "//build/util:last_change", 173 ] 174 } 175 176 test("gn_unittests") { 177 sources = [ 178 "builder_unittest.cc", 179 "c_include_iterator_unittest.cc", 180 "config_values_extractors_unittest.cc", 181 "escape_unittest.cc", 182 "filesystem_utils_unittest.cc", 183 "file_template_unittest.cc", 184 "function_foreach_unittest.cc", 185 "function_get_label_info_unittest.cc", 186 "function_get_path_info_unittest.cc", 187 "function_get_target_outputs_unittest.cc", 188 "function_rebase_path_unittest.cc", 189 "function_write_file_unittest.cc", 190 "functions_unittest.cc", 191 "header_checker_unittest.cc", 192 "input_conversion_unittest.cc", 193 "label_unittest.cc", 194 "loader_unittest.cc", 195 "ninja_action_target_writer_unittest.cc", 196 "ninja_binary_target_writer_unittest.cc", 197 "ninja_copy_target_writer_unittest.cc", 198 "ninja_helper_unittest.cc", 199 "ninja_target_writer_unittest.cc", 200 "operators_unittest.cc", 201 "parse_tree_unittest.cc", 202 "parser_unittest.cc", 203 "path_output_unittest.cc", 204 "pattern_unittest.cc", 205 "run_all_unittests.cc", 206 "scope_per_file_provider_unittest.cc", 207 "scope_unittest.cc", 208 "source_dir_unittest.cc", 209 "string_utils_unittest.cc", 210 "target_generator_unittest.cc", 211 "target_unittest.cc", 212 "template_unittest.cc", 213 "test_with_scope.cc", 214 "test_with_scope.h", 215 "tokenizer_unittest.cc", 216 "value_unittest.cc", 217 "visibility_unittest.cc", 218 ] 219 deps = [ 220 ":gn_lib", 221 "//base/test:test_support", 222 "//testing/gtest", 223 ] 224 } 225 226 executable("generate_test_gn_data") { 227 sources = [ "generate_test_gn_data.cc" ] 228 deps = [ "//base" ] 229 } 230