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