static_library("gn_lib") { sources = [ "binary_target_generator.cc", "binary_target_generator.h", "build_settings.cc", "build_settings.h", "command_desc.cc", "command_gen.cc", "command_help.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_set_default_toolchain.cc", "function_template.cc", "function_toolchain.cc", "function_write_file.cc", "group_target_generator.cc", "group_target_generator.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", "item_node.cc", "item_node.h", "item_tree.cc", "item_tree.h", "label.cc", "label.h", "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", "target_manager.cc", "target_manager.h", "token.cc", "token.h", "tokenizer.cc", "tokenizer.h", "toolchain.cc", "toolchain.h", "toolchain_manager.cc", "toolchain_manager.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", ] } test("gn_unittests") { sources = [ "escape_unittest.cc", "file_template_unittest.cc", "filesystem_utils_unittest.cc", "input_conversion_unittest.cc", "label_unittest.cc", "ninja_helper_unittest.cc", "parser_unittest.cc", "path_output_unittest.cc", "pattern_unittest.cc", "source_dir_unittest.cc", "string_utils_unittest.cc", "target_generator_unittest.cc", "target_manager_unittest.cc", "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" ] }