blob: 7867a48cecf38c5461e8a43b92d77143cbbac9f5 [file] [log] [blame]
# Copyright (c) 2013 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
gyp_file = "gn.gyp"
external = true
# Not defined when doing a GYP build, this lets the code key off of GN-specific
# features (the last change target). This can be removed when the last change
# target is supported by the GN->GYP converter (see is_gyp conditional for that
# below).
if (!is_gyp) {
defines = [ "GN_BUILD" ]
}
static_library("gn_lib") {
sources = [
"args.cc",
"args.h",
"binary_target_generator.cc",
"binary_target_generator.h",
"build_settings.cc",
"build_settings.h",
"builder.cc",
"builder.h",
"builder_record.cc",
"builder_record.h",
"command_args.cc",
"command_desc.cc",
"command_gen.cc",
"command_gyp.cc",
"command_help.cc",
"command_refs.cc",
"commands.cc",
"commands.h",
"config.cc",
"config.h",
"config_values.cc",
"config_values.h",
"config_values_extractors.cc",
"config_values_extractors.h",
"config_values_generator.cc",
"config_values_generator.h",
"copy_target_generator.cc",
"copy_target_generator.h",
"err.cc",
"err.h",
"escape.cc",
"escape.h",
"file_template.cc",
"file_template.h",
"filesystem_utils.cc",
"filesystem_utils.h",
"functions.cc",
"functions.h",
"functions_target.cc",
"function_exec_script.cc",
"function_process_file_template.cc",
"function_read_file.cc",
"function_rebase_path.cc",
"function_set_default_toolchain.cc",
"function_set_defaults.cc",
"function_template.cc",
"function_toolchain.cc",
"function_write_file.cc",
"group_target_generator.cc",
"group_target_generator.h",
"gyp_binary_target_writer.cc",
"gyp_binary_target_writer.h",
"gyp_helper.cc",
"gyp_helper.h",
"gyp_script_target_writer.cc",
"gyp_script_target_writer.h",
"gyp_target_writer.cc",
"gyp_target_writer.h",
"import_manager.cc",
"import_manager.h",
"input_conversion.cc",
"input_conversion.h",
"input_file.cc",
"input_file.h",
"input_file_manager.cc",
"input_file_manager.h",
"item.cc",
"item.h",
"label.cc",
"label.h",
"label_ptr.h",
"loader.cc",
"loader.h",
"location.cc",
"location.h",
"ninja_binary_target_writer.cc",
"ninja_binary_target_writer.h",
"ninja_build_writer.cc",
"ninja_build_writer.h",
"ninja_copy_target_writer.cc",
"ninja_copy_target_writer.h",
"ninja_group_target_writer.cc",
"ninja_group_target_writer.h",
"ninja_helper.cc",
"ninja_helper.h",
"ninja_script_target_writer.cc",
"ninja_script_target_writer.h",
"ninja_target_writer.cc",
"ninja_target_writer.h",
"ninja_toolchain_writer.cc",
"ninja_toolchain_writer.h",
"ninja_writer.cc",
"ninja_writer.h",
"operators.cc",
"operators.h",
"output_file.h",
"parse_tree.cc",
"parse_tree.h",
"parser.cc",
"parser.h",
"path_output.cc",
"path_output.h",
"pattern.cc",
"pattern.h",
"scheduler.cc",
"scheduler.h",
"scope.cc",
"scope.h",
"scope_per_file_provider.cc",
"scope_per_file_provider.h",
"script_target_generator.cc",
"script_target_generator.h",
"script_values.cc",
"script_values.h",
"settings.cc",
"settings.h",
"setup.cc",
"setup.h",
"source_dir.cc",
"source_dir.h",
"source_file.cc",
"source_file.h",
"standard_out.cc",
"standard_out.h",
"string_utils.cc",
"string_utils.h",
"target.cc",
"target.h",
"target_generator.cc",
"target_generator.h",
"token.cc",
"token.h",
"tokenizer.cc",
"tokenizer.h",
"toolchain.cc",
"toolchain.h",
"trace.cc",
"trace.h",
"value.cc",
"value.h",
"value_extractors.cc",
"value_extractors.h",
"variables.cc",
"variables.h",
]
deps = [
"//base",
"//base/third_party/dynamic_annotations",
]
}
executable("gn") {
sources = [
"gn_main.cc",
]
deps = [
":gn_lib",
]
if (!is_gyp) {
# Currently this only works in GYP (see GN_BUILD above).
deps += "//build/util:last_change"
}
}
test("gn_unittests") {
sources = [
"builder_unittest.cc",
"escape_unittest.cc",
"file_template_unittest.cc",
"filesystem_utils_unittest.cc",
"function_rebase_path_unittest.cc",
"gyp_script_target_writer_unittest.cc",
"input_conversion_unittest.cc",
"label_unittest.cc",
"loader_unittest.cc",
"ninja_binary_target_writer_unittest.cc",
"ninja_copy_target_writer_unittest.cc",
"ninja_helper_unittest.cc",
"ninja_script_target_writer_unittest.cc",
"parser_unittest.cc",
"path_output_unittest.cc",
"pattern_unittest.cc",
"scope_per_file_provider_unittest.cc",
"scope_unittest.cc",
"source_dir_unittest.cc",
"string_utils_unittest.cc",
"target_generator_unittest.cc",
"target_unittest.cc",
"test_with_scope.cc",
"test_with_scope.h",
"tokenizer_unittest.cc",
]
deps = [
":gn_lib",
"//base:run_all_unittests",
"//base:test_support_base",
"//testing:gtest",
]
}
executable("generate_test_gn_data") {
sources = [ "generate_test_gn_data.cc" ]
deps = [ "//base" ]
}