# 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" ] }