• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
5gyp_file = "gn.gyp"
6external = true
7
8# Not defined when doing a GYP build, this lets the code key off of GN-specific
9# features (the last change target). This can be removed when the last change
10# target is supported by the GN->GYP converter (see is_gyp conditional for that
11# below).
12if (!is_gyp) {
13  defines = [ "GN_BUILD" ]
14}
15
16static_library("gn_lib") {
17  sources = [
18    "args.cc",
19    "args.h",
20    "binary_target_generator.cc",
21    "binary_target_generator.h",
22    "build_settings.cc",
23    "build_settings.h",
24    "builder.cc",
25    "builder.h",
26    "builder_record.cc",
27    "builder_record.h",
28    "command_args.cc",
29    "command_desc.cc",
30    "command_gen.cc",
31    "command_gyp.cc",
32    "command_help.cc",
33    "command_refs.cc",
34    "commands.cc",
35    "commands.h",
36    "config.cc",
37    "config.h",
38    "config_values.cc",
39    "config_values.h",
40    "config_values_extractors.cc",
41    "config_values_extractors.h",
42    "config_values_generator.cc",
43    "config_values_generator.h",
44    "copy_target_generator.cc",
45    "copy_target_generator.h",
46    "err.cc",
47    "err.h",
48    "escape.cc",
49    "escape.h",
50    "file_template.cc",
51    "file_template.h",
52    "filesystem_utils.cc",
53    "filesystem_utils.h",
54    "functions.cc",
55    "functions.h",
56    "functions_target.cc",
57    "function_exec_script.cc",
58    "function_process_file_template.cc",
59    "function_read_file.cc",
60    "function_rebase_path.cc",
61    "function_set_default_toolchain.cc",
62    "function_set_defaults.cc",
63    "function_template.cc",
64    "function_toolchain.cc",
65    "function_write_file.cc",
66    "group_target_generator.cc",
67    "group_target_generator.h",
68    "gyp_binary_target_writer.cc",
69    "gyp_binary_target_writer.h",
70    "gyp_helper.cc",
71    "gyp_helper.h",
72    "gyp_script_target_writer.cc",
73    "gyp_script_target_writer.h",
74    "gyp_target_writer.cc",
75    "gyp_target_writer.h",
76    "import_manager.cc",
77    "import_manager.h",
78    "input_conversion.cc",
79    "input_conversion.h",
80    "input_file.cc",
81    "input_file.h",
82    "input_file_manager.cc",
83    "input_file_manager.h",
84    "item.cc",
85    "item.h",
86    "label.cc",
87    "label.h",
88    "label_ptr.h",
89    "loader.cc",
90    "loader.h",
91    "location.cc",
92    "location.h",
93    "ninja_binary_target_writer.cc",
94    "ninja_binary_target_writer.h",
95    "ninja_build_writer.cc",
96    "ninja_build_writer.h",
97    "ninja_copy_target_writer.cc",
98    "ninja_copy_target_writer.h",
99    "ninja_group_target_writer.cc",
100    "ninja_group_target_writer.h",
101    "ninja_helper.cc",
102    "ninja_helper.h",
103    "ninja_script_target_writer.cc",
104    "ninja_script_target_writer.h",
105    "ninja_target_writer.cc",
106    "ninja_target_writer.h",
107    "ninja_toolchain_writer.cc",
108    "ninja_toolchain_writer.h",
109    "ninja_writer.cc",
110    "ninja_writer.h",
111    "operators.cc",
112    "operators.h",
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    "script_target_generator.cc",
129    "script_target_generator.h",
130    "script_values.cc",
131    "script_values.h",
132    "settings.cc",
133    "settings.h",
134    "setup.cc",
135    "setup.h",
136    "source_dir.cc",
137    "source_dir.h",
138    "source_file.cc",
139    "source_file.h",
140    "standard_out.cc",
141    "standard_out.h",
142    "string_utils.cc",
143    "string_utils.h",
144    "target.cc",
145    "target.h",
146    "target_generator.cc",
147    "target_generator.h",
148    "token.cc",
149    "token.h",
150    "tokenizer.cc",
151    "tokenizer.h",
152    "toolchain.cc",
153    "toolchain.h",
154    "trace.cc",
155    "trace.h",
156    "value.cc",
157    "value.h",
158    "value_extractors.cc",
159    "value_extractors.h",
160    "variables.cc",
161    "variables.h",
162  ]
163
164  deps = [
165    "//base",
166    "//base/third_party/dynamic_annotations",
167  ]
168}
169
170executable("gn") {
171  sources = [
172    "gn_main.cc",
173  ]
174
175  deps = [
176    ":gn_lib",
177  ]
178  if (!is_gyp) {
179    # Currently this only works in GYP (see GN_BUILD above).
180    deps += "//build/util:last_change"
181  }
182}
183
184test("gn_unittests") {
185  sources = [
186    "builder_unittest.cc",
187    "escape_unittest.cc",
188    "file_template_unittest.cc",
189    "filesystem_utils_unittest.cc",
190    "function_rebase_path_unittest.cc",
191    "gyp_script_target_writer_unittest.cc",
192    "input_conversion_unittest.cc",
193    "label_unittest.cc",
194    "loader_unittest.cc",
195    "ninja_binary_target_writer_unittest.cc",
196    "ninja_copy_target_writer_unittest.cc",
197    "ninja_helper_unittest.cc",
198    "ninja_script_target_writer_unittest.cc",
199    "parser_unittest.cc",
200    "path_output_unittest.cc",
201    "pattern_unittest.cc",
202    "scope_per_file_provider_unittest.cc",
203    "scope_unittest.cc",
204    "source_dir_unittest.cc",
205    "string_utils_unittest.cc",
206    "target_generator_unittest.cc",
207    "target_unittest.cc",
208    "test_with_scope.cc",
209    "test_with_scope.h",
210    "tokenizer_unittest.cc",
211  ]
212  deps = [
213    ":gn_lib",
214    "//base:run_all_unittests",
215    "//base:test_support_base",
216    "//testing:gtest",
217  ]
218}
219
220executable("generate_test_gn_data") {
221  sources = [ "generate_test_gn_data.cc" ]
222  deps = [ "//base" ]
223}
224