Move source files into src/, and move tools/gn/misc to the toplevel.

See "Opinion on moving gn source files around?" on gn-dev.

Ran:
  mkdir src
  git mv tools/gn src
  git mv base src
  git mv util base
  git mv src/gn/misc .

Updated include paths with:
  grep -lR tools/gn src/ | xargs sed -i 's:tools/gn:gn:'

And then manually fixed up:
  misc/emacs/gn-mode.el
  misc/vim/README.md
  src/gn/command_format_unittest.cc
  src/gn/function_rebase_path_unittest.cc
  src/gn/label.cc
  src/gn/visual_studio_writer_unittest.cc

Updated build/gen.py manually.

No intended behavior change.

Change-Id: I186efa6775327d613bf849e20527103548ac454b
Reviewed-on: https://gn-review.googlesource.com/c/gn/+/6440
Commit-Queue: Brett Wilson <brettw@chromium.org>
Reviewed-by: Brett Wilson <brettw@chromium.org>
diff --git a/build/gen.py b/build/gen.py
index 126b7d4..1ece5a1 100755
--- a/build/gen.py
+++ b/build/gen.py
@@ -17,7 +17,6 @@
 
 SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
 REPO_ROOT = os.path.dirname(SCRIPT_DIR)
-GN_ROOT = os.path.join(REPO_ROOT, 'tools', 'gn')
 
 
 class Platform(object):
@@ -285,7 +284,10 @@
   cflags_cc = os.environ.get('CXXFLAGS', '').split()
   ldflags = os.environ.get('LDFLAGS', '').split()
   libflags = os.environ.get('LIBFLAGS', '').split()
-  include_dirs = [os.path.relpath(REPO_ROOT, os.path.dirname(path)), '.']
+  include_dirs = [
+      os.path.relpath(os.path.join(REPO_ROOT, 'src'), os.path.dirname(path)),
+      '.',
+  ]
   libs = []
 
   if not platform.is_msvc():
@@ -396,282 +398,282 @@
 
   static_libraries = {
       'base': {'sources': [
-        'base/command_line.cc',
-        'base/environment.cc',
-        'base/files/file.cc',
-        'base/files/file_enumerator.cc',
-        'base/files/file_path.cc',
-        'base/files/file_path_constants.cc',
-        'base/files/file_util.cc',
-        'base/files/scoped_file.cc',
-        'base/files/scoped_temp_dir.cc',
-        'base/json/json_parser.cc',
-        'base/json/json_reader.cc',
-        'base/json/json_writer.cc',
-        'base/json/string_escape.cc',
-        'base/logging.cc',
-        'base/md5.cc',
-        'base/memory/ref_counted.cc',
-        'base/memory/weak_ptr.cc',
-        'base/sha1.cc',
-        'base/strings/string_number_conversions.cc',
-        'base/strings/string_split.cc',
-        'base/strings/string_util.cc',
-        'base/strings/string_util_constants.cc',
-        'base/strings/stringprintf.cc',
-        'base/strings/utf_string_conversion_utils.cc',
-        'base/strings/utf_string_conversions.cc',
-        'base/third_party/icu/icu_utf.cc',
-        'base/timer/elapsed_timer.cc',
-        'base/value_iterators.cc',
-        'base/values.cc',
+        'src/base/command_line.cc',
+        'src/base/environment.cc',
+        'src/base/files/file.cc',
+        'src/base/files/file_enumerator.cc',
+        'src/base/files/file_path.cc',
+        'src/base/files/file_path_constants.cc',
+        'src/base/files/file_util.cc',
+        'src/base/files/scoped_file.cc',
+        'src/base/files/scoped_temp_dir.cc',
+        'src/base/json/json_parser.cc',
+        'src/base/json/json_reader.cc',
+        'src/base/json/json_writer.cc',
+        'src/base/json/string_escape.cc',
+        'src/base/logging.cc',
+        'src/base/md5.cc',
+        'src/base/memory/ref_counted.cc',
+        'src/base/memory/weak_ptr.cc',
+        'src/base/sha1.cc',
+        'src/base/strings/string_number_conversions.cc',
+        'src/base/strings/string_split.cc',
+        'src/base/strings/string_util.cc',
+        'src/base/strings/string_util_constants.cc',
+        'src/base/strings/stringprintf.cc',
+        'src/base/strings/utf_string_conversion_utils.cc',
+        'src/base/strings/utf_string_conversions.cc',
+        'src/base/third_party/icu/icu_utf.cc',
+        'src/base/timer/elapsed_timer.cc',
+        'src/base/value_iterators.cc',
+        'src/base/values.cc',
       ], 'tool': 'cxx', 'include_dirs': []},
       'gn_lib': {'sources': [
-        'tools/gn/action_target_generator.cc',
-        'tools/gn/action_values.cc',
-        'tools/gn/analyzer.cc',
-        'tools/gn/args.cc',
-        'tools/gn/binary_target_generator.cc',
-        'tools/gn/builder.cc',
-        'tools/gn/builder_record.cc',
-        'tools/gn/build_settings.cc',
-        'tools/gn/bundle_data.cc',
-        'tools/gn/bundle_data_target_generator.cc',
-        'tools/gn/bundle_file_rule.cc',
-        'tools/gn/c_include_iterator.cc',
-        'tools/gn/c_substitution_type.cc',
-        'tools/gn/c_tool.cc',
-        'tools/gn/command_analyze.cc',
-        'tools/gn/command_args.cc',
-        'tools/gn/command_check.cc',
-        'tools/gn/command_clean.cc',
-        'tools/gn/command_desc.cc',
-        'tools/gn/command_format.cc',
-        'tools/gn/command_gen.cc',
-        'tools/gn/command_help.cc',
-        'tools/gn/command_meta.cc',
-        'tools/gn/command_ls.cc',
-        'tools/gn/command_path.cc',
-        'tools/gn/command_refs.cc',
-        'tools/gn/commands.cc',
-        'tools/gn/compile_commands_writer.cc',
-        'tools/gn/config.cc',
-        'tools/gn/config_values.cc',
-        'tools/gn/config_values_extractors.cc',
-        'tools/gn/config_values_generator.cc',
-        'tools/gn/copy_target_generator.cc',
-        'tools/gn/create_bundle_target_generator.cc',
-        'tools/gn/deps_iterator.cc',
-        'tools/gn/desc_builder.cc',
-        'tools/gn/eclipse_writer.cc',
-        'tools/gn/err.cc',
-        'tools/gn/escape.cc',
-        'tools/gn/exec_process.cc',
-        'tools/gn/filesystem_utils.cc',
-        'tools/gn/function_exec_script.cc',
-        'tools/gn/function_foreach.cc',
-        'tools/gn/function_forward_variables_from.cc',
-        'tools/gn/function_get_label_info.cc',
-        'tools/gn/function_get_path_info.cc',
-        'tools/gn/function_get_target_outputs.cc',
-        'tools/gn/function_process_file_template.cc',
-        'tools/gn/function_read_file.cc',
-        'tools/gn/function_rebase_path.cc',
-        'tools/gn/functions.cc',
-        'tools/gn/function_set_defaults.cc',
-        'tools/gn/function_set_default_toolchain.cc',
-        'tools/gn/functions_target.cc',
-        'tools/gn/function_template.cc',
-        'tools/gn/function_toolchain.cc',
-        'tools/gn/function_write_file.cc',
-        'tools/gn/general_tool.cc',
-        'tools/gn/generated_file_target_generator.cc',
-        'tools/gn/group_target_generator.cc',
-        'tools/gn/header_checker.cc',
-        'tools/gn/import_manager.cc',
-        'tools/gn/inherited_libraries.cc',
-        'tools/gn/input_conversion.cc',
-        'tools/gn/input_file.cc',
-        'tools/gn/input_file_manager.cc',
-        'tools/gn/item.cc',
-        'tools/gn/json_project_writer.cc',
-        'tools/gn/label.cc',
-        'tools/gn/label_pattern.cc',
-        'tools/gn/lib_file.cc',
-        'tools/gn/loader.cc',
-        'tools/gn/location.cc',
-        'tools/gn/metadata.cc',
-        'tools/gn/metadata_walk.cc',
-        'tools/gn/ninja_action_target_writer.cc',
-        'tools/gn/ninja_binary_target_writer.cc',
-        'tools/gn/ninja_build_writer.cc',
-        'tools/gn/ninja_bundle_data_target_writer.cc',
-        'tools/gn/ninja_c_binary_target_writer.cc',
-        'tools/gn/ninja_copy_target_writer.cc',
-        'tools/gn/ninja_create_bundle_target_writer.cc',
-        'tools/gn/ninja_generated_file_target_writer.cc',
-        'tools/gn/ninja_group_target_writer.cc',
-        'tools/gn/ninja_rust_binary_target_writer.cc',
-        'tools/gn/ninja_target_command_util.cc',
-        'tools/gn/ninja_target_writer.cc',
-        'tools/gn/ninja_toolchain_writer.cc',
-        'tools/gn/ninja_utils.cc',
-        'tools/gn/ninja_writer.cc',
-        'tools/gn/operators.cc',
-        'tools/gn/output_conversion.cc',
-        'tools/gn/output_file.cc',
-        'tools/gn/parse_node_value_adapter.cc',
-        'tools/gn/parser.cc',
-        'tools/gn/parse_tree.cc',
-        'tools/gn/path_output.cc',
-        'tools/gn/pattern.cc',
-        'tools/gn/pool.cc',
-        'tools/gn/qt_creator_writer.cc',
-        'tools/gn/runtime_deps.cc',
-        'tools/gn/rust_substitution_type.cc',
-        'tools/gn/rust_values_generator.cc',
-        'tools/gn/rust_tool.cc',
-        'tools/gn/rust_values.cc',
-        'tools/gn/rust_variables.cc',
-        'tools/gn/scheduler.cc',
-        'tools/gn/scope.cc',
-        'tools/gn/scope_per_file_provider.cc',
-        'tools/gn/settings.cc',
-        'tools/gn/setup.cc',
-        'tools/gn/source_dir.cc',
-        'tools/gn/source_file.cc',
-        'tools/gn/standard_out.cc',
-        'tools/gn/string_utils.cc',
-        'tools/gn/substitution_list.cc',
-        'tools/gn/substitution_pattern.cc',
-        'tools/gn/substitution_type.cc',
-        'tools/gn/substitution_writer.cc',
-        'tools/gn/switches.cc',
-        'tools/gn/target.cc',
-        'tools/gn/target_generator.cc',
-        'tools/gn/template.cc',
-        'tools/gn/token.cc',
-        'tools/gn/tokenizer.cc',
-        'tools/gn/tool.cc',
-        'tools/gn/toolchain.cc',
-        'tools/gn/trace.cc',
-        'tools/gn/value.cc',
-        'tools/gn/value_extractors.cc',
-        'tools/gn/variables.cc',
-        'tools/gn/visibility.cc',
-        'tools/gn/visual_studio_utils.cc',
-        'tools/gn/visual_studio_writer.cc',
-        'tools/gn/xcode_object.cc',
-        'tools/gn/xcode_writer.cc',
-        'tools/gn/xml_element_writer.cc',
-        'util/exe_path.cc',
-        'util/msg_loop.cc',
-        'util/semaphore.cc',
-        'util/sys_info.cc',
-        'util/ticks.cc',
-        'util/worker_pool.cc',
+        'src/gn/action_target_generator.cc',
+        'src/gn/action_values.cc',
+        'src/gn/analyzer.cc',
+        'src/gn/args.cc',
+        'src/gn/binary_target_generator.cc',
+        'src/gn/builder.cc',
+        'src/gn/builder_record.cc',
+        'src/gn/build_settings.cc',
+        'src/gn/bundle_data.cc',
+        'src/gn/bundle_data_target_generator.cc',
+        'src/gn/bundle_file_rule.cc',
+        'src/gn/c_include_iterator.cc',
+        'src/gn/c_substitution_type.cc',
+        'src/gn/c_tool.cc',
+        'src/gn/command_analyze.cc',
+        'src/gn/command_args.cc',
+        'src/gn/command_check.cc',
+        'src/gn/command_clean.cc',
+        'src/gn/command_desc.cc',
+        'src/gn/command_format.cc',
+        'src/gn/command_gen.cc',
+        'src/gn/command_help.cc',
+        'src/gn/command_meta.cc',
+        'src/gn/command_ls.cc',
+        'src/gn/command_path.cc',
+        'src/gn/command_refs.cc',
+        'src/gn/commands.cc',
+        'src/gn/compile_commands_writer.cc',
+        'src/gn/config.cc',
+        'src/gn/config_values.cc',
+        'src/gn/config_values_extractors.cc',
+        'src/gn/config_values_generator.cc',
+        'src/gn/copy_target_generator.cc',
+        'src/gn/create_bundle_target_generator.cc',
+        'src/gn/deps_iterator.cc',
+        'src/gn/desc_builder.cc',
+        'src/gn/eclipse_writer.cc',
+        'src/gn/err.cc',
+        'src/gn/escape.cc',
+        'src/gn/exec_process.cc',
+        'src/gn/filesystem_utils.cc',
+        'src/gn/function_exec_script.cc',
+        'src/gn/function_foreach.cc',
+        'src/gn/function_forward_variables_from.cc',
+        'src/gn/function_get_label_info.cc',
+        'src/gn/function_get_path_info.cc',
+        'src/gn/function_get_target_outputs.cc',
+        'src/gn/function_process_file_template.cc',
+        'src/gn/function_read_file.cc',
+        'src/gn/function_rebase_path.cc',
+        'src/gn/functions.cc',
+        'src/gn/function_set_defaults.cc',
+        'src/gn/function_set_default_toolchain.cc',
+        'src/gn/functions_target.cc',
+        'src/gn/function_template.cc',
+        'src/gn/function_toolchain.cc',
+        'src/gn/function_write_file.cc',
+        'src/gn/general_tool.cc',
+        'src/gn/generated_file_target_generator.cc',
+        'src/gn/group_target_generator.cc',
+        'src/gn/header_checker.cc',
+        'src/gn/import_manager.cc',
+        'src/gn/inherited_libraries.cc',
+        'src/gn/input_conversion.cc',
+        'src/gn/input_file.cc',
+        'src/gn/input_file_manager.cc',
+        'src/gn/item.cc',
+        'src/gn/json_project_writer.cc',
+        'src/gn/label.cc',
+        'src/gn/label_pattern.cc',
+        'src/gn/lib_file.cc',
+        'src/gn/loader.cc',
+        'src/gn/location.cc',
+        'src/gn/metadata.cc',
+        'src/gn/metadata_walk.cc',
+        'src/gn/ninja_action_target_writer.cc',
+        'src/gn/ninja_binary_target_writer.cc',
+        'src/gn/ninja_build_writer.cc',
+        'src/gn/ninja_bundle_data_target_writer.cc',
+        'src/gn/ninja_c_binary_target_writer.cc',
+        'src/gn/ninja_copy_target_writer.cc',
+        'src/gn/ninja_create_bundle_target_writer.cc',
+        'src/gn/ninja_generated_file_target_writer.cc',
+        'src/gn/ninja_group_target_writer.cc',
+        'src/gn/ninja_rust_binary_target_writer.cc',
+        'src/gn/ninja_target_command_util.cc',
+        'src/gn/ninja_target_writer.cc',
+        'src/gn/ninja_toolchain_writer.cc',
+        'src/gn/ninja_utils.cc',
+        'src/gn/ninja_writer.cc',
+        'src/gn/operators.cc',
+        'src/gn/output_conversion.cc',
+        'src/gn/output_file.cc',
+        'src/gn/parse_node_value_adapter.cc',
+        'src/gn/parser.cc',
+        'src/gn/parse_tree.cc',
+        'src/gn/path_output.cc',
+        'src/gn/pattern.cc',
+        'src/gn/pool.cc',
+        'src/gn/qt_creator_writer.cc',
+        'src/gn/runtime_deps.cc',
+        'src/gn/rust_substitution_type.cc',
+        'src/gn/rust_values_generator.cc',
+        'src/gn/rust_tool.cc',
+        'src/gn/rust_values.cc',
+        'src/gn/rust_variables.cc',
+        'src/gn/scheduler.cc',
+        'src/gn/scope.cc',
+        'src/gn/scope_per_file_provider.cc',
+        'src/gn/settings.cc',
+        'src/gn/setup.cc',
+        'src/gn/source_dir.cc',
+        'src/gn/source_file.cc',
+        'src/gn/standard_out.cc',
+        'src/gn/string_utils.cc',
+        'src/gn/substitution_list.cc',
+        'src/gn/substitution_pattern.cc',
+        'src/gn/substitution_type.cc',
+        'src/gn/substitution_writer.cc',
+        'src/gn/switches.cc',
+        'src/gn/target.cc',
+        'src/gn/target_generator.cc',
+        'src/gn/template.cc',
+        'src/gn/token.cc',
+        'src/gn/tokenizer.cc',
+        'src/gn/tool.cc',
+        'src/gn/toolchain.cc',
+        'src/gn/trace.cc',
+        'src/gn/value.cc',
+        'src/gn/value_extractors.cc',
+        'src/gn/variables.cc',
+        'src/gn/visibility.cc',
+        'src/gn/visual_studio_utils.cc',
+        'src/gn/visual_studio_writer.cc',
+        'src/gn/xcode_object.cc',
+        'src/gn/xcode_writer.cc',
+        'src/gn/xml_element_writer.cc',
+        'src/util/exe_path.cc',
+        'src/util/msg_loop.cc',
+        'src/util/semaphore.cc',
+        'src/util/sys_info.cc',
+        'src/util/ticks.cc',
+        'src/util/worker_pool.cc',
       ], 'tool': 'cxx', 'include_dirs': []},
   }
 
   executables = {
-      'gn': {'sources': [ 'tools/gn/gn_main.cc' ],
-      'tool': 'cxx', 'include_dirs': [], 'libs': []},
+      'gn': {'sources': [ 'src/gn/gn_main.cc' ],
+        'tool': 'cxx', 'include_dirs': [], 'libs': []},
 
       'gn_unittests': { 'sources': [
-        'tools/gn/action_target_generator_unittest.cc',
-        'tools/gn/analyzer_unittest.cc',
-        'tools/gn/args_unittest.cc',
-        'tools/gn/builder_unittest.cc',
-        'tools/gn/c_include_iterator_unittest.cc',
-        'tools/gn/command_format_unittest.cc',
-        'tools/gn/compile_commands_writer_unittest.cc',
-        'tools/gn/config_unittest.cc',
-        'tools/gn/config_values_extractors_unittest.cc',
-        'tools/gn/escape_unittest.cc',
-        'tools/gn/exec_process_unittest.cc',
-        'tools/gn/filesystem_utils_unittest.cc',
-        'tools/gn/function_foreach_unittest.cc',
-        'tools/gn/function_forward_variables_from_unittest.cc',
-        'tools/gn/function_get_label_info_unittest.cc',
-        'tools/gn/function_get_path_info_unittest.cc',
-        'tools/gn/function_get_target_outputs_unittest.cc',
-        'tools/gn/function_process_file_template_unittest.cc',
-        'tools/gn/function_rebase_path_unittest.cc',
-        'tools/gn/function_template_unittest.cc',
-        'tools/gn/function_toolchain_unittest.cc',
-        'tools/gn/function_write_file_unittest.cc',
-        'tools/gn/functions_target_unittest.cc',
-        'tools/gn/functions_target_rust_unittest.cc',
-        'tools/gn/functions_unittest.cc',
-        'tools/gn/header_checker_unittest.cc',
-        'tools/gn/inherited_libraries_unittest.cc',
-        'tools/gn/input_conversion_unittest.cc',
-        'tools/gn/json_project_writer_unittest.cc',
-        'tools/gn/label_pattern_unittest.cc',
-        'tools/gn/label_unittest.cc',
-        'tools/gn/loader_unittest.cc',
-        'tools/gn/metadata_unittest.cc',
-        'tools/gn/metadata_walk_unittest.cc',
-        'tools/gn/ninja_action_target_writer_unittest.cc',
-        'tools/gn/ninja_binary_target_writer_unittest.cc',
-        'tools/gn/ninja_c_binary_target_writer_unittest.cc',
-        'tools/gn/ninja_build_writer_unittest.cc',
-        'tools/gn/ninja_bundle_data_target_writer_unittest.cc',
-        'tools/gn/ninja_copy_target_writer_unittest.cc',
-        'tools/gn/ninja_create_bundle_target_writer_unittest.cc',
-        'tools/gn/ninja_rust_binary_target_writer_unittest.cc',
-        'tools/gn/ninja_generated_file_target_writer_unittest.cc',
-        'tools/gn/ninja_group_target_writer_unittest.cc',
-        'tools/gn/ninja_target_writer_unittest.cc',
-        'tools/gn/ninja_toolchain_writer_unittest.cc',
-        'tools/gn/operators_unittest.cc',
-        'tools/gn/output_conversion_unittest.cc',
-        'tools/gn/parse_tree_unittest.cc',
-        'tools/gn/parser_unittest.cc',
-        'tools/gn/path_output_unittest.cc',
-        'tools/gn/pattern_unittest.cc',
-        'tools/gn/runtime_deps_unittest.cc',
-        'tools/gn/scope_per_file_provider_unittest.cc',
-        'tools/gn/scope_unittest.cc',
-        'tools/gn/setup_unittest.cc',
-        'tools/gn/source_dir_unittest.cc',
-        'tools/gn/source_file_unittest.cc',
-        'tools/gn/string_utils_unittest.cc',
-        'tools/gn/substitution_pattern_unittest.cc',
-        'tools/gn/substitution_writer_unittest.cc',
-        'tools/gn/target_unittest.cc',
-        'tools/gn/template_unittest.cc',
-        'tools/gn/test_with_scheduler.cc',
-        'tools/gn/test_with_scope.cc',
-        'tools/gn/tokenizer_unittest.cc',
-        'tools/gn/unique_vector_unittest.cc',
-        'tools/gn/value_unittest.cc',
-        'tools/gn/visibility_unittest.cc',
-        'tools/gn/visual_studio_utils_unittest.cc',
-        'tools/gn/visual_studio_writer_unittest.cc',
-        'tools/gn/xcode_object_unittest.cc',
-        'tools/gn/xml_element_writer_unittest.cc',
-        'util/test/gn_test.cc',
+        'src/gn/action_target_generator_unittest.cc',
+        'src/gn/analyzer_unittest.cc',
+        'src/gn/args_unittest.cc',
+        'src/gn/builder_unittest.cc',
+        'src/gn/c_include_iterator_unittest.cc',
+        'src/gn/command_format_unittest.cc',
+        'src/gn/compile_commands_writer_unittest.cc',
+        'src/gn/config_unittest.cc',
+        'src/gn/config_values_extractors_unittest.cc',
+        'src/gn/escape_unittest.cc',
+        'src/gn/exec_process_unittest.cc',
+        'src/gn/filesystem_utils_unittest.cc',
+        'src/gn/function_foreach_unittest.cc',
+        'src/gn/function_forward_variables_from_unittest.cc',
+        'src/gn/function_get_label_info_unittest.cc',
+        'src/gn/function_get_path_info_unittest.cc',
+        'src/gn/function_get_target_outputs_unittest.cc',
+        'src/gn/function_process_file_template_unittest.cc',
+        'src/gn/function_rebase_path_unittest.cc',
+        'src/gn/function_template_unittest.cc',
+        'src/gn/function_toolchain_unittest.cc',
+        'src/gn/function_write_file_unittest.cc',
+        'src/gn/functions_target_unittest.cc',
+        'src/gn/functions_target_rust_unittest.cc',
+        'src/gn/functions_unittest.cc',
+        'src/gn/header_checker_unittest.cc',
+        'src/gn/inherited_libraries_unittest.cc',
+        'src/gn/input_conversion_unittest.cc',
+        'src/gn/json_project_writer_unittest.cc',
+        'src/gn/label_pattern_unittest.cc',
+        'src/gn/label_unittest.cc',
+        'src/gn/loader_unittest.cc',
+        'src/gn/metadata_unittest.cc',
+        'src/gn/metadata_walk_unittest.cc',
+        'src/gn/ninja_action_target_writer_unittest.cc',
+        'src/gn/ninja_binary_target_writer_unittest.cc',
+        'src/gn/ninja_c_binary_target_writer_unittest.cc',
+        'src/gn/ninja_build_writer_unittest.cc',
+        'src/gn/ninja_bundle_data_target_writer_unittest.cc',
+        'src/gn/ninja_copy_target_writer_unittest.cc',
+        'src/gn/ninja_create_bundle_target_writer_unittest.cc',
+        'src/gn/ninja_rust_binary_target_writer_unittest.cc',
+        'src/gn/ninja_generated_file_target_writer_unittest.cc',
+        'src/gn/ninja_group_target_writer_unittest.cc',
+        'src/gn/ninja_target_writer_unittest.cc',
+        'src/gn/ninja_toolchain_writer_unittest.cc',
+        'src/gn/operators_unittest.cc',
+        'src/gn/output_conversion_unittest.cc',
+        'src/gn/parse_tree_unittest.cc',
+        'src/gn/parser_unittest.cc',
+        'src/gn/path_output_unittest.cc',
+        'src/gn/pattern_unittest.cc',
+        'src/gn/runtime_deps_unittest.cc',
+        'src/gn/scope_per_file_provider_unittest.cc',
+        'src/gn/scope_unittest.cc',
+        'src/gn/setup_unittest.cc',
+        'src/gn/source_dir_unittest.cc',
+        'src/gn/source_file_unittest.cc',
+        'src/gn/string_utils_unittest.cc',
+        'src/gn/substitution_pattern_unittest.cc',
+        'src/gn/substitution_writer_unittest.cc',
+        'src/gn/target_unittest.cc',
+        'src/gn/template_unittest.cc',
+        'src/gn/test_with_scheduler.cc',
+        'src/gn/test_with_scope.cc',
+        'src/gn/tokenizer_unittest.cc',
+        'src/gn/unique_vector_unittest.cc',
+        'src/gn/value_unittest.cc',
+        'src/gn/visibility_unittest.cc',
+        'src/gn/visual_studio_utils_unittest.cc',
+        'src/gn/visual_studio_writer_unittest.cc',
+        'src/gn/xcode_object_unittest.cc',
+        'src/gn/xml_element_writer_unittest.cc',
+        'src/util/test/gn_test.cc',
       ], 'tool': 'cxx', 'include_dirs': [], 'libs': []},
   }
 
   if platform.is_posix():
     static_libraries['base']['sources'].extend([
-        'base/files/file_enumerator_posix.cc',
-        'base/files/file_posix.cc',
-        'base/files/file_util_posix.cc',
-        'base/posix/file_descriptor_shuffle.cc',
-        'base/posix/safe_strerror.cc',
+        'src/base/files/file_enumerator_posix.cc',
+        'src/base/files/file_posix.cc',
+        'src/base/files/file_util_posix.cc',
+        'src/base/posix/file_descriptor_shuffle.cc',
+        'src/base/posix/safe_strerror.cc',
     ])
 
   if platform.is_windows():
     static_libraries['base']['sources'].extend([
-        'base/files/file_enumerator_win.cc',
-        'base/files/file_util_win.cc',
-        'base/files/file_win.cc',
-        'base/win/registry.cc',
-        'base/win/scoped_handle.cc',
-        'base/win/scoped_process_information.cc',
+        'src/base/files/file_enumerator_win.cc',
+        'src/base/files/file_util_win.cc',
+        'src/base/files/file_win.cc',
+        'src/base/win/registry.cc',
+        'src/base/win/scoped_handle.cc',
+        'src/base/win/scoped_process_information.cc',
     ])
 
     libs.extend([
diff --git a/tools/gn/misc/emacs/.gitignore b/misc/emacs/.gitignore
similarity index 100%
rename from tools/gn/misc/emacs/.gitignore
rename to misc/emacs/.gitignore
diff --git a/tools/gn/misc/emacs/gn-mode.el b/misc/emacs/gn-mode.el
similarity index 98%
rename from tools/gn/misc/emacs/gn-mode.el
rename to misc/emacs/gn-mode.el
index 5930b58..f57d28f 100644
--- a/tools/gn/misc/emacs/gn-mode.el
+++ b/misc/emacs/gn-mode.el
@@ -14,7 +14,7 @@
 
 ;; A major mode for editing GN files. GN stands for Generate Ninja. GN is the
 ;; meta build system used in Chromium. For more information on GN, see the GN
-;; manual: <https://chromium.googlesource.com/chromium/src/+/master/tools/gn/README.md>
+;; manual: <https://gn.googlesource.com/gn/+/refs/heads/master/README.md>
 
 ;;; To Do:
 
diff --git a/tools/gn/misc/help_as_html.py b/misc/help_as_html.py
similarity index 100%
rename from tools/gn/misc/help_as_html.py
rename to misc/help_as_html.py
diff --git a/tools/gn/misc/tm/GN.tmLanguage b/misc/tm/GN.tmLanguage
similarity index 100%
rename from tools/gn/misc/tm/GN.tmLanguage
rename to misc/tm/GN.tmLanguage
diff --git a/tools/gn/misc/tm/GN.tmPreferences b/misc/tm/GN.tmPreferences
similarity index 100%
rename from tools/gn/misc/tm/GN.tmPreferences
rename to misc/tm/GN.tmPreferences
diff --git a/tools/gn/misc/vim/README.md b/misc/vim/README.md
similarity index 74%
rename from tools/gn/misc/vim/README.md
rename to misc/vim/README.md
index f64e22a..f9684b4 100644
--- a/tools/gn/misc/vim/README.md
+++ b/misc/vim/README.md
@@ -8,13 +8,13 @@
 Example config for [vim-plug](https://github.com/junegunn/vim-plug):
 
 ```
-Plug 'https://gn.googlesource.com/gn', { 'rtp': 'tools/gn/misc/vim' }
+Plug 'https://gn.googlesource.com/gn', { 'rtp': 'misc/vim' }
 ```
 
 Or, for [Vundle](https://github.com/VundleVim/Vundle.vim) users:
 
 ```
-Plugin 'https://gn.googlesource.com/gn', { 'rtp': 'tools/gn/misc/vim' }
+Plugin 'https://gn.googlesource.com/gn', { 'rtp': 'misc/vim' }
 ```
 
 ## Manual installation
@@ -23,7 +23,7 @@
 yourself, you can add this explicitly to `rtp` in your `.vimrc`:
 
 ```
-set runtimepath+=/path/to/src/tools/gn/misc/vim
+set runtimepath+=/path/to/gn/misc/vim
 " ...
 filetype plugin indent on " or a similar command to turn on filetypes in vim
 ```
diff --git a/tools/gn/misc/vim/autoload/gn.vim b/misc/vim/autoload/gn.vim
similarity index 100%
rename from tools/gn/misc/vim/autoload/gn.vim
rename to misc/vim/autoload/gn.vim
diff --git a/tools/gn/misc/vim/ftdetect/gnfiletype.vim b/misc/vim/ftdetect/gnfiletype.vim
similarity index 100%
rename from tools/gn/misc/vim/ftdetect/gnfiletype.vim
rename to misc/vim/ftdetect/gnfiletype.vim
diff --git a/tools/gn/misc/vim/ftplugin/gn.vim b/misc/vim/ftplugin/gn.vim
similarity index 100%
rename from tools/gn/misc/vim/ftplugin/gn.vim
rename to misc/vim/ftplugin/gn.vim
diff --git a/tools/gn/misc/vim/gn-format.py b/misc/vim/gn-format.py
similarity index 100%
rename from tools/gn/misc/vim/gn-format.py
rename to misc/vim/gn-format.py
diff --git a/tools/gn/misc/vim/syntax/gn.vim b/misc/vim/syntax/gn.vim
similarity index 100%
rename from tools/gn/misc/vim/syntax/gn.vim
rename to misc/vim/syntax/gn.vim
diff --git a/base/atomic_ref_count.h b/src/base/atomic_ref_count.h
similarity index 100%
rename from base/atomic_ref_count.h
rename to src/base/atomic_ref_count.h
diff --git a/base/command_line.cc b/src/base/command_line.cc
similarity index 100%
rename from base/command_line.cc
rename to src/base/command_line.cc
diff --git a/base/command_line.h b/src/base/command_line.h
similarity index 100%
rename from base/command_line.h
rename to src/base/command_line.h
diff --git a/base/compiler_specific.h b/src/base/compiler_specific.h
similarity index 100%
rename from base/compiler_specific.h
rename to src/base/compiler_specific.h
diff --git a/base/containers/circular_deque.h b/src/base/containers/circular_deque.h
similarity index 100%
rename from base/containers/circular_deque.h
rename to src/base/containers/circular_deque.h
diff --git a/base/containers/flat_map.h b/src/base/containers/flat_map.h
similarity index 100%
rename from base/containers/flat_map.h
rename to src/base/containers/flat_map.h
diff --git a/base/containers/flat_set.h b/src/base/containers/flat_set.h
similarity index 100%
rename from base/containers/flat_set.h
rename to src/base/containers/flat_set.h
diff --git a/base/containers/flat_tree.h b/src/base/containers/flat_tree.h
similarity index 100%
rename from base/containers/flat_tree.h
rename to src/base/containers/flat_tree.h
diff --git a/base/containers/queue.h b/src/base/containers/queue.h
similarity index 100%
rename from base/containers/queue.h
rename to src/base/containers/queue.h
diff --git a/base/containers/span.h b/src/base/containers/span.h
similarity index 100%
rename from base/containers/span.h
rename to src/base/containers/span.h
diff --git a/base/containers/stack.h b/src/base/containers/stack.h
similarity index 100%
rename from base/containers/stack.h
rename to src/base/containers/stack.h
diff --git a/base/containers/vector_buffer.h b/src/base/containers/vector_buffer.h
similarity index 100%
rename from base/containers/vector_buffer.h
rename to src/base/containers/vector_buffer.h
diff --git a/base/environment.cc b/src/base/environment.cc
similarity index 100%
rename from base/environment.cc
rename to src/base/environment.cc
diff --git a/base/environment.h b/src/base/environment.h
similarity index 100%
rename from base/environment.h
rename to src/base/environment.h
diff --git a/base/files/file.cc b/src/base/files/file.cc
similarity index 100%
rename from base/files/file.cc
rename to src/base/files/file.cc
diff --git a/base/files/file.h b/src/base/files/file.h
similarity index 100%
rename from base/files/file.h
rename to src/base/files/file.h
diff --git a/base/files/file_enumerator.cc b/src/base/files/file_enumerator.cc
similarity index 100%
rename from base/files/file_enumerator.cc
rename to src/base/files/file_enumerator.cc
diff --git a/base/files/file_enumerator.h b/src/base/files/file_enumerator.h
similarity index 100%
rename from base/files/file_enumerator.h
rename to src/base/files/file_enumerator.h
diff --git a/base/files/file_enumerator_posix.cc b/src/base/files/file_enumerator_posix.cc
similarity index 100%
rename from base/files/file_enumerator_posix.cc
rename to src/base/files/file_enumerator_posix.cc
diff --git a/base/files/file_enumerator_win.cc b/src/base/files/file_enumerator_win.cc
similarity index 100%
rename from base/files/file_enumerator_win.cc
rename to src/base/files/file_enumerator_win.cc
diff --git a/base/files/file_path.cc b/src/base/files/file_path.cc
similarity index 100%
rename from base/files/file_path.cc
rename to src/base/files/file_path.cc
diff --git a/base/files/file_path.h b/src/base/files/file_path.h
similarity index 100%
rename from base/files/file_path.h
rename to src/base/files/file_path.h
diff --git a/base/files/file_path_constants.cc b/src/base/files/file_path_constants.cc
similarity index 100%
rename from base/files/file_path_constants.cc
rename to src/base/files/file_path_constants.cc
diff --git a/base/files/file_posix.cc b/src/base/files/file_posix.cc
similarity index 100%
rename from base/files/file_posix.cc
rename to src/base/files/file_posix.cc
diff --git a/base/files/file_util.cc b/src/base/files/file_util.cc
similarity index 100%
rename from base/files/file_util.cc
rename to src/base/files/file_util.cc
diff --git a/base/files/file_util.h b/src/base/files/file_util.h
similarity index 100%
rename from base/files/file_util.h
rename to src/base/files/file_util.h
diff --git a/base/files/file_util_linux.cc b/src/base/files/file_util_linux.cc
similarity index 100%
rename from base/files/file_util_linux.cc
rename to src/base/files/file_util_linux.cc
diff --git a/base/files/file_util_posix.cc b/src/base/files/file_util_posix.cc
similarity index 100%
rename from base/files/file_util_posix.cc
rename to src/base/files/file_util_posix.cc
diff --git a/base/files/file_util_win.cc b/src/base/files/file_util_win.cc
similarity index 100%
rename from base/files/file_util_win.cc
rename to src/base/files/file_util_win.cc
diff --git a/base/files/file_win.cc b/src/base/files/file_win.cc
similarity index 100%
rename from base/files/file_win.cc
rename to src/base/files/file_win.cc
diff --git a/base/files/platform_file.h b/src/base/files/platform_file.h
similarity index 100%
rename from base/files/platform_file.h
rename to src/base/files/platform_file.h
diff --git a/base/files/scoped_file.cc b/src/base/files/scoped_file.cc
similarity index 100%
rename from base/files/scoped_file.cc
rename to src/base/files/scoped_file.cc
diff --git a/base/files/scoped_file.h b/src/base/files/scoped_file.h
similarity index 100%
rename from base/files/scoped_file.h
rename to src/base/files/scoped_file.h
diff --git a/base/files/scoped_temp_dir.cc b/src/base/files/scoped_temp_dir.cc
similarity index 100%
rename from base/files/scoped_temp_dir.cc
rename to src/base/files/scoped_temp_dir.cc
diff --git a/base/files/scoped_temp_dir.h b/src/base/files/scoped_temp_dir.h
similarity index 100%
rename from base/files/scoped_temp_dir.h
rename to src/base/files/scoped_temp_dir.h
diff --git a/base/gtest_prod_util.h b/src/base/gtest_prod_util.h
similarity index 100%
rename from base/gtest_prod_util.h
rename to src/base/gtest_prod_util.h
diff --git a/base/json/json_parser.cc b/src/base/json/json_parser.cc
similarity index 100%
rename from base/json/json_parser.cc
rename to src/base/json/json_parser.cc
diff --git a/base/json/json_parser.h b/src/base/json/json_parser.h
similarity index 100%
rename from base/json/json_parser.h
rename to src/base/json/json_parser.h
diff --git a/base/json/json_reader.cc b/src/base/json/json_reader.cc
similarity index 100%
rename from base/json/json_reader.cc
rename to src/base/json/json_reader.cc
diff --git a/base/json/json_reader.h b/src/base/json/json_reader.h
similarity index 100%
rename from base/json/json_reader.h
rename to src/base/json/json_reader.h
diff --git a/base/json/json_value_converter.cc b/src/base/json/json_value_converter.cc
similarity index 100%
rename from base/json/json_value_converter.cc
rename to src/base/json/json_value_converter.cc
diff --git a/base/json/json_value_converter.h b/src/base/json/json_value_converter.h
similarity index 100%
rename from base/json/json_value_converter.h
rename to src/base/json/json_value_converter.h
diff --git a/base/json/json_writer.cc b/src/base/json/json_writer.cc
similarity index 100%
rename from base/json/json_writer.cc
rename to src/base/json/json_writer.cc
diff --git a/base/json/json_writer.h b/src/base/json/json_writer.h
similarity index 100%
rename from base/json/json_writer.h
rename to src/base/json/json_writer.h
diff --git a/base/json/string_escape.cc b/src/base/json/string_escape.cc
similarity index 100%
rename from base/json/string_escape.cc
rename to src/base/json/string_escape.cc
diff --git a/base/json/string_escape.h b/src/base/json/string_escape.h
similarity index 100%
rename from base/json/string_escape.h
rename to src/base/json/string_escape.h
diff --git a/base/logging.cc b/src/base/logging.cc
similarity index 100%
rename from base/logging.cc
rename to src/base/logging.cc
diff --git a/base/logging.h b/src/base/logging.h
similarity index 100%
rename from base/logging.h
rename to src/base/logging.h
diff --git a/base/mac/bundle_locations.h b/src/base/mac/bundle_locations.h
similarity index 100%
rename from base/mac/bundle_locations.h
rename to src/base/mac/bundle_locations.h
diff --git a/base/mac/mac_logging.h b/src/base/mac/mac_logging.h
similarity index 100%
rename from base/mac/mac_logging.h
rename to src/base/mac/mac_logging.h
diff --git a/base/mac/mac_logging.mm b/src/base/mac/mac_logging.mm
similarity index 100%
rename from base/mac/mac_logging.mm
rename to src/base/mac/mac_logging.mm
diff --git a/base/mac/scoped_cftyperef.h b/src/base/mac/scoped_cftyperef.h
similarity index 100%
rename from base/mac/scoped_cftyperef.h
rename to src/base/mac/scoped_cftyperef.h
diff --git a/base/mac/scoped_typeref.h b/src/base/mac/scoped_typeref.h
similarity index 100%
rename from base/mac/scoped_typeref.h
rename to src/base/mac/scoped_typeref.h
diff --git a/base/macros.h b/src/base/macros.h
similarity index 100%
rename from base/macros.h
rename to src/base/macros.h
diff --git a/base/md5.cc b/src/base/md5.cc
similarity index 100%
rename from base/md5.cc
rename to src/base/md5.cc
diff --git a/base/md5.h b/src/base/md5.h
similarity index 100%
rename from base/md5.h
rename to src/base/md5.h
diff --git a/base/memory/free_deleter.h b/src/base/memory/free_deleter.h
similarity index 100%
rename from base/memory/free_deleter.h
rename to src/base/memory/free_deleter.h
diff --git a/base/memory/ptr_util.h b/src/base/memory/ptr_util.h
similarity index 100%
rename from base/memory/ptr_util.h
rename to src/base/memory/ptr_util.h
diff --git a/base/memory/raw_scoped_refptr_mismatch_checker.h b/src/base/memory/raw_scoped_refptr_mismatch_checker.h
similarity index 100%
rename from base/memory/raw_scoped_refptr_mismatch_checker.h
rename to src/base/memory/raw_scoped_refptr_mismatch_checker.h
diff --git a/base/memory/ref_counted.cc b/src/base/memory/ref_counted.cc
similarity index 100%
rename from base/memory/ref_counted.cc
rename to src/base/memory/ref_counted.cc
diff --git a/base/memory/ref_counted.h b/src/base/memory/ref_counted.h
similarity index 100%
rename from base/memory/ref_counted.h
rename to src/base/memory/ref_counted.h
diff --git a/base/memory/scoped_policy.h b/src/base/memory/scoped_policy.h
similarity index 100%
rename from base/memory/scoped_policy.h
rename to src/base/memory/scoped_policy.h
diff --git a/base/memory/scoped_refptr.h b/src/base/memory/scoped_refptr.h
similarity index 100%
rename from base/memory/scoped_refptr.h
rename to src/base/memory/scoped_refptr.h
diff --git a/base/memory/weak_ptr.cc b/src/base/memory/weak_ptr.cc
similarity index 100%
rename from base/memory/weak_ptr.cc
rename to src/base/memory/weak_ptr.cc
diff --git a/base/memory/weak_ptr.h b/src/base/memory/weak_ptr.h
similarity index 100%
rename from base/memory/weak_ptr.h
rename to src/base/memory/weak_ptr.h
diff --git a/base/numerics/checked_math.h b/src/base/numerics/checked_math.h
similarity index 100%
rename from base/numerics/checked_math.h
rename to src/base/numerics/checked_math.h
diff --git a/base/numerics/checked_math_impl.h b/src/base/numerics/checked_math_impl.h
similarity index 100%
rename from base/numerics/checked_math_impl.h
rename to src/base/numerics/checked_math_impl.h
diff --git a/base/numerics/clamped_math.h b/src/base/numerics/clamped_math.h
similarity index 100%
rename from base/numerics/clamped_math.h
rename to src/base/numerics/clamped_math.h
diff --git a/base/numerics/clamped_math_impl.h b/src/base/numerics/clamped_math_impl.h
similarity index 100%
rename from base/numerics/clamped_math_impl.h
rename to src/base/numerics/clamped_math_impl.h
diff --git a/base/numerics/math_constants.h b/src/base/numerics/math_constants.h
similarity index 100%
rename from base/numerics/math_constants.h
rename to src/base/numerics/math_constants.h
diff --git a/base/numerics/ranges.h b/src/base/numerics/ranges.h
similarity index 100%
rename from base/numerics/ranges.h
rename to src/base/numerics/ranges.h
diff --git a/base/numerics/safe_conversions.h b/src/base/numerics/safe_conversions.h
similarity index 100%
rename from base/numerics/safe_conversions.h
rename to src/base/numerics/safe_conversions.h
diff --git a/base/numerics/safe_conversions_impl.h b/src/base/numerics/safe_conversions_impl.h
similarity index 100%
rename from base/numerics/safe_conversions_impl.h
rename to src/base/numerics/safe_conversions_impl.h
diff --git a/base/numerics/safe_math.h b/src/base/numerics/safe_math.h
similarity index 100%
rename from base/numerics/safe_math.h
rename to src/base/numerics/safe_math.h
diff --git a/base/numerics/safe_math_clang_gcc_impl.h b/src/base/numerics/safe_math_clang_gcc_impl.h
similarity index 100%
rename from base/numerics/safe_math_clang_gcc_impl.h
rename to src/base/numerics/safe_math_clang_gcc_impl.h
diff --git a/base/numerics/safe_math_shared_impl.h b/src/base/numerics/safe_math_shared_impl.h
similarity index 100%
rename from base/numerics/safe_math_shared_impl.h
rename to src/base/numerics/safe_math_shared_impl.h
diff --git a/base/posix/eintr_wrapper.h b/src/base/posix/eintr_wrapper.h
similarity index 100%
rename from base/posix/eintr_wrapper.h
rename to src/base/posix/eintr_wrapper.h
diff --git a/base/posix/file_descriptor_shuffle.cc b/src/base/posix/file_descriptor_shuffle.cc
similarity index 100%
rename from base/posix/file_descriptor_shuffle.cc
rename to src/base/posix/file_descriptor_shuffle.cc
diff --git a/base/posix/file_descriptor_shuffle.h b/src/base/posix/file_descriptor_shuffle.h
similarity index 100%
rename from base/posix/file_descriptor_shuffle.h
rename to src/base/posix/file_descriptor_shuffle.h
diff --git a/base/posix/safe_strerror.cc b/src/base/posix/safe_strerror.cc
similarity index 100%
rename from base/posix/safe_strerror.cc
rename to src/base/posix/safe_strerror.cc
diff --git a/base/posix/safe_strerror.h b/src/base/posix/safe_strerror.h
similarity index 100%
rename from base/posix/safe_strerror.h
rename to src/base/posix/safe_strerror.h
diff --git a/base/scoped_clear_errno.h b/src/base/scoped_clear_errno.h
similarity index 100%
rename from base/scoped_clear_errno.h
rename to src/base/scoped_clear_errno.h
diff --git a/base/scoped_generic.h b/src/base/scoped_generic.h
similarity index 100%
rename from base/scoped_generic.h
rename to src/base/scoped_generic.h
diff --git a/base/sha1.cc b/src/base/sha1.cc
similarity index 100%
rename from base/sha1.cc
rename to src/base/sha1.cc
diff --git a/base/sha1.h b/src/base/sha1.h
similarity index 100%
rename from base/sha1.h
rename to src/base/sha1.h
diff --git a/base/stl_util.h b/src/base/stl_util.h
similarity index 100%
rename from base/stl_util.h
rename to src/base/stl_util.h
diff --git a/base/strings/string_number_conversions.cc b/src/base/strings/string_number_conversions.cc
similarity index 100%
rename from base/strings/string_number_conversions.cc
rename to src/base/strings/string_number_conversions.cc
diff --git a/base/strings/string_number_conversions.h b/src/base/strings/string_number_conversions.h
similarity index 100%
rename from base/strings/string_number_conversions.h
rename to src/base/strings/string_number_conversions.h
diff --git a/base/strings/string_split.cc b/src/base/strings/string_split.cc
similarity index 100%
rename from base/strings/string_split.cc
rename to src/base/strings/string_split.cc
diff --git a/base/strings/string_split.h b/src/base/strings/string_split.h
similarity index 100%
rename from base/strings/string_split.h
rename to src/base/strings/string_split.h
diff --git a/base/strings/string_tokenizer.h b/src/base/strings/string_tokenizer.h
similarity index 100%
rename from base/strings/string_tokenizer.h
rename to src/base/strings/string_tokenizer.h
diff --git a/base/strings/string_util.cc b/src/base/strings/string_util.cc
similarity index 100%
rename from base/strings/string_util.cc
rename to src/base/strings/string_util.cc
diff --git a/base/strings/string_util.h b/src/base/strings/string_util.h
similarity index 100%
rename from base/strings/string_util.h
rename to src/base/strings/string_util.h
diff --git a/base/strings/string_util_constants.cc b/src/base/strings/string_util_constants.cc
similarity index 100%
rename from base/strings/string_util_constants.cc
rename to src/base/strings/string_util_constants.cc
diff --git a/base/strings/string_util_posix.h b/src/base/strings/string_util_posix.h
similarity index 100%
rename from base/strings/string_util_posix.h
rename to src/base/strings/string_util_posix.h
diff --git a/base/strings/string_util_win.h b/src/base/strings/string_util_win.h
similarity index 100%
rename from base/strings/string_util_win.h
rename to src/base/strings/string_util_win.h
diff --git a/base/strings/stringize_macros.h b/src/base/strings/stringize_macros.h
similarity index 100%
rename from base/strings/stringize_macros.h
rename to src/base/strings/stringize_macros.h
diff --git a/base/strings/stringprintf.cc b/src/base/strings/stringprintf.cc
similarity index 100%
rename from base/strings/stringprintf.cc
rename to src/base/strings/stringprintf.cc
diff --git a/base/strings/stringprintf.h b/src/base/strings/stringprintf.h
similarity index 100%
rename from base/strings/stringprintf.h
rename to src/base/strings/stringprintf.h
diff --git a/base/strings/utf_offset_string_conversions.cc b/src/base/strings/utf_offset_string_conversions.cc
similarity index 100%
rename from base/strings/utf_offset_string_conversions.cc
rename to src/base/strings/utf_offset_string_conversions.cc
diff --git a/base/strings/utf_offset_string_conversions.h b/src/base/strings/utf_offset_string_conversions.h
similarity index 100%
rename from base/strings/utf_offset_string_conversions.h
rename to src/base/strings/utf_offset_string_conversions.h
diff --git a/base/strings/utf_string_conversion_utils.cc b/src/base/strings/utf_string_conversion_utils.cc
similarity index 100%
rename from base/strings/utf_string_conversion_utils.cc
rename to src/base/strings/utf_string_conversion_utils.cc
diff --git a/base/strings/utf_string_conversion_utils.h b/src/base/strings/utf_string_conversion_utils.h
similarity index 100%
rename from base/strings/utf_string_conversion_utils.h
rename to src/base/strings/utf_string_conversion_utils.h
diff --git a/base/strings/utf_string_conversions.cc b/src/base/strings/utf_string_conversions.cc
similarity index 100%
rename from base/strings/utf_string_conversions.cc
rename to src/base/strings/utf_string_conversions.cc
diff --git a/base/strings/utf_string_conversions.h b/src/base/strings/utf_string_conversions.h
similarity index 100%
rename from base/strings/utf_string_conversions.h
rename to src/base/strings/utf_string_conversions.h
diff --git a/base/sys_byteorder.h b/src/base/sys_byteorder.h
similarity index 100%
rename from base/sys_byteorder.h
rename to src/base/sys_byteorder.h
diff --git a/base/template_util.h b/src/base/template_util.h
similarity index 100%
rename from base/template_util.h
rename to src/base/template_util.h
diff --git a/base/third_party/icu/LICENSE b/src/base/third_party/icu/LICENSE
similarity index 100%
rename from base/third_party/icu/LICENSE
rename to src/base/third_party/icu/LICENSE
diff --git a/base/third_party/icu/README.chromium b/src/base/third_party/icu/README.chromium
similarity index 100%
rename from base/third_party/icu/README.chromium
rename to src/base/third_party/icu/README.chromium
diff --git a/base/third_party/icu/icu_utf.cc b/src/base/third_party/icu/icu_utf.cc
similarity index 100%
rename from base/third_party/icu/icu_utf.cc
rename to src/base/third_party/icu/icu_utf.cc
diff --git a/base/third_party/icu/icu_utf.h b/src/base/third_party/icu/icu_utf.h
similarity index 100%
rename from base/third_party/icu/icu_utf.h
rename to src/base/third_party/icu/icu_utf.h
diff --git a/base/timer/elapsed_timer.cc b/src/base/timer/elapsed_timer.cc
similarity index 100%
rename from base/timer/elapsed_timer.cc
rename to src/base/timer/elapsed_timer.cc
diff --git a/base/timer/elapsed_timer.h b/src/base/timer/elapsed_timer.h
similarity index 100%
rename from base/timer/elapsed_timer.h
rename to src/base/timer/elapsed_timer.h
diff --git a/base/value_iterators.cc b/src/base/value_iterators.cc
similarity index 100%
rename from base/value_iterators.cc
rename to src/base/value_iterators.cc
diff --git a/base/value_iterators.h b/src/base/value_iterators.h
similarity index 100%
rename from base/value_iterators.h
rename to src/base/value_iterators.h
diff --git a/base/values.cc b/src/base/values.cc
similarity index 100%
rename from base/values.cc
rename to src/base/values.cc
diff --git a/base/values.h b/src/base/values.h
similarity index 100%
rename from base/values.h
rename to src/base/values.h
diff --git a/base/win/registry.cc b/src/base/win/registry.cc
similarity index 100%
rename from base/win/registry.cc
rename to src/base/win/registry.cc
diff --git a/base/win/registry.h b/src/base/win/registry.h
similarity index 100%
rename from base/win/registry.h
rename to src/base/win/registry.h
diff --git a/base/win/scoped_handle.cc b/src/base/win/scoped_handle.cc
similarity index 100%
rename from base/win/scoped_handle.cc
rename to src/base/win/scoped_handle.cc
diff --git a/base/win/scoped_handle.h b/src/base/win/scoped_handle.h
similarity index 100%
rename from base/win/scoped_handle.h
rename to src/base/win/scoped_handle.h
diff --git a/base/win/scoped_process_information.cc b/src/base/win/scoped_process_information.cc
similarity index 100%
rename from base/win/scoped_process_information.cc
rename to src/base/win/scoped_process_information.cc
diff --git a/base/win/scoped_process_information.h b/src/base/win/scoped_process_information.h
similarity index 100%
rename from base/win/scoped_process_information.h
rename to src/base/win/scoped_process_information.h
diff --git a/base/win/win_util.h b/src/base/win/win_util.h
similarity index 100%
rename from base/win/win_util.h
rename to src/base/win/win_util.h
diff --git a/base/win/windows_types.h b/src/base/win/windows_types.h
similarity index 100%
rename from base/win/windows_types.h
rename to src/base/win/windows_types.h
diff --git a/tools/gn/action_target_generator.cc b/src/gn/action_target_generator.cc
similarity index 94%
rename from tools/gn/action_target_generator.cc
rename to src/gn/action_target_generator.cc
index 61e9d09..ea5b0ae 100644
--- a/tools/gn/action_target_generator.cc
+++ b/src/gn/action_target_generator.cc
@@ -2,18 +2,18 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/action_target_generator.h"
+#include "gn/action_target_generator.h"
 
 #include "base/stl_util.h"
-#include "tools/gn/build_settings.h"
-#include "tools/gn/err.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/functions.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/value.h"
-#include "tools/gn/value_extractors.h"
-#include "tools/gn/variables.h"
+#include "gn/build_settings.h"
+#include "gn/err.h"
+#include "gn/filesystem_utils.h"
+#include "gn/functions.h"
+#include "gn/parse_tree.h"
+#include "gn/scope.h"
+#include "gn/value.h"
+#include "gn/value_extractors.h"
+#include "gn/variables.h"
 
 ActionTargetGenerator::ActionTargetGenerator(
     Target* target,
diff --git a/tools/gn/action_target_generator.h b/src/gn/action_target_generator.h
similarity index 93%
rename from tools/gn/action_target_generator.h
rename to src/gn/action_target_generator.h
index 0ea3cbb..5d7f88c 100644
--- a/tools/gn/action_target_generator.h
+++ b/src/gn/action_target_generator.h
@@ -6,8 +6,8 @@
 #define TOOLS_GN_ACTION_TARGET_GENERATOR_H_
 
 #include "base/macros.h"
-#include "tools/gn/target.h"
-#include "tools/gn/target_generator.h"
+#include "gn/target.h"
+#include "gn/target_generator.h"
 
 // Populates a Target with the values from an action[_foreach] rule.
 class ActionTargetGenerator : public TargetGenerator {
diff --git a/tools/gn/action_target_generator_unittest.cc b/src/gn/action_target_generator_unittest.cc
similarity index 97%
rename from tools/gn/action_target_generator_unittest.cc
rename to src/gn/action_target_generator_unittest.cc
index b4c2b99..08ff8af 100644
--- a/tools/gn/action_target_generator_unittest.cc
+++ b/src/gn/action_target_generator_unittest.cc
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/scheduler.h"
-#include "tools/gn/test_with_scheduler.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/scheduler.h"
+#include "gn/test_with_scheduler.h"
+#include "gn/test_with_scope.h"
 #include "util/test/test.h"
 
 using ActionTargetGenerator = TestWithScheduler;
diff --git a/tools/gn/action_values.cc b/src/gn/action_values.cc
similarity index 88%
rename from tools/gn/action_values.cc
rename to src/gn/action_values.cc
index f73d869..56810e4 100644
--- a/tools/gn/action_values.cc
+++ b/src/gn/action_values.cc
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/action_values.h"
+#include "gn/action_values.h"
 
-#include "tools/gn/settings.h"
-#include "tools/gn/substitution_writer.h"
-#include "tools/gn/target.h"
+#include "gn/settings.h"
+#include "gn/substitution_writer.h"
+#include "gn/target.h"
 
 ActionValues::ActionValues() = default;
 
diff --git a/tools/gn/action_values.h b/src/gn/action_values.h
similarity index 95%
rename from tools/gn/action_values.h
rename to src/gn/action_values.h
index 806a39f..af6ab12 100644
--- a/tools/gn/action_values.h
+++ b/src/gn/action_values.h
@@ -9,9 +9,9 @@
 #include <vector>
 
 #include "base/macros.h"
-#include "tools/gn/label_ptr.h"
-#include "tools/gn/source_file.h"
-#include "tools/gn/substitution_list.h"
+#include "gn/label_ptr.h"
+#include "gn/source_file.h"
+#include "gn/substitution_list.h"
 
 class Pool;
 class Target;
diff --git a/tools/gn/analyzer.cc b/src/gn/analyzer.cc
similarity index 97%
rename from tools/gn/analyzer.cc
rename to src/gn/analyzer.cc
index c58cf8c..a110771 100644
--- a/tools/gn/analyzer.cc
+++ b/src/gn/analyzer.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/analyzer.h"
+#include "gn/analyzer.h"
 
 #include <algorithm>
 #include <iterator>
@@ -14,17 +14,17 @@
 #include "base/json/json_writer.h"
 #include "base/strings/string_util.h"
 #include "base/values.h"
-#include "tools/gn/builder.h"
-#include "tools/gn/config.h"
-#include "tools/gn/config_values_extractors.h"
-#include "tools/gn/deps_iterator.h"
-#include "tools/gn/err.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/loader.h"
-#include "tools/gn/location.h"
-#include "tools/gn/pool.h"
-#include "tools/gn/source_file.h"
-#include "tools/gn/target.h"
+#include "gn/builder.h"
+#include "gn/config.h"
+#include "gn/config_values_extractors.h"
+#include "gn/deps_iterator.h"
+#include "gn/err.h"
+#include "gn/filesystem_utils.h"
+#include "gn/loader.h"
+#include "gn/location.h"
+#include "gn/pool.h"
+#include "gn/source_file.h"
+#include "gn/target.h"
 
 namespace {
 
diff --git a/tools/gn/analyzer.h b/src/gn/analyzer.h
similarity index 96%
rename from tools/gn/analyzer.h
rename to src/gn/analyzer.h
index 01be0e4..cf9f409 100644
--- a/tools/gn/analyzer.h
+++ b/src/gn/analyzer.h
@@ -9,10 +9,10 @@
 #include <string>
 #include <vector>
 
-#include "tools/gn/builder.h"
-#include "tools/gn/item.h"
-#include "tools/gn/label.h"
-#include "tools/gn/source_file.h"
+#include "gn/builder.h"
+#include "gn/item.h"
+#include "gn/label.h"
+#include "gn/source_file.h"
 
 // An Analyzer can answer questions about a build graph. It is used
 // to answer queries for the `refs` and `analyze` commands, where we
diff --git a/tools/gn/analyzer_unittest.cc b/src/gn/analyzer_unittest.cc
similarity index 97%
rename from tools/gn/analyzer_unittest.cc
rename to src/gn/analyzer_unittest.cc
index d796300..927bd53 100644
--- a/tools/gn/analyzer_unittest.cc
+++ b/src/gn/analyzer_unittest.cc
@@ -2,21 +2,21 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/analyzer.h"
+#include "gn/analyzer.h"
 
-#include <tools/gn/c_tool.h>
-#include "tools/gn/build_settings.h"
-#include "tools/gn/builder.h"
-#include "tools/gn/config.h"
-#include "tools/gn/general_tool.h"
-#include "tools/gn/loader.h"
-#include "tools/gn/pool.h"
-#include "tools/gn/settings.h"
-#include "tools/gn/source_file.h"
-#include "tools/gn/substitution_list.h"
-#include "tools/gn/target.h"
-#include <tools/gn/tool.h>
-#include "tools/gn/toolchain.h"
+#include "gn/c_tool.h"
+#include "gn/build_settings.h"
+#include "gn/builder.h"
+#include "gn/config.h"
+#include "gn/general_tool.h"
+#include "gn/loader.h"
+#include "gn/pool.h"
+#include "gn/settings.h"
+#include "gn/source_file.h"
+#include "gn/substitution_list.h"
+#include "gn/target.h"
+#include "gn/tool.h"
+#include "gn/toolchain.h"
 #include "util/test/test.h"
 
 namespace gn_analyzer_unittest {
diff --git a/tools/gn/args.cc b/src/gn/args.cc
similarity index 98%
rename from tools/gn/args.cc
rename to src/gn/args.cc
index 4741ca4..24112b7 100644
--- a/tools/gn/args.cc
+++ b/src/gn/args.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/args.h"
+#include "gn/args.h"
 
-#include "tools/gn/settings.h"
-#include "tools/gn/source_file.h"
-#include "tools/gn/string_utils.h"
-#include "tools/gn/variables.h"
+#include "gn/settings.h"
+#include "gn/source_file.h"
+#include "gn/string_utils.h"
+#include "gn/variables.h"
 #include "util/build_config.h"
 #include "util/sys_info.h"
 
diff --git a/tools/gn/args.h b/src/gn/args.h
similarity index 99%
rename from tools/gn/args.h
rename to src/gn/args.h
index 3921e23..5ba924b 100644
--- a/tools/gn/args.h
+++ b/src/gn/args.h
@@ -11,7 +11,7 @@
 #include <unordered_map>
 
 #include "base/macros.h"
-#include "tools/gn/scope.h"
+#include "gn/scope.h"
 
 class Err;
 class SourceFile;
diff --git a/tools/gn/args_unittest.cc b/src/gn/args_unittest.cc
similarity index 96%
rename from tools/gn/args_unittest.cc
rename to src/gn/args_unittest.cc
index 4995229..650db6d 100644
--- a/tools/gn/args_unittest.cc
+++ b/src/gn/args_unittest.cc
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/args.h"
+#include "gn/args.h"
 
-#include "tools/gn/scheduler.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/scheduler.h"
+#include "gn/test_with_scope.h"
 #include "util/test/test.h"
 
 // Assertions for VerifyAllOverridesUsed() and DeclareArgs() with multiple
diff --git a/tools/gn/binary_target_generator.cc b/src/gn/binary_target_generator.cc
similarity index 92%
rename from tools/gn/binary_target_generator.cc
rename to src/gn/binary_target_generator.cc
index 4feadba..1098a0c 100644
--- a/tools/gn/binary_target_generator.cc
+++ b/src/gn/binary_target_generator.cc
@@ -2,20 +2,20 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/binary_target_generator.h"
+#include "gn/binary_target_generator.h"
 
-#include "tools/gn/config_values_generator.h"
-#include "tools/gn/deps_iterator.h"
-#include "tools/gn/err.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/functions.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/rust_values_generator.h"
-#include "tools/gn/rust_variables.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/settings.h"
-#include "tools/gn/value_extractors.h"
-#include "tools/gn/variables.h"
+#include "gn/config_values_generator.h"
+#include "gn/deps_iterator.h"
+#include "gn/err.h"
+#include "gn/filesystem_utils.h"
+#include "gn/functions.h"
+#include "gn/parse_tree.h"
+#include "gn/rust_values_generator.h"
+#include "gn/rust_variables.h"
+#include "gn/scope.h"
+#include "gn/settings.h"
+#include "gn/value_extractors.h"
+#include "gn/variables.h"
 
 BinaryTargetGenerator::BinaryTargetGenerator(
     Target* target,
diff --git a/tools/gn/binary_target_generator.h b/src/gn/binary_target_generator.h
similarity index 94%
rename from tools/gn/binary_target_generator.h
rename to src/gn/binary_target_generator.h
index b88da50..27dcb7a 100644
--- a/tools/gn/binary_target_generator.h
+++ b/src/gn/binary_target_generator.h
@@ -6,8 +6,8 @@
 #define TOOLS_GN_BINARY_TARGET_GENERATOR_H_
 
 #include "base/macros.h"
-#include "tools/gn/target.h"
-#include "tools/gn/target_generator.h"
+#include "gn/target.h"
+#include "gn/target_generator.h"
 
 // Populates a Target with the values from a binary rule (executable, shared
 // library, or static library).
diff --git a/tools/gn/build_settings.cc b/src/gn/build_settings.cc
similarity index 96%
rename from tools/gn/build_settings.cc
rename to src/gn/build_settings.cc
index 46e7944..9935239 100644
--- a/tools/gn/build_settings.cc
+++ b/src/gn/build_settings.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/build_settings.h"
+#include "gn/build_settings.h"
 
 #include <utility>
 
 #include "base/files/file_util.h"
-#include "tools/gn/filesystem_utils.h"
+#include "gn/filesystem_utils.h"
 
 BuildSettings::BuildSettings() = default;
 
diff --git a/tools/gn/build_settings.h b/src/gn/build_settings.h
similarity index 96%
rename from tools/gn/build_settings.h
rename to src/gn/build_settings.h
index ef84f15..9708df3 100644
--- a/tools/gn/build_settings.h
+++ b/src/gn/build_settings.h
@@ -13,11 +13,11 @@
 
 #include "base/files/file_path.h"
 #include "base/macros.h"
-#include "tools/gn/args.h"
-#include "tools/gn/label.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/source_dir.h"
-#include "tools/gn/source_file.h"
+#include "gn/args.h"
+#include "gn/label.h"
+#include "gn/scope.h"
+#include "gn/source_dir.h"
+#include "gn/source_file.h"
 
 class Item;
 
diff --git a/tools/gn/builder.cc b/src/gn/builder.cc
similarity index 97%
rename from tools/gn/builder.cc
rename to src/gn/builder.cc
index 2482983..9193eb6 100644
--- a/tools/gn/builder.cc
+++ b/src/gn/builder.cc
@@ -2,21 +2,21 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/builder.h"
+#include "gn/builder.h"
 
 #include <stddef.h>
 #include <utility>
 
-#include "tools/gn/action_values.h"
-#include "tools/gn/config.h"
-#include "tools/gn/deps_iterator.h"
-#include "tools/gn/err.h"
-#include "tools/gn/loader.h"
-#include "tools/gn/pool.h"
-#include "tools/gn/scheduler.h"
-#include "tools/gn/settings.h"
-#include "tools/gn/target.h"
-#include "tools/gn/trace.h"
+#include "gn/action_values.h"
+#include "gn/config.h"
+#include "gn/deps_iterator.h"
+#include "gn/err.h"
+#include "gn/loader.h"
+#include "gn/pool.h"
+#include "gn/scheduler.h"
+#include "gn/settings.h"
+#include "gn/target.h"
+#include "gn/trace.h"
 
 namespace {
 
diff --git a/tools/gn/builder.h b/src/gn/builder.h
similarity index 97%
rename from tools/gn/builder.h
rename to src/gn/builder.h
index f2996ca..77cdc5e 100644
--- a/tools/gn/builder.h
+++ b/src/gn/builder.h
@@ -10,10 +10,10 @@
 #include <memory>
 
 #include "base/macros.h"
-#include "tools/gn/builder_record.h"
-#include "tools/gn/label.h"
-#include "tools/gn/label_ptr.h"
-#include "tools/gn/unique_vector.h"
+#include "gn/builder_record.h"
+#include "gn/label.h"
+#include "gn/label_ptr.h"
+#include "gn/unique_vector.h"
 
 class ActionValues;
 class Err;
diff --git a/tools/gn/builder_record.cc b/src/gn/builder_record.cc
similarity index 95%
rename from tools/gn/builder_record.cc
rename to src/gn/builder_record.cc
index 14e87b6..cbe8dae 100644
--- a/tools/gn/builder_record.cc
+++ b/src/gn/builder_record.cc
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/builder_record.h"
+#include "gn/builder_record.h"
 
-#include "tools/gn/item.h"
+#include "gn/item.h"
 
 BuilderRecord::BuilderRecord(ItemType type, const Label& label)
     : type_(type), label_(label) {}
diff --git a/tools/gn/builder_record.h b/src/gn/builder_record.h
similarity index 98%
rename from tools/gn/builder_record.h
rename to src/gn/builder_record.h
index adf07be..1ccb19a 100644
--- a/tools/gn/builder_record.h
+++ b/src/gn/builder_record.h
@@ -10,8 +10,8 @@
 #include <utility>
 
 #include "base/macros.h"
-#include "tools/gn/item.h"
-#include "tools/gn/location.h"
+#include "gn/item.h"
+#include "gn/location.h"
 
 class ParseNode;
 
diff --git a/tools/gn/builder_unittest.cc b/src/gn/builder_unittest.cc
similarity index 97%
rename from tools/gn/builder_unittest.cc
rename to src/gn/builder_unittest.cc
index 08d8d34..8b844e3 100644
--- a/tools/gn/builder_unittest.cc
+++ b/src/gn/builder_unittest.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/builder.h"
-#include "tools/gn/config.h"
-#include "tools/gn/loader.h"
-#include "tools/gn/target.h"
-#include "tools/gn/test_with_scope.h"
-#include "tools/gn/toolchain.h"
+#include "gn/builder.h"
+#include "gn/config.h"
+#include "gn/loader.h"
+#include "gn/target.h"
+#include "gn/test_with_scope.h"
+#include "gn/toolchain.h"
 #include "util/test/test.h"
 
 namespace gn_builder_unittest {
diff --git a/tools/gn/bundle_data.cc b/src/gn/bundle_data.cc
similarity index 96%
rename from tools/gn/bundle_data.cc
rename to src/gn/bundle_data.cc
index 60500c6..cd68efe 100644
--- a/tools/gn/bundle_data.cc
+++ b/src/gn/bundle_data.cc
@@ -2,16 +2,16 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/bundle_data.h"
+#include "gn/bundle_data.h"
 
 #include "base/logging.h"
 #include "base/strings/string_util.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/label_pattern.h"
-#include "tools/gn/output_file.h"
-#include "tools/gn/settings.h"
-#include "tools/gn/substitution_writer.h"
-#include "tools/gn/target.h"
+#include "gn/filesystem_utils.h"
+#include "gn/label_pattern.h"
+#include "gn/output_file.h"
+#include "gn/settings.h"
+#include "gn/substitution_writer.h"
+#include "gn/target.h"
 
 namespace {
 
diff --git a/tools/gn/bundle_data.h b/src/gn/bundle_data.h
similarity index 96%
rename from tools/gn/bundle_data.h
rename to src/gn/bundle_data.h
index 2379dbc..fbf82c0 100644
--- a/tools/gn/bundle_data.h
+++ b/src/gn/bundle_data.h
@@ -9,12 +9,12 @@
 #include <string>
 #include <vector>
 
-#include "tools/gn/action_values.h"
-#include "tools/gn/bundle_file_rule.h"
-#include "tools/gn/source_dir.h"
-#include "tools/gn/source_file.h"
-#include "tools/gn/substitution_list.h"
-#include "tools/gn/unique_vector.h"
+#include "gn/action_values.h"
+#include "gn/bundle_file_rule.h"
+#include "gn/source_dir.h"
+#include "gn/source_file.h"
+#include "gn/substitution_list.h"
+#include "gn/unique_vector.h"
 
 class LabelPattern;
 class OutputFile;
diff --git a/tools/gn/bundle_data_target_generator.cc b/src/gn/bundle_data_target_generator.cc
similarity index 92%
rename from tools/gn/bundle_data_target_generator.cc
rename to src/gn/bundle_data_target_generator.cc
index cfd2903..eb7e679 100644
--- a/tools/gn/bundle_data_target_generator.cc
+++ b/src/gn/bundle_data_target_generator.cc
@@ -2,14 +2,14 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/bundle_data_target_generator.h"
+#include "gn/bundle_data_target_generator.h"
 
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/substitution_type.h"
-#include "tools/gn/target.h"
-#include "tools/gn/value.h"
-#include "tools/gn/variables.h"
+#include "gn/parse_tree.h"
+#include "gn/scope.h"
+#include "gn/substitution_type.h"
+#include "gn/target.h"
+#include "gn/value.h"
+#include "gn/variables.h"
 
 BundleDataTargetGenerator::BundleDataTargetGenerator(
     Target* target,
diff --git a/tools/gn/bundle_data_target_generator.h b/src/gn/bundle_data_target_generator.h
similarity index 95%
rename from tools/gn/bundle_data_target_generator.h
rename to src/gn/bundle_data_target_generator.h
index e1788ef..05ea820 100644
--- a/tools/gn/bundle_data_target_generator.h
+++ b/src/gn/bundle_data_target_generator.h
@@ -6,7 +6,7 @@
 #define TOOLS_GN_BUNDLE_DATA_TARGET_GENERATOR_H_
 
 #include "base/macros.h"
-#include "tools/gn/target_generator.h"
+#include "gn/target_generator.h"
 
 // Populates a Target with the values from a bundle_data rule.
 class BundleDataTargetGenerator : public TargetGenerator {
diff --git a/tools/gn/bundle_file_rule.cc b/src/gn/bundle_file_rule.cc
similarity index 94%
rename from tools/gn/bundle_file_rule.cc
rename to src/gn/bundle_file_rule.cc
index 2b81cdf..4c4e96e 100644
--- a/tools/gn/bundle_file_rule.cc
+++ b/src/gn/bundle_file_rule.cc
@@ -2,15 +2,15 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/bundle_file_rule.h"
+#include "gn/bundle_file_rule.h"
 
 #include "base/strings/stringprintf.h"
-#include "tools/gn/output_file.h"
-#include "tools/gn/settings.h"
-#include "tools/gn/substitution_pattern.h"
-#include "tools/gn/substitution_writer.h"
-#include "tools/gn/target.h"
-#include "tools/gn/variables.h"
+#include "gn/output_file.h"
+#include "gn/settings.h"
+#include "gn/substitution_pattern.h"
+#include "gn/substitution_writer.h"
+#include "gn/target.h"
+#include "gn/variables.h"
 
 namespace {
 
diff --git a/tools/gn/bundle_file_rule.h b/src/gn/bundle_file_rule.h
similarity index 95%
rename from tools/gn/bundle_file_rule.h
rename to src/gn/bundle_file_rule.h
index b7a2428..acc824a 100644
--- a/tools/gn/bundle_file_rule.h
+++ b/src/gn/bundle_file_rule.h
@@ -7,8 +7,8 @@
 
 #include <vector>
 
-#include "tools/gn/source_file.h"
-#include "tools/gn/substitution_pattern.h"
+#include "gn/source_file.h"
+#include "gn/substitution_pattern.h"
 
 class BundleData;
 class Settings;
diff --git a/tools/gn/c_include_iterator.cc b/src/gn/c_include_iterator.cc
similarity index 97%
rename from tools/gn/c_include_iterator.cc
rename to src/gn/c_include_iterator.cc
index f20d749..babf1ac 100644
--- a/tools/gn/c_include_iterator.cc
+++ b/src/gn/c_include_iterator.cc
@@ -2,15 +2,15 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/c_include_iterator.h"
+#include "gn/c_include_iterator.h"
 
 #include <iterator>
 
 #include "base/logging.h"
 #include "base/macros.h"
 #include "base/strings/string_util.h"
-#include "tools/gn/input_file.h"
-#include "tools/gn/location.h"
+#include "gn/input_file.h"
+#include "gn/location.h"
 
 namespace {
 
diff --git a/tools/gn/c_include_iterator.h b/src/gn/c_include_iterator.h
similarity index 100%
rename from tools/gn/c_include_iterator.h
rename to src/gn/c_include_iterator.h
diff --git a/tools/gn/c_include_iterator_unittest.cc b/src/gn/c_include_iterator_unittest.cc
similarity index 97%
rename from tools/gn/c_include_iterator_unittest.cc
rename to src/gn/c_include_iterator_unittest.cc
index de9b14a..8bb7336 100644
--- a/tools/gn/c_include_iterator_unittest.cc
+++ b/src/gn/c_include_iterator_unittest.cc
@@ -4,9 +4,9 @@
 
 #include <stddef.h>
 
-#include "tools/gn/c_include_iterator.h"
-#include "tools/gn/input_file.h"
-#include "tools/gn/location.h"
+#include "gn/c_include_iterator.h"
+#include "gn/input_file.h"
+#include "gn/location.h"
 #include "util/test/test.h"
 
 namespace {
diff --git a/tools/gn/c_substitution_type.cc b/src/gn/c_substitution_type.cc
similarity index 97%
rename from tools/gn/c_substitution_type.cc
rename to src/gn/c_substitution_type.cc
index 98cd139..e142eb7 100644
--- a/tools/gn/c_substitution_type.cc
+++ b/src/gn/c_substitution_type.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/c_substitution_type.h"
+#include "gn/c_substitution_type.h"
 
 #include <stddef.h>
 #include <stdlib.h>
 
-#include "tools/gn/err.h"
+#include "gn/err.h"
 
 const SubstitutionTypes CSubstitutions = {
     &CSubstitutionAsmFlags,     &CSubstitutionCFlags,
diff --git a/tools/gn/c_substitution_type.h b/src/gn/c_substitution_type.h
similarity index 97%
rename from tools/gn/c_substitution_type.h
rename to src/gn/c_substitution_type.h
index f4801ea..a2df7c2 100644
--- a/tools/gn/c_substitution_type.h
+++ b/src/gn/c_substitution_type.h
@@ -8,7 +8,7 @@
 #include <set>
 #include <vector>
 
-#include "tools/gn/substitution_type.h"
+#include "gn/substitution_type.h"
 
 // The set of substitutions available to all tools.
 extern const SubstitutionTypes CSubstitutions;
diff --git a/tools/gn/c_tool.cc b/src/gn/c_tool.cc
similarity index 98%
rename from tools/gn/c_tool.cc
rename to src/gn/c_tool.cc
index 29d7850..b0f930b 100644
--- a/tools/gn/c_tool.cc
+++ b/src/gn/c_tool.cc
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/c_tool.h"
-#include "tools/gn/c_substitution_type.h"
-#include "tools/gn/target.h"
+#include "gn/c_tool.h"
+#include "gn/c_substitution_type.h"
+#include "gn/target.h"
 
 const char* CTool::kCToolCc = "cc";
 const char* CTool::kCToolCxx = "cxx";
diff --git a/tools/gn/c_tool.h b/src/gn/c_tool.h
similarity index 94%
rename from tools/gn/c_tool.h
rename to src/gn/c_tool.h
index f9b2653..8c5282d 100644
--- a/tools/gn/c_tool.h
+++ b/src/gn/c_tool.h
@@ -9,13 +9,13 @@
 
 #include "base/logging.h"
 #include "base/macros.h"
-#include "tools/gn/label.h"
-#include "tools/gn/label_ptr.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/substitution_list.h"
-#include "tools/gn/substitution_pattern.h"
-#include "tools/gn/tool.h"
-#include "tools/gn/toolchain.h"
+#include "gn/label.h"
+#include "gn/label_ptr.h"
+#include "gn/scope.h"
+#include "gn/substitution_list.h"
+#include "gn/substitution_pattern.h"
+#include "gn/tool.h"
+#include "gn/toolchain.h"
 
 class CTool : public Tool {
  public:
diff --git a/tools/gn/command_analyze.cc b/src/gn/command_analyze.cc
similarity index 95%
rename from tools/gn/command_analyze.cc
rename to src/gn/command_analyze.cc
index 096cf6b..c6901e4 100644
--- a/tools/gn/command_analyze.cc
+++ b/src/gn/command_analyze.cc
@@ -9,13 +9,13 @@
 
 #include "base/files/file_path.h"
 #include "base/files/file_util.h"
-#include "tools/gn/analyzer.h"
-#include "tools/gn/commands.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/location.h"
-#include "tools/gn/setup.h"
-#include "tools/gn/standard_out.h"
-#include "tools/gn/string_utils.h"
+#include "gn/analyzer.h"
+#include "gn/commands.h"
+#include "gn/filesystem_utils.h"
+#include "gn/location.h"
+#include "gn/setup.h"
+#include "gn/standard_out.h"
+#include "gn/string_utils.h"
 
 namespace commands {
 
diff --git a/tools/gn/command_args.cc b/src/gn/command_args.cc
similarity index 98%
rename from tools/gn/command_args.cc
rename to src/gn/command_args.cc
index 41f9f5b..2689f88 100644
--- a/tools/gn/command_args.cc
+++ b/src/gn/command_args.cc
@@ -15,14 +15,14 @@
 #include "base/json/json_writer.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_util.h"
-#include "tools/gn/commands.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/input_file.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/setup.h"
-#include "tools/gn/standard_out.h"
-#include "tools/gn/tokenizer.h"
-#include "tools/gn/trace.h"
+#include "gn/commands.h"
+#include "gn/filesystem_utils.h"
+#include "gn/input_file.h"
+#include "gn/parse_tree.h"
+#include "gn/setup.h"
+#include "gn/standard_out.h"
+#include "gn/tokenizer.h"
+#include "gn/trace.h"
 #include "util/build_config.h"
 
 #if defined(OS_WIN)
diff --git a/tools/gn/command_check.cc b/src/gn/command_check.cc
similarity index 97%
rename from tools/gn/command_check.cc
rename to src/gn/command_check.cc
index 3c74fc1..9e175cf 100644
--- a/tools/gn/command_check.cc
+++ b/src/gn/command_check.cc
@@ -6,13 +6,13 @@
 
 #include "base/command_line.h"
 #include "base/strings/stringprintf.h"
-#include "tools/gn/commands.h"
-#include "tools/gn/header_checker.h"
-#include "tools/gn/setup.h"
-#include "tools/gn/standard_out.h"
-#include "tools/gn/switches.h"
-#include "tools/gn/target.h"
-#include "tools/gn/trace.h"
+#include "gn/commands.h"
+#include "gn/header_checker.h"
+#include "gn/setup.h"
+#include "gn/standard_out.h"
+#include "gn/switches.h"
+#include "gn/target.h"
+#include "gn/trace.h"
 
 namespace commands {
 
diff --git a/tools/gn/command_clean.cc b/src/gn/command_clean.cc
similarity index 96%
rename from tools/gn/command_clean.cc
rename to src/gn/command_clean.cc
index d2822fc..ab0b879 100644
--- a/tools/gn/command_clean.cc
+++ b/src/gn/command_clean.cc
@@ -8,10 +8,10 @@
 #include "base/strings/string_split.h"
 #include "base/strings/string_util.h"
 #include "base/strings/stringprintf.h"
-#include "tools/gn/commands.h"
-#include "tools/gn/err.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/setup.h"
+#include "gn/commands.h"
+#include "gn/err.h"
+#include "gn/filesystem_utils.h"
+#include "gn/setup.h"
 
 namespace {
 
diff --git a/tools/gn/command_desc.cc b/src/gn/command_desc.cc
similarity index 98%
rename from tools/gn/command_desc.cc
rename to src/gn/command_desc.cc
index 6531a8e..13e61c1 100644
--- a/tools/gn/command_desc.cc
+++ b/src/gn/command_desc.cc
@@ -13,14 +13,14 @@
 #include "base/json/json_writer.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_util.h"
-#include "tools/gn/commands.h"
-#include "tools/gn/config.h"
-#include "tools/gn/desc_builder.h"
-#include "tools/gn/setup.h"
-#include "tools/gn/standard_out.h"
-#include "tools/gn/switches.h"
-#include "tools/gn/target.h"
-#include "tools/gn/variables.h"
+#include "gn/commands.h"
+#include "gn/config.h"
+#include "gn/desc_builder.h"
+#include "gn/setup.h"
+#include "gn/standard_out.h"
+#include "gn/switches.h"
+#include "gn/target.h"
+#include "gn/variables.h"
 
 namespace commands {
 
diff --git a/tools/gn/command_format.cc b/src/gn/command_format.cc
similarity index 98%
rename from tools/gn/command_format.cc
rename to src/gn/command_format.cc
index 72d6eb8..15a0dc5 100644
--- a/tools/gn/command_format.cc
+++ b/src/gn/command_format.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/command_format.h"
+#include "gn/command_format.h"
 
 #include <stddef.h>
 
@@ -14,16 +14,16 @@
 #include "base/macros.h"
 #include "base/strings/string_split.h"
 #include "base/strings/string_util.h"
-#include "tools/gn/commands.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/input_file.h"
-#include "tools/gn/parser.h"
-#include "tools/gn/scheduler.h"
-#include "tools/gn/setup.h"
-#include "tools/gn/source_file.h"
-#include "tools/gn/string_utils.h"
-#include "tools/gn/switches.h"
-#include "tools/gn/tokenizer.h"
+#include "gn/commands.h"
+#include "gn/filesystem_utils.h"
+#include "gn/input_file.h"
+#include "gn/parser.h"
+#include "gn/scheduler.h"
+#include "gn/setup.h"
+#include "gn/source_file.h"
+#include "gn/string_utils.h"
+#include "gn/switches.h"
+#include "gn/tokenizer.h"
 
 namespace commands {
 
diff --git a/tools/gn/command_format.h b/src/gn/command_format.h
similarity index 100%
rename from tools/gn/command_format.h
rename to src/gn/command_format.h
diff --git a/tools/gn/command_format_unittest.cc b/src/gn/command_format_unittest.cc
similarity index 92%
rename from tools/gn/command_format_unittest.cc
rename to src/gn/command_format_unittest.cc
index b00f6ac..0420269 100644
--- a/tools/gn/command_format_unittest.cc
+++ b/src/gn/command_format_unittest.cc
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/command_format.h"
+#include "gn/command_format.h"
 
 #include "base/files/file_util.h"
 #include "base/strings/string_util.h"
-#include "tools/gn/commands.h"
-#include "tools/gn/setup.h"
-#include "tools/gn/test_with_scheduler.h"
+#include "gn/commands.h"
+#include "gn/setup.h"
+#include "gn/test_with_scheduler.h"
 #include "util/exe_path.h"
 #include "util/test/test.h"
 
@@ -23,10 +23,10 @@
         GetExePath().DirName().Append(FILE_PATH_LITERAL(".."));             \
     base::SetCurrentDirectory(src_dir);                                     \
     EXPECT_TRUE(commands::FormatFileToString(                               \
-        &setup, SourceFile("//tools/gn/format_test_data/" #n ".gn"),        \
+        &setup, SourceFile("//src/gn/format_test_data/" #n ".gn"),          \
         commands::TreeDumpMode::kInactive, &out));                          \
     ASSERT_TRUE(base::ReadFileToString(                                     \
-        base::FilePath(FILE_PATH_LITERAL("tools/gn/format_test_data/")      \
+        base::FilePath(FILE_PATH_LITERAL("src/gn/format_test_data/")        \
                            FILE_PATH_LITERAL(#n)                            \
                                FILE_PATH_LITERAL(".golden")),               \
         &expected));                                                        \
diff --git a/tools/gn/command_gen.cc b/src/gn/command_gen.cc
similarity index 96%
rename from tools/gn/command_gen.cc
rename to src/gn/command_gen.cc
index 707c9e2..84f6e20 100644
--- a/tools/gn/command_gen.cc
+++ b/src/gn/command_gen.cc
@@ -8,22 +8,22 @@
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/stringprintf.h"
 #include "base/timer/elapsed_timer.h"
-#include "tools/gn/build_settings.h"
-#include "tools/gn/commands.h"
-#include "tools/gn/compile_commands_writer.h"
-#include "tools/gn/eclipse_writer.h"
-#include "tools/gn/json_project_writer.h"
-#include "tools/gn/ninja_target_writer.h"
-#include "tools/gn/ninja_writer.h"
-#include "tools/gn/qt_creator_writer.h"
-#include "tools/gn/runtime_deps.h"
-#include "tools/gn/scheduler.h"
-#include "tools/gn/setup.h"
-#include "tools/gn/standard_out.h"
-#include "tools/gn/switches.h"
-#include "tools/gn/target.h"
-#include "tools/gn/visual_studio_writer.h"
-#include "tools/gn/xcode_writer.h"
+#include "gn/build_settings.h"
+#include "gn/commands.h"
+#include "gn/compile_commands_writer.h"
+#include "gn/eclipse_writer.h"
+#include "gn/json_project_writer.h"
+#include "gn/ninja_target_writer.h"
+#include "gn/ninja_writer.h"
+#include "gn/qt_creator_writer.h"
+#include "gn/runtime_deps.h"
+#include "gn/scheduler.h"
+#include "gn/setup.h"
+#include "gn/standard_out.h"
+#include "gn/switches.h"
+#include "gn/target.h"
+#include "gn/visual_studio_writer.h"
+#include "gn/xcode_writer.h"
 
 namespace commands {
 
diff --git a/tools/gn/command_help.cc b/src/gn/command_help.cc
similarity index 94%
rename from tools/gn/command_help.cc
rename to src/gn/command_help.cc
index 86ca088..68b9e3f 100644
--- a/tools/gn/command_help.cc
+++ b/src/gn/command_help.cc
@@ -6,25 +6,25 @@
 #include <iostream>
 
 #include "base/command_line.h"
-#include "tools/gn/args.h"
-#include "tools/gn/commands.h"
-#include "tools/gn/err.h"
-#include "tools/gn/functions.h"
-#include "tools/gn/input_conversion.h"
-#include "tools/gn/label.h"
-#include "tools/gn/label_pattern.h"
-#include "tools/gn/metadata.h"
-#include "tools/gn/ninja_build_writer.h"
-#include "tools/gn/output_conversion.h"
-#include "tools/gn/parser.h"
-#include "tools/gn/runtime_deps.h"
-#include "tools/gn/setup.h"
-#include "tools/gn/standard_out.h"
-#include "tools/gn/string_utils.h"
-#include "tools/gn/substitution_writer.h"
-#include "tools/gn/switches.h"
-#include "tools/gn/target.h"
-#include "tools/gn/variables.h"
+#include "gn/args.h"
+#include "gn/commands.h"
+#include "gn/err.h"
+#include "gn/functions.h"
+#include "gn/input_conversion.h"
+#include "gn/label.h"
+#include "gn/label_pattern.h"
+#include "gn/metadata.h"
+#include "gn/ninja_build_writer.h"
+#include "gn/output_conversion.h"
+#include "gn/parser.h"
+#include "gn/runtime_deps.h"
+#include "gn/setup.h"
+#include "gn/standard_out.h"
+#include "gn/string_utils.h"
+#include "gn/substitution_writer.h"
+#include "gn/switches.h"
+#include "gn/target.h"
+#include "gn/variables.h"
 
 namespace commands {
 
diff --git a/tools/gn/command_ls.cc b/src/gn/command_ls.cc
similarity index 94%
rename from tools/gn/command_ls.cc
rename to src/gn/command_ls.cc
index 2609499..e95730f 100644
--- a/tools/gn/command_ls.cc
+++ b/src/gn/command_ls.cc
@@ -6,12 +6,12 @@
 #include <set>
 
 #include "base/command_line.h"
-#include "tools/gn/commands.h"
-#include "tools/gn/label_pattern.h"
-#include "tools/gn/setup.h"
-#include "tools/gn/standard_out.h"
-#include "tools/gn/switches.h"
-#include "tools/gn/target.h"
+#include "gn/commands.h"
+#include "gn/label_pattern.h"
+#include "gn/setup.h"
+#include "gn/standard_out.h"
+#include "gn/switches.h"
+#include "gn/target.h"
 
 namespace commands {
 
diff --git a/tools/gn/command_meta.cc b/src/gn/command_meta.cc
similarity index 96%
rename from tools/gn/command_meta.cc
rename to src/gn/command_meta.cc
index bb689e9..b361a4f 100644
--- a/tools/gn/command_meta.cc
+++ b/src/gn/command_meta.cc
@@ -7,12 +7,12 @@
 
 #include "base/command_line.h"
 #include "base/strings/string_split.h"
-#include "tools/gn/commands.h"
-#include "tools/gn/metadata_walk.h"
-#include "tools/gn/setup.h"
-#include "tools/gn/standard_out.h"
-#include "tools/gn/switches.h"
-#include "tools/gn/target.h"
+#include "gn/commands.h"
+#include "gn/metadata_walk.h"
+#include "gn/setup.h"
+#include "gn/standard_out.h"
+#include "gn/switches.h"
+#include "gn/target.h"
 
 namespace commands {
 
diff --git a/tools/gn/command_path.cc b/src/gn/command_path.cc
similarity index 98%
rename from tools/gn/command_path.cc
rename to src/gn/command_path.cc
index 14b1796..38046ef 100644
--- a/tools/gn/command_path.cc
+++ b/src/gn/command_path.cc
@@ -8,9 +8,9 @@
 
 #include "base/command_line.h"
 #include "base/strings/stringprintf.h"
-#include "tools/gn/commands.h"
-#include "tools/gn/setup.h"
-#include "tools/gn/standard_out.h"
+#include "gn/commands.h"
+#include "gn/setup.h"
+#include "gn/standard_out.h"
 
 namespace commands {
 
@@ -308,7 +308,7 @@
 
 Example
 
-  gn path out/Default //base //tools/gn
+  gn path out/Default //base //gn
 )";
 
 int RunPath(const std::vector<std::string>& args) {
diff --git a/tools/gn/command_refs.cc b/src/gn/command_refs.cc
similarity index 97%
rename from tools/gn/command_refs.cc
rename to src/gn/command_refs.cc
index 8854652..843a9ba 100644
--- a/tools/gn/command_refs.cc
+++ b/src/gn/command_refs.cc
@@ -11,16 +11,16 @@
 #include "base/files/file_util.h"
 #include "base/strings/string_split.h"
 #include "base/strings/string_util.h"
-#include "tools/gn/commands.h"
-#include "tools/gn/config_values_extractors.h"
-#include "tools/gn/deps_iterator.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/input_file.h"
-#include "tools/gn/item.h"
-#include "tools/gn/setup.h"
-#include "tools/gn/standard_out.h"
-#include "tools/gn/switches.h"
-#include "tools/gn/target.h"
+#include "gn/commands.h"
+#include "gn/config_values_extractors.h"
+#include "gn/deps_iterator.h"
+#include "gn/filesystem_utils.h"
+#include "gn/input_file.h"
+#include "gn/item.h"
+#include "gn/setup.h"
+#include "gn/standard_out.h"
+#include "gn/switches.h"
+#include "gn/target.h"
 
 namespace commands {
 
@@ -357,7 +357,7 @@
 
 Examples (target input)
 
-  gn refs out/Debug //tools/gn:gn
+  gn refs out/Debug //gn:gn
       Find all targets depending on the given exact target name.
 
   gn refs out/Debug //base:i18n --as=buildfiles | xargs gvim
diff --git a/tools/gn/commands.cc b/src/gn/commands.cc
similarity index 98%
rename from tools/gn/commands.cc
rename to src/gn/commands.cc
index cf38725..b1ea76c 100644
--- a/tools/gn/commands.cc
+++ b/src/gn/commands.cc
@@ -2,20 +2,20 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/commands.h"
+#include "gn/commands.h"
 
 #include "base/command_line.h"
 #include "base/environment.h"
 #include "base/strings/string_split.h"
 #include "base/values.h"
-#include "tools/gn/builder.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/item.h"
-#include "tools/gn/label.h"
-#include "tools/gn/label_pattern.h"
-#include "tools/gn/setup.h"
-#include "tools/gn/standard_out.h"
-#include "tools/gn/target.h"
+#include "gn/builder.h"
+#include "gn/filesystem_utils.h"
+#include "gn/item.h"
+#include "gn/label.h"
+#include "gn/label_pattern.h"
+#include "gn/setup.h"
+#include "gn/standard_out.h"
+#include "gn/target.h"
 #include "util/build_config.h"
 
 namespace commands {
diff --git a/tools/gn/commands.h b/src/gn/commands.h
similarity index 98%
rename from tools/gn/commands.h
rename to src/gn/commands.h
index db38a2c..76c806e 100644
--- a/tools/gn/commands.h
+++ b/src/gn/commands.h
@@ -12,8 +12,8 @@
 #include <vector>
 
 #include "base/values.h"
-#include "tools/gn/target.h"
-#include "tools/gn/unique_vector.h"
+#include "gn/target.h"
+#include "gn/unique_vector.h"
 
 class BuildSettings;
 class Config;
diff --git a/tools/gn/compile_commands_writer.cc b/src/gn/compile_commands_writer.cc
similarity index 96%
rename from tools/gn/compile_commands_writer.cc
rename to src/gn/compile_commands_writer.cc
index 208952d..11afbf3 100644
--- a/tools/gn/compile_commands_writer.cc
+++ b/src/gn/compile_commands_writer.cc
@@ -2,23 +2,23 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/compile_commands_writer.h"
+#include "gn/compile_commands_writer.h"
 
 #include <sstream>
 
 #include "base/json/string_escape.h"
 #include "base/strings/string_split.h"
 #include "base/strings/stringprintf.h"
-#include "tools/gn/builder.h"
-#include "tools/gn/c_substitution_type.h"
-#include "tools/gn/c_tool.h"
-#include "tools/gn/config_values_extractors.h"
-#include "tools/gn/deps_iterator.h"
-#include "tools/gn/escape.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/ninja_target_command_util.h"
-#include "tools/gn/path_output.h"
-#include "tools/gn/substitution_writer.h"
+#include "gn/builder.h"
+#include "gn/c_substitution_type.h"
+#include "gn/c_tool.h"
+#include "gn/config_values_extractors.h"
+#include "gn/deps_iterator.h"
+#include "gn/escape.h"
+#include "gn/filesystem_utils.h"
+#include "gn/ninja_target_command_util.h"
+#include "gn/path_output.h"
+#include "gn/substitution_writer.h"
 
 // Structure of JSON output file
 // [
diff --git a/tools/gn/compile_commands_writer.h b/src/gn/compile_commands_writer.h
similarity index 96%
rename from tools/gn/compile_commands_writer.h
rename to src/gn/compile_commands_writer.h
index 5c9f0d5..78db51e 100644
--- a/tools/gn/compile_commands_writer.h
+++ b/src/gn/compile_commands_writer.h
@@ -5,8 +5,8 @@
 #ifndef TOOLS_GN_COMPILE_COMMANDS_WRITER_H_
 #define TOOLS_GN_COMPILE_COMMANDS_WRITER_H_
 
-#include "tools/gn/err.h"
-#include "tools/gn/target.h"
+#include "gn/err.h"
+#include "gn/target.h"
 
 class Builder;
 class BuildSettings;
diff --git a/tools/gn/compile_commands_writer_unittest.cc b/src/gn/compile_commands_writer_unittest.cc
similarity index 98%
rename from tools/gn/compile_commands_writer_unittest.cc
rename to src/gn/compile_commands_writer_unittest.cc
index a3e3fb5..96ef9eb 100644
--- a/tools/gn/compile_commands_writer_unittest.cc
+++ b/src/gn/compile_commands_writer_unittest.cc
@@ -2,18 +2,18 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/compile_commands_writer.h"
+#include "gn/compile_commands_writer.h"
 
 #include <memory>
 #include <sstream>
 #include <utility>
 
-#include "tools/gn/config.h"
-#include "tools/gn/ninja_target_command_util.h"
-#include "tools/gn/scheduler.h"
-#include "tools/gn/target.h"
-#include "tools/gn/test_with_scheduler.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/config.h"
+#include "gn/ninja_target_command_util.h"
+#include "gn/scheduler.h"
+#include "gn/target.h"
+#include "gn/test_with_scheduler.h"
+#include "gn/test_with_scope.h"
 #include "util/build_config.h"
 #include "util/test/test.h"
 
diff --git a/tools/gn/config.cc b/src/gn/config.cc
similarity index 92%
rename from tools/gn/config.cc
rename to src/gn/config.cc
index e28fd30..2793de7 100644
--- a/tools/gn/config.cc
+++ b/src/gn/config.cc
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/config.h"
+#include "gn/config.h"
 
-#include "tools/gn/err.h"
-#include "tools/gn/input_file_manager.h"
-#include "tools/gn/scheduler.h"
+#include "gn/err.h"
+#include "gn/input_file_manager.h"
+#include "gn/scheduler.h"
 
 Config::Config(const Settings* settings,
                const Label& label,
diff --git a/tools/gn/config.h b/src/gn/config.h
similarity index 94%
rename from tools/gn/config.h
rename to src/gn/config.h
index 040d54e..8dcedef 100644
--- a/tools/gn/config.h
+++ b/src/gn/config.h
@@ -9,10 +9,10 @@
 
 #include "base/logging.h"
 #include "base/macros.h"
-#include "tools/gn/config_values.h"
-#include "tools/gn/item.h"
-#include "tools/gn/label_ptr.h"
-#include "tools/gn/unique_vector.h"
+#include "gn/config_values.h"
+#include "gn/item.h"
+#include "gn/label_ptr.h"
+#include "gn/unique_vector.h"
 
 // Represents a named config in the dependency graph.
 //
diff --git a/tools/gn/config_unittest.cc b/src/gn/config_unittest.cc
similarity index 97%
rename from tools/gn/config_unittest.cc
rename to src/gn/config_unittest.cc
index 4d8a41f..ec7ef3c 100644
--- a/tools/gn/config_unittest.cc
+++ b/src/gn/config_unittest.cc
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/config.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/config.h"
+#include "gn/test_with_scope.h"
 #include "util/test/test.h"
 
 // Tests that the "resolved" values are the same as "own" values when there
diff --git a/tools/gn/config_values.cc b/src/gn/config_values.cc
similarity index 97%
rename from tools/gn/config_values.cc
rename to src/gn/config_values.cc
index 85de7e4..bcb8c33 100644
--- a/tools/gn/config_values.cc
+++ b/src/gn/config_values.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/config_values.h"
+#include "gn/config_values.h"
 
 namespace {
 
diff --git a/tools/gn/config_values.h b/src/gn/config_values.h
similarity index 96%
rename from tools/gn/config_values.h
rename to src/gn/config_values.h
index 86eea6c..003159b 100644
--- a/tools/gn/config_values.h
+++ b/src/gn/config_values.h
@@ -9,9 +9,9 @@
 #include <vector>
 
 #include "base/macros.h"
-#include "tools/gn/lib_file.h"
-#include "tools/gn/source_dir.h"
-#include "tools/gn/source_file.h"
+#include "gn/lib_file.h"
+#include "gn/source_dir.h"
+#include "gn/source_file.h"
 
 // Holds the values (include_dirs, defines, compiler flags, etc.) for a given
 // config or target.
diff --git a/tools/gn/config_values_extractors.cc b/src/gn/config_values_extractors.cc
similarity index 91%
rename from tools/gn/config_values_extractors.cc
rename to src/gn/config_values_extractors.cc
index 248d8c4..409e11d 100644
--- a/tools/gn/config_values_extractors.cc
+++ b/src/gn/config_values_extractors.cc
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/config_values_extractors.h"
+#include "gn/config_values_extractors.h"
 
-#include "tools/gn/escape.h"
+#include "gn/escape.h"
 
 namespace {
 
diff --git a/tools/gn/config_values_extractors.h b/src/gn/config_values_extractors.h
similarity index 96%
rename from tools/gn/config_values_extractors.h
rename to src/gn/config_values_extractors.h
index cbcbed5..ae51761 100644
--- a/tools/gn/config_values_extractors.h
+++ b/src/gn/config_values_extractors.h
@@ -11,9 +11,9 @@
 #include <string>
 #include <vector>
 
-#include "tools/gn/config.h"
-#include "tools/gn/config_values.h"
-#include "tools/gn/target.h"
+#include "gn/config.h"
+#include "gn/config_values.h"
+#include "gn/target.h"
 
 struct EscapeOptions;
 
diff --git a/tools/gn/config_values_extractors_unittest.cc b/src/gn/config_values_extractors_unittest.cc
similarity index 97%
rename from tools/gn/config_values_extractors_unittest.cc
rename to src/gn/config_values_extractors_unittest.cc
index 5cfca79..de9e63a 100644
--- a/tools/gn/config_values_extractors_unittest.cc
+++ b/src/gn/config_values_extractors_unittest.cc
@@ -4,10 +4,10 @@
 
 #include <sstream>
 
-#include "tools/gn/config.h"
-#include "tools/gn/config_values_extractors.h"
-#include "tools/gn/target.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/config.h"
+#include "gn/config_values_extractors.h"
+#include "gn/target.h"
+#include "gn/test_with_scope.h"
 #include "util/test/test.h"
 
 namespace {
diff --git a/tools/gn/config_values_generator.cc b/src/gn/config_values_generator.cc
similarity index 94%
rename from tools/gn/config_values_generator.cc
rename to src/gn/config_values_generator.cc
index 5947274..918c6b1 100644
--- a/tools/gn/config_values_generator.cc
+++ b/src/gn/config_values_generator.cc
@@ -2,15 +2,15 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/config_values_generator.h"
+#include "gn/config_values_generator.h"
 
 #include "base/strings/string_util.h"
-#include "tools/gn/config_values.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/settings.h"
-#include "tools/gn/value.h"
-#include "tools/gn/value_extractors.h"
-#include "tools/gn/variables.h"
+#include "gn/config_values.h"
+#include "gn/scope.h"
+#include "gn/settings.h"
+#include "gn/value.h"
+#include "gn/value_extractors.h"
+#include "gn/variables.h"
 
 namespace {
 
diff --git a/tools/gn/config_values_generator.h b/src/gn/config_values_generator.h
similarity index 97%
rename from tools/gn/config_values_generator.h
rename to src/gn/config_values_generator.h
index e663991..b9740d1 100644
--- a/tools/gn/config_values_generator.h
+++ b/src/gn/config_values_generator.h
@@ -6,7 +6,7 @@
 #define TOOLS_GN_CONFIG_VALUES_GENERATOR_H_
 
 #include "base/macros.h"
-#include "tools/gn/source_dir.h"
+#include "gn/source_dir.h"
 
 class ConfigValues;
 class Err;
diff --git a/tools/gn/copy_target_generator.cc b/src/gn/copy_target_generator.cc
similarity index 86%
rename from tools/gn/copy_target_generator.cc
rename to src/gn/copy_target_generator.cc
index 4e40efb..a0dc924 100644
--- a/tools/gn/copy_target_generator.cc
+++ b/src/gn/copy_target_generator.cc
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/copy_target_generator.h"
+#include "gn/copy_target_generator.h"
 
-#include "tools/gn/build_settings.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/value.h"
+#include "gn/build_settings.h"
+#include "gn/filesystem_utils.h"
+#include "gn/parse_tree.h"
+#include "gn/scope.h"
+#include "gn/value.h"
 
 CopyTargetGenerator::CopyTargetGenerator(Target* target,
                                          Scope* scope,
diff --git a/tools/gn/copy_target_generator.h b/src/gn/copy_target_generator.h
similarity index 94%
rename from tools/gn/copy_target_generator.h
rename to src/gn/copy_target_generator.h
index 89751f9..bec05e3 100644
--- a/tools/gn/copy_target_generator.h
+++ b/src/gn/copy_target_generator.h
@@ -6,7 +6,7 @@
 #define TOOLS_GN_COPY_TARGET_GENERATOR_H_
 
 #include "base/macros.h"
-#include "tools/gn/target_generator.h"
+#include "gn/target_generator.h"
 
 // Populates a Target with the values from a copy rule.
 class CopyTargetGenerator : public TargetGenerator {
diff --git a/tools/gn/create_bundle_target_generator.cc b/src/gn/create_bundle_target_generator.cc
similarity index 95%
rename from tools/gn/create_bundle_target_generator.cc
rename to src/gn/create_bundle_target_generator.cc
index be60f50..1632572 100644
--- a/tools/gn/create_bundle_target_generator.cc
+++ b/src/gn/create_bundle_target_generator.cc
@@ -2,20 +2,20 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/create_bundle_target_generator.h"
+#include "gn/create_bundle_target_generator.h"
 
 #include <map>
 
 #include "base/logging.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/label_pattern.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/substitution_type.h"
-#include "tools/gn/target.h"
-#include "tools/gn/value.h"
-#include "tools/gn/value_extractors.h"
-#include "tools/gn/variables.h"
+#include "gn/filesystem_utils.h"
+#include "gn/label_pattern.h"
+#include "gn/parse_tree.h"
+#include "gn/scope.h"
+#include "gn/substitution_type.h"
+#include "gn/target.h"
+#include "gn/value.h"
+#include "gn/value_extractors.h"
+#include "gn/variables.h"
 
 CreateBundleTargetGenerator::CreateBundleTargetGenerator(
     Target* target,
diff --git a/tools/gn/create_bundle_target_generator.h b/src/gn/create_bundle_target_generator.h
similarity index 96%
rename from tools/gn/create_bundle_target_generator.h
rename to src/gn/create_bundle_target_generator.h
index 63b85fa..310bf6a 100644
--- a/tools/gn/create_bundle_target_generator.h
+++ b/src/gn/create_bundle_target_generator.h
@@ -6,7 +6,7 @@
 #define TOOLS_GN_CREATE_BUNDLE_TARGET_GENERATOR_H_
 
 #include "base/macros.h"
-#include "tools/gn/target_generator.h"
+#include "gn/target_generator.h"
 
 class SourceDir;
 
diff --git a/tools/gn/deps_iterator.cc b/src/gn/deps_iterator.cc
similarity index 95%
rename from tools/gn/deps_iterator.cc
rename to src/gn/deps_iterator.cc
index 497ef04..33802fa 100644
--- a/tools/gn/deps_iterator.cc
+++ b/src/gn/deps_iterator.cc
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/deps_iterator.h"
+#include "gn/deps_iterator.h"
 
-#include "tools/gn/target.h"
+#include "gn/target.h"
 
 DepsIterator::DepsIterator() : current_index_(0) {
   vect_stack_[0] = nullptr;
diff --git a/tools/gn/deps_iterator.h b/src/gn/deps_iterator.h
similarity index 98%
rename from tools/gn/deps_iterator.h
rename to src/gn/deps_iterator.h
index 413e83b..f8b25bb 100644
--- a/tools/gn/deps_iterator.h
+++ b/src/gn/deps_iterator.h
@@ -7,7 +7,7 @@
 
 #include <stddef.h>
 
-#include "tools/gn/label_ptr.h"
+#include "gn/label_ptr.h"
 
 // Provides an iterator for iterating over multiple LabelTargetVectors to
 // make it convenient to iterate over all deps of a target.
diff --git a/tools/gn/desc_builder.cc b/src/gn/desc_builder.cc
similarity index 98%
rename from tools/gn/desc_builder.cc
rename to src/gn/desc_builder.cc
index 2c079a0..e52bb6a 100644
--- a/tools/gn/desc_builder.cc
+++ b/src/gn/desc_builder.cc
@@ -7,19 +7,19 @@
 
 #include "base/json/json_writer.h"
 #include "base/strings/string_number_conversions.h"
-#include "tools/gn/commands.h"
-#include "tools/gn/config.h"
-#include "tools/gn/config_values_extractors.h"
-#include "tools/gn/deps_iterator.h"
-#include "tools/gn/desc_builder.h"
-#include "tools/gn/input_file.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/runtime_deps.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/settings.h"
-#include "tools/gn/standard_out.h"
-#include "tools/gn/substitution_writer.h"
-#include "tools/gn/variables.h"
+#include "gn/commands.h"
+#include "gn/config.h"
+#include "gn/config_values_extractors.h"
+#include "gn/deps_iterator.h"
+#include "gn/desc_builder.h"
+#include "gn/input_file.h"
+#include "gn/parse_tree.h"
+#include "gn/runtime_deps.h"
+#include "gn/scope.h"
+#include "gn/settings.h"
+#include "gn/standard_out.h"
+#include "gn/substitution_writer.h"
+#include "gn/variables.h"
 
 // Example structure of Value for single target
 // (not applicable or empty fields will be ommitted depending on target type)
diff --git a/tools/gn/desc_builder.h b/src/gn/desc_builder.h
similarity index 95%
rename from tools/gn/desc_builder.h
rename to src/gn/desc_builder.h
index 1f0c395..e0e95a3 100644
--- a/tools/gn/desc_builder.h
+++ b/src/gn/desc_builder.h
@@ -6,7 +6,7 @@
 #define TOOLS_GN_DESC_BUILDER_H_
 
 #include "base/values.h"
-#include "tools/gn/target.h"
+#include "gn/target.h"
 
 class DescBuilder {
  public:
diff --git a/tools/gn/eclipse_writer.cc b/src/gn/eclipse_writer.cc
similarity index 95%
rename from tools/gn/eclipse_writer.cc
rename to src/gn/eclipse_writer.cc
index 328d5da..0067f6d 100644
--- a/tools/gn/eclipse_writer.cc
+++ b/src/gn/eclipse_writer.cc
@@ -2,17 +2,17 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/eclipse_writer.h"
+#include "gn/eclipse_writer.h"
 
 #include <fstream>
 #include <memory>
 
 #include "base/files/file_path.h"
-#include "tools/gn/builder.h"
-#include "tools/gn/config_values_extractors.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/loader.h"
-#include "tools/gn/xml_element_writer.h"
+#include "gn/builder.h"
+#include "gn/config_values_extractors.h"
+#include "gn/filesystem_utils.h"
+#include "gn/loader.h"
+#include "gn/xml_element_writer.h"
 
 namespace {
 
diff --git a/tools/gn/eclipse_writer.h b/src/gn/eclipse_writer.h
similarity index 100%
rename from tools/gn/eclipse_writer.h
rename to src/gn/eclipse_writer.h
diff --git a/tools/gn/err.cc b/src/gn/err.cc
similarity index 95%
rename from tools/gn/err.cc
rename to src/gn/err.cc
index 4d3cbce..5eaba67 100644
--- a/tools/gn/err.cc
+++ b/src/gn/err.cc
@@ -2,18 +2,18 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/err.h"
+#include "gn/err.h"
 
 #include <stddef.h>
 
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_util.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/input_file.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/standard_out.h"
-#include "tools/gn/tokenizer.h"
-#include "tools/gn/value.h"
+#include "gn/filesystem_utils.h"
+#include "gn/input_file.h"
+#include "gn/parse_tree.h"
+#include "gn/standard_out.h"
+#include "gn/tokenizer.h"
+#include "gn/value.h"
 
 namespace {
 
diff --git a/tools/gn/err.h b/src/gn/err.h
similarity index 97%
rename from tools/gn/err.h
rename to src/gn/err.h
index 90f3150..da05f2e 100644
--- a/tools/gn/err.h
+++ b/src/gn/err.h
@@ -8,8 +8,8 @@
 #include <string>
 #include <vector>
 
-#include "tools/gn/location.h"
-#include "tools/gn/token.h"
+#include "gn/location.h"
+#include "gn/token.h"
 
 class ParseNode;
 class Value;
diff --git a/tools/gn/escape.cc b/src/gn/escape.cc
similarity index 99%
rename from tools/gn/escape.cc
rename to src/gn/escape.cc
index ef4dcfa..9f567fb 100644
--- a/tools/gn/escape.cc
+++ b/src/gn/escape.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/escape.h"
+#include "gn/escape.h"
 
 #include <stddef.h>
 
diff --git a/tools/gn/escape.h b/src/gn/escape.h
similarity index 100%
rename from tools/gn/escape.h
rename to src/gn/escape.h
diff --git a/tools/gn/escape_unittest.cc b/src/gn/escape_unittest.cc
similarity index 98%
rename from tools/gn/escape_unittest.cc
rename to src/gn/escape_unittest.cc
index d7ff23f..48f6941 100644
--- a/tools/gn/escape_unittest.cc
+++ b/src/gn/escape_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/escape.h"
+#include "gn/escape.h"
 #include "util/test/test.h"
 
 TEST(Escape, Ninja) {
diff --git a/tools/gn/exec_process.cc b/src/gn/exec_process.cc
similarity index 99%
rename from tools/gn/exec_process.cc
rename to src/gn/exec_process.cc
index de7c945..eeebcb4 100644
--- a/tools/gn/exec_process.cc
+++ b/src/gn/exec_process.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/exec_process.h"
+#include "gn/exec_process.h"
 
 #include <stddef.h>
 
diff --git a/tools/gn/exec_process.h b/src/gn/exec_process.h
similarity index 100%
rename from tools/gn/exec_process.h
rename to src/gn/exec_process.h
diff --git a/tools/gn/exec_process_unittest.cc b/src/gn/exec_process_unittest.cc
similarity index 98%
rename from tools/gn/exec_process_unittest.cc
rename to src/gn/exec_process_unittest.cc
index 993f2d7..5ca0605 100644
--- a/tools/gn/exec_process_unittest.cc
+++ b/src/gn/exec_process_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/exec_process.h"
+#include "gn/exec_process.h"
 
 #include "base/command_line.h"
 #include "base/files/scoped_temp_dir.h"
diff --git a/tools/gn/filesystem_utils.cc b/src/gn/filesystem_utils.cc
similarity index 99%
rename from tools/gn/filesystem_utils.cc
rename to src/gn/filesystem_utils.cc
index 43efcc3..4beabc0 100644
--- a/tools/gn/filesystem_utils.cc
+++ b/src/gn/filesystem_utils.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/filesystem_utils.h"
+#include "gn/filesystem_utils.h"
 
 #include <algorithm>
 
@@ -10,9 +10,9 @@
 #include "base/logging.h"
 #include "base/strings/string_util.h"
 #include "base/strings/utf_string_conversions.h"
-#include "tools/gn/location.h"
-#include "tools/gn/settings.h"
-#include "tools/gn/source_dir.h"
+#include "gn/location.h"
+#include "gn/settings.h"
+#include "gn/source_dir.h"
 #include "util/build_config.h"
 
 #if defined(OS_WIN)
diff --git a/tools/gn/filesystem_utils.h b/src/gn/filesystem_utils.h
similarity index 99%
rename from tools/gn/filesystem_utils.h
rename to src/gn/filesystem_utils.h
index f25e702..e359b9f 100644
--- a/tools/gn/filesystem_utils.h
+++ b/src/gn/filesystem_utils.h
@@ -11,8 +11,8 @@
 #include <string_view>
 
 #include "base/files/file_path.h"
-#include "tools/gn/settings.h"
-#include "tools/gn/target.h"
+#include "gn/settings.h"
+#include "gn/target.h"
 
 class Err;
 
diff --git a/tools/gn/filesystem_utils_unittest.cc b/src/gn/filesystem_utils_unittest.cc
similarity index 99%
rename from tools/gn/filesystem_utils_unittest.cc
rename to src/gn/filesystem_utils_unittest.cc
index da1d4b1..3d30d52 100644
--- a/tools/gn/filesystem_utils_unittest.cc
+++ b/src/gn/filesystem_utils_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/filesystem_utils.h"
+#include "gn/filesystem_utils.h"
 
 #include <thread>
 
@@ -11,7 +11,7 @@
 #include "base/files/scoped_temp_dir.h"
 #include "base/strings/string_util.h"
 #include "base/strings/utf_string_conversions.h"
-#include "tools/gn/target.h"
+#include "gn/target.h"
 #include "util/build_config.h"
 #include "util/test/test.h"
 
diff --git a/tools/gn/format_test_data/001.gn b/src/gn/format_test_data/001.gn
similarity index 100%
rename from tools/gn/format_test_data/001.gn
rename to src/gn/format_test_data/001.gn
diff --git a/tools/gn/format_test_data/001.golden b/src/gn/format_test_data/001.golden
similarity index 100%
rename from tools/gn/format_test_data/001.golden
rename to src/gn/format_test_data/001.golden
diff --git a/tools/gn/format_test_data/002.gn b/src/gn/format_test_data/002.gn
similarity index 100%
rename from tools/gn/format_test_data/002.gn
rename to src/gn/format_test_data/002.gn
diff --git a/tools/gn/format_test_data/002.golden b/src/gn/format_test_data/002.golden
similarity index 100%
rename from tools/gn/format_test_data/002.golden
rename to src/gn/format_test_data/002.golden
diff --git a/tools/gn/format_test_data/003.gn b/src/gn/format_test_data/003.gn
similarity index 100%
rename from tools/gn/format_test_data/003.gn
rename to src/gn/format_test_data/003.gn
diff --git a/tools/gn/format_test_data/003.golden b/src/gn/format_test_data/003.golden
similarity index 100%
rename from tools/gn/format_test_data/003.golden
rename to src/gn/format_test_data/003.golden
diff --git a/tools/gn/format_test_data/004.gn b/src/gn/format_test_data/004.gn
similarity index 100%
rename from tools/gn/format_test_data/004.gn
rename to src/gn/format_test_data/004.gn
diff --git a/tools/gn/format_test_data/004.golden b/src/gn/format_test_data/004.golden
similarity index 100%
rename from tools/gn/format_test_data/004.golden
rename to src/gn/format_test_data/004.golden
diff --git a/tools/gn/format_test_data/005.gn b/src/gn/format_test_data/005.gn
similarity index 100%
rename from tools/gn/format_test_data/005.gn
rename to src/gn/format_test_data/005.gn
diff --git a/tools/gn/format_test_data/005.golden b/src/gn/format_test_data/005.golden
similarity index 100%
rename from tools/gn/format_test_data/005.golden
rename to src/gn/format_test_data/005.golden
diff --git a/tools/gn/format_test_data/006.gn b/src/gn/format_test_data/006.gn
similarity index 100%
rename from tools/gn/format_test_data/006.gn
rename to src/gn/format_test_data/006.gn
diff --git a/tools/gn/format_test_data/006.golden b/src/gn/format_test_data/006.golden
similarity index 100%
rename from tools/gn/format_test_data/006.golden
rename to src/gn/format_test_data/006.golden
diff --git a/tools/gn/format_test_data/007.gn b/src/gn/format_test_data/007.gn
similarity index 100%
rename from tools/gn/format_test_data/007.gn
rename to src/gn/format_test_data/007.gn
diff --git a/tools/gn/format_test_data/007.golden b/src/gn/format_test_data/007.golden
similarity index 100%
rename from tools/gn/format_test_data/007.golden
rename to src/gn/format_test_data/007.golden
diff --git a/tools/gn/format_test_data/008.gn b/src/gn/format_test_data/008.gn
similarity index 100%
rename from tools/gn/format_test_data/008.gn
rename to src/gn/format_test_data/008.gn
diff --git a/tools/gn/format_test_data/008.golden b/src/gn/format_test_data/008.golden
similarity index 100%
rename from tools/gn/format_test_data/008.golden
rename to src/gn/format_test_data/008.golden
diff --git a/tools/gn/format_test_data/009.gn b/src/gn/format_test_data/009.gn
similarity index 100%
rename from tools/gn/format_test_data/009.gn
rename to src/gn/format_test_data/009.gn
diff --git a/tools/gn/format_test_data/009.golden b/src/gn/format_test_data/009.golden
similarity index 100%
rename from tools/gn/format_test_data/009.golden
rename to src/gn/format_test_data/009.golden
diff --git a/tools/gn/format_test_data/010.gn b/src/gn/format_test_data/010.gn
similarity index 100%
rename from tools/gn/format_test_data/010.gn
rename to src/gn/format_test_data/010.gn
diff --git a/tools/gn/format_test_data/010.golden b/src/gn/format_test_data/010.golden
similarity index 100%
rename from tools/gn/format_test_data/010.golden
rename to src/gn/format_test_data/010.golden
diff --git a/tools/gn/format_test_data/011.gn b/src/gn/format_test_data/011.gn
similarity index 100%
rename from tools/gn/format_test_data/011.gn
rename to src/gn/format_test_data/011.gn
diff --git a/tools/gn/format_test_data/011.golden b/src/gn/format_test_data/011.golden
similarity index 100%
rename from tools/gn/format_test_data/011.golden
rename to src/gn/format_test_data/011.golden
diff --git a/tools/gn/format_test_data/012.gn b/src/gn/format_test_data/012.gn
similarity index 100%
rename from tools/gn/format_test_data/012.gn
rename to src/gn/format_test_data/012.gn
diff --git a/tools/gn/format_test_data/012.golden b/src/gn/format_test_data/012.golden
similarity index 100%
rename from tools/gn/format_test_data/012.golden
rename to src/gn/format_test_data/012.golden
diff --git a/tools/gn/format_test_data/013.gn b/src/gn/format_test_data/013.gn
similarity index 100%
rename from tools/gn/format_test_data/013.gn
rename to src/gn/format_test_data/013.gn
diff --git a/tools/gn/format_test_data/013.golden b/src/gn/format_test_data/013.golden
similarity index 100%
rename from tools/gn/format_test_data/013.golden
rename to src/gn/format_test_data/013.golden
diff --git a/tools/gn/format_test_data/014.gn b/src/gn/format_test_data/014.gn
similarity index 100%
rename from tools/gn/format_test_data/014.gn
rename to src/gn/format_test_data/014.gn
diff --git a/tools/gn/format_test_data/014.golden b/src/gn/format_test_data/014.golden
similarity index 100%
rename from tools/gn/format_test_data/014.golden
rename to src/gn/format_test_data/014.golden
diff --git a/tools/gn/format_test_data/015.gn b/src/gn/format_test_data/015.gn
similarity index 100%
rename from tools/gn/format_test_data/015.gn
rename to src/gn/format_test_data/015.gn
diff --git a/tools/gn/format_test_data/015.golden b/src/gn/format_test_data/015.golden
similarity index 100%
rename from tools/gn/format_test_data/015.golden
rename to src/gn/format_test_data/015.golden
diff --git a/tools/gn/format_test_data/016.gn b/src/gn/format_test_data/016.gn
similarity index 100%
rename from tools/gn/format_test_data/016.gn
rename to src/gn/format_test_data/016.gn
diff --git a/tools/gn/format_test_data/016.golden b/src/gn/format_test_data/016.golden
similarity index 100%
rename from tools/gn/format_test_data/016.golden
rename to src/gn/format_test_data/016.golden
diff --git a/tools/gn/format_test_data/017.gn b/src/gn/format_test_data/017.gn
similarity index 100%
rename from tools/gn/format_test_data/017.gn
rename to src/gn/format_test_data/017.gn
diff --git a/tools/gn/format_test_data/017.golden b/src/gn/format_test_data/017.golden
similarity index 100%
rename from tools/gn/format_test_data/017.golden
rename to src/gn/format_test_data/017.golden
diff --git a/tools/gn/format_test_data/018.gn b/src/gn/format_test_data/018.gn
similarity index 100%
rename from tools/gn/format_test_data/018.gn
rename to src/gn/format_test_data/018.gn
diff --git a/tools/gn/format_test_data/018.golden b/src/gn/format_test_data/018.golden
similarity index 100%
rename from tools/gn/format_test_data/018.golden
rename to src/gn/format_test_data/018.golden
diff --git a/tools/gn/format_test_data/019.gn b/src/gn/format_test_data/019.gn
similarity index 96%
rename from tools/gn/format_test_data/019.gn
rename to src/gn/format_test_data/019.gn
index 48772b9..125480c 100644
--- a/tools/gn/format_test_data/019.gn
+++ b/src/gn/format_test_data/019.gn
@@ -11,7 +11,7 @@
 
       # Not relevant to Android.
       "//ash",
-      "//tools/gn",
+      "//gn",
 
       # Multiple line
       # comment
diff --git a/tools/gn/format_test_data/019.golden b/src/gn/format_test_data/019.golden
similarity index 96%
rename from tools/gn/format_test_data/019.golden
rename to src/gn/format_test_data/019.golden
index c800ed1..256c171 100644
--- a/tools/gn/format_test_data/019.golden
+++ b/src/gn/format_test_data/019.golden
@@ -11,7 +11,7 @@
 
   # Not relevant to Android.
   "//ash",
-  "//tools/gn",
+  "//gn",
 
   # Multiple line
   # comment
diff --git a/tools/gn/format_test_data/020.gn b/src/gn/format_test_data/020.gn
similarity index 100%
rename from tools/gn/format_test_data/020.gn
rename to src/gn/format_test_data/020.gn
diff --git a/tools/gn/format_test_data/020.golden b/src/gn/format_test_data/020.golden
similarity index 100%
rename from tools/gn/format_test_data/020.golden
rename to src/gn/format_test_data/020.golden
diff --git a/tools/gn/format_test_data/021.gn b/src/gn/format_test_data/021.gn
similarity index 100%
rename from tools/gn/format_test_data/021.gn
rename to src/gn/format_test_data/021.gn
diff --git a/tools/gn/format_test_data/021.golden b/src/gn/format_test_data/021.golden
similarity index 100%
rename from tools/gn/format_test_data/021.golden
rename to src/gn/format_test_data/021.golden
diff --git a/tools/gn/format_test_data/022.gn b/src/gn/format_test_data/022.gn
similarity index 100%
rename from tools/gn/format_test_data/022.gn
rename to src/gn/format_test_data/022.gn
diff --git a/tools/gn/format_test_data/022.golden b/src/gn/format_test_data/022.golden
similarity index 100%
rename from tools/gn/format_test_data/022.golden
rename to src/gn/format_test_data/022.golden
diff --git a/tools/gn/format_test_data/023.gn b/src/gn/format_test_data/023.gn
similarity index 100%
rename from tools/gn/format_test_data/023.gn
rename to src/gn/format_test_data/023.gn
diff --git a/tools/gn/format_test_data/023.golden b/src/gn/format_test_data/023.golden
similarity index 100%
rename from tools/gn/format_test_data/023.golden
rename to src/gn/format_test_data/023.golden
diff --git a/tools/gn/format_test_data/024.gn b/src/gn/format_test_data/024.gn
similarity index 100%
rename from tools/gn/format_test_data/024.gn
rename to src/gn/format_test_data/024.gn
diff --git a/tools/gn/format_test_data/024.golden b/src/gn/format_test_data/024.golden
similarity index 100%
rename from tools/gn/format_test_data/024.golden
rename to src/gn/format_test_data/024.golden
diff --git a/tools/gn/format_test_data/025.gn b/src/gn/format_test_data/025.gn
similarity index 100%
rename from tools/gn/format_test_data/025.gn
rename to src/gn/format_test_data/025.gn
diff --git a/tools/gn/format_test_data/025.golden b/src/gn/format_test_data/025.golden
similarity index 100%
rename from tools/gn/format_test_data/025.golden
rename to src/gn/format_test_data/025.golden
diff --git a/tools/gn/format_test_data/026.gn b/src/gn/format_test_data/026.gn
similarity index 100%
rename from tools/gn/format_test_data/026.gn
rename to src/gn/format_test_data/026.gn
diff --git a/tools/gn/format_test_data/026.golden b/src/gn/format_test_data/026.golden
similarity index 100%
rename from tools/gn/format_test_data/026.golden
rename to src/gn/format_test_data/026.golden
diff --git a/tools/gn/format_test_data/027.gn b/src/gn/format_test_data/027.gn
similarity index 100%
rename from tools/gn/format_test_data/027.gn
rename to src/gn/format_test_data/027.gn
diff --git a/tools/gn/format_test_data/027.golden b/src/gn/format_test_data/027.golden
similarity index 100%
rename from tools/gn/format_test_data/027.golden
rename to src/gn/format_test_data/027.golden
diff --git a/tools/gn/format_test_data/028.gn b/src/gn/format_test_data/028.gn
similarity index 100%
rename from tools/gn/format_test_data/028.gn
rename to src/gn/format_test_data/028.gn
diff --git a/tools/gn/format_test_data/028.golden b/src/gn/format_test_data/028.golden
similarity index 100%
rename from tools/gn/format_test_data/028.golden
rename to src/gn/format_test_data/028.golden
diff --git a/tools/gn/format_test_data/029.gn b/src/gn/format_test_data/029.gn
similarity index 100%
rename from tools/gn/format_test_data/029.gn
rename to src/gn/format_test_data/029.gn
diff --git a/tools/gn/format_test_data/029.golden b/src/gn/format_test_data/029.golden
similarity index 100%
rename from tools/gn/format_test_data/029.golden
rename to src/gn/format_test_data/029.golden
diff --git a/tools/gn/format_test_data/030.gn b/src/gn/format_test_data/030.gn
similarity index 100%
rename from tools/gn/format_test_data/030.gn
rename to src/gn/format_test_data/030.gn
diff --git a/tools/gn/format_test_data/030.golden b/src/gn/format_test_data/030.golden
similarity index 100%
rename from tools/gn/format_test_data/030.golden
rename to src/gn/format_test_data/030.golden
diff --git a/tools/gn/format_test_data/031.gn b/src/gn/format_test_data/031.gn
similarity index 100%
rename from tools/gn/format_test_data/031.gn
rename to src/gn/format_test_data/031.gn
diff --git a/tools/gn/format_test_data/031.golden b/src/gn/format_test_data/031.golden
similarity index 100%
rename from tools/gn/format_test_data/031.golden
rename to src/gn/format_test_data/031.golden
diff --git a/tools/gn/format_test_data/032.gn b/src/gn/format_test_data/032.gn
similarity index 100%
rename from tools/gn/format_test_data/032.gn
rename to src/gn/format_test_data/032.gn
diff --git a/tools/gn/format_test_data/032.golden b/src/gn/format_test_data/032.golden
similarity index 100%
rename from tools/gn/format_test_data/032.golden
rename to src/gn/format_test_data/032.golden
diff --git a/tools/gn/format_test_data/033.gn b/src/gn/format_test_data/033.gn
similarity index 100%
rename from tools/gn/format_test_data/033.gn
rename to src/gn/format_test_data/033.gn
diff --git a/tools/gn/format_test_data/033.golden b/src/gn/format_test_data/033.golden
similarity index 100%
rename from tools/gn/format_test_data/033.golden
rename to src/gn/format_test_data/033.golden
diff --git a/tools/gn/format_test_data/034.gn b/src/gn/format_test_data/034.gn
similarity index 100%
rename from tools/gn/format_test_data/034.gn
rename to src/gn/format_test_data/034.gn
diff --git a/tools/gn/format_test_data/035.gn b/src/gn/format_test_data/035.gn
similarity index 100%
rename from tools/gn/format_test_data/035.gn
rename to src/gn/format_test_data/035.gn
diff --git a/tools/gn/format_test_data/035.golden b/src/gn/format_test_data/035.golden
similarity index 100%
rename from tools/gn/format_test_data/035.golden
rename to src/gn/format_test_data/035.golden
diff --git a/tools/gn/format_test_data/036.gn b/src/gn/format_test_data/036.gn
similarity index 100%
rename from tools/gn/format_test_data/036.gn
rename to src/gn/format_test_data/036.gn
diff --git a/tools/gn/format_test_data/036.golden b/src/gn/format_test_data/036.golden
similarity index 100%
rename from tools/gn/format_test_data/036.golden
rename to src/gn/format_test_data/036.golden
diff --git a/tools/gn/format_test_data/037.gn b/src/gn/format_test_data/037.gn
similarity index 100%
rename from tools/gn/format_test_data/037.gn
rename to src/gn/format_test_data/037.gn
diff --git a/tools/gn/format_test_data/037.golden b/src/gn/format_test_data/037.golden
similarity index 100%
rename from tools/gn/format_test_data/037.golden
rename to src/gn/format_test_data/037.golden
diff --git a/tools/gn/format_test_data/038.gn b/src/gn/format_test_data/038.gn
similarity index 100%
rename from tools/gn/format_test_data/038.gn
rename to src/gn/format_test_data/038.gn
diff --git a/tools/gn/format_test_data/038.golden b/src/gn/format_test_data/038.golden
similarity index 100%
rename from tools/gn/format_test_data/038.golden
rename to src/gn/format_test_data/038.golden
diff --git a/tools/gn/format_test_data/039.gn b/src/gn/format_test_data/039.gn
similarity index 100%
rename from tools/gn/format_test_data/039.gn
rename to src/gn/format_test_data/039.gn
diff --git a/tools/gn/format_test_data/039.golden b/src/gn/format_test_data/039.golden
similarity index 100%
rename from tools/gn/format_test_data/039.golden
rename to src/gn/format_test_data/039.golden
diff --git a/tools/gn/format_test_data/040.gn b/src/gn/format_test_data/040.gn
similarity index 100%
rename from tools/gn/format_test_data/040.gn
rename to src/gn/format_test_data/040.gn
diff --git a/tools/gn/format_test_data/041.gn b/src/gn/format_test_data/041.gn
similarity index 100%
rename from tools/gn/format_test_data/041.gn
rename to src/gn/format_test_data/041.gn
diff --git a/tools/gn/format_test_data/041.golden b/src/gn/format_test_data/041.golden
similarity index 100%
rename from tools/gn/format_test_data/041.golden
rename to src/gn/format_test_data/041.golden
diff --git a/tools/gn/format_test_data/042.gn b/src/gn/format_test_data/042.gn
similarity index 100%
rename from tools/gn/format_test_data/042.gn
rename to src/gn/format_test_data/042.gn
diff --git a/tools/gn/format_test_data/042.golden b/src/gn/format_test_data/042.golden
similarity index 100%
rename from tools/gn/format_test_data/042.golden
rename to src/gn/format_test_data/042.golden
diff --git a/tools/gn/format_test_data/043.gn b/src/gn/format_test_data/043.gn
similarity index 100%
rename from tools/gn/format_test_data/043.gn
rename to src/gn/format_test_data/043.gn
diff --git a/tools/gn/format_test_data/043.golden b/src/gn/format_test_data/043.golden
similarity index 100%
rename from tools/gn/format_test_data/043.golden
rename to src/gn/format_test_data/043.golden
diff --git a/tools/gn/format_test_data/044.gn b/src/gn/format_test_data/044.gn
similarity index 100%
rename from tools/gn/format_test_data/044.gn
rename to src/gn/format_test_data/044.gn
diff --git a/tools/gn/format_test_data/044.golden b/src/gn/format_test_data/044.golden
similarity index 100%
rename from tools/gn/format_test_data/044.golden
rename to src/gn/format_test_data/044.golden
diff --git a/tools/gn/format_test_data/045.gn b/src/gn/format_test_data/045.gn
similarity index 100%
rename from tools/gn/format_test_data/045.gn
rename to src/gn/format_test_data/045.gn
diff --git a/tools/gn/format_test_data/045.golden b/src/gn/format_test_data/045.golden
similarity index 100%
rename from tools/gn/format_test_data/045.golden
rename to src/gn/format_test_data/045.golden
diff --git a/tools/gn/format_test_data/046.gn b/src/gn/format_test_data/046.gn
similarity index 100%
rename from tools/gn/format_test_data/046.gn
rename to src/gn/format_test_data/046.gn
diff --git a/tools/gn/format_test_data/046.golden b/src/gn/format_test_data/046.golden
similarity index 100%
rename from tools/gn/format_test_data/046.golden
rename to src/gn/format_test_data/046.golden
diff --git a/tools/gn/format_test_data/047.gn b/src/gn/format_test_data/047.gn
similarity index 100%
rename from tools/gn/format_test_data/047.gn
rename to src/gn/format_test_data/047.gn
diff --git a/tools/gn/format_test_data/047.golden b/src/gn/format_test_data/047.golden
similarity index 100%
rename from tools/gn/format_test_data/047.golden
rename to src/gn/format_test_data/047.golden
diff --git a/tools/gn/format_test_data/048.gn b/src/gn/format_test_data/048.gn
similarity index 100%
rename from tools/gn/format_test_data/048.gn
rename to src/gn/format_test_data/048.gn
diff --git a/tools/gn/format_test_data/048.golden b/src/gn/format_test_data/048.golden
similarity index 100%
rename from tools/gn/format_test_data/048.golden
rename to src/gn/format_test_data/048.golden
diff --git a/tools/gn/format_test_data/049.gn b/src/gn/format_test_data/049.gn
similarity index 100%
rename from tools/gn/format_test_data/049.gn
rename to src/gn/format_test_data/049.gn
diff --git a/tools/gn/format_test_data/050.gn b/src/gn/format_test_data/050.gn
similarity index 100%
rename from tools/gn/format_test_data/050.gn
rename to src/gn/format_test_data/050.gn
diff --git a/tools/gn/format_test_data/050.golden b/src/gn/format_test_data/050.golden
similarity index 100%
rename from tools/gn/format_test_data/050.golden
rename to src/gn/format_test_data/050.golden
diff --git a/tools/gn/format_test_data/051.gn b/src/gn/format_test_data/051.gn
similarity index 100%
rename from tools/gn/format_test_data/051.gn
rename to src/gn/format_test_data/051.gn
diff --git a/tools/gn/format_test_data/051.golden b/src/gn/format_test_data/051.golden
similarity index 100%
rename from tools/gn/format_test_data/051.golden
rename to src/gn/format_test_data/051.golden
diff --git a/tools/gn/format_test_data/052.gn b/src/gn/format_test_data/052.gn
similarity index 100%
rename from tools/gn/format_test_data/052.gn
rename to src/gn/format_test_data/052.gn
diff --git a/tools/gn/format_test_data/052.golden b/src/gn/format_test_data/052.golden
similarity index 100%
rename from tools/gn/format_test_data/052.golden
rename to src/gn/format_test_data/052.golden
diff --git a/tools/gn/format_test_data/053.gn b/src/gn/format_test_data/053.gn
similarity index 100%
rename from tools/gn/format_test_data/053.gn
rename to src/gn/format_test_data/053.gn
diff --git a/tools/gn/format_test_data/053.golden b/src/gn/format_test_data/053.golden
similarity index 100%
rename from tools/gn/format_test_data/053.golden
rename to src/gn/format_test_data/053.golden
diff --git a/tools/gn/format_test_data/054.gn b/src/gn/format_test_data/054.gn
similarity index 100%
rename from tools/gn/format_test_data/054.gn
rename to src/gn/format_test_data/054.gn
diff --git a/tools/gn/format_test_data/054.golden b/src/gn/format_test_data/054.golden
similarity index 100%
rename from tools/gn/format_test_data/054.golden
rename to src/gn/format_test_data/054.golden
diff --git a/tools/gn/format_test_data/055.gn b/src/gn/format_test_data/055.gn
similarity index 100%
rename from tools/gn/format_test_data/055.gn
rename to src/gn/format_test_data/055.gn
diff --git a/tools/gn/format_test_data/055.golden b/src/gn/format_test_data/055.golden
similarity index 100%
rename from tools/gn/format_test_data/055.golden
rename to src/gn/format_test_data/055.golden
diff --git a/tools/gn/format_test_data/056.gn b/src/gn/format_test_data/056.gn
similarity index 100%
rename from tools/gn/format_test_data/056.gn
rename to src/gn/format_test_data/056.gn
diff --git a/tools/gn/format_test_data/056.golden b/src/gn/format_test_data/056.golden
similarity index 100%
rename from tools/gn/format_test_data/056.golden
rename to src/gn/format_test_data/056.golden
diff --git a/tools/gn/format_test_data/057.gn b/src/gn/format_test_data/057.gn
similarity index 100%
rename from tools/gn/format_test_data/057.gn
rename to src/gn/format_test_data/057.gn
diff --git a/tools/gn/format_test_data/057.golden b/src/gn/format_test_data/057.golden
similarity index 100%
rename from tools/gn/format_test_data/057.golden
rename to src/gn/format_test_data/057.golden
diff --git a/tools/gn/format_test_data/058.gn b/src/gn/format_test_data/058.gn
similarity index 100%
rename from tools/gn/format_test_data/058.gn
rename to src/gn/format_test_data/058.gn
diff --git a/tools/gn/format_test_data/058.golden b/src/gn/format_test_data/058.golden
similarity index 100%
rename from tools/gn/format_test_data/058.golden
rename to src/gn/format_test_data/058.golden
diff --git a/tools/gn/format_test_data/059.gn b/src/gn/format_test_data/059.gn
similarity index 100%
rename from tools/gn/format_test_data/059.gn
rename to src/gn/format_test_data/059.gn
diff --git a/tools/gn/format_test_data/059.golden b/src/gn/format_test_data/059.golden
similarity index 100%
rename from tools/gn/format_test_data/059.golden
rename to src/gn/format_test_data/059.golden
diff --git a/tools/gn/format_test_data/060.gn b/src/gn/format_test_data/060.gn
similarity index 100%
rename from tools/gn/format_test_data/060.gn
rename to src/gn/format_test_data/060.gn
diff --git a/tools/gn/format_test_data/060.golden b/src/gn/format_test_data/060.golden
similarity index 100%
rename from tools/gn/format_test_data/060.golden
rename to src/gn/format_test_data/060.golden
diff --git a/tools/gn/format_test_data/061.gn b/src/gn/format_test_data/061.gn
similarity index 100%
rename from tools/gn/format_test_data/061.gn
rename to src/gn/format_test_data/061.gn
diff --git a/tools/gn/format_test_data/061.golden b/src/gn/format_test_data/061.golden
similarity index 100%
rename from tools/gn/format_test_data/061.golden
rename to src/gn/format_test_data/061.golden
diff --git a/tools/gn/format_test_data/062.gn b/src/gn/format_test_data/062.gn
similarity index 100%
rename from tools/gn/format_test_data/062.gn
rename to src/gn/format_test_data/062.gn
diff --git a/tools/gn/format_test_data/062.golden b/src/gn/format_test_data/062.golden
similarity index 100%
rename from tools/gn/format_test_data/062.golden
rename to src/gn/format_test_data/062.golden
diff --git a/tools/gn/format_test_data/063.gn b/src/gn/format_test_data/063.gn
similarity index 100%
rename from tools/gn/format_test_data/063.gn
rename to src/gn/format_test_data/063.gn
diff --git a/tools/gn/format_test_data/063.golden b/src/gn/format_test_data/063.golden
similarity index 100%
rename from tools/gn/format_test_data/063.golden
rename to src/gn/format_test_data/063.golden
diff --git a/tools/gn/format_test_data/064.gn b/src/gn/format_test_data/064.gn
similarity index 100%
rename from tools/gn/format_test_data/064.gn
rename to src/gn/format_test_data/064.gn
diff --git a/tools/gn/format_test_data/064.golden b/src/gn/format_test_data/064.golden
similarity index 100%
rename from tools/gn/format_test_data/064.golden
rename to src/gn/format_test_data/064.golden
diff --git a/tools/gn/format_test_data/065.gn b/src/gn/format_test_data/065.gn
similarity index 100%
rename from tools/gn/format_test_data/065.gn
rename to src/gn/format_test_data/065.gn
diff --git a/tools/gn/format_test_data/065.golden b/src/gn/format_test_data/065.golden
similarity index 100%
rename from tools/gn/format_test_data/065.golden
rename to src/gn/format_test_data/065.golden
diff --git a/tools/gn/format_test_data/066.gn b/src/gn/format_test_data/066.gn
similarity index 100%
rename from tools/gn/format_test_data/066.gn
rename to src/gn/format_test_data/066.gn
diff --git a/tools/gn/format_test_data/066.golden b/src/gn/format_test_data/066.golden
similarity index 100%
rename from tools/gn/format_test_data/066.golden
rename to src/gn/format_test_data/066.golden
diff --git a/tools/gn/format_test_data/067.gn b/src/gn/format_test_data/067.gn
similarity index 100%
rename from tools/gn/format_test_data/067.gn
rename to src/gn/format_test_data/067.gn
diff --git a/tools/gn/format_test_data/067.golden b/src/gn/format_test_data/067.golden
similarity index 100%
rename from tools/gn/format_test_data/067.golden
rename to src/gn/format_test_data/067.golden
diff --git a/tools/gn/format_test_data/068.gn b/src/gn/format_test_data/068.gn
similarity index 100%
rename from tools/gn/format_test_data/068.gn
rename to src/gn/format_test_data/068.gn
diff --git a/tools/gn/format_test_data/068.golden b/src/gn/format_test_data/068.golden
similarity index 100%
rename from tools/gn/format_test_data/068.golden
rename to src/gn/format_test_data/068.golden
diff --git a/tools/gn/format_test_data/069.gn b/src/gn/format_test_data/069.gn
similarity index 100%
rename from tools/gn/format_test_data/069.gn
rename to src/gn/format_test_data/069.gn
diff --git a/tools/gn/format_test_data/069.golden b/src/gn/format_test_data/069.golden
similarity index 100%
rename from tools/gn/format_test_data/069.golden
rename to src/gn/format_test_data/069.golden
diff --git a/tools/gn/format_test_data/070.gn b/src/gn/format_test_data/070.gn
similarity index 100%
rename from tools/gn/format_test_data/070.gn
rename to src/gn/format_test_data/070.gn
diff --git a/tools/gn/format_test_data/070.golden b/src/gn/format_test_data/070.golden
similarity index 100%
rename from tools/gn/format_test_data/070.golden
rename to src/gn/format_test_data/070.golden
diff --git a/tools/gn/format_test_data/071.gn b/src/gn/format_test_data/071.gn
similarity index 100%
rename from tools/gn/format_test_data/071.gn
rename to src/gn/format_test_data/071.gn
diff --git a/tools/gn/format_test_data/071.golden b/src/gn/format_test_data/071.golden
similarity index 100%
rename from tools/gn/format_test_data/071.golden
rename to src/gn/format_test_data/071.golden
diff --git a/tools/gn/format_test_data/072.gn b/src/gn/format_test_data/072.gn
similarity index 100%
rename from tools/gn/format_test_data/072.gn
rename to src/gn/format_test_data/072.gn
diff --git a/tools/gn/format_test_data/072.golden b/src/gn/format_test_data/072.golden
similarity index 100%
rename from tools/gn/format_test_data/072.golden
rename to src/gn/format_test_data/072.golden
diff --git a/tools/gn/format_test_data/073.gn b/src/gn/format_test_data/073.gn
similarity index 100%
rename from tools/gn/format_test_data/073.gn
rename to src/gn/format_test_data/073.gn
diff --git a/tools/gn/format_test_data/073.golden b/src/gn/format_test_data/073.golden
similarity index 100%
rename from tools/gn/format_test_data/073.golden
rename to src/gn/format_test_data/073.golden
diff --git a/tools/gn/format_test_data/074.gn b/src/gn/format_test_data/074.gn
similarity index 100%
rename from tools/gn/format_test_data/074.gn
rename to src/gn/format_test_data/074.gn
diff --git a/tools/gn/format_test_data/074.golden b/src/gn/format_test_data/074.golden
similarity index 100%
rename from tools/gn/format_test_data/074.golden
rename to src/gn/format_test_data/074.golden
diff --git a/tools/gn/format_test_data/075.gn b/src/gn/format_test_data/075.gn
similarity index 100%
rename from tools/gn/format_test_data/075.gn
rename to src/gn/format_test_data/075.gn
diff --git a/tools/gn/format_test_data/075.golden b/src/gn/format_test_data/075.golden
similarity index 100%
rename from tools/gn/format_test_data/075.golden
rename to src/gn/format_test_data/075.golden
diff --git a/tools/gn/function_exec_script.cc b/src/gn/function_exec_script.cc
similarity index 96%
rename from tools/gn/function_exec_script.cc
rename to src/gn/function_exec_script.cc
index 3ef7646..aec8409 100644
--- a/tools/gn/function_exec_script.cc
+++ b/src/gn/function_exec_script.cc
@@ -7,16 +7,16 @@
 #include "base/logging.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/utf_string_conversions.h"
-#include "tools/gn/err.h"
-#include "tools/gn/exec_process.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/functions.h"
-#include "tools/gn/input_conversion.h"
-#include "tools/gn/input_file.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/scheduler.h"
-#include "tools/gn/trace.h"
-#include "tools/gn/value.h"
+#include "gn/err.h"
+#include "gn/exec_process.h"
+#include "gn/filesystem_utils.h"
+#include "gn/functions.h"
+#include "gn/input_conversion.h"
+#include "gn/input_file.h"
+#include "gn/parse_tree.h"
+#include "gn/scheduler.h"
+#include "gn/trace.h"
+#include "gn/value.h"
 #include "util/build_config.h"
 #include "util/ticks.h"
 
diff --git a/tools/gn/function_foreach.cc b/src/gn/function_foreach.cc
similarity index 96%
rename from tools/gn/function_foreach.cc
rename to src/gn/function_foreach.cc
index ec9070f..9c16e34 100644
--- a/tools/gn/function_foreach.cc
+++ b/src/gn/function_foreach.cc
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/err.h"
-#include "tools/gn/functions.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/scope.h"
+#include "gn/err.h"
+#include "gn/functions.h"
+#include "gn/parse_tree.h"
+#include "gn/scope.h"
 
 namespace functions {
 
diff --git a/tools/gn/function_foreach_unittest.cc b/src/gn/function_foreach_unittest.cc
similarity index 98%
rename from tools/gn/function_foreach_unittest.cc
rename to src/gn/function_foreach_unittest.cc
index e4c289d..2093d45 100644
--- a/tools/gn/function_foreach_unittest.cc
+++ b/src/gn/function_foreach_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/test_with_scope.h"
+#include "gn/test_with_scope.h"
 #include "util/test/test.h"
 
 TEST(FunctionForeach, CollisionOnLoopVar) {
diff --git a/tools/gn/function_forward_variables_from.cc b/src/gn/function_forward_variables_from.cc
similarity index 98%
rename from tools/gn/function_forward_variables_from.cc
rename to src/gn/function_forward_variables_from.cc
index 0366381..8cee386 100644
--- a/tools/gn/function_forward_variables_from.cc
+++ b/src/gn/function_forward_variables_from.cc
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/err.h"
-#include "tools/gn/functions.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/scope.h"
+#include "gn/err.h"
+#include "gn/functions.h"
+#include "gn/parse_tree.h"
+#include "gn/scope.h"
 
 namespace functions {
 
diff --git a/tools/gn/function_forward_variables_from_unittest.cc b/src/gn/function_forward_variables_from_unittest.cc
similarity index 98%
rename from tools/gn/function_forward_variables_from_unittest.cc
rename to src/gn/function_forward_variables_from_unittest.cc
index 20baea7..2f60f82 100644
--- a/tools/gn/function_forward_variables_from_unittest.cc
+++ b/src/gn/function_forward_variables_from_unittest.cc
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/scheduler.h"
-#include "tools/gn/test_with_scheduler.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/scheduler.h"
+#include "gn/test_with_scheduler.h"
+#include "gn/test_with_scope.h"
 #include "util/test/test.h"
 
 using FunctionForwardVariablesFromTest = TestWithScheduler;
diff --git a/tools/gn/function_get_label_info.cc b/src/gn/function_get_label_info.cc
similarity index 95%
rename from tools/gn/function_get_label_info.cc
rename to src/gn/function_get_label_info.cc
index 0d0c77a..d915732 100644
--- a/tools/gn/function_get_label_info.cc
+++ b/src/gn/function_get_label_info.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/err.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/functions.h"
-#include "tools/gn/label.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/value.h"
+#include "gn/err.h"
+#include "gn/filesystem_utils.h"
+#include "gn/functions.h"
+#include "gn/label.h"
+#include "gn/parse_tree.h"
+#include "gn/value.h"
 
 namespace functions {
 
diff --git a/tools/gn/function_get_label_info_unittest.cc b/src/gn/function_get_label_info_unittest.cc
similarity index 97%
rename from tools/gn/function_get_label_info_unittest.cc
rename to src/gn/function_get_label_info_unittest.cc
index 46eb7f2..3e934f1 100644
--- a/tools/gn/function_get_label_info_unittest.cc
+++ b/src/gn/function_get_label_info_unittest.cc
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/functions.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/functions.h"
+#include "gn/test_with_scope.h"
 #include "util/test/test.h"
 
 namespace {
diff --git a/tools/gn/function_get_path_info.cc b/src/gn/function_get_path_info.cc
similarity index 97%
rename from tools/gn/function_get_path_info.cc
rename to src/gn/function_get_path_info.cc
index 6e87a57..00ed043 100644
--- a/tools/gn/function_get_path_info.cc
+++ b/src/gn/function_get_path_info.cc
@@ -4,12 +4,12 @@
 
 #include <stddef.h>
 
-#include "tools/gn/err.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/functions.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/value.h"
+#include "gn/err.h"
+#include "gn/filesystem_utils.h"
+#include "gn/functions.h"
+#include "gn/parse_tree.h"
+#include "gn/scope.h"
+#include "gn/value.h"
 
 namespace functions {
 
diff --git a/tools/gn/function_get_path_info_unittest.cc b/src/gn/function_get_path_info_unittest.cc
similarity index 97%
rename from tools/gn/function_get_path_info_unittest.cc
rename to src/gn/function_get_path_info_unittest.cc
index 6e4a8da..4afad0c 100644
--- a/tools/gn/function_get_path_info_unittest.cc
+++ b/src/gn/function_get_path_info_unittest.cc
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/functions.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/functions.h"
+#include "gn/test_with_scope.h"
 #include "util/build_config.h"
 #include "util/test/test.h"
 
diff --git a/tools/gn/function_get_target_outputs.cc b/src/gn/function_get_target_outputs.cc
similarity index 94%
rename from tools/gn/function_get_target_outputs.cc
rename to src/gn/function_get_target_outputs.cc
index 83e7356..f7c1c3e 100644
--- a/tools/gn/function_get_target_outputs.cc
+++ b/src/gn/function_get_target_outputs.cc
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/build_settings.h"
-#include "tools/gn/functions.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/settings.h"
-#include "tools/gn/substitution_writer.h"
-#include "tools/gn/target.h"
-#include "tools/gn/value.h"
+#include "gn/build_settings.h"
+#include "gn/functions.h"
+#include "gn/parse_tree.h"
+#include "gn/settings.h"
+#include "gn/substitution_writer.h"
+#include "gn/target.h"
+#include "gn/value.h"
 
 namespace functions {
 
diff --git a/tools/gn/function_get_target_outputs_unittest.cc b/src/gn/function_get_target_outputs_unittest.cc
similarity index 96%
rename from tools/gn/function_get_target_outputs_unittest.cc
rename to src/gn/function_get_target_outputs_unittest.cc
index e94477b..4cbd8f9 100644
--- a/tools/gn/function_get_target_outputs_unittest.cc
+++ b/src/gn/function_get_target_outputs_unittest.cc
@@ -5,9 +5,9 @@
 #include <memory>
 #include <utility>
 
-#include "tools/gn/functions.h"
-#include "tools/gn/target.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/functions.h"
+#include "gn/target.h"
+#include "gn/test_with_scope.h"
 #include "util/test/test.h"
 
 namespace {
diff --git a/tools/gn/function_process_file_template.cc b/src/gn/function_process_file_template.cc
similarity index 92%
rename from tools/gn/function_process_file_template.cc
rename to src/gn/function_process_file_template.cc
index 7035503..d4e1e56 100644
--- a/tools/gn/function_process_file_template.cc
+++ b/src/gn/function_process_file_template.cc
@@ -3,14 +3,14 @@
 // found in the LICENSE file.
 
 #include "base/stl_util.h"
-#include "tools/gn/functions.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/settings.h"
-#include "tools/gn/substitution_list.h"
-#include "tools/gn/substitution_writer.h"
-#include "tools/gn/target.h"
-#include "tools/gn/value_extractors.h"
+#include "gn/functions.h"
+#include "gn/parse_tree.h"
+#include "gn/scope.h"
+#include "gn/settings.h"
+#include "gn/substitution_list.h"
+#include "gn/substitution_writer.h"
+#include "gn/target.h"
+#include "gn/value_extractors.h"
 
 namespace functions {
 
diff --git a/tools/gn/function_process_file_template_unittest.cc b/src/gn/function_process_file_template_unittest.cc
similarity index 96%
rename from tools/gn/function_process_file_template_unittest.cc
rename to src/gn/function_process_file_template_unittest.cc
index 1f7bd76..d9c9919 100644
--- a/tools/gn/function_process_file_template_unittest.cc
+++ b/src/gn/function_process_file_template_unittest.cc
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/functions.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/functions.h"
+#include "gn/test_with_scope.h"
 #include "util/test/test.h"
 
 TEST(FunctionProcessFileTemplates, SingleString) {
diff --git a/tools/gn/function_read_file.cc b/src/gn/function_read_file.cc
similarity index 91%
rename from tools/gn/function_read_file.cc
rename to src/gn/function_read_file.cc
index 8f34483..7aedf8e 100644
--- a/tools/gn/function_read_file.cc
+++ b/src/gn/function_read_file.cc
@@ -3,12 +3,12 @@
 // found in the LICENSE file.
 
 #include "base/files/file_util.h"
-#include "tools/gn/err.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/functions.h"
-#include "tools/gn/input_conversion.h"
-#include "tools/gn/input_file.h"
-#include "tools/gn/scheduler.h"
+#include "gn/err.h"
+#include "gn/filesystem_utils.h"
+#include "gn/functions.h"
+#include "gn/input_conversion.h"
+#include "gn/input_file.h"
+#include "gn/scheduler.h"
 
 // TODO(brettw) consider removing this. I originally wrote it for making the
 // WebKit bindings but misundersood what was required, and didn't need to
diff --git a/tools/gn/function_rebase_path.cc b/src/gn/function_rebase_path.cc
similarity index 96%
rename from tools/gn/function_rebase_path.cc
rename to src/gn/function_rebase_path.cc
index 945d641..bf7ec42 100644
--- a/tools/gn/function_rebase_path.cc
+++ b/src/gn/function_rebase_path.cc
@@ -4,15 +4,15 @@
 
 #include <stddef.h>
 
-#include "tools/gn/build_settings.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/functions.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/settings.h"
-#include "tools/gn/source_dir.h"
-#include "tools/gn/source_file.h"
-#include "tools/gn/value.h"
+#include "gn/build_settings.h"
+#include "gn/filesystem_utils.h"
+#include "gn/functions.h"
+#include "gn/parse_tree.h"
+#include "gn/scope.h"
+#include "gn/settings.h"
+#include "gn/source_dir.h"
+#include "gn/source_file.h"
+#include "gn/value.h"
 
 namespace functions {
 
diff --git a/tools/gn/function_rebase_path_unittest.cc b/src/gn/function_rebase_path_unittest.cc
similarity index 95%
rename from tools/gn/function_rebase_path_unittest.cc
rename to src/gn/function_rebase_path_unittest.cc
index 1bd9b86..a4c403f 100644
--- a/tools/gn/function_rebase_path_unittest.cc
+++ b/src/gn/function_rebase_path_unittest.cc
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/functions.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/functions.h"
+#include "gn/parse_tree.h"
+#include "gn/test_with_scope.h"
 #include "util/build_config.h"
 #include "util/test/test.h"
 
@@ -150,7 +150,7 @@
 // Test list input.
 TEST(RebasePath, List) {
   TestWithScope setup;
-  setup.scope()->set_source_dir(SourceDir("//tools/gn/"));
+  setup.scope()->set_source_dir(SourceDir("//gn/"));
 
   std::vector<Value> args;
   args.push_back(Value(nullptr, Value::LIST));
@@ -167,8 +167,8 @@
   ASSERT_EQ(Value::LIST, ret.type());
   ASSERT_EQ(2u, ret.list_value().size());
 
-  EXPECT_EQ("../../tools/gn/foo.txt", ret.list_value()[0].string_value());
-  EXPECT_EQ("../../tools/gn/bar.txt", ret.list_value()[1].string_value());
+  EXPECT_EQ("../../gn/foo.txt", ret.list_value()[0].string_value());
+  EXPECT_EQ("../../gn/bar.txt", ret.list_value()[1].string_value());
 }
 
 TEST(RebasePath, Errors) {
diff --git a/tools/gn/function_set_default_toolchain.cc b/src/gn/function_set_default_toolchain.cc
similarity index 93%
rename from tools/gn/function_set_default_toolchain.cc
rename to src/gn/function_set_default_toolchain.cc
index e8b1885..8620b2e 100644
--- a/tools/gn/function_set_default_toolchain.cc
+++ b/src/gn/function_set_default_toolchain.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/build_settings.h"
-#include "tools/gn/functions.h"
-#include "tools/gn/loader.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/settings.h"
+#include "gn/build_settings.h"
+#include "gn/functions.h"
+#include "gn/loader.h"
+#include "gn/parse_tree.h"
+#include "gn/scope.h"
+#include "gn/settings.h"
 
 namespace functions {
 
diff --git a/tools/gn/function_set_defaults.cc b/src/gn/function_set_defaults.cc
similarity index 95%
rename from tools/gn/function_set_defaults.cc
rename to src/gn/function_set_defaults.cc
index 8fbc490..031edc3 100644
--- a/tools/gn/function_set_defaults.cc
+++ b/src/gn/function_set_defaults.cc
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/err.h"
-#include "tools/gn/functions.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/scope.h"
+#include "gn/err.h"
+#include "gn/functions.h"
+#include "gn/parse_tree.h"
+#include "gn/scope.h"
 
 namespace functions {
 
diff --git a/tools/gn/function_template.cc b/src/gn/function_template.cc
similarity index 97%
rename from tools/gn/function_template.cc
rename to src/gn/function_template.cc
index aa23dc6..92d5419 100644
--- a/tools/gn/function_template.cc
+++ b/src/gn/function_template.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/functions.h"
+#include "gn/functions.h"
 
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/template.h"
-#include "tools/gn/value.h"
+#include "gn/parse_tree.h"
+#include "gn/scope.h"
+#include "gn/template.h"
+#include "gn/value.h"
 
 namespace functions {
 
diff --git a/tools/gn/function_template_unittest.cc b/src/gn/function_template_unittest.cc
similarity index 96%
rename from tools/gn/function_template_unittest.cc
rename to src/gn/function_template_unittest.cc
index 0525974..2ea9e8b 100644
--- a/tools/gn/function_template_unittest.cc
+++ b/src/gn/function_template_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/test_with_scope.h"
+#include "gn/test_with_scope.h"
 #include "util/test/test.h"
 
 // Checks that variables used inside template definitions aren't reported
diff --git a/tools/gn/function_toolchain.cc b/src/gn/function_toolchain.cc
similarity index 98%
rename from tools/gn/function_toolchain.cc
rename to src/gn/function_toolchain.cc
index c8e85de..7fc95eb 100644
--- a/tools/gn/function_toolchain.cc
+++ b/src/gn/function_toolchain.cc
@@ -7,20 +7,20 @@
 #include <memory>
 #include <utility>
 
-#include "tools/gn/c_tool.h"
-#include "tools/gn/err.h"
-#include "tools/gn/functions.h"
-#include "tools/gn/general_tool.h"
-#include "tools/gn/label.h"
-#include "tools/gn/label_ptr.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/scheduler.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/settings.h"
-#include "tools/gn/tool.h"
-#include "tools/gn/toolchain.h"
-#include "tools/gn/value_extractors.h"
-#include "tools/gn/variables.h"
+#include "gn/c_tool.h"
+#include "gn/err.h"
+#include "gn/functions.h"
+#include "gn/general_tool.h"
+#include "gn/label.h"
+#include "gn/label_ptr.h"
+#include "gn/parse_tree.h"
+#include "gn/scheduler.h"
+#include "gn/scope.h"
+#include "gn/settings.h"
+#include "gn/tool.h"
+#include "gn/toolchain.h"
+#include "gn/value_extractors.h"
+#include "gn/variables.h"
 
 namespace functions {
 
diff --git a/tools/gn/function_toolchain_unittest.cc b/src/gn/function_toolchain_unittest.cc
similarity index 94%
rename from tools/gn/function_toolchain_unittest.cc
rename to src/gn/function_toolchain_unittest.cc
index a10f729..2229495 100644
--- a/tools/gn/function_toolchain_unittest.cc
+++ b/src/gn/function_toolchain_unittest.cc
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/functions.h"
-#include "tools/gn/rust_tool.h"
-#include "tools/gn/scheduler.h"
-#include "tools/gn/test_with_scheduler.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/functions.h"
+#include "gn/rust_tool.h"
+#include "gn/scheduler.h"
+#include "gn/test_with_scheduler.h"
+#include "gn/test_with_scope.h"
 #include "util/test/test.h"
 
 using FunctionToolchain = TestWithScheduler;
diff --git a/tools/gn/function_write_file.cc b/src/gn/function_write_file.cc
similarity index 93%
rename from tools/gn/function_write_file.cc
rename to src/gn/function_write_file.cc
index d56724d..23506d3 100644
--- a/tools/gn/function_write_file.cc
+++ b/src/gn/function_write_file.cc
@@ -9,13 +9,13 @@
 #include "base/strings/string_split.h"
 #include "base/strings/string_util.h"
 #include "base/strings/utf_string_conversions.h"
-#include "tools/gn/err.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/functions.h"
-#include "tools/gn/input_file.h"
-#include "tools/gn/output_conversion.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/scheduler.h"
+#include "gn/err.h"
+#include "gn/filesystem_utils.h"
+#include "gn/functions.h"
+#include "gn/input_file.h"
+#include "gn/output_conversion.h"
+#include "gn/parse_tree.h"
+#include "gn/scheduler.h"
 #include "util/build_config.h"
 
 namespace functions {
diff --git a/tools/gn/function_write_file_unittest.cc b/src/gn/function_write_file_unittest.cc
similarity index 95%
rename from tools/gn/function_write_file_unittest.cc
rename to src/gn/function_write_file_unittest.cc
index a7fcd9b..fa8900d 100644
--- a/tools/gn/function_write_file_unittest.cc
+++ b/src/gn/function_write_file_unittest.cc
@@ -7,10 +7,10 @@
 #include "base/files/file.h"
 #include "base/files/file_util.h"
 #include "base/files/scoped_temp_dir.h"
-#include "tools/gn/functions.h"
-#include "tools/gn/scheduler.h"
-#include "tools/gn/test_with_scheduler.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/functions.h"
+#include "gn/scheduler.h"
+#include "gn/test_with_scheduler.h"
+#include "gn/test_with_scope.h"
 #include "util/test/test.h"
 
 #if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_HAIKU)
diff --git a/tools/gn/functions.cc b/src/gn/functions.cc
similarity index 98%
rename from tools/gn/functions.cc
rename to src/gn/functions.cc
index ce76280..0690419 100644
--- a/tools/gn/functions.cc
+++ b/src/gn/functions.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/functions.h"
+#include "gn/functions.h"
 
 #include <stddef.h>
 #include <iostream>
@@ -12,21 +12,21 @@
 
 #include "base/environment.h"
 #include "base/strings/string_util.h"
-#include "tools/gn/config.h"
-#include "tools/gn/config_values_generator.h"
-#include "tools/gn/err.h"
-#include "tools/gn/input_file.h"
-#include "tools/gn/parse_node_value_adapter.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/pool.h"
-#include "tools/gn/scheduler.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/settings.h"
-#include "tools/gn/template.h"
-#include "tools/gn/token.h"
-#include "tools/gn/value.h"
-#include "tools/gn/value_extractors.h"
-#include "tools/gn/variables.h"
+#include "gn/config.h"
+#include "gn/config_values_generator.h"
+#include "gn/err.h"
+#include "gn/input_file.h"
+#include "gn/parse_node_value_adapter.h"
+#include "gn/parse_tree.h"
+#include "gn/pool.h"
+#include "gn/scheduler.h"
+#include "gn/scope.h"
+#include "gn/settings.h"
+#include "gn/template.h"
+#include "gn/token.h"
+#include "gn/value.h"
+#include "gn/value_extractors.h"
+#include "gn/variables.h"
 
 namespace {
 
diff --git a/tools/gn/functions.h b/src/gn/functions.h
similarity index 100%
rename from tools/gn/functions.h
rename to src/gn/functions.h
diff --git a/tools/gn/functions_target.cc b/src/gn/functions_target.cc
similarity index 98%
rename from tools/gn/functions_target.cc
rename to src/gn/functions_target.cc
index ca996c5..0f9fc50 100644
--- a/tools/gn/functions_target.cc
+++ b/src/gn/functions_target.cc
@@ -2,16 +2,16 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/functions.h"
+#include "gn/functions.h"
 
-#include "tools/gn/config_values_generator.h"
-#include "tools/gn/err.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/target_generator.h"
-#include "tools/gn/template.h"
-#include "tools/gn/value.h"
-#include "tools/gn/variables.h"
+#include "gn/config_values_generator.h"
+#include "gn/err.h"
+#include "gn/parse_tree.h"
+#include "gn/scope.h"
+#include "gn/target_generator.h"
+#include "gn/template.h"
+#include "gn/value.h"
+#include "gn/variables.h"
 
 #define DEPENDENT_CONFIG_VARS \
   "  Dependent configs: all_dependent_configs, public_configs\n"
diff --git a/tools/gn/functions_target_rust_unittest.cc b/src/gn/functions_target_rust_unittest.cc
similarity index 98%
rename from tools/gn/functions_target_rust_unittest.cc
rename to src/gn/functions_target_rust_unittest.cc
index 2d3578f..a8239aa 100644
--- a/tools/gn/functions_target_rust_unittest.cc
+++ b/src/gn/functions_target_rust_unittest.cc
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/config.h"
-#include "tools/gn/scheduler.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/test_with_scheduler.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/config.h"
+#include "gn/scheduler.h"
+#include "gn/scope.h"
+#include "gn/test_with_scheduler.h"
+#include "gn/test_with_scope.h"
 #include "util/test/test.h"
 
 using RustFunctionsTarget = TestWithScheduler;
diff --git a/tools/gn/functions_target_unittest.cc b/src/gn/functions_target_unittest.cc
similarity index 97%
rename from tools/gn/functions_target_unittest.cc
rename to src/gn/functions_target_unittest.cc
index af8b0e0..04b2a4b 100644
--- a/tools/gn/functions_target_unittest.cc
+++ b/src/gn/functions_target_unittest.cc
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/scheduler.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/test_with_scheduler.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/scheduler.h"
+#include "gn/scope.h"
+#include "gn/test_with_scheduler.h"
+#include "gn/test_with_scope.h"
 #include "util/test/test.h"
 
 using FunctionsTarget = TestWithScheduler;
diff --git a/tools/gn/functions_unittest.cc b/src/gn/functions_unittest.cc
similarity index 97%
rename from tools/gn/functions_unittest.cc
rename to src/gn/functions_unittest.cc
index 8725c2e..ef5330e 100644
--- a/tools/gn/functions_unittest.cc
+++ b/src/gn/functions_unittest.cc
@@ -2,14 +2,14 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/functions.h"
+#include "gn/functions.h"
 
 #include <memory>
 #include <utility>
 
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/test_with_scope.h"
-#include "tools/gn/value.h"
+#include "gn/parse_tree.h"
+#include "gn/test_with_scope.h"
+#include "gn/value.h"
 #include "util/test/test.h"
 
 TEST(Functions, Defined) {
diff --git a/tools/gn/general_tool.cc b/src/gn/general_tool.cc
similarity index 95%
rename from tools/gn/general_tool.cc
rename to src/gn/general_tool.cc
index a0f285d..fc8878d 100644
--- a/tools/gn/general_tool.cc
+++ b/src/gn/general_tool.cc
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/general_tool.h"
-#include "tools/gn/target.h"
+#include "gn/general_tool.h"
+#include "gn/target.h"
 
 const char* GeneralTool::kGeneralToolStamp = "stamp";
 const char* GeneralTool::kGeneralToolCopy = "copy";
diff --git a/tools/gn/general_tool.h b/src/gn/general_tool.h
similarity index 86%
rename from tools/gn/general_tool.h
rename to src/gn/general_tool.h
index 827a48d..eb16b2c 100644
--- a/tools/gn/general_tool.h
+++ b/src/gn/general_tool.h
@@ -9,11 +9,11 @@
 
 #include "base/logging.h"
 #include "base/macros.h"
-#include "tools/gn/label.h"
-#include "tools/gn/label_ptr.h"
-#include "tools/gn/substitution_list.h"
-#include "tools/gn/substitution_pattern.h"
-#include "tools/gn/tool.h"
+#include "gn/label.h"
+#include "gn/label_ptr.h"
+#include "gn/substitution_list.h"
+#include "gn/substitution_pattern.h"
+#include "gn/tool.h"
 
 class GeneralTool : public Tool {
  public:
diff --git a/tools/gn/generated_file_target_generator.cc b/src/gn/generated_file_target_generator.cc
similarity index 94%
rename from tools/gn/generated_file_target_generator.cc
rename to src/gn/generated_file_target_generator.cc
index 35e0db4..16ac639 100644
--- a/tools/gn/generated_file_target_generator.cc
+++ b/src/gn/generated_file_target_generator.cc
@@ -2,14 +2,14 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/generated_file_target_generator.h"
+#include "gn/generated_file_target_generator.h"
 
-#include "tools/gn/err.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/target.h"
-#include "tools/gn/variables.h"
+#include "gn/err.h"
+#include "gn/filesystem_utils.h"
+#include "gn/parse_tree.h"
+#include "gn/scope.h"
+#include "gn/target.h"
+#include "gn/variables.h"
 
 GeneratedFileTargetGenerator::GeneratedFileTargetGenerator(
     Target* target,
diff --git a/tools/gn/generated_file_target_generator.h b/src/gn/generated_file_target_generator.h
similarity index 95%
rename from tools/gn/generated_file_target_generator.h
rename to src/gn/generated_file_target_generator.h
index cdcea14..dcc4814 100644
--- a/tools/gn/generated_file_target_generator.h
+++ b/src/gn/generated_file_target_generator.h
@@ -6,8 +6,8 @@
 #define TOOLS_GN_GENERATED_FILE_TARGET_GENERATOR_H_
 
 #include "base/macros.h"
-#include "tools/gn/target.h"
-#include "tools/gn/target_generator.h"
+#include "gn/target.h"
+#include "gn/target_generator.h"
 
 // Collects and writes specified data.
 class GeneratedFileTargetGenerator : public TargetGenerator {
diff --git a/tools/gn/gn_main.cc b/src/gn/gn_main.cc
similarity index 93%
rename from tools/gn/gn_main.cc
rename to src/gn/gn_main.cc
index 8b9f499..e839b32 100644
--- a/tools/gn/gn_main.cc
+++ b/src/gn/gn_main.cc
@@ -7,11 +7,11 @@
 
 #include "base/command_line.h"
 #include "base/strings/utf_string_conversions.h"
-#include "tools/gn/commands.h"
-#include "tools/gn/err.h"
-#include "tools/gn/location.h"
-#include "tools/gn/standard_out.h"
-#include "tools/gn/switches.h"
+#include "gn/commands.h"
+#include "gn/err.h"
+#include "gn/location.h"
+#include "gn/standard_out.h"
+#include "gn/switches.h"
 #include "util/build_config.h"
 #include "util/msg_loop.h"
 #include "util/sys_info.h"
diff --git a/tools/gn/group_target_generator.cc b/src/gn/group_target_generator.cc
similarity index 84%
rename from tools/gn/group_target_generator.cc
rename to src/gn/group_target_generator.cc
index 2219e5e..2b91066 100644
--- a/tools/gn/group_target_generator.cc
+++ b/src/gn/group_target_generator.cc
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/group_target_generator.h"
+#include "gn/group_target_generator.h"
 
-#include "tools/gn/target.h"
-#include "tools/gn/variables.h"
+#include "gn/target.h"
+#include "gn/variables.h"
 
 GroupTargetGenerator::GroupTargetGenerator(
     Target* target,
diff --git a/tools/gn/group_target_generator.h b/src/gn/group_target_generator.h
similarity index 94%
rename from tools/gn/group_target_generator.h
rename to src/gn/group_target_generator.h
index 502f40b..9845929 100644
--- a/tools/gn/group_target_generator.h
+++ b/src/gn/group_target_generator.h
@@ -6,7 +6,7 @@
 #define TOOLS_GN_GROUP_TARGET_GENERATOR_H_
 
 #include "base/macros.h"
-#include "tools/gn/target_generator.h"
+#include "gn/target_generator.h"
 
 // Populates a Target with the values for a group rule.
 class GroupTargetGenerator : public TargetGenerator {
diff --git a/tools/gn/header_checker.cc b/src/gn/header_checker.cc
similarity index 98%
rename from tools/gn/header_checker.cc
rename to src/gn/header_checker.cc
index d9ff4b2..e80cdeb 100644
--- a/tools/gn/header_checker.cc
+++ b/src/gn/header_checker.cc
@@ -2,23 +2,23 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/header_checker.h"
+#include "gn/header_checker.h"
 
 #include <algorithm>
 
 #include "base/containers/queue.h"
 #include "base/files/file_util.h"
 #include "base/strings/string_util.h"
-#include "tools/gn/build_settings.h"
-#include "tools/gn/builder.h"
-#include "tools/gn/c_include_iterator.h"
-#include "tools/gn/config.h"
-#include "tools/gn/config_values_extractors.h"
-#include "tools/gn/err.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/scheduler.h"
-#include "tools/gn/target.h"
-#include "tools/gn/trace.h"
+#include "gn/build_settings.h"
+#include "gn/builder.h"
+#include "gn/c_include_iterator.h"
+#include "gn/config.h"
+#include "gn/config_values_extractors.h"
+#include "gn/err.h"
+#include "gn/filesystem_utils.h"
+#include "gn/scheduler.h"
+#include "gn/target.h"
+#include "gn/trace.h"
 #include "util/worker_pool.h"
 
 namespace {
diff --git a/tools/gn/header_checker.h b/src/gn/header_checker.h
similarity index 98%
rename from tools/gn/header_checker.h
rename to src/gn/header_checker.h
index b668441..393e988 100644
--- a/tools/gn/header_checker.h
+++ b/src/gn/header_checker.h
@@ -17,8 +17,8 @@
 #include "base/gtest_prod_util.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "tools/gn/err.h"
-#include "tools/gn/source_dir.h"
+#include "gn/err.h"
+#include "gn/source_dir.h"
 
 class BuildSettings;
 class InputFile;
diff --git a/tools/gn/header_checker_unittest.cc b/src/gn/header_checker_unittest.cc
similarity index 98%
rename from tools/gn/header_checker_unittest.cc
rename to src/gn/header_checker_unittest.cc
index 4243696..8edfa89 100644
--- a/tools/gn/header_checker_unittest.cc
+++ b/src/gn/header_checker_unittest.cc
@@ -5,12 +5,12 @@
 #include <ostream>
 #include <vector>
 
-#include "tools/gn/config.h"
-#include "tools/gn/header_checker.h"
-#include "tools/gn/scheduler.h"
-#include "tools/gn/target.h"
-#include "tools/gn/test_with_scheduler.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/config.h"
+#include "gn/header_checker.h"
+#include "gn/scheduler.h"
+#include "gn/target.h"
+#include "gn/test_with_scheduler.h"
+#include "gn/test_with_scope.h"
 #include "util/test/test.h"
 
 namespace {
diff --git a/tools/gn/import_manager.cc b/src/gn/import_manager.cc
similarity index 96%
rename from tools/gn/import_manager.cc
rename to src/gn/import_manager.cc
index 9339ff5..a4928bf 100644
--- a/tools/gn/import_manager.cc
+++ b/src/gn/import_manager.cc
@@ -2,15 +2,15 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/import_manager.h"
+#include "gn/import_manager.h"
 
 #include <memory>
 
-#include "tools/gn/err.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/scheduler.h"
-#include "tools/gn/scope_per_file_provider.h"
-#include "tools/gn/trace.h"
+#include "gn/err.h"
+#include "gn/parse_tree.h"
+#include "gn/scheduler.h"
+#include "gn/scope_per_file_provider.h"
+#include "gn/trace.h"
 #include "util/ticks.h"
 
 namespace {
diff --git a/tools/gn/import_manager.h b/src/gn/import_manager.h
similarity index 100%
rename from tools/gn/import_manager.h
rename to src/gn/import_manager.h
diff --git a/tools/gn/inherited_libraries.cc b/src/gn/inherited_libraries.cc
similarity index 96%
rename from tools/gn/inherited_libraries.cc
rename to src/gn/inherited_libraries.cc
index 482256f..87974ae 100644
--- a/tools/gn/inherited_libraries.cc
+++ b/src/gn/inherited_libraries.cc
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/inherited_libraries.h"
+#include "gn/inherited_libraries.h"
 
-#include "tools/gn/target.h"
+#include "gn/target.h"
 
 InheritedLibraries::InheritedLibraries() = default;
 
diff --git a/tools/gn/inherited_libraries.h b/src/gn/inherited_libraries.h
similarity index 100%
rename from tools/gn/inherited_libraries.h
rename to src/gn/inherited_libraries.h
diff --git a/tools/gn/inherited_libraries_unittest.cc b/src/gn/inherited_libraries_unittest.cc
similarity index 97%
rename from tools/gn/inherited_libraries_unittest.cc
rename to src/gn/inherited_libraries_unittest.cc
index 185b60b..bd77426 100644
--- a/tools/gn/inherited_libraries_unittest.cc
+++ b/src/gn/inherited_libraries_unittest.cc
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/inherited_libraries.h"
-#include "tools/gn/target.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/inherited_libraries.h"
+#include "gn/target.h"
+#include "gn/test_with_scope.h"
 #include "util/test/test.h"
 
 namespace {
diff --git a/tools/gn/input_conversion.cc b/src/gn/input_conversion.cc
similarity index 96%
rename from tools/gn/input_conversion.cc
rename to src/gn/input_conversion.cc
index 75cd158..46d3dde 100644
--- a/tools/gn/input_conversion.cc
+++ b/src/gn/input_conversion.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/input_conversion.h"
+#include "gn/input_conversion.h"
 
 #include <iterator>
 #include <memory>
@@ -13,17 +13,17 @@
 #include "base/strings/string_split.h"
 #include "base/strings/string_util.h"
 #include "base/values.h"
-#include "tools/gn/build_settings.h"
-#include "tools/gn/err.h"
-#include "tools/gn/input_file.h"
-#include "tools/gn/label.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/parser.h"
-#include "tools/gn/scheduler.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/settings.h"
-#include "tools/gn/tokenizer.h"
-#include "tools/gn/value.h"
+#include "gn/build_settings.h"
+#include "gn/err.h"
+#include "gn/input_file.h"
+#include "gn/label.h"
+#include "gn/parse_tree.h"
+#include "gn/parser.h"
+#include "gn/scheduler.h"
+#include "gn/scope.h"
+#include "gn/settings.h"
+#include "gn/tokenizer.h"
+#include "gn/value.h"
 
 namespace {
 
diff --git a/tools/gn/input_conversion.h b/src/gn/input_conversion.h
similarity index 100%
rename from tools/gn/input_conversion.h
rename to src/gn/input_conversion.h
diff --git a/tools/gn/input_conversion_unittest.cc b/src/gn/input_conversion_unittest.cc
similarity index 96%
rename from tools/gn/input_conversion_unittest.cc
rename to src/gn/input_conversion_unittest.cc
index 434d952..054b337 100644
--- a/tools/gn/input_conversion_unittest.cc
+++ b/src/gn/input_conversion_unittest.cc
@@ -2,15 +2,15 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/input_conversion.h"
+#include "gn/input_conversion.h"
 
-#include "tools/gn/err.h"
-#include "tools/gn/input_file.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/scheduler.h"
-#include "tools/gn/test_with_scheduler.h"
-#include "tools/gn/test_with_scope.h"
-#include "tools/gn/value.h"
+#include "gn/err.h"
+#include "gn/input_file.h"
+#include "gn/parse_tree.h"
+#include "gn/scheduler.h"
+#include "gn/test_with_scheduler.h"
+#include "gn/test_with_scope.h"
+#include "gn/value.h"
 #include "util/test/test.h"
 
 namespace {
diff --git a/tools/gn/input_file.cc b/src/gn/input_file.cc
similarity index 94%
rename from tools/gn/input_file.cc
rename to src/gn/input_file.cc
index dc5ca37..8c92c48 100644
--- a/tools/gn/input_file.cc
+++ b/src/gn/input_file.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/input_file.h"
+#include "gn/input_file.h"
 
 #include "base/files/file_util.h"
 
diff --git a/tools/gn/input_file.h b/src/gn/input_file.h
similarity index 96%
rename from tools/gn/input_file.h
rename to src/gn/input_file.h
index 7a64c65..efb15bd 100644
--- a/tools/gn/input_file.h
+++ b/src/gn/input_file.h
@@ -10,8 +10,8 @@
 #include "base/files/file_path.h"
 #include "base/logging.h"
 #include "base/macros.h"
-#include "tools/gn/source_dir.h"
-#include "tools/gn/source_file.h"
+#include "gn/source_dir.h"
+#include "gn/source_file.h"
 
 class InputFile {
  public:
diff --git a/tools/gn/input_file_manager.cc b/src/gn/input_file_manager.cc
similarity index 97%
rename from tools/gn/input_file_manager.cc
rename to src/gn/input_file_manager.cc
index 320e7a5..f529990 100644
--- a/tools/gn/input_file_manager.cc
+++ b/src/gn/input_file_manager.cc
@@ -2,18 +2,18 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/input_file_manager.h"
+#include "gn/input_file_manager.h"
 
 #include <memory>
 #include <utility>
 
 #include "base/stl_util.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/parser.h"
-#include "tools/gn/scheduler.h"
-#include "tools/gn/scope_per_file_provider.h"
-#include "tools/gn/tokenizer.h"
-#include "tools/gn/trace.h"
+#include "gn/filesystem_utils.h"
+#include "gn/parser.h"
+#include "gn/scheduler.h"
+#include "gn/scope_per_file_provider.h"
+#include "gn/tokenizer.h"
+#include "gn/trace.h"
 
 namespace {
 
diff --git a/tools/gn/input_file_manager.h b/src/gn/input_file_manager.h
similarity index 97%
rename from tools/gn/input_file_manager.h
rename to src/gn/input_file_manager.h
index 9676f2f..32a97c7 100644
--- a/tools/gn/input_file_manager.h
+++ b/src/gn/input_file_manager.h
@@ -15,10 +15,10 @@
 #include "base/files/file_path.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "tools/gn/build_settings.h"
-#include "tools/gn/input_file.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/settings.h"
+#include "gn/build_settings.h"
+#include "gn/input_file.h"
+#include "gn/parse_tree.h"
+#include "gn/settings.h"
 #include "util/auto_reset_event.h"
 
 class Err;
diff --git a/tools/gn/item.cc b/src/gn/item.cc
similarity index 95%
rename from tools/gn/item.cc
rename to src/gn/item.cc
index f36ff02..308d1e2 100644
--- a/tools/gn/item.cc
+++ b/src/gn/item.cc
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/item.h"
+#include "gn/item.h"
 
 #include "base/logging.h"
-#include "tools/gn/settings.h"
+#include "gn/settings.h"
 
 Item::Item(const Settings* settings,
            const Label& label,
diff --git a/tools/gn/item.h b/src/gn/item.h
similarity index 95%
rename from tools/gn/item.h
rename to src/gn/item.h
index f2e7c06..d53d9ed 100644
--- a/tools/gn/item.h
+++ b/src/gn/item.h
@@ -8,9 +8,9 @@
 #include <set>
 #include <string>
 
-#include "tools/gn/label.h"
-#include "tools/gn/source_file.h"
-#include "tools/gn/visibility.h"
+#include "gn/label.h"
+#include "gn/source_file.h"
+#include "gn/visibility.h"
 
 class Config;
 class ParseNode;
diff --git a/tools/gn/json_project_writer.cc b/src/gn/json_project_writer.cc
similarity index 95%
rename from tools/gn/json_project_writer.cc
rename to src/gn/json_project_writer.cc
index 1b00086..636dc18 100644
--- a/tools/gn/json_project_writer.cc
+++ b/src/gn/json_project_writer.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/json_project_writer.h"
+#include "gn/json_project_writer.h"
 
 #include <iostream>
 #include <memory>
@@ -10,13 +10,13 @@
 #include "base/command_line.h"
 #include "base/json/json_writer.h"
 #include "base/strings/string_number_conversions.h"
-#include "tools/gn/builder.h"
-#include "tools/gn/commands.h"
-#include "tools/gn/deps_iterator.h"
-#include "tools/gn/desc_builder.h"
-#include "tools/gn/exec_process.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/settings.h"
+#include "gn/builder.h"
+#include "gn/commands.h"
+#include "gn/deps_iterator.h"
+#include "gn/desc_builder.h"
+#include "gn/exec_process.h"
+#include "gn/filesystem_utils.h"
+#include "gn/settings.h"
 
 // Structure of JSON output file
 // {
diff --git a/tools/gn/json_project_writer.h b/src/gn/json_project_writer.h
similarity index 94%
rename from tools/gn/json_project_writer.h
rename to src/gn/json_project_writer.h
index 2c8a2b7..72780ee 100644
--- a/tools/gn/json_project_writer.h
+++ b/src/gn/json_project_writer.h
@@ -5,8 +5,8 @@
 #ifndef TOOLS_GN_JSON_WRITER_H_
 #define TOOLS_GN_JSON_WRITER_H_
 
-#include "tools/gn/err.h"
-#include "tools/gn/target.h"
+#include "gn/err.h"
+#include "gn/target.h"
 
 class Builder;
 class BuildSettings;
diff --git a/tools/gn/json_project_writer_unittest.cc b/src/gn/json_project_writer_unittest.cc
similarity index 96%
rename from tools/gn/json_project_writer_unittest.cc
rename to src/gn/json_project_writer_unittest.cc
index 9c933dd..f82bc0d 100644
--- a/tools/gn/json_project_writer_unittest.cc
+++ b/src/gn/json_project_writer_unittest.cc
@@ -3,10 +3,10 @@
 // found in the LICENSE file.
 
 #include "base/strings/string_util.h"
-#include "tools/gn/json_project_writer.h"
-#include "tools/gn/substitution_list.h"
-#include "tools/gn/target.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/json_project_writer.h"
+#include "gn/substitution_list.h"
+#include "gn/target.h"
+#include "gn/test_with_scope.h"
 #include "util/build_config.h"
 #include "util/test/test.h"
 
diff --git a/tools/gn/label.cc b/src/gn/label.cc
similarity index 98%
rename from tools/gn/label.cc
rename to src/gn/label.cc
index e5a1148..9bba8b5 100644
--- a/tools/gn/label.cc
+++ b/src/gn/label.cc
@@ -2,14 +2,14 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/label.h"
+#include "gn/label.h"
 
 #include "base/logging.h"
 #include "base/strings/string_util.h"
-#include "tools/gn/err.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/value.h"
+#include "gn/err.h"
+#include "gn/filesystem_utils.h"
+#include "gn/parse_tree.h"
+#include "gn/value.h"
 #include "util/build_config.h"
 
 namespace {
diff --git a/tools/gn/label.h b/src/gn/label.h
similarity index 98%
rename from tools/gn/label.h
rename to src/gn/label.h
index 9fd245f..3be06e0 100644
--- a/tools/gn/label.h
+++ b/src/gn/label.h
@@ -9,7 +9,7 @@
 
 #include <stddef.h>
 
-#include "tools/gn/source_dir.h"
+#include "gn/source_dir.h"
 
 class Err;
 class Value;
diff --git a/tools/gn/label_pattern.cc b/src/gn/label_pattern.cc
similarity index 98%
rename from tools/gn/label_pattern.cc
rename to src/gn/label_pattern.cc
index b69cfe4..d5f8f6f 100644
--- a/tools/gn/label_pattern.cc
+++ b/src/gn/label_pattern.cc
@@ -2,14 +2,14 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/label_pattern.h"
+#include "gn/label_pattern.h"
 
 #include <stddef.h>
 
 #include "base/strings/string_util.h"
-#include "tools/gn/err.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/value.h"
+#include "gn/err.h"
+#include "gn/filesystem_utils.h"
+#include "gn/value.h"
 #include "util/build_config.h"
 
 const char kLabelPattern_Help[] =
diff --git a/tools/gn/label_pattern.h b/src/gn/label_pattern.h
similarity index 97%
rename from tools/gn/label_pattern.h
rename to src/gn/label_pattern.h
index 675d328..b64e838 100644
--- a/tools/gn/label_pattern.h
+++ b/src/gn/label_pattern.h
@@ -7,8 +7,8 @@
 
 #include <string_view>
 
-#include "tools/gn/label.h"
-#include "tools/gn/source_dir.h"
+#include "gn/label.h"
+#include "gn/source_dir.h"
 
 class Err;
 class Value;
diff --git a/tools/gn/label_pattern_unittest.cc b/src/gn/label_pattern_unittest.cc
similarity index 97%
rename from tools/gn/label_pattern_unittest.cc
rename to src/gn/label_pattern_unittest.cc
index 6f0b0e0..de7b88d 100644
--- a/tools/gn/label_pattern_unittest.cc
+++ b/src/gn/label_pattern_unittest.cc
@@ -7,9 +7,9 @@
 #include <iterator>
 
 #include "base/macros.h"
-#include "tools/gn/err.h"
-#include "tools/gn/label_pattern.h"
-#include "tools/gn/value.h"
+#include "gn/err.h"
+#include "gn/label_pattern.h"
+#include "gn/value.h"
 #include "util/test/test.h"
 
 namespace {
diff --git a/tools/gn/label_ptr.h b/src/gn/label_ptr.h
similarity index 98%
rename from tools/gn/label_ptr.h
rename to src/gn/label_ptr.h
index d51ef16..fd4d5c0 100644
--- a/tools/gn/label_ptr.h
+++ b/src/gn/label_ptr.h
@@ -9,7 +9,7 @@
 
 #include <functional>
 
-#include "tools/gn/label.h"
+#include "gn/label.h"
 
 class Config;
 class ParseNode;
diff --git a/tools/gn/label_unittest.cc b/src/gn/label_unittest.cc
similarity index 97%
rename from tools/gn/label_unittest.cc
rename to src/gn/label_unittest.cc
index f31bfdd..f46970b 100644
--- a/tools/gn/label_unittest.cc
+++ b/src/gn/label_unittest.cc
@@ -7,9 +7,9 @@
 #include <iterator>
 
 #include "base/macros.h"
-#include "tools/gn/err.h"
-#include "tools/gn/label.h"
-#include "tools/gn/value.h"
+#include "gn/err.h"
+#include "gn/label.h"
+#include "gn/value.h"
 #include "util/build_config.h"
 #include "util/test/test.h"
 
diff --git a/tools/gn/lib_file.cc b/src/gn/lib_file.cc
similarity index 94%
rename from tools/gn/lib_file.cc
rename to src/gn/lib_file.cc
index 50295ac..cbb67f1 100644
--- a/tools/gn/lib_file.cc
+++ b/src/gn/lib_file.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/lib_file.h"
+#include "gn/lib_file.h"
 
 #include "base/logging.h"
 
diff --git a/tools/gn/lib_file.h b/src/gn/lib_file.h
similarity index 97%
rename from tools/gn/lib_file.h
rename to src/gn/lib_file.h
index b971ad6..47952f8 100644
--- a/tools/gn/lib_file.h
+++ b/src/gn/lib_file.h
@@ -11,7 +11,7 @@
 #include <string>
 #include <string_view>
 
-#include "tools/gn/source_file.h"
+#include "gn/source_file.h"
 
 // Represents an entry in "libs" list. Can be either a path (a SourceFile) or
 // a library name (a string).
diff --git a/tools/gn/loader.cc b/src/gn/loader.cc
similarity index 96%
rename from tools/gn/loader.cc
rename to src/gn/loader.cc
index 148ba39..d6cf5fe 100644
--- a/tools/gn/loader.cc
+++ b/src/gn/loader.cc
@@ -2,21 +2,21 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/loader.h"
+#include "gn/loader.h"
 
 #include <memory>
 
-#include "tools/gn/build_settings.h"
-#include "tools/gn/err.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/input_file_manager.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/scheduler.h"
-#include "tools/gn/scope_per_file_provider.h"
-#include "tools/gn/settings.h"
-#include "tools/gn/source_dir.h"
-#include "tools/gn/source_file.h"
-#include "tools/gn/trace.h"
+#include "gn/build_settings.h"
+#include "gn/err.h"
+#include "gn/filesystem_utils.h"
+#include "gn/input_file_manager.h"
+#include "gn/parse_tree.h"
+#include "gn/scheduler.h"
+#include "gn/scope_per_file_provider.h"
+#include "gn/settings.h"
+#include "gn/source_dir.h"
+#include "gn/source_file.h"
+#include "gn/trace.h"
 
 namespace {
 
diff --git a/tools/gn/loader.h b/src/gn/loader.h
similarity index 98%
rename from tools/gn/loader.h
rename to src/gn/loader.h
index bd679bb..c4a2dfe 100644
--- a/tools/gn/loader.h
+++ b/src/gn/loader.h
@@ -11,8 +11,8 @@
 #include <set>
 
 #include "base/memory/ref_counted.h"
-#include "tools/gn/label.h"
-#include "tools/gn/scope.h"
+#include "gn/label.h"
+#include "gn/scope.h"
 #include "util/msg_loop.h"
 
 class BuildSettings;
diff --git a/tools/gn/loader_unittest.cc b/src/gn/loader_unittest.cc
similarity index 96%
rename from tools/gn/loader_unittest.cc
rename to src/gn/loader_unittest.cc
index ede20d7..3bd598b 100644
--- a/tools/gn/loader_unittest.cc
+++ b/src/gn/loader_unittest.cc
@@ -8,14 +8,14 @@
 #include <utility>
 #include <vector>
 
-#include "tools/gn/build_settings.h"
-#include "tools/gn/err.h"
-#include "tools/gn/loader.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/parser.h"
-#include "tools/gn/scheduler.h"
-#include "tools/gn/test_with_scheduler.h"
-#include "tools/gn/tokenizer.h"
+#include "gn/build_settings.h"
+#include "gn/err.h"
+#include "gn/loader.h"
+#include "gn/parse_tree.h"
+#include "gn/parser.h"
+#include "gn/scheduler.h"
+#include "gn/test_with_scheduler.h"
+#include "gn/tokenizer.h"
 #include "util/msg_loop.h"
 #include "util/test/test.h"
 
diff --git a/tools/gn/location.cc b/src/gn/location.cc
similarity index 96%
rename from tools/gn/location.cc
rename to src/gn/location.cc
index 2e7b27b..95bdd13 100644
--- a/tools/gn/location.cc
+++ b/src/gn/location.cc
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/location.h"
+#include "gn/location.h"
 
 #include <tuple>
 
 #include "base/logging.h"
 #include "base/strings/string_number_conversions.h"
-#include "tools/gn/input_file.h"
+#include "gn/input_file.h"
 
 Location::Location() = default;
 
diff --git a/tools/gn/location.h b/src/gn/location.h
similarity index 100%
rename from tools/gn/location.h
rename to src/gn/location.h
diff --git a/tools/gn/metadata.cc b/src/gn/metadata.cc
similarity index 98%
rename from tools/gn/metadata.cc
rename to src/gn/metadata.cc
index b6d5076..236ceeb 100644
--- a/tools/gn/metadata.cc
+++ b/src/gn/metadata.cc
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/metadata.h"
+#include "gn/metadata.h"
 
-#include "tools/gn/filesystem_utils.h"
+#include "gn/filesystem_utils.h"
 
 const char kMetadata_Help[] =
     R"(Metadata Collection
diff --git a/tools/gn/metadata.h b/src/gn/metadata.h
similarity index 96%
rename from tools/gn/metadata.h
rename to src/gn/metadata.h
index 7b6168a..2e2b742 100644
--- a/tools/gn/metadata.h
+++ b/src/gn/metadata.h
@@ -7,9 +7,9 @@
 
 #include <memory>
 
-#include "tools/gn/build_settings.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/source_dir.h"
+#include "gn/build_settings.h"
+#include "gn/scope.h"
+#include "gn/source_dir.h"
 
 extern const char kMetadata_Help[];
 
diff --git a/tools/gn/metadata_unittest.cc b/src/gn/metadata_unittest.cc
similarity index 98%
rename from tools/gn/metadata_unittest.cc
rename to src/gn/metadata_unittest.cc
index 683e65f..df57cd5 100644
--- a/tools/gn/metadata_unittest.cc
+++ b/src/gn/metadata_unittest.cc
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/metadata.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/metadata.h"
+#include "gn/test_with_scope.h"
 #include "util/test/test.h"
 
 TEST(MetadataTest, SetContents) {
diff --git a/tools/gn/metadata_walk.cc b/src/gn/metadata_walk.cc
similarity index 95%
rename from tools/gn/metadata_walk.cc
rename to src/gn/metadata_walk.cc
index 3022e5e..19011cf 100644
--- a/tools/gn/metadata_walk.cc
+++ b/src/gn/metadata_walk.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/metadata_walk.h"
+#include "gn/metadata_walk.h"
 
 std::vector<Value> WalkMetadata(
     const UniqueVector<const Target*>& targets_to_walk,
diff --git a/tools/gn/metadata_walk.h b/src/gn/metadata_walk.h
similarity index 85%
rename from tools/gn/metadata_walk.h
rename to src/gn/metadata_walk.h
index 9f4f34d..011ed07 100644
--- a/tools/gn/metadata_walk.h
+++ b/src/gn/metadata_walk.h
@@ -5,10 +5,10 @@
 #ifndef TOOLS_GN_METADATAWALK_H_
 #define TOOLS_GN_METADATAWALK_H_
 
-#include "tools/gn/build_settings.h"
-#include "tools/gn/target.h"
-#include "tools/gn/unique_vector.h"
-#include "tools/gn/value.h"
+#include "gn/build_settings.h"
+#include "gn/target.h"
+#include "gn/unique_vector.h"
+#include "gn/value.h"
 
 // Function to collect metadata from resolved targets listed in targets_walked.
 // Intended to be called after all targets are resolved.
diff --git a/tools/gn/metadata_walk_unittest.cc b/src/gn/metadata_walk_unittest.cc
similarity index 97%
rename from tools/gn/metadata_walk_unittest.cc
rename to src/gn/metadata_walk_unittest.cc
index 04f7cd1..4fcb31d 100644
--- a/tools/gn/metadata_walk_unittest.cc
+++ b/src/gn/metadata_walk_unittest.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/metadata_walk.h"
+#include "gn/metadata_walk.h"
 
-#include "tools/gn/metadata.h"
-#include "tools/gn/target.h"
-#include "tools/gn/test_with_scope.h"
-#include "tools/gn/unique_vector.h"
+#include "gn/metadata.h"
+#include "gn/target.h"
+#include "gn/test_with_scope.h"
+#include "gn/unique_vector.h"
 #include "util/test/test.h"
 
 TEST(MetadataWalkTest, CollectNoRecurse) {
diff --git a/tools/gn/ninja_action_target_writer.cc b/src/gn/ninja_action_target_writer.cc
similarity index 96%
rename from tools/gn/ninja_action_target_writer.cc
rename to src/gn/ninja_action_target_writer.cc
index 31f5261..bb78254 100644
--- a/tools/gn/ninja_action_target_writer.cc
+++ b/src/gn/ninja_action_target_writer.cc
@@ -2,19 +2,19 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/ninja_action_target_writer.h"
+#include "gn/ninja_action_target_writer.h"
 
 #include <stddef.h>
 
 #include "base/strings/string_util.h"
-#include "tools/gn/deps_iterator.h"
-#include "tools/gn/err.h"
-#include "tools/gn/general_tool.h"
-#include "tools/gn/pool.h"
-#include "tools/gn/settings.h"
-#include "tools/gn/string_utils.h"
-#include "tools/gn/substitution_writer.h"
-#include "tools/gn/target.h"
+#include "gn/deps_iterator.h"
+#include "gn/err.h"
+#include "gn/general_tool.h"
+#include "gn/pool.h"
+#include "gn/settings.h"
+#include "gn/string_utils.h"
+#include "gn/substitution_writer.h"
+#include "gn/target.h"
 
 NinjaActionTargetWriter::NinjaActionTargetWriter(const Target* target,
                                                  std::ostream& out)
diff --git a/tools/gn/ninja_action_target_writer.h b/src/gn/ninja_action_target_writer.h
similarity index 97%
rename from tools/gn/ninja_action_target_writer.h
rename to src/gn/ninja_action_target_writer.h
index 36d7cd9..eb94284 100644
--- a/tools/gn/ninja_action_target_writer.h
+++ b/src/gn/ninja_action_target_writer.h
@@ -9,7 +9,7 @@
 
 #include "base/gtest_prod_util.h"
 #include "base/macros.h"
-#include "tools/gn/ninja_target_writer.h"
+#include "gn/ninja_target_writer.h"
 
 class OutputFile;
 
diff --git a/tools/gn/ninja_action_target_writer_unittest.cc b/src/gn/ninja_action_target_writer_unittest.cc
similarity index 98%
rename from tools/gn/ninja_action_target_writer_unittest.cc
rename to src/gn/ninja_action_target_writer_unittest.cc
index 90173b3..d217ab2 100644
--- a/tools/gn/ninja_action_target_writer_unittest.cc
+++ b/src/gn/ninja_action_target_writer_unittest.cc
@@ -5,11 +5,11 @@
 #include <algorithm>
 #include <sstream>
 
-#include "tools/gn/ninja_action_target_writer.h"
-#include "tools/gn/pool.h"
-#include "tools/gn/substitution_list.h"
-#include "tools/gn/target.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/ninja_action_target_writer.h"
+#include "gn/pool.h"
+#include "gn/substitution_list.h"
+#include "gn/target.h"
+#include "gn/test_with_scope.h"
 #include "util/build_config.h"
 #include "util/test/test.h"
 
diff --git a/tools/gn/ninja_binary_target_writer.cc b/src/gn/ninja_binary_target_writer.cc
similarity index 94%
rename from tools/gn/ninja_binary_target_writer.cc
rename to src/gn/ninja_binary_target_writer.cc
index 2bbb676..bf517a2 100644
--- a/tools/gn/ninja_binary_target_writer.cc
+++ b/src/gn/ninja_binary_target_writer.cc
@@ -2,22 +2,22 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/ninja_binary_target_writer.h"
+#include "gn/ninja_binary_target_writer.h"
 
 #include <sstream>
 
 #include "base/strings/string_util.h"
-#include "tools/gn/config_values_extractors.h"
-#include "tools/gn/deps_iterator.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/general_tool.h"
-#include "tools/gn/ninja_c_binary_target_writer.h"
-#include "tools/gn/ninja_rust_binary_target_writer.h"
-#include "tools/gn/ninja_utils.h"
-#include "tools/gn/settings.h"
-#include "tools/gn/string_utils.h"
-#include "tools/gn/substitution_writer.h"
-#include "tools/gn/target.h"
+#include "gn/config_values_extractors.h"
+#include "gn/deps_iterator.h"
+#include "gn/filesystem_utils.h"
+#include "gn/general_tool.h"
+#include "gn/ninja_c_binary_target_writer.h"
+#include "gn/ninja_rust_binary_target_writer.h"
+#include "gn/ninja_utils.h"
+#include "gn/settings.h"
+#include "gn/string_utils.h"
+#include "gn/substitution_writer.h"
+#include "gn/target.h"
 
 namespace {
 
diff --git a/tools/gn/ninja_binary_target_writer.h b/src/gn/ninja_binary_target_writer.h
similarity index 94%
rename from tools/gn/ninja_binary_target_writer.h
rename to src/gn/ninja_binary_target_writer.h
index c38ee4c..0eceed7 100644
--- a/tools/gn/ninja_binary_target_writer.h
+++ b/src/gn/ninja_binary_target_writer.h
@@ -6,11 +6,11 @@
 #define TOOLS_GN_NINJA_BINARY_TARGET_WRITER_H_
 
 #include "base/macros.h"
-#include "tools/gn/c_tool.h"
-#include "tools/gn/config_values.h"
-#include "tools/gn/ninja_target_writer.h"
-#include "tools/gn/toolchain.h"
-#include "tools/gn/unique_vector.h"
+#include "gn/c_tool.h"
+#include "gn/config_values.h"
+#include "gn/ninja_target_writer.h"
+#include "gn/toolchain.h"
+#include "gn/unique_vector.h"
 
 struct EscapeOptions;
 
diff --git a/tools/gn/ninja_binary_target_writer_unittest.cc b/src/gn/ninja_binary_target_writer_unittest.cc
similarity index 95%
rename from tools/gn/ninja_binary_target_writer_unittest.cc
rename to src/gn/ninja_binary_target_writer_unittest.cc
index 7e92ad4..252fb43 100644
--- a/tools/gn/ninja_binary_target_writer_unittest.cc
+++ b/src/gn/ninja_binary_target_writer_unittest.cc
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/ninja_binary_target_writer.h"
+#include "gn/ninja_binary_target_writer.h"
 
-#include "tools/gn/test_with_scheduler.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/test_with_scheduler.h"
+#include "gn/test_with_scope.h"
 #include "util/test/test.h"
 
 using NinjaBinaryTargetWriterTest = TestWithScheduler;
diff --git a/tools/gn/ninja_build_writer.cc b/src/gn/ninja_build_writer.cc
similarity index 97%
rename from tools/gn/ninja_build_writer.cc
rename to src/gn/ninja_build_writer.cc
index c5cd90a..12ccaa7 100644
--- a/tools/gn/ninja_build_writer.cc
+++ b/src/gn/ninja_build_writer.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/ninja_build_writer.h"
+#include "gn/ninja_build_writer.h"
 
 #include <stddef.h>
 
@@ -15,19 +15,19 @@
 #include "base/files/file_util.h"
 #include "base/strings/string_util.h"
 #include "base/strings/utf_string_conversions.h"
-#include "tools/gn/build_settings.h"
-#include "tools/gn/builder.h"
-#include "tools/gn/err.h"
-#include "tools/gn/escape.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/input_file_manager.h"
-#include "tools/gn/loader.h"
-#include "tools/gn/ninja_utils.h"
-#include "tools/gn/pool.h"
-#include "tools/gn/scheduler.h"
-#include "tools/gn/switches.h"
-#include "tools/gn/target.h"
-#include "tools/gn/trace.h"
+#include "gn/build_settings.h"
+#include "gn/builder.h"
+#include "gn/err.h"
+#include "gn/escape.h"
+#include "gn/filesystem_utils.h"
+#include "gn/input_file_manager.h"
+#include "gn/loader.h"
+#include "gn/ninja_utils.h"
+#include "gn/pool.h"
+#include "gn/scheduler.h"
+#include "gn/switches.h"
+#include "gn/target.h"
+#include "gn/trace.h"
 #include "util/build_config.h"
 #include "util/exe_path.h"
 
diff --git a/tools/gn/ninja_build_writer.h b/src/gn/ninja_build_writer.h
similarity index 98%
rename from tools/gn/ninja_build_writer.h
rename to src/gn/ninja_build_writer.h
index f4351e4..9f41a38 100644
--- a/tools/gn/ninja_build_writer.h
+++ b/src/gn/ninja_build_writer.h
@@ -11,7 +11,7 @@
 #include <vector>
 
 #include "base/macros.h"
-#include "tools/gn/path_output.h"
+#include "gn/path_output.h"
 
 class Builder;
 class BuildSettings;
diff --git a/tools/gn/ninja_build_writer_unittest.cc b/src/gn/ninja_build_writer_unittest.cc
similarity index 97%
rename from tools/gn/ninja_build_writer_unittest.cc
rename to src/gn/ninja_build_writer_unittest.cc
index 7b5e82a..8bc6839 100644
--- a/tools/gn/ninja_build_writer_unittest.cc
+++ b/src/gn/ninja_build_writer_unittest.cc
@@ -6,13 +6,13 @@
 
 #include "base/command_line.h"
 #include "base/files/file_util.h"
-#include "tools/gn/ninja_build_writer.h"
-#include "tools/gn/pool.h"
-#include "tools/gn/scheduler.h"
-#include "tools/gn/switches.h"
-#include "tools/gn/target.h"
-#include "tools/gn/test_with_scheduler.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/ninja_build_writer.h"
+#include "gn/pool.h"
+#include "gn/scheduler.h"
+#include "gn/switches.h"
+#include "gn/target.h"
+#include "gn/test_with_scheduler.h"
+#include "gn/test_with_scope.h"
 #include "util/test/test.h"
 
 using NinjaBuildWriterTest = TestWithScheduler;
diff --git a/tools/gn/ninja_bundle_data_target_writer.cc b/src/gn/ninja_bundle_data_target_writer.cc
similarity index 87%
rename from tools/gn/ninja_bundle_data_target_writer.cc
rename to src/gn/ninja_bundle_data_target_writer.cc
index ec3cf74..0e3bcb0 100644
--- a/tools/gn/ninja_bundle_data_target_writer.cc
+++ b/src/gn/ninja_bundle_data_target_writer.cc
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/ninja_bundle_data_target_writer.h"
+#include "gn/ninja_bundle_data_target_writer.h"
 
-#include "tools/gn/output_file.h"
-#include "tools/gn/settings.h"
-#include "tools/gn/target.h"
+#include "gn/output_file.h"
+#include "gn/settings.h"
+#include "gn/target.h"
 
 NinjaBundleDataTargetWriter::NinjaBundleDataTargetWriter(const Target* target,
                                                          std::ostream& out)
diff --git a/tools/gn/ninja_bundle_data_target_writer.h b/src/gn/ninja_bundle_data_target_writer.h
similarity index 93%
rename from tools/gn/ninja_bundle_data_target_writer.h
rename to src/gn/ninja_bundle_data_target_writer.h
index c097f67..9b8986d 100644
--- a/tools/gn/ninja_bundle_data_target_writer.h
+++ b/src/gn/ninja_bundle_data_target_writer.h
@@ -6,7 +6,7 @@
 #define TOOLS_GN_NINJA_BUNDLE_DATA_TARGET_WRITER_H_
 
 #include "base/macros.h"
-#include "tools/gn/ninja_target_writer.h"
+#include "gn/ninja_target_writer.h"
 
 // Writes a .ninja file for a bundle_data target type.
 class NinjaBundleDataTargetWriter : public NinjaTargetWriter {
diff --git a/tools/gn/ninja_bundle_data_target_writer_unittest.cc b/src/gn/ninja_bundle_data_target_writer_unittest.cc
similarity index 94%
rename from tools/gn/ninja_bundle_data_target_writer_unittest.cc
rename to src/gn/ninja_bundle_data_target_writer_unittest.cc
index f2ec6c5..06b5eb2 100644
--- a/tools/gn/ninja_bundle_data_target_writer_unittest.cc
+++ b/src/gn/ninja_bundle_data_target_writer_unittest.cc
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/ninja_bundle_data_target_writer.h"
+#include "gn/ninja_bundle_data_target_writer.h"
 
 #include <algorithm>
 #include <sstream>
 
-#include "tools/gn/target.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/target.h"
+#include "gn/test_with_scope.h"
 #include "util/test/test.h"
 
 TEST(NinjaBundleDataTargetWriter, Run) {
diff --git a/tools/gn/ninja_c_binary_target_writer.cc b/src/gn/ninja_c_binary_target_writer.cc
similarity index 97%
rename from tools/gn/ninja_c_binary_target_writer.cc
rename to src/gn/ninja_c_binary_target_writer.cc
index f71eebb..2fba66c 100644
--- a/tools/gn/ninja_c_binary_target_writer.cc
+++ b/src/gn/ninja_c_binary_target_writer.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/ninja_c_binary_target_writer.h"
+#include "gn/ninja_c_binary_target_writer.h"
 
 #include <stddef.h>
 #include <string.h>
@@ -13,20 +13,20 @@
 #include <unordered_set>
 
 #include "base/strings/string_util.h"
-#include "tools/gn/c_substitution_type.h"
-#include "tools/gn/config_values_extractors.h"
-#include "tools/gn/deps_iterator.h"
-#include "tools/gn/err.h"
-#include "tools/gn/escape.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/general_tool.h"
-#include "tools/gn/ninja_target_command_util.h"
-#include "tools/gn/ninja_utils.h"
-#include "tools/gn/scheduler.h"
-#include "tools/gn/settings.h"
-#include "tools/gn/string_utils.h"
-#include "tools/gn/substitution_writer.h"
-#include "tools/gn/target.h"
+#include "gn/c_substitution_type.h"
+#include "gn/config_values_extractors.h"
+#include "gn/deps_iterator.h"
+#include "gn/err.h"
+#include "gn/escape.h"
+#include "gn/filesystem_utils.h"
+#include "gn/general_tool.h"
+#include "gn/ninja_target_command_util.h"
+#include "gn/ninja_utils.h"
+#include "gn/scheduler.h"
+#include "gn/settings.h"
+#include "gn/string_utils.h"
+#include "gn/substitution_writer.h"
+#include "gn/target.h"
 
 namespace {
 
diff --git a/tools/gn/ninja_c_binary_target_writer.h b/src/gn/ninja_c_binary_target_writer.h
similarity index 96%
rename from tools/gn/ninja_c_binary_target_writer.h
rename to src/gn/ninja_c_binary_target_writer.h
index a9a612a..55cc0fc 100644
--- a/tools/gn/ninja_c_binary_target_writer.h
+++ b/src/gn/ninja_c_binary_target_writer.h
@@ -6,10 +6,10 @@
 #define TOOLS_GN_NINJA_C_BINARY_TARGET_WRITER_H_
 
 #include "base/macros.h"
-#include "tools/gn/config_values.h"
-#include "tools/gn/ninja_binary_target_writer.h"
-#include "tools/gn/toolchain.h"
-#include "tools/gn/unique_vector.h"
+#include "gn/config_values.h"
+#include "gn/ninja_binary_target_writer.h"
+#include "gn/toolchain.h"
+#include "gn/unique_vector.h"
 
 struct EscapeOptions;
 
diff --git a/tools/gn/ninja_c_binary_target_writer_unittest.cc b/src/gn/ninja_c_binary_target_writer_unittest.cc
similarity index 99%
rename from tools/gn/ninja_c_binary_target_writer_unittest.cc
rename to src/gn/ninja_c_binary_target_writer_unittest.cc
index 74a4f32..f79b753 100644
--- a/tools/gn/ninja_c_binary_target_writer_unittest.cc
+++ b/src/gn/ninja_c_binary_target_writer_unittest.cc
@@ -2,18 +2,18 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/ninja_c_binary_target_writer.h"
+#include "gn/ninja_c_binary_target_writer.h"
 
 #include <memory>
 #include <sstream>
 #include <utility>
 
-#include "tools/gn/config.h"
-#include "tools/gn/ninja_target_command_util.h"
-#include "tools/gn/scheduler.h"
-#include "tools/gn/target.h"
-#include "tools/gn/test_with_scheduler.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/config.h"
+#include "gn/ninja_target_command_util.h"
+#include "gn/scheduler.h"
+#include "gn/target.h"
+#include "gn/test_with_scheduler.h"
+#include "gn/test_with_scope.h"
 #include "util/build_config.h"
 #include "util/test/test.h"
 
diff --git a/tools/gn/ninja_copy_target_writer.cc b/src/gn/ninja_copy_target_writer.cc
similarity index 92%
rename from tools/gn/ninja_copy_target_writer.cc
rename to src/gn/ninja_copy_target_writer.cc
index ee5cf52..f350086 100644
--- a/tools/gn/ninja_copy_target_writer.cc
+++ b/src/gn/ninja_copy_target_writer.cc
@@ -2,18 +2,18 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/ninja_copy_target_writer.h"
+#include "gn/ninja_copy_target_writer.h"
 
 #include "base/strings/string_util.h"
-#include "tools/gn/general_tool.h"
-#include "tools/gn/ninja_utils.h"
-#include "tools/gn/output_file.h"
-#include "tools/gn/scheduler.h"
-#include "tools/gn/string_utils.h"
-#include "tools/gn/substitution_list.h"
-#include "tools/gn/substitution_writer.h"
-#include "tools/gn/target.h"
-#include "tools/gn/toolchain.h"
+#include "gn/general_tool.h"
+#include "gn/ninja_utils.h"
+#include "gn/output_file.h"
+#include "gn/scheduler.h"
+#include "gn/string_utils.h"
+#include "gn/substitution_list.h"
+#include "gn/substitution_writer.h"
+#include "gn/target.h"
+#include "gn/toolchain.h"
 
 NinjaCopyTargetWriter::NinjaCopyTargetWriter(const Target* target,
                                              std::ostream& out)
diff --git a/tools/gn/ninja_copy_target_writer.h b/src/gn/ninja_copy_target_writer.h
similarity index 94%
rename from tools/gn/ninja_copy_target_writer.h
rename to src/gn/ninja_copy_target_writer.h
index a45a470..c4919c6 100644
--- a/tools/gn/ninja_copy_target_writer.h
+++ b/src/gn/ninja_copy_target_writer.h
@@ -6,7 +6,7 @@
 #define TOOLS_GN_NINJA_COPY_TARGET_WRITER_H_
 
 #include "base/macros.h"
-#include "tools/gn/ninja_target_writer.h"
+#include "gn/ninja_target_writer.h"
 
 // Writes a .ninja file for a copy target type.
 class NinjaCopyTargetWriter : public NinjaTargetWriter {
diff --git a/tools/gn/ninja_copy_target_writer_unittest.cc b/src/gn/ninja_copy_target_writer_unittest.cc
similarity index 95%
rename from tools/gn/ninja_copy_target_writer_unittest.cc
rename to src/gn/ninja_copy_target_writer_unittest.cc
index be17a11..0b4caea 100644
--- a/tools/gn/ninja_copy_target_writer_unittest.cc
+++ b/src/gn/ninja_copy_target_writer_unittest.cc
@@ -5,9 +5,9 @@
 #include <algorithm>
 #include <sstream>
 
-#include "tools/gn/ninja_copy_target_writer.h"
-#include "tools/gn/target.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/ninja_copy_target_writer.h"
+#include "gn/target.h"
+#include "gn/test_with_scope.h"
 #include "util/test/test.h"
 
 // Tests multiple files with an output pattern and no toolchain dependency.
diff --git a/tools/gn/ninja_create_bundle_target_writer.cc b/src/gn/ninja_create_bundle_target_writer.cc
similarity index 97%
rename from tools/gn/ninja_create_bundle_target_writer.cc
rename to src/gn/ninja_create_bundle_target_writer.cc
index 2cf597d..6220790 100644
--- a/tools/gn/ninja_create_bundle_target_writer.cc
+++ b/src/gn/ninja_create_bundle_target_writer.cc
@@ -2,20 +2,20 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/ninja_create_bundle_target_writer.h"
+#include "gn/ninja_create_bundle_target_writer.h"
 
 #include <iterator>
 
 #include "base/macros.h"
 #include "base/strings/string_util.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/general_tool.h"
-#include "tools/gn/ninja_utils.h"
-#include "tools/gn/output_file.h"
-#include "tools/gn/scheduler.h"
-#include "tools/gn/substitution_writer.h"
-#include "tools/gn/target.h"
-#include "tools/gn/toolchain.h"
+#include "gn/filesystem_utils.h"
+#include "gn/general_tool.h"
+#include "gn/ninja_utils.h"
+#include "gn/output_file.h"
+#include "gn/scheduler.h"
+#include "gn/substitution_writer.h"
+#include "gn/target.h"
+#include "gn/toolchain.h"
 
 namespace {
 
diff --git a/tools/gn/ninja_create_bundle_target_writer.h b/src/gn/ninja_create_bundle_target_writer.h
similarity index 98%
rename from tools/gn/ninja_create_bundle_target_writer.h
rename to src/gn/ninja_create_bundle_target_writer.h
index 072e02c..6d4e224 100644
--- a/tools/gn/ninja_create_bundle_target_writer.h
+++ b/src/gn/ninja_create_bundle_target_writer.h
@@ -6,7 +6,7 @@
 #define TOOLS_GN_NINJA_CREATE_BUNDLE_TARGET_WRITER_H_
 
 #include "base/macros.h"
-#include "tools/gn/ninja_target_writer.h"
+#include "gn/ninja_target_writer.h"
 
 class BundleFileRule;
 
diff --git a/tools/gn/ninja_create_bundle_target_writer_unittest.cc b/src/gn/ninja_create_bundle_target_writer_unittest.cc
similarity index 99%
rename from tools/gn/ninja_create_bundle_target_writer_unittest.cc
rename to src/gn/ninja_create_bundle_target_writer_unittest.cc
index 51c982c..dc72b32 100644
--- a/tools/gn/ninja_create_bundle_target_writer_unittest.cc
+++ b/src/gn/ninja_create_bundle_target_writer_unittest.cc
@@ -2,14 +2,14 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/ninja_create_bundle_target_writer.h"
+#include "gn/ninja_create_bundle_target_writer.h"
 
 #include <algorithm>
 #include <memory>
 #include <sstream>
 
-#include "tools/gn/target.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/target.h"
+#include "gn/test_with_scope.h"
 #include "util/test/test.h"
 
 namespace {
diff --git a/tools/gn/ninja_generated_file_target_writer.cc b/src/gn/ninja_generated_file_target_writer.cc
similarity index 88%
rename from tools/gn/ninja_generated_file_target_writer.cc
rename to src/gn/ninja_generated_file_target_writer.cc
index 7dc60b0..6b0db1b 100644
--- a/tools/gn/ninja_generated_file_target_writer.cc
+++ b/src/gn/ninja_generated_file_target_writer.cc
@@ -2,18 +2,18 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/ninja_generated_file_target_writer.h"
+#include "gn/ninja_generated_file_target_writer.h"
 
 #include "base/strings/string_util.h"
-#include "tools/gn/deps_iterator.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/output_conversion.h"
-#include "tools/gn/output_file.h"
-#include "tools/gn/scheduler.h"
-#include "tools/gn/settings.h"
-#include "tools/gn/string_utils.h"
-#include "tools/gn/target.h"
-#include "tools/gn/trace.h"
+#include "gn/deps_iterator.h"
+#include "gn/filesystem_utils.h"
+#include "gn/output_conversion.h"
+#include "gn/output_file.h"
+#include "gn/scheduler.h"
+#include "gn/settings.h"
+#include "gn/string_utils.h"
+#include "gn/target.h"
+#include "gn/trace.h"
 
 NinjaGeneratedFileTargetWriter::NinjaGeneratedFileTargetWriter(
     const Target* target,
diff --git a/tools/gn/ninja_generated_file_target_writer.h b/src/gn/ninja_generated_file_target_writer.h
similarity index 94%
rename from tools/gn/ninja_generated_file_target_writer.h
rename to src/gn/ninja_generated_file_target_writer.h
index fa2e6c2..43231a6 100644
--- a/tools/gn/ninja_generated_file_target_writer.h
+++ b/src/gn/ninja_generated_file_target_writer.h
@@ -6,7 +6,7 @@
 #define TOOLS_GN_NINJA_GENERATED_FILE_TARGET_WRITER_H_
 
 #include "base/macros.h"
-#include "tools/gn/ninja_target_writer.h"
+#include "gn/ninja_target_writer.h"
 
 // Writes a .ninja file for a group target type.
 class NinjaGeneratedFileTargetWriter : public NinjaTargetWriter {
diff --git a/tools/gn/ninja_generated_file_target_writer_unittest.cc b/src/gn/ninja_generated_file_target_writer_unittest.cc
similarity index 90%
rename from tools/gn/ninja_generated_file_target_writer_unittest.cc
rename to src/gn/ninja_generated_file_target_writer_unittest.cc
index a01ef7b..e88ad49 100644
--- a/tools/gn/ninja_generated_file_target_writer_unittest.cc
+++ b/src/gn/ninja_generated_file_target_writer_unittest.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/ninja_generated_file_target_writer.h"
+#include "gn/ninja_generated_file_target_writer.h"
 
-#include "tools/gn/source_file.h"
-#include "tools/gn/target.h"
-#include "tools/gn/test_with_scheduler.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/source_file.h"
+#include "gn/target.h"
+#include "gn/test_with_scheduler.h"
+#include "gn/test_with_scope.h"
 #include "util/test/test.h"
 
 using NinjaGeneratedFileTargetWriterTest = TestWithScheduler;
diff --git a/tools/gn/ninja_group_target_writer.cc b/src/gn/ninja_group_target_writer.cc
similarity index 84%
rename from tools/gn/ninja_group_target_writer.cc
rename to src/gn/ninja_group_target_writer.cc
index 85906bb..b518977 100644
--- a/tools/gn/ninja_group_target_writer.cc
+++ b/src/gn/ninja_group_target_writer.cc
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/ninja_group_target_writer.h"
+#include "gn/ninja_group_target_writer.h"
 
 #include "base/strings/string_util.h"
-#include "tools/gn/deps_iterator.h"
-#include "tools/gn/output_file.h"
-#include "tools/gn/string_utils.h"
-#include "tools/gn/target.h"
+#include "gn/deps_iterator.h"
+#include "gn/output_file.h"
+#include "gn/string_utils.h"
+#include "gn/target.h"
 
 NinjaGroupTargetWriter::NinjaGroupTargetWriter(const Target* target,
                                                std::ostream& out)
diff --git a/tools/gn/ninja_group_target_writer.h b/src/gn/ninja_group_target_writer.h
similarity index 93%
rename from tools/gn/ninja_group_target_writer.h
rename to src/gn/ninja_group_target_writer.h
index 66e5f04..8abb20a 100644
--- a/tools/gn/ninja_group_target_writer.h
+++ b/src/gn/ninja_group_target_writer.h
@@ -6,7 +6,7 @@
 #define TOOLS_GN_NINJA_GROUP_TARGET_WRITER_H_
 
 #include "base/macros.h"
-#include "tools/gn/ninja_target_writer.h"
+#include "gn/ninja_target_writer.h"
 
 // Writes a .ninja file for a group target type.
 class NinjaGroupTargetWriter : public NinjaTargetWriter {
diff --git a/tools/gn/ninja_group_target_writer_unittest.cc b/src/gn/ninja_group_target_writer_unittest.cc
similarity index 93%
rename from tools/gn/ninja_group_target_writer_unittest.cc
rename to src/gn/ninja_group_target_writer_unittest.cc
index ab5f597..2280bb0 100644
--- a/tools/gn/ninja_group_target_writer_unittest.cc
+++ b/src/gn/ninja_group_target_writer_unittest.cc
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/ninja_group_target_writer.h"
-#include "tools/gn/target.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/ninja_group_target_writer.h"
+#include "gn/target.h"
+#include "gn/test_with_scope.h"
 #include "util/test/test.h"
 
 TEST(NinjaGroupTargetWriter, Run) {
diff --git a/tools/gn/ninja_rust_binary_target_writer.cc b/src/gn/ninja_rust_binary_target_writer.cc
similarity index 95%
rename from tools/gn/ninja_rust_binary_target_writer.cc
rename to src/gn/ninja_rust_binary_target_writer.cc
index 51e585d..f23680d 100644
--- a/tools/gn/ninja_rust_binary_target_writer.cc
+++ b/src/gn/ninja_rust_binary_target_writer.cc
@@ -2,19 +2,19 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/ninja_rust_binary_target_writer.h"
+#include "gn/ninja_rust_binary_target_writer.h"
 
 #include <sstream>
 
 #include "base/strings/string_util.h"
-#include "tools/gn/deps_iterator.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/general_tool.h"
-#include "tools/gn/ninja_target_command_util.h"
-#include "tools/gn/ninja_utils.h"
-#include "tools/gn/rust_substitution_type.h"
-#include "tools/gn/substitution_writer.h"
-#include "tools/gn/target.h"
+#include "gn/deps_iterator.h"
+#include "gn/filesystem_utils.h"
+#include "gn/general_tool.h"
+#include "gn/ninja_target_command_util.h"
+#include "gn/ninja_utils.h"
+#include "gn/rust_substitution_type.h"
+#include "gn/substitution_writer.h"
+#include "gn/target.h"
 
 namespace {
 
diff --git a/tools/gn/ninja_rust_binary_target_writer.h b/src/gn/ninja_rust_binary_target_writer.h
similarity index 93%
rename from tools/gn/ninja_rust_binary_target_writer.h
rename to src/gn/ninja_rust_binary_target_writer.h
index 31d636b..180bd1f 100644
--- a/tools/gn/ninja_rust_binary_target_writer.h
+++ b/src/gn/ninja_rust_binary_target_writer.h
@@ -6,8 +6,8 @@
 #define TOOLS_GN_NINJA_RUST_BINARY_TARGET_WRITER_H_
 
 #include "base/macros.h"
-#include "tools/gn/ninja_binary_target_writer.h"
-#include "tools/gn/rust_tool.h"
+#include "gn/ninja_binary_target_writer.h"
+#include "gn/rust_tool.h"
 
 struct EscapeOptions;
 
diff --git a/tools/gn/ninja_rust_binary_target_writer_unittest.cc b/src/gn/ninja_rust_binary_target_writer_unittest.cc
similarity index 98%
rename from tools/gn/ninja_rust_binary_target_writer_unittest.cc
rename to src/gn/ninja_rust_binary_target_writer_unittest.cc
index 4eb7eea..b8a9532 100644
--- a/tools/gn/ninja_rust_binary_target_writer_unittest.cc
+++ b/src/gn/ninja_rust_binary_target_writer_unittest.cc
@@ -2,14 +2,14 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/ninja_rust_binary_target_writer.h"
+#include "gn/ninja_rust_binary_target_writer.h"
 
-#include "tools/gn/config.h"
-#include "tools/gn/rust_values.h"
-#include "tools/gn/scheduler.h"
-#include "tools/gn/target.h"
-#include "tools/gn/test_with_scheduler.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/config.h"
+#include "gn/rust_values.h"
+#include "gn/scheduler.h"
+#include "gn/target.h"
+#include "gn/test_with_scheduler.h"
+#include "gn/test_with_scope.h"
 #include "util/build_config.h"
 #include "util/test/test.h"
 
diff --git a/tools/gn/ninja_target_command_util.cc b/src/gn/ninja_target_command_util.cc
similarity index 97%
rename from tools/gn/ninja_target_command_util.cc
rename to src/gn/ninja_target_command_util.cc
index ef9957e..05f4ccd 100644
--- a/tools/gn/ninja_target_command_util.cc
+++ b/src/gn/ninja_target_command_util.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/ninja_target_command_util.h"
+#include "gn/ninja_target_command_util.h"
 
 #include <string.h>
 
-#include "tools/gn/c_tool.h"
-#include "tools/gn/substitution_writer.h"
+#include "gn/c_tool.h"
+#include "gn/substitution_writer.h"
 
 namespace {
 
diff --git a/tools/gn/ninja_target_command_util.h b/src/gn/ninja_target_command_util.h
similarity index 92%
rename from tools/gn/ninja_target_command_util.h
rename to src/gn/ninja_target_command_util.h
index 327e120..3b192ab 100644
--- a/tools/gn/ninja_target_command_util.h
+++ b/src/gn/ninja_target_command_util.h
@@ -6,12 +6,12 @@
 #define TOOLS_GN_NINJA_TARGET_COMMAND_WRITER_H_
 
 #include "base/json/string_escape.h"
-#include "tools/gn/config_values_extractors.h"
-#include "tools/gn/escape.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/path_output.h"
-#include "tools/gn/target.h"
-#include "tools/gn/toolchain.h"
+#include "gn/config_values_extractors.h"
+#include "gn/escape.h"
+#include "gn/filesystem_utils.h"
+#include "gn/path_output.h"
+#include "gn/target.h"
+#include "gn/toolchain.h"
 
 struct DefineWriter {
   DefineWriter() { options.mode = ESCAPE_NINJA_COMMAND; }
diff --git a/tools/gn/ninja_target_writer.cc b/src/gn/ninja_target_writer.cc
similarity index 93%
rename from tools/gn/ninja_target_writer.cc
rename to src/gn/ninja_target_writer.cc
index 239e50f..e284f24 100644
--- a/tools/gn/ninja_target_writer.cc
+++ b/src/gn/ninja_target_writer.cc
@@ -2,31 +2,31 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/ninja_target_writer.h"
+#include "gn/ninja_target_writer.h"
 
 #include <sstream>
 
 #include "base/files/file_util.h"
 #include "base/strings/string_util.h"
-#include "tools/gn/config_values_extractors.h"
-#include "tools/gn/err.h"
-#include "tools/gn/escape.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/general_tool.h"
-#include "tools/gn/ninja_action_target_writer.h"
-#include "tools/gn/ninja_binary_target_writer.h"
-#include "tools/gn/ninja_bundle_data_target_writer.h"
-#include "tools/gn/ninja_copy_target_writer.h"
-#include "tools/gn/ninja_create_bundle_target_writer.h"
-#include "tools/gn/ninja_generated_file_target_writer.h"
-#include "tools/gn/ninja_group_target_writer.h"
-#include "tools/gn/ninja_utils.h"
-#include "tools/gn/output_file.h"
-#include "tools/gn/scheduler.h"
-#include "tools/gn/string_utils.h"
-#include "tools/gn/substitution_writer.h"
-#include "tools/gn/target.h"
-#include "tools/gn/trace.h"
+#include "gn/config_values_extractors.h"
+#include "gn/err.h"
+#include "gn/escape.h"
+#include "gn/filesystem_utils.h"
+#include "gn/general_tool.h"
+#include "gn/ninja_action_target_writer.h"
+#include "gn/ninja_binary_target_writer.h"
+#include "gn/ninja_bundle_data_target_writer.h"
+#include "gn/ninja_copy_target_writer.h"
+#include "gn/ninja_create_bundle_target_writer.h"
+#include "gn/ninja_generated_file_target_writer.h"
+#include "gn/ninja_group_target_writer.h"
+#include "gn/ninja_utils.h"
+#include "gn/output_file.h"
+#include "gn/scheduler.h"
+#include "gn/string_utils.h"
+#include "gn/substitution_writer.h"
+#include "gn/target.h"
+#include "gn/trace.h"
 
 NinjaTargetWriter::NinjaTargetWriter(const Target* target, std::ostream& out)
     : settings_(target->settings()),
diff --git a/tools/gn/ninja_target_writer.h b/src/gn/ninja_target_writer.h
similarity index 96%
rename from tools/gn/ninja_target_writer.h
rename to src/gn/ninja_target_writer.h
index b49f33e..f4c9eae 100644
--- a/tools/gn/ninja_target_writer.h
+++ b/src/gn/ninja_target_writer.h
@@ -8,8 +8,8 @@
 #include <iosfwd>
 
 #include "base/macros.h"
-#include "tools/gn/path_output.h"
-#include "tools/gn/substitution_type.h"
+#include "gn/path_output.h"
+#include "gn/substitution_type.h"
 
 class OutputFile;
 class Settings;
diff --git a/tools/gn/ninja_target_writer_unittest.cc b/src/gn/ninja_target_writer_unittest.cc
similarity index 97%
rename from tools/gn/ninja_target_writer_unittest.cc
rename to src/gn/ninja_target_writer_unittest.cc
index 3a33192..1b19159 100644
--- a/tools/gn/ninja_target_writer_unittest.cc
+++ b/src/gn/ninja_target_writer_unittest.cc
@@ -4,10 +4,10 @@
 
 #include <sstream>
 
-#include "tools/gn/ninja_action_target_writer.h"
-#include "tools/gn/ninja_target_writer.h"
-#include "tools/gn/target.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/ninja_action_target_writer.h"
+#include "gn/ninja_target_writer.h"
+#include "gn/target.h"
+#include "gn/test_with_scope.h"
 #include "util/test/test.h"
 
 namespace {
diff --git a/tools/gn/ninja_toolchain_writer.cc b/src/gn/ninja_toolchain_writer.cc
similarity index 91%
rename from tools/gn/ninja_toolchain_writer.cc
rename to src/gn/ninja_toolchain_writer.cc
index 8956277..e38187f 100644
--- a/tools/gn/ninja_toolchain_writer.cc
+++ b/src/gn/ninja_toolchain_writer.cc
@@ -2,23 +2,23 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/ninja_toolchain_writer.h"
+#include "gn/ninja_toolchain_writer.h"
 
 #include <fstream>
 
 #include "base/files/file_util.h"
 #include "base/strings/stringize_macros.h"
-#include "tools/gn/build_settings.h"
-#include "tools/gn/c_tool.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/general_tool.h"
-#include "tools/gn/ninja_utils.h"
-#include "tools/gn/pool.h"
-#include "tools/gn/settings.h"
-#include "tools/gn/substitution_writer.h"
-#include "tools/gn/target.h"
-#include "tools/gn/toolchain.h"
-#include "tools/gn/trace.h"
+#include "gn/build_settings.h"
+#include "gn/c_tool.h"
+#include "gn/filesystem_utils.h"
+#include "gn/general_tool.h"
+#include "gn/ninja_utils.h"
+#include "gn/pool.h"
+#include "gn/settings.h"
+#include "gn/substitution_writer.h"
+#include "gn/target.h"
+#include "gn/toolchain.h"
+#include "gn/trace.h"
 
 namespace {
 
diff --git a/tools/gn/ninja_toolchain_writer.h b/src/gn/ninja_toolchain_writer.h
similarity index 94%
rename from tools/gn/ninja_toolchain_writer.h
rename to src/gn/ninja_toolchain_writer.h
index b9b9906..97ec481 100644
--- a/tools/gn/ninja_toolchain_writer.h
+++ b/src/gn/ninja_toolchain_writer.h
@@ -12,9 +12,9 @@
 
 #include "base/gtest_prod_util.h"
 #include "base/macros.h"
-#include "tools/gn/ninja_writer.h"
-#include "tools/gn/path_output.h"
-#include "tools/gn/toolchain.h"
+#include "gn/ninja_writer.h"
+#include "gn/path_output.h"
+#include "gn/toolchain.h"
 
 struct EscapeOptions;
 class Settings;
diff --git a/tools/gn/ninja_toolchain_writer_unittest.cc b/src/gn/ninja_toolchain_writer_unittest.cc
similarity index 92%
rename from tools/gn/ninja_toolchain_writer_unittest.cc
rename to src/gn/ninja_toolchain_writer_unittest.cc
index ce1c533..12eeb00 100644
--- a/tools/gn/ninja_toolchain_writer_unittest.cc
+++ b/src/gn/ninja_toolchain_writer_unittest.cc
@@ -4,8 +4,8 @@
 
 #include <sstream>
 
-#include "tools/gn/ninja_toolchain_writer.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/ninja_toolchain_writer.h"
+#include "gn/test_with_scope.h"
 #include "util/test/test.h"
 
 TEST(NinjaToolchainWriter, WriteToolRule) {
diff --git a/tools/gn/ninja_utils.cc b/src/gn/ninja_utils.cc
similarity index 87%
rename from tools/gn/ninja_utils.cc
rename to src/gn/ninja_utils.cc
index 98f3205..95cf3a1 100644
--- a/tools/gn/ninja_utils.cc
+++ b/src/gn/ninja_utils.cc
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/ninja_utils.h"
+#include "gn/ninja_utils.h"
 
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/settings.h"
-#include "tools/gn/target.h"
+#include "gn/filesystem_utils.h"
+#include "gn/settings.h"
+#include "gn/target.h"
 
 SourceFile GetNinjaFileForTarget(const Target* target) {
   return SourceFile(
diff --git a/tools/gn/ninja_utils.h b/src/gn/ninja_utils.h
similarity index 100%
rename from tools/gn/ninja_utils.h
rename to src/gn/ninja_utils.h
diff --git a/tools/gn/ninja_writer.cc b/src/gn/ninja_writer.cc
similarity index 84%
rename from tools/gn/ninja_writer.cc
rename to src/gn/ninja_writer.cc
index c6d65ac..b2bd98a 100644
--- a/tools/gn/ninja_writer.cc
+++ b/src/gn/ninja_writer.cc
@@ -2,15 +2,15 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/ninja_writer.h"
+#include "gn/ninja_writer.h"
 
-#include "tools/gn/builder.h"
-#include "tools/gn/loader.h"
-#include "tools/gn/location.h"
-#include "tools/gn/ninja_build_writer.h"
-#include "tools/gn/ninja_toolchain_writer.h"
-#include "tools/gn/settings.h"
-#include "tools/gn/target.h"
+#include "gn/builder.h"
+#include "gn/loader.h"
+#include "gn/location.h"
+#include "gn/ninja_build_writer.h"
+#include "gn/ninja_toolchain_writer.h"
+#include "gn/settings.h"
+#include "gn/target.h"
 
 NinjaWriter::NinjaWriter(const Builder& builder) : builder_(builder) {}
 
diff --git a/tools/gn/ninja_writer.h b/src/gn/ninja_writer.h
similarity index 100%
rename from tools/gn/ninja_writer.h
rename to src/gn/ninja_writer.h
diff --git a/tools/gn/operators.cc b/src/gn/operators.cc
similarity index 99%
rename from tools/gn/operators.cc
rename to src/gn/operators.cc
index ab77782..a960655 100644
--- a/tools/gn/operators.cc
+++ b/src/gn/operators.cc
@@ -2,17 +2,17 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/operators.h"
+#include "gn/operators.h"
 
 #include <stddef.h>
 #include <algorithm>
 
 #include "base/strings/string_number_conversions.h"
-#include "tools/gn/err.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/token.h"
-#include "tools/gn/value.h"
+#include "gn/err.h"
+#include "gn/parse_tree.h"
+#include "gn/scope.h"
+#include "gn/token.h"
+#include "gn/value.h"
 
 namespace {
 
diff --git a/tools/gn/operators.h b/src/gn/operators.h
similarity index 100%
rename from tools/gn/operators.h
rename to src/gn/operators.h
diff --git a/tools/gn/operators_unittest.cc b/src/gn/operators_unittest.cc
similarity index 98%
rename from tools/gn/operators_unittest.cc
rename to src/gn/operators_unittest.cc
index 2569bc5..3c39ae2 100644
--- a/tools/gn/operators_unittest.cc
+++ b/src/gn/operators_unittest.cc
@@ -2,16 +2,16 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/operators.h"
+#include "gn/operators.h"
 
 #include <stdint.h>
 
 #include <memory>
 #include <utility>
 
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/pattern.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/parse_tree.h"
+#include "gn/pattern.h"
+#include "gn/test_with_scope.h"
 #include "util/test/test.h"
 
 namespace {
diff --git a/tools/gn/ordered_set.h b/src/gn/ordered_set.h
similarity index 100%
rename from tools/gn/ordered_set.h
rename to src/gn/ordered_set.h
diff --git a/tools/gn/output_conversion.cc b/src/gn/output_conversion.cc
similarity index 97%
rename from tools/gn/output_conversion.cc
rename to src/gn/output_conversion.cc
index 77e9a4f..04017dd 100644
--- a/tools/gn/output_conversion.cc
+++ b/src/gn/output_conversion.cc
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/output_conversion.h"
+#include "gn/output_conversion.h"
 
-#include "tools/gn/settings.h"
-#include "tools/gn/value.h"
+#include "gn/settings.h"
+#include "gn/value.h"
 
 namespace {
 
diff --git a/tools/gn/output_conversion.h b/src/gn/output_conversion.h
similarity index 100%
rename from tools/gn/output_conversion.h
rename to src/gn/output_conversion.h
diff --git a/tools/gn/output_conversion_unittest.cc b/src/gn/output_conversion_unittest.cc
similarity index 97%
rename from tools/gn/output_conversion_unittest.cc
rename to src/gn/output_conversion_unittest.cc
index ad6ea80..43fdad5 100644
--- a/tools/gn/output_conversion_unittest.cc
+++ b/src/gn/output_conversion_unittest.cc
@@ -2,17 +2,17 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/output_conversion.h"
+#include "gn/output_conversion.h"
 
 #include <sstream>
 
-#include "tools/gn/err.h"
-#include "tools/gn/input_conversion.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/template.h"
-#include "tools/gn/test_with_scheduler.h"
-#include "tools/gn/test_with_scope.h"
-#include "tools/gn/value.h"
+#include "gn/err.h"
+#include "gn/input_conversion.h"
+#include "gn/scope.h"
+#include "gn/template.h"
+#include "gn/test_with_scheduler.h"
+#include "gn/test_with_scope.h"
+#include "gn/value.h"
 #include "util/test/test.h"
 
 namespace {
diff --git a/tools/gn/output_file.cc b/src/gn/output_file.cc
similarity index 91%
rename from tools/gn/output_file.cc
rename to src/gn/output_file.cc
index e0c82fc..ad25afa 100644
--- a/tools/gn/output_file.cc
+++ b/src/gn/output_file.cc
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/output_file.h"
+#include "gn/output_file.h"
 
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/source_file.h"
+#include "gn/filesystem_utils.h"
+#include "gn/source_file.h"
 
 OutputFile::OutputFile(std::string&& v) : value_(std::move(v)) {}
 
diff --git a/tools/gn/output_file.h b/src/gn/output_file.h
similarity index 97%
rename from tools/gn/output_file.h
rename to src/gn/output_file.h
index cd3ee33..543cf97 100644
--- a/tools/gn/output_file.h
+++ b/src/gn/output_file.h
@@ -9,7 +9,7 @@
 
 #include <string>
 
-#include "tools/gn/build_settings.h"
+#include "gn/build_settings.h"
 
 class SourceFile;
 
diff --git a/tools/gn/parse_node_value_adapter.cc b/src/gn/parse_node_value_adapter.cc
similarity index 92%
rename from tools/gn/parse_node_value_adapter.cc
rename to src/gn/parse_node_value_adapter.cc
index bf3ad66..a8adb17 100644
--- a/tools/gn/parse_node_value_adapter.cc
+++ b/src/gn/parse_node_value_adapter.cc
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/parse_node_value_adapter.h"
+#include "gn/parse_node_value_adapter.h"
 
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/scope.h"
+#include "gn/parse_tree.h"
+#include "gn/scope.h"
 
 ParseNodeValueAdapter::ParseNodeValueAdapter() : ref_(nullptr) {}
 
diff --git a/tools/gn/parse_node_value_adapter.h b/src/gn/parse_node_value_adapter.h
similarity index 98%
rename from tools/gn/parse_node_value_adapter.h
rename to src/gn/parse_node_value_adapter.h
index db34e24..e724bb6 100644
--- a/tools/gn/parse_node_value_adapter.h
+++ b/src/gn/parse_node_value_adapter.h
@@ -6,7 +6,7 @@
 #define TOOLS_GN_PARSE_NODE_VALUE_ADAPTER_H_
 
 #include "base/macros.h"
-#include "tools/gn/value.h"
+#include "gn/value.h"
 
 class ParseNode;
 
diff --git a/tools/gn/parse_tree.cc b/src/gn/parse_tree.cc
similarity index 99%
rename from tools/gn/parse_tree.cc
rename to src/gn/parse_tree.cc
index b49fae7..a2f77bc 100644
--- a/tools/gn/parse_tree.cc
+++ b/src/gn/parse_tree.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/parse_tree.h"
+#include "gn/parse_tree.h"
 
 #include <stdint.h>
 
@@ -14,10 +14,10 @@
 #include "base/stl_util.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_util.h"
-#include "tools/gn/functions.h"
-#include "tools/gn/operators.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/string_utils.h"
+#include "gn/functions.h"
+#include "gn/operators.h"
+#include "gn/scope.h"
+#include "gn/string_utils.h"
 
 // Dictionary keys used for JSON-formatted tree dump.
 const char kJsonNodeChild[] = "child";
diff --git a/tools/gn/parse_tree.h b/src/gn/parse_tree.h
similarity index 99%
rename from tools/gn/parse_tree.h
rename to src/gn/parse_tree.h
index 82a5071..8d14437 100644
--- a/tools/gn/parse_tree.h
+++ b/src/gn/parse_tree.h
@@ -13,9 +13,9 @@
 
 #include "base/macros.h"
 #include "base/values.h"
-#include "tools/gn/err.h"
-#include "tools/gn/token.h"
-#include "tools/gn/value.h"
+#include "gn/err.h"
+#include "gn/token.h"
+#include "gn/value.h"
 
 class AccessorNode;
 class BinaryOpNode;
diff --git a/tools/gn/parse_tree_unittest.cc b/src/gn/parse_tree_unittest.cc
similarity index 97%
rename from tools/gn/parse_tree_unittest.cc
rename to src/gn/parse_tree_unittest.cc
index e9f03dd..b2d19b2 100644
--- a/tools/gn/parse_tree_unittest.cc
+++ b/src/gn/parse_tree_unittest.cc
@@ -2,16 +2,16 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/parse_tree.h"
+#include "gn/parse_tree.h"
 
 #include <stdint.h>
 
 #include <memory>
 #include <utility>
 
-#include "tools/gn/input_file.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/input_file.h"
+#include "gn/scope.h"
+#include "gn/test_with_scope.h"
 #include "util/test/test.h"
 
 TEST(ParseTree, Accessor) {
diff --git a/tools/gn/parser.cc b/src/gn/parser.cc
similarity index 99%
rename from tools/gn/parser.cc
rename to src/gn/parser.cc
index b65a5de..0e761f2 100644
--- a/tools/gn/parser.cc
+++ b/src/gn/parser.cc
@@ -2,15 +2,15 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/parser.h"
+#include "gn/parser.h"
 
 #include <memory>
 #include <utility>
 
 #include "base/logging.h"
-#include "tools/gn/functions.h"
-#include "tools/gn/operators.h"
-#include "tools/gn/token.h"
+#include "gn/functions.h"
+#include "gn/operators.h"
+#include "gn/token.h"
 
 const char kGrammar_Help[] =
     R"*(Language and grammar for GN build files
diff --git a/tools/gn/parser.h b/src/gn/parser.h
similarity index 98%
rename from tools/gn/parser.h
rename to src/gn/parser.h
index de1a082..1f1cf1a 100644
--- a/tools/gn/parser.h
+++ b/src/gn/parser.h
@@ -13,8 +13,8 @@
 
 #include "base/gtest_prod_util.h"
 #include "base/macros.h"
-#include "tools/gn/err.h"
-#include "tools/gn/parse_tree.h"
+#include "gn/err.h"
+#include "gn/parse_tree.h"
 
 extern const char kGrammar_Help[];
 
diff --git a/tools/gn/parser_unittest.cc b/src/gn/parser_unittest.cc
similarity index 99%
rename from tools/gn/parser_unittest.cc
rename to src/gn/parser_unittest.cc
index d24067c..fcb4197 100644
--- a/tools/gn/parser_unittest.cc
+++ b/src/gn/parser_unittest.cc
@@ -5,9 +5,9 @@
 #include <iostream>
 #include <sstream>
 
-#include "tools/gn/input_file.h"
-#include "tools/gn/parser.h"
-#include "tools/gn/tokenizer.h"
+#include "gn/input_file.h"
+#include "gn/parser.h"
+#include "gn/tokenizer.h"
 #include "util/test/test.h"
 
 namespace {
diff --git a/tools/gn/path_output.cc b/src/gn/path_output.cc
similarity index 97%
rename from tools/gn/path_output.cc
rename to src/gn/path_output.cc
index 8da480a..ff9a5bc 100644
--- a/tools/gn/path_output.cc
+++ b/src/gn/path_output.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/path_output.h"
+#include "gn/path_output.h"
 
 #include "base/strings/string_util.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/output_file.h"
-#include "tools/gn/string_utils.h"
+#include "gn/filesystem_utils.h"
+#include "gn/output_file.h"
+#include "gn/string_utils.h"
 #include "util/build_config.h"
 
 PathOutput::PathOutput(const SourceDir& current_dir,
diff --git a/tools/gn/path_output.h b/src/gn/path_output.h
similarity index 96%
rename from tools/gn/path_output.h
rename to src/gn/path_output.h
index 21c4cc4..a815308 100644
--- a/tools/gn/path_output.h
+++ b/src/gn/path_output.h
@@ -10,9 +10,9 @@
 #include <string_view>
 
 #include "base/macros.h"
-#include "tools/gn/escape.h"
-#include "tools/gn/source_dir.h"
-#include "tools/gn/unique_vector.h"
+#include "gn/escape.h"
+#include "gn/source_dir.h"
+#include "gn/unique_vector.h"
 
 class OutputFile;
 class SourceFile;
diff --git a/tools/gn/path_output_unittest.cc b/src/gn/path_output_unittest.cc
similarity index 98%
rename from tools/gn/path_output_unittest.cc
rename to src/gn/path_output_unittest.cc
index 190647a..1debb64 100644
--- a/tools/gn/path_output_unittest.cc
+++ b/src/gn/path_output_unittest.cc
@@ -5,10 +5,10 @@
 #include <sstream>
 
 #include "base/files/file_path.h"
-#include "tools/gn/output_file.h"
-#include "tools/gn/path_output.h"
-#include "tools/gn/source_dir.h"
-#include "tools/gn/source_file.h"
+#include "gn/output_file.h"
+#include "gn/path_output.h"
+#include "gn/source_dir.h"
+#include "gn/source_file.h"
 #include "util/build_config.h"
 #include "util/test/test.h"
 
diff --git a/tools/gn/pattern.cc b/src/gn/pattern.cc
similarity index 98%
rename from tools/gn/pattern.cc
rename to src/gn/pattern.cc
index aff2ad9..da3f134 100644
--- a/tools/gn/pattern.cc
+++ b/src/gn/pattern.cc
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/pattern.h"
+#include "gn/pattern.h"
 
-#include "tools/gn/value.h"
+#include "gn/value.h"
 
 namespace {
 
diff --git a/tools/gn/pattern.h b/src/gn/pattern.h
similarity index 98%
rename from tools/gn/pattern.h
rename to src/gn/pattern.h
index ef29c62..a176206 100644
--- a/tools/gn/pattern.h
+++ b/src/gn/pattern.h
@@ -10,7 +10,7 @@
 #include <string>
 #include <vector>
 
-#include "tools/gn/value.h"
+#include "gn/value.h"
 
 class Pattern {
  public:
diff --git a/tools/gn/pattern_unittest.cc b/src/gn/pattern_unittest.cc
similarity index 97%
rename from tools/gn/pattern_unittest.cc
rename to src/gn/pattern_unittest.cc
index cefde4f..d796289 100644
--- a/tools/gn/pattern_unittest.cc
+++ b/src/gn/pattern_unittest.cc
@@ -7,7 +7,7 @@
 #include <iterator>
 
 #include "base/macros.h"
-#include "tools/gn/pattern.h"
+#include "gn/pattern.h"
 #include "util/test/test.h"
 
 namespace {
diff --git a/tools/gn/pool.cc b/src/gn/pool.cc
similarity index 97%
rename from tools/gn/pool.cc
rename to src/gn/pool.cc
index 4b9629b..60049a1 100644
--- a/tools/gn/pool.cc
+++ b/src/gn/pool.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/pool.h"
+#include "gn/pool.h"
 
 #include <sstream>
 
diff --git a/tools/gn/pool.h b/src/gn/pool.h
similarity index 97%
rename from tools/gn/pool.h
rename to src/gn/pool.h
index 42a8078..3d6f8f3 100644
--- a/tools/gn/pool.h
+++ b/src/gn/pool.h
@@ -8,7 +8,7 @@
 #include <string>
 
 #include "base/macros.h"
-#include "tools/gn/item.h"
+#include "gn/item.h"
 
 // Represents a named pool in the dependency graph.
 //
diff --git a/tools/gn/qt_creator_writer.cc b/src/gn/qt_creator_writer.cc
similarity index 96%
rename from tools/gn/qt_creator_writer.cc
rename to src/gn/qt_creator_writer.cc
index f0d8c7e..5300821 100644
--- a/tools/gn/qt_creator_writer.cc
+++ b/src/gn/qt_creator_writer.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/qt_creator_writer.h"
+#include "gn/qt_creator_writer.h"
 
 #include <optional>
 #include <set>
@@ -13,12 +13,12 @@
 #include "base/files/file_util.h"
 #include "base/strings/utf_string_conversions.h"
 
-#include "tools/gn/builder.h"
-#include "tools/gn/config_values_extractors.h"
-#include "tools/gn/deps_iterator.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/label.h"
-#include "tools/gn/loader.h"
+#include "gn/builder.h"
+#include "gn/config_values_extractors.h"
+#include "gn/deps_iterator.h"
+#include "gn/filesystem_utils.h"
+#include "gn/label.h"
+#include "gn/loader.h"
 
 namespace {
 base::FilePath::CharType kProjectDirName[] =
diff --git a/tools/gn/qt_creator_writer.h b/src/gn/qt_creator_writer.h
similarity index 96%
rename from tools/gn/qt_creator_writer.h
rename to src/gn/qt_creator_writer.h
index cb37404..c85a322 100644
--- a/tools/gn/qt_creator_writer.h
+++ b/src/gn/qt_creator_writer.h
@@ -10,8 +10,8 @@
 
 #include "base/files/file_path.h"
 #include "base/macros.h"
-#include "tools/gn/err.h"
-#include "tools/gn/target.h"
+#include "gn/err.h"
+#include "gn/target.h"
 
 class Builder;
 class BuildSettings;
diff --git a/tools/gn/runtime_deps.cc b/src/gn/runtime_deps.cc
similarity index 96%
rename from tools/gn/runtime_deps.cc
rename to src/gn/runtime_deps.cc
index 3477ce4..422e8c9 100644
--- a/tools/gn/runtime_deps.cc
+++ b/src/gn/runtime_deps.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/runtime_deps.h"
+#include "gn/runtime_deps.h"
 
 #include <map>
 #include <set>
@@ -11,17 +11,17 @@
 #include "base/command_line.h"
 #include "base/files/file_util.h"
 #include "base/strings/string_split.h"
-#include "tools/gn/build_settings.h"
-#include "tools/gn/builder.h"
-#include "tools/gn/deps_iterator.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/loader.h"
-#include "tools/gn/output_file.h"
-#include "tools/gn/scheduler.h"
-#include "tools/gn/settings.h"
-#include "tools/gn/switches.h"
-#include "tools/gn/target.h"
-#include "tools/gn/trace.h"
+#include "gn/build_settings.h"
+#include "gn/builder.h"
+#include "gn/deps_iterator.h"
+#include "gn/filesystem_utils.h"
+#include "gn/loader.h"
+#include "gn/output_file.h"
+#include "gn/scheduler.h"
+#include "gn/settings.h"
+#include "gn/switches.h"
+#include "gn/target.h"
+#include "gn/trace.h"
 
 namespace {
 
diff --git a/tools/gn/runtime_deps.h b/src/gn/runtime_deps.h
similarity index 100%
rename from tools/gn/runtime_deps.h
rename to src/gn/runtime_deps.h
diff --git a/tools/gn/runtime_deps_unittest.cc b/src/gn/runtime_deps_unittest.cc
similarity index 98%
rename from tools/gn/runtime_deps_unittest.cc
rename to src/gn/runtime_deps_unittest.cc
index 1adfdd4..e79d749 100644
--- a/tools/gn/runtime_deps_unittest.cc
+++ b/src/gn/runtime_deps_unittest.cc
@@ -5,11 +5,11 @@
 #include <stddef.h>
 
 #include "base/stl_util.h"
-#include "tools/gn/runtime_deps.h"
-#include "tools/gn/scheduler.h"
-#include "tools/gn/target.h"
-#include "tools/gn/test_with_scheduler.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/runtime_deps.h"
+#include "gn/scheduler.h"
+#include "gn/target.h"
+#include "gn/test_with_scheduler.h"
+#include "gn/test_with_scope.h"
 #include "util/test/test.h"
 
 namespace {
diff --git a/tools/gn/rust_substitution_type.cc b/src/gn/rust_substitution_type.cc
similarity index 93%
rename from tools/gn/rust_substitution_type.cc
rename to src/gn/rust_substitution_type.cc
index 6ce29f0..8fd6a40 100644
--- a/tools/gn/rust_substitution_type.cc
+++ b/src/gn/rust_substitution_type.cc
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/rust_substitution_type.h"
+#include "gn/rust_substitution_type.h"
 
 #include <stddef.h>
 #include <stdlib.h>
 
-#include "tools/gn/err.h"
-#include "tools/gn/substitution_type.h"
+#include "gn/err.h"
+#include "gn/substitution_type.h"
 
 const SubstitutionTypes RustSubstitutions = {
     &kRustSubstitutionCrateName,       &kRustSubstitutionCrateType,
diff --git a/tools/gn/rust_substitution_type.h b/src/gn/rust_substitution_type.h
similarity index 95%
rename from tools/gn/rust_substitution_type.h
rename to src/gn/rust_substitution_type.h
index 85fc20c..8e9b5c8 100644
--- a/tools/gn/rust_substitution_type.h
+++ b/src/gn/rust_substitution_type.h
@@ -8,7 +8,7 @@
 #include <set>
 #include <vector>
 
-#include "tools/gn/substitution_type.h"
+#include "gn/substitution_type.h"
 
 // The set of substitutions available to Rust tools.
 extern const SubstitutionTypes RustSubstitutions;
diff --git a/tools/gn/rust_tool.cc b/src/gn/rust_tool.cc
similarity index 96%
rename from tools/gn/rust_tool.cc
rename to src/gn/rust_tool.cc
index adf3c94..cd57428 100644
--- a/tools/gn/rust_tool.cc
+++ b/src/gn/rust_tool.cc
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/rust_tool.h"
+#include "gn/rust_tool.h"
 
-#include "tools/gn/rust_substitution_type.h"
-#include "tools/gn/target.h"
+#include "gn/rust_substitution_type.h"
+#include "gn/target.h"
 
 const char* RustTool::kRsToolBin = "rust_bin";
 const char* RustTool::kRsToolCDylib = "rust_cdylib";
diff --git a/tools/gn/rust_tool.h b/src/gn/rust_tool.h
similarity index 83%
rename from tools/gn/rust_tool.h
rename to src/gn/rust_tool.h
index 46ec801..0b3eddb 100644
--- a/tools/gn/rust_tool.h
+++ b/src/gn/rust_tool.h
@@ -9,14 +9,14 @@
 
 #include "base/logging.h"
 #include "base/macros.h"
-#include "tools/gn/label.h"
-#include "tools/gn/label_ptr.h"
-#include "tools/gn/rust_values.h"
-#include "tools/gn/source_file.h"
-#include "tools/gn/substitution_list.h"
-#include "tools/gn/substitution_pattern.h"
-#include "tools/gn/target.h"
-#include "tools/gn/tool.h"
+#include "gn/label.h"
+#include "gn/label_ptr.h"
+#include "gn/rust_values.h"
+#include "gn/source_file.h"
+#include "gn/substitution_list.h"
+#include "gn/substitution_pattern.h"
+#include "gn/target.h"
+#include "gn/tool.h"
 
 class RustTool : public Tool {
  public:
diff --git a/tools/gn/rust_values.cc b/src/gn/rust_values.cc
similarity index 88%
rename from tools/gn/rust_values.cc
rename to src/gn/rust_values.cc
index 08f3e5e..ed314eb 100644
--- a/tools/gn/rust_values.cc
+++ b/src/gn/rust_values.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/rust_values.h"
+#include "gn/rust_values.h"
 
 RustValues::RustValues() : crate_type_(RustValues::CRATE_AUTO) {}
 
diff --git a/tools/gn/rust_values.h b/src/gn/rust_values.h
similarity index 96%
rename from tools/gn/rust_values.h
rename to src/gn/rust_values.h
index 4df5c5c..d666f5a 100644
--- a/tools/gn/rust_values.h
+++ b/src/gn/rust_values.h
@@ -8,8 +8,8 @@
 #include <map>
 
 #include "base/containers/flat_map.h"
-#include "tools/gn/label.h"
-#include "tools/gn/source_file.h"
+#include "gn/label.h"
+#include "gn/source_file.h"
 
 // Holds the values (outputs, args, script name, etc.) for either an action or
 // an action_foreach target.
diff --git a/tools/gn/rust_values_generator.cc b/src/gn/rust_values_generator.cc
similarity index 93%
rename from tools/gn/rust_values_generator.cc
rename to src/gn/rust_values_generator.cc
index d7ebd4a..241e6fd 100644
--- a/tools/gn/rust_values_generator.cc
+++ b/src/gn/rust_values_generator.cc
@@ -2,17 +2,17 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/rust_values_generator.h"
+#include "gn/rust_values_generator.h"
 
-#include "tools/gn/config_values_generator.h"
-#include "tools/gn/err.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/functions.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/rust_variables.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/target.h"
-#include "tools/gn/value_extractors.h"
+#include "gn/config_values_generator.h"
+#include "gn/err.h"
+#include "gn/filesystem_utils.h"
+#include "gn/functions.h"
+#include "gn/parse_tree.h"
+#include "gn/rust_variables.h"
+#include "gn/scope.h"
+#include "gn/target.h"
+#include "gn/value_extractors.h"
 
 static const char* kRustSupportedCrateTypesError =
     "\"crate_type\" must be one of \"bin\", \"cdylib\", \"dylib\", or "
diff --git a/tools/gn/rust_values_generator.h b/src/gn/rust_values_generator.h
similarity index 96%
rename from tools/gn/rust_values_generator.h
rename to src/gn/rust_values_generator.h
index fb939db..0804b8b 100644
--- a/tools/gn/rust_values_generator.h
+++ b/src/gn/rust_values_generator.h
@@ -6,7 +6,7 @@
 #define TOOLS_GN_RUST_VALUES_GENERATOR_H_
 
 #include "base/macros.h"
-#include "tools/gn/target.h"
+#include "gn/target.h"
 
 class FunctionCallNode;
 
diff --git a/tools/gn/rust_variables.cc b/src/gn/rust_variables.cc
similarity index 98%
rename from tools/gn/rust_variables.cc
rename to src/gn/rust_variables.cc
index f1867cb..a23ac66 100644
--- a/tools/gn/rust_variables.cc
+++ b/src/gn/rust_variables.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/rust_variables.h"
+#include "gn/rust_variables.h"
 
 namespace variables {
 
diff --git a/tools/gn/rust_variables.h b/src/gn/rust_variables.h
similarity index 96%
rename from tools/gn/rust_variables.h
rename to src/gn/rust_variables.h
index c9ae4a0..ea2da6d 100644
--- a/tools/gn/rust_variables.h
+++ b/src/gn/rust_variables.h
@@ -5,7 +5,7 @@
 #ifndef TOOLS_GN_RUST_VARIABLES_H_
 #define TOOLS_GN_RUST_VARIABLES_H_
 
-#include "tools/gn/variables.h"
+#include "gn/variables.h"
 
 namespace variables {
 
diff --git a/tools/gn/scheduler.cc b/src/gn/scheduler.cc
similarity index 97%
rename from tools/gn/scheduler.cc
rename to src/gn/scheduler.cc
index a37d62d..6525f33 100644
--- a/tools/gn/scheduler.cc
+++ b/src/gn/scheduler.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/scheduler.h"
+#include "gn/scheduler.h"
 
 #include <algorithm>
 
-#include "tools/gn/standard_out.h"
-#include "tools/gn/target.h"
+#include "gn/standard_out.h"
+#include "gn/target.h"
 
 namespace {}  // namespace
 
diff --git a/tools/gn/scheduler.h b/src/gn/scheduler.h
similarity index 97%
rename from tools/gn/scheduler.h
rename to src/gn/scheduler.h
index 395b115..4ea4c02 100644
--- a/tools/gn/scheduler.h
+++ b/src/gn/scheduler.h
@@ -13,10 +13,10 @@
 #include "base/atomic_ref_count.h"
 #include "base/files/file_path.h"
 #include "base/macros.h"
-#include "tools/gn/input_file_manager.h"
-#include "tools/gn/label.h"
-#include "tools/gn/source_file.h"
-#include "tools/gn/token.h"
+#include "gn/input_file_manager.h"
+#include "gn/label.h"
+#include "gn/source_file.h"
+#include "gn/token.h"
 #include "util/msg_loop.h"
 #include "util/worker_pool.h"
 
diff --git a/tools/gn/scope.cc b/src/gn/scope.cc
similarity index 98%
rename from tools/gn/scope.cc
rename to src/gn/scope.cc
index 793f1a8..adbfa9f 100644
--- a/tools/gn/scope.cc
+++ b/src/gn/scope.cc
@@ -2,14 +2,14 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/scope.h"
+#include "gn/scope.h"
 
 #include <memory>
 
 #include "base/logging.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/source_file.h"
-#include "tools/gn/template.h"
+#include "gn/parse_tree.h"
+#include "gn/source_file.h"
+#include "gn/template.h"
 
 namespace {
 
diff --git a/tools/gn/scope.h b/src/gn/scope.h
similarity index 98%
rename from tools/gn/scope.h
rename to src/gn/scope.h
index 397669b..edfc87f 100644
--- a/tools/gn/scope.h
+++ b/src/gn/scope.h
@@ -14,10 +14,10 @@
 
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "tools/gn/err.h"
-#include "tools/gn/pattern.h"
-#include "tools/gn/source_dir.h"
-#include "tools/gn/value.h"
+#include "gn/err.h"
+#include "gn/pattern.h"
+#include "gn/source_dir.h"
+#include "gn/value.h"
 
 class Item;
 class ParseNode;
diff --git a/tools/gn/scope_per_file_provider.cc b/src/gn/scope_per_file_provider.cc
similarity index 93%
rename from tools/gn/scope_per_file_provider.cc
rename to src/gn/scope_per_file_provider.cc
index 1adfa84..e30162e 100644
--- a/tools/gn/scope_per_file_provider.cc
+++ b/src/gn/scope_per_file_provider.cc
@@ -2,15 +2,15 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/scope_per_file_provider.h"
+#include "gn/scope_per_file_provider.h"
 
 #include <memory>
 
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/settings.h"
-#include "tools/gn/source_file.h"
-#include "tools/gn/value.h"
-#include "tools/gn/variables.h"
+#include "gn/filesystem_utils.h"
+#include "gn/settings.h"
+#include "gn/source_file.h"
+#include "gn/value.h"
+#include "gn/variables.h"
 
 ScopePerFileProvider::ScopePerFileProvider(Scope* scope, bool allow_target_vars)
     : ProgrammaticProvider(scope), allow_target_vars_(allow_target_vars) {}
diff --git a/tools/gn/scope_per_file_provider.h b/src/gn/scope_per_file_provider.h
similarity index 97%
rename from tools/gn/scope_per_file_provider.h
rename to src/gn/scope_per_file_provider.h
index c7a76c0..16496e5 100644
--- a/tools/gn/scope_per_file_provider.h
+++ b/src/gn/scope_per_file_provider.h
@@ -8,7 +8,7 @@
 #include <memory>
 
 #include "base/macros.h"
-#include "tools/gn/scope.h"
+#include "gn/scope.h"
 
 // ProgrammaticProvider for a scope to provide it with per-file built-in
 // variable support.
diff --git a/tools/gn/scope_per_file_provider_unittest.cc b/src/gn/scope_per_file_provider_unittest.cc
similarity index 90%
rename from tools/gn/scope_per_file_provider_unittest.cc
rename to src/gn/scope_per_file_provider_unittest.cc
index 1a6ef1a..8c22666 100644
--- a/tools/gn/scope_per_file_provider_unittest.cc
+++ b/src/gn/scope_per_file_provider_unittest.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/scope_per_file_provider.h"
-#include "tools/gn/build_settings.h"
-#include "tools/gn/settings.h"
-#include "tools/gn/test_with_scope.h"
-#include "tools/gn/toolchain.h"
-#include "tools/gn/variables.h"
+#include "gn/scope_per_file_provider.h"
+#include "gn/build_settings.h"
+#include "gn/settings.h"
+#include "gn/test_with_scope.h"
+#include "gn/toolchain.h"
+#include "gn/variables.h"
 #include "util/test/test.h"
 
 TEST(ScopePerFileProvider, Expected) {
diff --git a/tools/gn/scope_unittest.cc b/src/gn/scope_unittest.cc
similarity index 97%
rename from tools/gn/scope_unittest.cc
rename to src/gn/scope_unittest.cc
index f54c666..af39a9d 100644
--- a/tools/gn/scope_unittest.cc
+++ b/src/gn/scope_unittest.cc
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/scope.h"
+#include "gn/scope.h"
 
-#include "tools/gn/input_file.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/source_file.h"
-#include "tools/gn/template.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/input_file.h"
+#include "gn/parse_tree.h"
+#include "gn/source_file.h"
+#include "gn/template.h"
+#include "gn/test_with_scope.h"
 #include "util/test/test.h"
 
 namespace {
diff --git a/tools/gn/settings.cc b/src/gn/settings.cc
similarity index 93%
rename from tools/gn/settings.cc
rename to src/gn/settings.cc
index c630fa7..154e0af 100644
--- a/tools/gn/settings.cc
+++ b/src/gn/settings.cc
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/settings.h"
+#include "gn/settings.h"
 
 #include "base/logging.h"
-#include "tools/gn/filesystem_utils.h"
+#include "gn/filesystem_utils.h"
 #include "util/build_config.h"
 
 Settings::Settings(const BuildSettings* build_settings,
diff --git a/tools/gn/settings.h b/src/gn/settings.h
similarity index 94%
rename from tools/gn/settings.h
rename to src/gn/settings.h
index eb9952f..e3b6ed2 100644
--- a/tools/gn/settings.h
+++ b/src/gn/settings.h
@@ -7,12 +7,12 @@
 
 #include "base/files/file_path.h"
 #include "base/macros.h"
-#include "tools/gn/build_settings.h"
-#include "tools/gn/import_manager.h"
-#include "tools/gn/output_file.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/source_dir.h"
-#include "tools/gn/toolchain.h"
+#include "gn/build_settings.h"
+#include "gn/import_manager.h"
+#include "gn/output_file.h"
+#include "gn/scope.h"
+#include "gn/source_dir.h"
+#include "gn/toolchain.h"
 
 // Holds the settings for one toolchain invocation. There will be one
 // Settings object for each toolchain type, each referring to the same
diff --git a/tools/gn/setup.cc b/src/gn/setup.cc
similarity index 97%
rename from tools/gn/setup.cc
rename to src/gn/setup.cc
index 7540a8c..f0796d5 100644
--- a/tools/gn/setup.cc
+++ b/src/gn/setup.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/setup.h"
+#include "gn/setup.h"
 
 #include <stdlib.h>
 
@@ -18,21 +18,21 @@
 #include "base/strings/string_split.h"
 #include "base/strings/string_util.h"
 #include "base/strings/utf_string_conversions.h"
-#include "tools/gn/command_format.h"
-#include "tools/gn/commands.h"
-#include "tools/gn/exec_process.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/input_file.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/parser.h"
-#include "tools/gn/source_dir.h"
-#include "tools/gn/source_file.h"
-#include "tools/gn/standard_out.h"
-#include "tools/gn/switches.h"
-#include "tools/gn/tokenizer.h"
-#include "tools/gn/trace.h"
-#include "tools/gn/value.h"
-#include "tools/gn/value_extractors.h"
+#include "gn/command_format.h"
+#include "gn/commands.h"
+#include "gn/exec_process.h"
+#include "gn/filesystem_utils.h"
+#include "gn/input_file.h"
+#include "gn/parse_tree.h"
+#include "gn/parser.h"
+#include "gn/source_dir.h"
+#include "gn/source_file.h"
+#include "gn/standard_out.h"
+#include "gn/switches.h"
+#include "gn/tokenizer.h"
+#include "gn/trace.h"
+#include "gn/value.h"
+#include "gn/value_extractors.h"
 #include "util/build_config.h"
 
 #if defined(OS_WIN)
diff --git a/tools/gn/setup.h b/src/gn/setup.h
similarity index 95%
rename from tools/gn/setup.h
rename to src/gn/setup.h
index 9aef073..967dda9 100644
--- a/tools/gn/setup.h
+++ b/src/gn/setup.h
@@ -10,15 +10,15 @@
 
 #include "base/files/file_path.h"
 #include "base/macros.h"
-#include "tools/gn/build_settings.h"
-#include "tools/gn/builder.h"
-#include "tools/gn/label_pattern.h"
-#include "tools/gn/loader.h"
-#include "tools/gn/scheduler.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/settings.h"
-#include "tools/gn/token.h"
-#include "tools/gn/toolchain.h"
+#include "gn/build_settings.h"
+#include "gn/builder.h"
+#include "gn/label_pattern.h"
+#include "gn/loader.h"
+#include "gn/scheduler.h"
+#include "gn/scope.h"
+#include "gn/settings.h"
+#include "gn/token.h"
+#include "gn/toolchain.h"
 
 class InputFile;
 class ParseNode;
diff --git a/tools/gn/setup_unittest.cc b/src/gn/setup_unittest.cc
similarity index 91%
rename from tools/gn/setup_unittest.cc
rename to src/gn/setup_unittest.cc
index 20c8eff..723306e 100644
--- a/tools/gn/setup_unittest.cc
+++ b/src/gn/setup_unittest.cc
@@ -2,14 +2,14 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/setup.h"
+#include "gn/setup.h"
 
 #include "base/command_line.h"
 #include "base/files/file_util.h"
 #include "base/files/scoped_temp_dir.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/switches.h"
-#include "tools/gn/test_with_scheduler.h"
+#include "gn/filesystem_utils.h"
+#include "gn/switches.h"
+#include "gn/test_with_scheduler.h"
 
 using SetupTest = TestWithScheduler;
 
diff --git a/tools/gn/source_dir.cc b/src/gn/source_dir.cc
similarity index 97%
rename from tools/gn/source_dir.cc
rename to src/gn/source_dir.cc
index e8c4ae9..dd66688 100644
--- a/tools/gn/source_dir.cc
+++ b/src/gn/source_dir.cc
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/source_dir.h"
+#include "gn/source_dir.h"
 
 #include <string>
 
 #include "base/logging.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/source_file.h"
+#include "gn/filesystem_utils.h"
+#include "gn/source_file.h"
 #include "util/build_config.h"
 
 namespace {
diff --git a/tools/gn/source_dir.h b/src/gn/source_dir.h
similarity index 100%
rename from tools/gn/source_dir.h
rename to src/gn/source_dir.h
diff --git a/tools/gn/source_dir_unittest.cc b/src/gn/source_dir_unittest.cc
similarity index 98%
rename from tools/gn/source_dir_unittest.cc
rename to src/gn/source_dir_unittest.cc
index 20c60b7..148ab92 100644
--- a/tools/gn/source_dir_unittest.cc
+++ b/src/gn/source_dir_unittest.cc
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/source_dir.h"
-#include "tools/gn/err.h"
-#include "tools/gn/source_file.h"
-#include "tools/gn/value.h"
+#include "gn/source_dir.h"
+#include "gn/err.h"
+#include "gn/source_file.h"
+#include "gn/value.h"
 #include "util/build_config.h"
 #include "util/test/test.h"
 
diff --git a/tools/gn/source_file.cc b/src/gn/source_file.cc
similarity index 96%
rename from tools/gn/source_file.cc
rename to src/gn/source_file.cc
index d3ea1cc..acb1c48 100644
--- a/tools/gn/source_file.cc
+++ b/src/gn/source_file.cc
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/source_file.h"
+#include "gn/source_file.h"
 
 #include "base/logging.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/source_dir.h"
+#include "gn/filesystem_utils.h"
+#include "gn/source_dir.h"
 #include "util/build_config.h"
 
 namespace {
diff --git a/tools/gn/source_file.h b/src/gn/source_file.h
similarity index 100%
rename from tools/gn/source_file.h
rename to src/gn/source_file.h
diff --git a/tools/gn/source_file_unittest.cc b/src/gn/source_file_unittest.cc
similarity index 94%
rename from tools/gn/source_file_unittest.cc
rename to src/gn/source_file_unittest.cc
index d26b359..9d3a123 100644
--- a/tools/gn/source_file_unittest.cc
+++ b/src/gn/source_file_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/source_file.h"
+#include "gn/source_file.h"
 
 #include "util/test/test.h"
 
diff --git a/tools/gn/standard_out.cc b/src/gn/standard_out.cc
similarity index 98%
rename from tools/gn/standard_out.cc
rename to src/gn/standard_out.cc
index 003c8ee..5564a0c 100644
--- a/tools/gn/standard_out.cc
+++ b/src/gn/standard_out.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/standard_out.h"
+#include "gn/standard_out.h"
 
 #include <stddef.h>
 
@@ -13,7 +13,7 @@
 #include "base/logging.h"
 #include "base/strings/string_split.h"
 #include "base/strings/string_util.h"
-#include "tools/gn/switches.h"
+#include "gn/switches.h"
 #include "util/build_config.h"
 
 #if defined(OS_WIN)
diff --git a/tools/gn/standard_out.h b/src/gn/standard_out.h
similarity index 100%
rename from tools/gn/standard_out.h
rename to src/gn/standard_out.h
diff --git a/tools/gn/string_utils.cc b/src/gn/string_utils.cc
similarity index 97%
rename from tools/gn/string_utils.cc
rename to src/gn/string_utils.cc
index 72eb4b1..7f9c6b0 100644
--- a/tools/gn/string_utils.cc
+++ b/src/gn/string_utils.cc
@@ -2,19 +2,19 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/string_utils.h"
+#include "gn/string_utils.h"
 
 #include <stddef.h>
 #include <cctype>
 
 #include "base/strings/string_number_conversions.h"
-#include "tools/gn/err.h"
-#include "tools/gn/input_file.h"
-#include "tools/gn/parser.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/token.h"
-#include "tools/gn/tokenizer.h"
-#include "tools/gn/value.h"
+#include "gn/err.h"
+#include "gn/input_file.h"
+#include "gn/parser.h"
+#include "gn/scope.h"
+#include "gn/token.h"
+#include "gn/tokenizer.h"
+#include "gn/value.h"
 
 namespace {
 
diff --git a/tools/gn/string_utils.h b/src/gn/string_utils.h
similarity index 100%
rename from tools/gn/string_utils.h
rename to src/gn/string_utils.h
diff --git a/tools/gn/string_utils_unittest.cc b/src/gn/string_utils_unittest.cc
similarity index 96%
rename from tools/gn/string_utils_unittest.cc
rename to src/gn/string_utils_unittest.cc
index 4c5cd81..64fd0c2 100644
--- a/tools/gn/string_utils_unittest.cc
+++ b/src/gn/string_utils_unittest.cc
@@ -2,18 +2,18 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/string_utils.h"
+#include "gn/string_utils.h"
 
 #include <stdint.h>
 
 #include <memory>
 #include <utility>
 
-#include "tools/gn/err.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/settings.h"
-#include "tools/gn/token.h"
-#include "tools/gn/value.h"
+#include "gn/err.h"
+#include "gn/scope.h"
+#include "gn/settings.h"
+#include "gn/token.h"
+#include "gn/value.h"
 #include "util/test/test.h"
 
 namespace {
diff --git a/tools/gn/substitution_list.cc b/src/gn/substitution_list.cc
similarity index 96%
rename from tools/gn/substitution_list.cc
rename to src/gn/substitution_list.cc
index b588dad..ecef4f5 100644
--- a/tools/gn/substitution_list.cc
+++ b/src/gn/substitution_list.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/substitution_list.h"
+#include "gn/substitution_list.h"
 
 #include <stddef.h>
 #include <string.h>
 
-#include "tools/gn/value.h"
+#include "gn/value.h"
 
 SubstitutionList::SubstitutionList() = default;
 
diff --git a/tools/gn/substitution_list.h b/src/gn/substitution_list.h
similarity index 96%
rename from tools/gn/substitution_list.h
rename to src/gn/substitution_list.h
index e8614eb..c1985bb 100644
--- a/tools/gn/substitution_list.h
+++ b/src/gn/substitution_list.h
@@ -8,7 +8,7 @@
 #include <string>
 #include <vector>
 
-#include "tools/gn/substitution_pattern.h"
+#include "gn/substitution_pattern.h"
 
 // Represents a list of strings with {{substitution_patterns}} in them.
 class SubstitutionList {
diff --git a/tools/gn/substitution_pattern.cc b/src/gn/substitution_pattern.cc
similarity index 95%
rename from tools/gn/substitution_pattern.cc
rename to src/gn/substitution_pattern.cc
index b02532d..a25d631 100644
--- a/tools/gn/substitution_pattern.cc
+++ b/src/gn/substitution_pattern.cc
@@ -2,15 +2,15 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/substitution_pattern.h"
+#include "gn/substitution_pattern.h"
 
 #include <stddef.h>
 
 #include "base/strings/string_number_conversions.h"
-#include "tools/gn/build_settings.h"
-#include "tools/gn/err.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/value.h"
+#include "gn/build_settings.h"
+#include "gn/err.h"
+#include "gn/filesystem_utils.h"
+#include "gn/value.h"
 
 SubstitutionPattern::Subrange::Subrange() : type(&SubstitutionLiteral) {}
 
diff --git a/tools/gn/substitution_pattern.h b/src/gn/substitution_pattern.h
similarity index 98%
rename from tools/gn/substitution_pattern.h
rename to src/gn/substitution_pattern.h
index 81bd897..f6ad22e 100644
--- a/tools/gn/substitution_pattern.h
+++ b/src/gn/substitution_pattern.h
@@ -8,7 +8,7 @@
 #include <string>
 #include <vector>
 
-#include "tools/gn/substitution_type.h"
+#include "gn/substitution_type.h"
 
 class BuildSettings;
 class Err;
diff --git a/tools/gn/substitution_pattern_unittest.cc b/src/gn/substitution_pattern_unittest.cc
similarity index 95%
rename from tools/gn/substitution_pattern_unittest.cc
rename to src/gn/substitution_pattern_unittest.cc
index 1a6498f..76e4dec 100644
--- a/tools/gn/substitution_pattern_unittest.cc
+++ b/src/gn/substitution_pattern_unittest.cc
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/substitution_pattern.h"
+#include "gn/substitution_pattern.h"
 
-#include "tools/gn/err.h"
-#include "tools/gn/rust_substitution_type.h"
+#include "gn/err.h"
+#include "gn/rust_substitution_type.h"
 #include "util/test/test.h"
 
 TEST(SubstitutionPattern, ParseLiteral) {
diff --git a/tools/gn/substitution_type.cc b/src/gn/substitution_type.cc
similarity index 97%
rename from tools/gn/substitution_type.cc
rename to src/gn/substitution_type.cc
index 4a5f338..d052c36 100644
--- a/tools/gn/substitution_type.cc
+++ b/src/gn/substitution_type.cc
@@ -2,14 +2,14 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/substitution_type.h"
+#include "gn/substitution_type.h"
 
 #include <stddef.h>
 #include <stdlib.h>
 
-#include "tools/gn/c_substitution_type.h"
-#include "tools/gn/err.h"
-#include "tools/gn/rust_substitution_type.h"
+#include "gn/c_substitution_type.h"
+#include "gn/err.h"
+#include "gn/rust_substitution_type.h"
 
 const std::vector<SubstitutionTypes*> AllSubstitutions = {
     &GeneralSubstitutions, &CSubstitutions, &RustSubstitutions};
diff --git a/tools/gn/substitution_type.h b/src/gn/substitution_type.h
similarity index 100%
rename from tools/gn/substitution_type.h
rename to src/gn/substitution_type.h
diff --git a/tools/gn/substitution_writer.cc b/src/gn/substitution_writer.cc
similarity index 97%
rename from tools/gn/substitution_writer.cc
rename to src/gn/substitution_writer.cc
index 99eaaf8..6674c9b 100644
--- a/tools/gn/substitution_writer.cc
+++ b/src/gn/substitution_writer.cc
@@ -2,21 +2,21 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/substitution_writer.h"
+#include "gn/substitution_writer.h"
 
-#include "tools/gn/build_settings.h"
-#include "tools/gn/c_substitution_type.h"
-#include "tools/gn/escape.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/output_file.h"
-#include "tools/gn/rust_substitution_type.h"
-#include "tools/gn/rust_tool.h"
-#include "tools/gn/settings.h"
-#include "tools/gn/source_file.h"
-#include "tools/gn/string_utils.h"
-#include "tools/gn/substitution_list.h"
-#include "tools/gn/substitution_pattern.h"
-#include "tools/gn/target.h"
+#include "gn/build_settings.h"
+#include "gn/c_substitution_type.h"
+#include "gn/escape.h"
+#include "gn/filesystem_utils.h"
+#include "gn/output_file.h"
+#include "gn/rust_substitution_type.h"
+#include "gn/rust_tool.h"
+#include "gn/settings.h"
+#include "gn/source_file.h"
+#include "gn/string_utils.h"
+#include "gn/substitution_list.h"
+#include "gn/substitution_pattern.h"
+#include "gn/target.h"
 
 namespace {
 
diff --git a/tools/gn/substitution_writer.h b/src/gn/substitution_writer.h
similarity index 99%
rename from tools/gn/substitution_writer.h
rename to src/gn/substitution_writer.h
index 24cc283..95e4b94 100644
--- a/tools/gn/substitution_writer.h
+++ b/src/gn/substitution_writer.h
@@ -9,7 +9,7 @@
 #include <string>
 #include <vector>
 
-#include "tools/gn/substitution_type.h"
+#include "gn/substitution_type.h"
 
 struct EscapeOptions;
 class OutputFile;
diff --git a/tools/gn/substitution_writer_unittest.cc b/src/gn/substitution_writer_unittest.cc
similarity index 97%
rename from tools/gn/substitution_writer_unittest.cc
rename to src/gn/substitution_writer_unittest.cc
index 0dea906..8e5709b 100644
--- a/tools/gn/substitution_writer_unittest.cc
+++ b/src/gn/substitution_writer_unittest.cc
@@ -4,14 +4,14 @@
 
 #include <sstream>
 
-#include "tools/gn/c_substitution_type.h"
-#include "tools/gn/err.h"
-#include "tools/gn/escape.h"
-#include "tools/gn/substitution_list.h"
-#include "tools/gn/substitution_pattern.h"
-#include "tools/gn/substitution_writer.h"
-#include "tools/gn/target.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/c_substitution_type.h"
+#include "gn/err.h"
+#include "gn/escape.h"
+#include "gn/substitution_list.h"
+#include "gn/substitution_pattern.h"
+#include "gn/substitution_writer.h"
+#include "gn/target.h"
+#include "gn/test_with_scope.h"
 #include "util/build_config.h"
 #include "util/test/test.h"
 
diff --git a/tools/gn/switches.cc b/src/gn/switches.cc
similarity index 99%
rename from tools/gn/switches.cc
rename to src/gn/switches.cc
index f6a4704..fe4696d 100644
--- a/tools/gn/switches.cc
+++ b/src/gn/switches.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/switches.h"
+#include "gn/switches.h"
 
 namespace switches {
 
diff --git a/tools/gn/switches.h b/src/gn/switches.h
similarity index 100%
rename from tools/gn/switches.h
rename to src/gn/switches.h
diff --git a/tools/gn/target.cc b/src/gn/target.cc
similarity index 98%
rename from tools/gn/target.cc
rename to src/gn/target.cc
index bc87928..9869138 100644
--- a/tools/gn/target.cc
+++ b/src/gn/target.cc
@@ -2,23 +2,23 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/target.h"
+#include "gn/target.h"
 
 #include <stddef.h>
 
 #include "base/stl_util.h"
 #include "base/strings/string_util.h"
 #include "base/strings/stringprintf.h"
-#include "tools/gn/c_tool.h"
-#include "tools/gn/config_values_extractors.h"
-#include "tools/gn/deps_iterator.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/functions.h"
-#include "tools/gn/scheduler.h"
-#include "tools/gn/substitution_writer.h"
-#include "tools/gn/tool.h"
-#include "tools/gn/toolchain.h"
-#include "tools/gn/trace.h"
+#include "gn/c_tool.h"
+#include "gn/config_values_extractors.h"
+#include "gn/deps_iterator.h"
+#include "gn/filesystem_utils.h"
+#include "gn/functions.h"
+#include "gn/scheduler.h"
+#include "gn/substitution_writer.h"
+#include "gn/tool.h"
+#include "gn/toolchain.h"
+#include "gn/trace.h"
 
 namespace {
 
diff --git a/tools/gn/target.h b/src/gn/target.h
similarity index 96%
rename from tools/gn/target.h
rename to src/gn/target.h
index abd1b44..9666427 100644
--- a/tools/gn/target.h
+++ b/src/gn/target.h
@@ -12,21 +12,21 @@
 #include "base/gtest_prod_util.h"
 #include "base/logging.h"
 #include "base/macros.h"
-#include "tools/gn/action_values.h"
-#include "tools/gn/bundle_data.h"
-#include "tools/gn/config_values.h"
-#include "tools/gn/inherited_libraries.h"
-#include "tools/gn/item.h"
-#include "tools/gn/label_pattern.h"
-#include "tools/gn/label_ptr.h"
-#include "tools/gn/lib_file.h"
-#include "tools/gn/metadata.h"
-#include "tools/gn/ordered_set.h"
-#include "tools/gn/output_file.h"
-#include "tools/gn/rust_values.h"
-#include "tools/gn/source_file.h"
-#include "tools/gn/toolchain.h"
-#include "tools/gn/unique_vector.h"
+#include "gn/action_values.h"
+#include "gn/bundle_data.h"
+#include "gn/config_values.h"
+#include "gn/inherited_libraries.h"
+#include "gn/item.h"
+#include "gn/label_pattern.h"
+#include "gn/label_ptr.h"
+#include "gn/lib_file.h"
+#include "gn/metadata.h"
+#include "gn/ordered_set.h"
+#include "gn/output_file.h"
+#include "gn/rust_values.h"
+#include "gn/source_file.h"
+#include "gn/toolchain.h"
+#include "gn/unique_vector.h"
 
 class DepsIteratorRange;
 class Settings;
diff --git a/tools/gn/target_generator.cc b/src/gn/target_generator.cc
similarity index 94%
rename from tools/gn/target_generator.cc
rename to src/gn/target_generator.cc
index 09de19d..3936fd7 100644
--- a/tools/gn/target_generator.cc
+++ b/src/gn/target_generator.cc
@@ -2,33 +2,33 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/target_generator.h"
+#include "gn/target_generator.h"
 
 #include <stddef.h>
 
 #include <memory>
 #include <utility>
 
-#include "tools/gn/action_target_generator.h"
-#include "tools/gn/binary_target_generator.h"
-#include "tools/gn/build_settings.h"
-#include "tools/gn/bundle_data_target_generator.h"
-#include "tools/gn/config.h"
-#include "tools/gn/copy_target_generator.h"
-#include "tools/gn/create_bundle_target_generator.h"
-#include "tools/gn/err.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/functions.h"
-#include "tools/gn/generated_file_target_generator.h"
-#include "tools/gn/group_target_generator.h"
-#include "tools/gn/metadata.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/scheduler.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/token.h"
-#include "tools/gn/value.h"
-#include "tools/gn/value_extractors.h"
-#include "tools/gn/variables.h"
+#include "gn/action_target_generator.h"
+#include "gn/binary_target_generator.h"
+#include "gn/build_settings.h"
+#include "gn/bundle_data_target_generator.h"
+#include "gn/config.h"
+#include "gn/copy_target_generator.h"
+#include "gn/create_bundle_target_generator.h"
+#include "gn/err.h"
+#include "gn/filesystem_utils.h"
+#include "gn/functions.h"
+#include "gn/generated_file_target_generator.h"
+#include "gn/group_target_generator.h"
+#include "gn/metadata.h"
+#include "gn/parse_tree.h"
+#include "gn/scheduler.h"
+#include "gn/scope.h"
+#include "gn/token.h"
+#include "gn/value.h"
+#include "gn/value_extractors.h"
+#include "gn/variables.h"
 
 TargetGenerator::TargetGenerator(Target* target,
                                  Scope* scope,
diff --git a/tools/gn/target_generator.h b/src/gn/target_generator.h
similarity index 97%
rename from tools/gn/target_generator.h
rename to src/gn/target_generator.h
index ae54882..2053196 100644
--- a/tools/gn/target_generator.h
+++ b/src/gn/target_generator.h
@@ -9,8 +9,8 @@
 #include <vector>
 
 #include "base/macros.h"
-#include "tools/gn/label_ptr.h"
-#include "tools/gn/unique_vector.h"
+#include "gn/label_ptr.h"
+#include "gn/unique_vector.h"
 
 class BuildSettings;
 class Err;
diff --git a/tools/gn/target_unittest.cc b/src/gn/target_unittest.cc
similarity index 99%
rename from tools/gn/target_unittest.cc
rename to src/gn/target_unittest.cc
index 93fc6a4..fbac9aa 100644
--- a/tools/gn/target_unittest.cc
+++ b/src/gn/target_unittest.cc
@@ -2,18 +2,18 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/target.h"
+#include "gn/target.h"
 
 #include <memory>
 #include <utility>
 
-#include "tools/gn/build_settings.h"
-#include "tools/gn/config.h"
-#include "tools/gn/scheduler.h"
-#include "tools/gn/settings.h"
-#include "tools/gn/test_with_scheduler.h"
-#include "tools/gn/test_with_scope.h"
-#include "tools/gn/toolchain.h"
+#include "gn/build_settings.h"
+#include "gn/config.h"
+#include "gn/scheduler.h"
+#include "gn/settings.h"
+#include "gn/test_with_scheduler.h"
+#include "gn/test_with_scope.h"
+#include "gn/toolchain.h"
 #include "util/test/test.h"
 
 namespace {
diff --git a/tools/gn/template.cc b/src/gn/template.cc
similarity index 94%
rename from tools/gn/template.cc
rename to src/gn/template.cc
index 625cf5e..3a65122 100644
--- a/tools/gn/template.cc
+++ b/src/gn/template.cc
@@ -2,18 +2,18 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/template.h"
+#include "gn/template.h"
 
 #include <memory>
 #include <utility>
 
-#include "tools/gn/err.h"
-#include "tools/gn/functions.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/scope_per_file_provider.h"
-#include "tools/gn/value.h"
-#include "tools/gn/variables.h"
+#include "gn/err.h"
+#include "gn/functions.h"
+#include "gn/parse_tree.h"
+#include "gn/scope.h"
+#include "gn/scope_per_file_provider.h"
+#include "gn/value.h"
+#include "gn/variables.h"
 
 Template::Template(const Scope* scope, const FunctionCallNode* def)
     : closure_(scope->MakeClosure()), definition_(def) {}
diff --git a/tools/gn/template.h b/src/gn/template.h
similarity index 100%
rename from tools/gn/template.h
rename to src/gn/template.h
diff --git a/tools/gn/template_unittest.cc b/src/gn/template_unittest.cc
similarity index 98%
rename from tools/gn/template_unittest.cc
rename to src/gn/template_unittest.cc
index a7a7aee..a8c88dc 100644
--- a/tools/gn/template_unittest.cc
+++ b/src/gn/template_unittest.cc
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 #include "base/strings/string_number_conversions.h"
-#include "tools/gn/test_with_scope.h"
+#include "gn/test_with_scope.h"
 #include "util/test/test.h"
 
 TEST(Template, Basic) {
diff --git a/tools/gn/test_with_scheduler.cc b/src/gn/test_with_scheduler.cc
similarity index 86%
rename from tools/gn/test_with_scheduler.cc
rename to src/gn/test_with_scheduler.cc
index ce7a90c..8022c5a 100644
--- a/tools/gn/test_with_scheduler.cc
+++ b/src/gn/test_with_scheduler.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/test_with_scheduler.h"
+#include "gn/test_with_scheduler.h"
 
 TestWithScheduler::TestWithScheduler() = default;
 TestWithScheduler::~TestWithScheduler() = default;
diff --git a/tools/gn/test_with_scheduler.h b/src/gn/test_with_scheduler.h
similarity index 94%
rename from tools/gn/test_with_scheduler.h
rename to src/gn/test_with_scheduler.h
index f380bbc..4ae3697 100644
--- a/tools/gn/test_with_scheduler.h
+++ b/src/gn/test_with_scheduler.h
@@ -6,7 +6,7 @@
 #define TOOLS_GN_TEST_WITH_SCHEDULER_H_
 
 #include "base/macros.h"
-#include "tools/gn/scheduler.h"
+#include "gn/scheduler.h"
 #include "util/msg_loop.h"
 #include "util/test/test.h"
 
diff --git a/tools/gn/test_with_scope.cc b/src/gn/test_with_scope.cc
similarity index 98%
rename from tools/gn/test_with_scope.cc
rename to src/gn/test_with_scope.cc
index 477f35d..c1ba4e8 100644
--- a/tools/gn/test_with_scope.cc
+++ b/src/gn/test_with_scope.cc
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/test_with_scope.h"
+#include "gn/test_with_scope.h"
 
 #include <memory>
 #include <utility>
 
-#include "tools/gn/parser.h"
-#include "tools/gn/tokenizer.h"
+#include "gn/parser.h"
+#include "gn/tokenizer.h"
 
 namespace {
 
diff --git a/tools/gn/test_with_scope.h b/src/gn/test_with_scope.h
similarity index 89%
rename from tools/gn/test_with_scope.h
rename to src/gn/test_with_scope.h
index 897ef1b..de1f967 100644
--- a/tools/gn/test_with_scope.h
+++ b/src/gn/test_with_scope.h
@@ -9,20 +9,20 @@
 #include <vector>
 
 #include "base/macros.h"
-#include "tools/gn/build_settings.h"
-#include "tools/gn/c_tool.h"
-#include "tools/gn/err.h"
-#include "tools/gn/general_tool.h"
-#include "tools/gn/input_file.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/rust_tool.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/scope_per_file_provider.h"
-#include "tools/gn/settings.h"
-#include "tools/gn/target.h"
-#include "tools/gn/token.h"
-#include "tools/gn/toolchain.h"
-#include "tools/gn/value.h"
+#include "gn/build_settings.h"
+#include "gn/c_tool.h"
+#include "gn/err.h"
+#include "gn/general_tool.h"
+#include "gn/input_file.h"
+#include "gn/parse_tree.h"
+#include "gn/rust_tool.h"
+#include "gn/scope.h"
+#include "gn/scope_per_file_provider.h"
+#include "gn/settings.h"
+#include "gn/target.h"
+#include "gn/token.h"
+#include "gn/toolchain.h"
+#include "gn/value.h"
 
 // A helper class for setting up a Scope that a test can use. It makes a
 // toolchain and sets up all the build state.
diff --git a/tools/gn/token.cc b/src/gn/token.cc
similarity index 95%
rename from tools/gn/token.cc
rename to src/gn/token.cc
index 7951571..c648371 100644
--- a/tools/gn/token.cc
+++ b/src/gn/token.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/token.h"
+#include "gn/token.h"
 
 #include "base/logging.h"
 
diff --git a/tools/gn/token.h b/src/gn/token.h
similarity index 98%
rename from tools/gn/token.h
rename to src/gn/token.h
index 46eb78e..8837466 100644
--- a/tools/gn/token.h
+++ b/src/gn/token.h
@@ -7,7 +7,7 @@
 
 #include <string_view>
 
-#include "tools/gn/location.h"
+#include "gn/location.h"
 
 class Token {
  public:
diff --git a/tools/gn/tokenizer.cc b/src/gn/tokenizer.cc
similarity index 99%
rename from tools/gn/tokenizer.cc
rename to src/gn/tokenizer.cc
index 73a1491..67c21d5 100644
--- a/tools/gn/tokenizer.cc
+++ b/src/gn/tokenizer.cc
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/tokenizer.h"
+#include "gn/tokenizer.h"
 
 #include "base/logging.h"
 #include "base/strings/string_util.h"
-#include "tools/gn/input_file.h"
+#include "gn/input_file.h"
 
 namespace {
 
diff --git a/tools/gn/tokenizer.h b/src/gn/tokenizer.h
similarity index 97%
rename from tools/gn/tokenizer.h
rename to src/gn/tokenizer.h
index 41451ee..a2153ca 100644
--- a/tools/gn/tokenizer.h
+++ b/src/gn/tokenizer.h
@@ -11,8 +11,8 @@
 #include <vector>
 
 #include "base/macros.h"
-#include "tools/gn/err.h"
-#include "tools/gn/token.h"
+#include "gn/err.h"
+#include "gn/token.h"
 
 class InputFile;
 
diff --git a/tools/gn/tokenizer_unittest.cc b/src/gn/tokenizer_unittest.cc
similarity index 98%
rename from tools/gn/tokenizer_unittest.cc
rename to src/gn/tokenizer_unittest.cc
index bc6d4b1..b7423a8 100644
--- a/tools/gn/tokenizer_unittest.cc
+++ b/src/gn/tokenizer_unittest.cc
@@ -4,9 +4,9 @@
 
 #include <stddef.h>
 
-#include "tools/gn/input_file.h"
-#include "tools/gn/token.h"
-#include "tools/gn/tokenizer.h"
+#include "gn/input_file.h"
+#include "gn/token.h"
+#include "gn/tokenizer.h"
 #include "util/test/test.h"
 
 namespace {
diff --git a/tools/gn/tool.cc b/src/gn/tool.cc
similarity index 98%
rename from tools/gn/tool.cc
rename to src/gn/tool.cc
index 43f6fbd..e43336c 100644
--- a/tools/gn/tool.cc
+++ b/src/gn/tool.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/tool.h"
+#include "gn/tool.h"
 
-#include "tools/gn/c_tool.h"
-#include "tools/gn/general_tool.h"
-#include "tools/gn/rust_tool.h"
-#include "tools/gn/target.h"
+#include "gn/c_tool.h"
+#include "gn/general_tool.h"
+#include "gn/rust_tool.h"
+#include "gn/target.h"
 
 const char* Tool::kToolNone = "";
 
diff --git a/tools/gn/tool.h b/src/gn/tool.h
similarity index 97%
rename from tools/gn/tool.h
rename to src/gn/tool.h
index ae9dd61..b83d416 100644
--- a/tools/gn/tool.h
+++ b/src/gn/tool.h
@@ -9,12 +9,12 @@
 
 #include "base/logging.h"
 #include "base/macros.h"
-#include "tools/gn/label.h"
-#include "tools/gn/label_ptr.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/source_file.h"
-#include "tools/gn/substitution_list.h"
-#include "tools/gn/substitution_pattern.h"
+#include "gn/label.h"
+#include "gn/label_ptr.h"
+#include "gn/scope.h"
+#include "gn/source_file.h"
+#include "gn/substitution_list.h"
+#include "gn/substitution_pattern.h"
 
 class ParseNode;
 class Pool;
diff --git a/tools/gn/toolchain.cc b/src/gn/toolchain.cc
similarity index 97%
rename from tools/gn/toolchain.cc
rename to src/gn/toolchain.cc
index 906068d..d66b489 100644
--- a/tools/gn/toolchain.cc
+++ b/src/gn/toolchain.cc
@@ -2,15 +2,15 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/toolchain.h"
+#include "gn/toolchain.h"
 
 #include <stddef.h>
 #include <string.h>
 #include <utility>
 
 #include "base/logging.h"
-#include "tools/gn/target.h"
-#include "tools/gn/value.h"
+#include "gn/target.h"
+#include "gn/value.h"
 
 Toolchain::Toolchain(const Settings* settings,
                      const Label& label,
diff --git a/tools/gn/toolchain.h b/src/gn/toolchain.h
similarity index 96%
rename from tools/gn/toolchain.h
rename to src/gn/toolchain.h
index fbeda8f..6e450a1 100644
--- a/tools/gn/toolchain.h
+++ b/src/gn/toolchain.h
@@ -9,12 +9,12 @@
 #include <string_view>
 
 #include "base/logging.h"
-#include "tools/gn/item.h"
-#include "tools/gn/label_ptr.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/substitution_type.h"
-#include "tools/gn/tool.h"
-#include "tools/gn/value.h"
+#include "gn/item.h"
+#include "gn/label_ptr.h"
+#include "gn/scope.h"
+#include "gn/substitution_type.h"
+#include "gn/tool.h"
+#include "gn/value.h"
 
 // Holds information on a specific toolchain. This data is filled in when we
 // encounter a toolchain definition.
diff --git a/tools/gn/trace.cc b/src/gn/trace.cc
similarity index 98%
rename from tools/gn/trace.cc
rename to src/gn/trace.cc
index 58a8c3c..87c3cb6 100644
--- a/tools/gn/trace.cc
+++ b/src/gn/trace.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/trace.h"
+#include "gn/trace.h"
 
 #include <stddef.h>
 
@@ -19,8 +19,8 @@
 #include "base/logging.h"
 #include "base/macros.h"
 #include "base/strings/stringprintf.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/label.h"
+#include "gn/filesystem_utils.h"
+#include "gn/label.h"
 
 namespace {
 
diff --git a/tools/gn/trace.h b/src/gn/trace.h
similarity index 100%
rename from tools/gn/trace.h
rename to src/gn/trace.h
diff --git a/tools/gn/unique_vector.h b/src/gn/unique_vector.h
similarity index 100%
rename from tools/gn/unique_vector.h
rename to src/gn/unique_vector.h
diff --git a/tools/gn/unique_vector_unittest.cc b/src/gn/unique_vector_unittest.cc
similarity index 96%
rename from tools/gn/unique_vector_unittest.cc
rename to src/gn/unique_vector_unittest.cc
index 008d284..96303b4 100644
--- a/tools/gn/unique_vector_unittest.cc
+++ b/src/gn/unique_vector_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/unique_vector.h"
+#include "gn/unique_vector.h"
 
 #include <stddef.h>
 
diff --git a/tools/gn/value.cc b/src/gn/value.cc
similarity index 98%
rename from tools/gn/value.cc
rename to src/gn/value.cc
index c8cde58..233a523 100644
--- a/tools/gn/value.cc
+++ b/src/gn/value.cc
@@ -2,14 +2,14 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/value.h"
+#include "gn/value.h"
 
 #include <stddef.h>
 #include <utility>
 
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_util.h"
-#include "tools/gn/scope.h"
+#include "gn/scope.h"
 
 // NOTE: Cannot use = default here due to the use of a union member.
 Value::Value() {}
diff --git a/tools/gn/value.h b/src/gn/value.h
similarity index 98%
rename from tools/gn/value.h
rename to src/gn/value.h
index 3834910..bf01073 100644
--- a/tools/gn/value.h
+++ b/src/gn/value.h
@@ -12,7 +12,7 @@
 
 #include "base/logging.h"
 #include "base/macros.h"
-#include "tools/gn/err.h"
+#include "gn/err.h"
 
 class ParseNode;
 class Scope;
diff --git a/tools/gn/value_extractors.cc b/src/gn/value_extractors.cc
similarity index 96%
rename from tools/gn/value_extractors.cc
rename to src/gn/value_extractors.cc
index 6eb09ac..5023a59 100644
--- a/tools/gn/value_extractors.cc
+++ b/src/gn/value_extractors.cc
@@ -2,17 +2,17 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/value_extractors.h"
+#include "gn/value_extractors.h"
 
 #include <stddef.h>
 
-#include "tools/gn/build_settings.h"
-#include "tools/gn/err.h"
-#include "tools/gn/label.h"
-#include "tools/gn/source_dir.h"
-#include "tools/gn/source_file.h"
-#include "tools/gn/target.h"
-#include "tools/gn/value.h"
+#include "gn/build_settings.h"
+#include "gn/err.h"
+#include "gn/label.h"
+#include "gn/source_dir.h"
+#include "gn/source_file.h"
+#include "gn/target.h"
+#include "gn/value.h"
 
 namespace {
 
diff --git a/tools/gn/value_extractors.h b/src/gn/value_extractors.h
similarity index 97%
rename from tools/gn/value_extractors.h
rename to src/gn/value_extractors.h
index 1e42650..dd07471 100644
--- a/tools/gn/value_extractors.h
+++ b/src/gn/value_extractors.h
@@ -8,9 +8,9 @@
 #include <string>
 #include <vector>
 
-#include "tools/gn/label_ptr.h"
-#include "tools/gn/lib_file.h"
-#include "tools/gn/unique_vector.h"
+#include "gn/label_ptr.h"
+#include "gn/lib_file.h"
+#include "gn/unique_vector.h"
 
 class BuildSettings;
 class Err;
diff --git a/tools/gn/value_unittest.cc b/src/gn/value_unittest.cc
similarity index 96%
rename from tools/gn/value_unittest.cc
rename to src/gn/value_unittest.cc
index dd9be95..555f101 100644
--- a/tools/gn/value_unittest.cc
+++ b/src/gn/value_unittest.cc
@@ -4,8 +4,8 @@
 
 #include <stdint.h>
 
-#include "tools/gn/test_with_scope.h"
-#include "tools/gn/value.h"
+#include "gn/test_with_scope.h"
+#include "gn/value.h"
 #include "util/test/test.h"
 
 TEST(Value, ToString) {
diff --git a/tools/gn/variables.cc b/src/gn/variables.cc
similarity index 99%
rename from tools/gn/variables.cc
rename to src/gn/variables.cc
index 74781aa..104c290 100644
--- a/tools/gn/variables.cc
+++ b/src/gn/variables.cc
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/variables.h"
+#include "gn/variables.h"
 
-#include "tools/gn/rust_variables.h"
+#include "gn/rust_variables.h"
 
 namespace variables {
 
diff --git a/tools/gn/variables.h b/src/gn/variables.h
similarity index 100%
rename from tools/gn/variables.h
rename to src/gn/variables.h
diff --git a/tools/gn/visibility.cc b/src/gn/visibility.cc
similarity index 92%
rename from tools/gn/visibility.cc
rename to src/gn/visibility.cc
index babbacc..d15706d 100644
--- a/tools/gn/visibility.cc
+++ b/src/gn/visibility.cc
@@ -2,20 +2,20 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/visibility.h"
+#include "gn/visibility.h"
 
 #include <memory>
 #include <string_view>
 
 #include "base/strings/string_util.h"
 #include "base/values.h"
-#include "tools/gn/err.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/item.h"
-#include "tools/gn/label.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/value.h"
-#include "tools/gn/variables.h"
+#include "gn/err.h"
+#include "gn/filesystem_utils.h"
+#include "gn/item.h"
+#include "gn/label.h"
+#include "gn/scope.h"
+#include "gn/value.h"
+#include "gn/variables.h"
 
 Visibility::Visibility() = default;
 
diff --git a/tools/gn/visibility.h b/src/gn/visibility.h
similarity index 96%
rename from tools/gn/visibility.h
rename to src/gn/visibility.h
index 4228f9d..5c7f753 100644
--- a/tools/gn/visibility.h
+++ b/src/gn/visibility.h
@@ -9,8 +9,8 @@
 #include <vector>
 
 #include "base/macros.h"
-#include "tools/gn/label_pattern.h"
-#include "tools/gn/source_dir.h"
+#include "gn/label_pattern.h"
+#include "gn/source_dir.h"
 
 namespace base {
 class Value;
diff --git a/tools/gn/visibility_unittest.cc b/src/gn/visibility_unittest.cc
similarity index 92%
rename from tools/gn/visibility_unittest.cc
rename to src/gn/visibility_unittest.cc
index 2f6febc..fde7494 100644
--- a/tools/gn/visibility_unittest.cc
+++ b/src/gn/visibility_unittest.cc
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/visibility.h"
-#include "tools/gn/err.h"
-#include "tools/gn/label.h"
-#include "tools/gn/scope.h"
-#include "tools/gn/value.h"
+#include "gn/visibility.h"
+#include "gn/err.h"
+#include "gn/label.h"
+#include "gn/scope.h"
+#include "gn/value.h"
 #include "util/test/test.h"
 
 TEST(Visibility, CanSeeMe) {
diff --git a/tools/gn/visual_studio_utils.cc b/src/gn/visual_studio_utils.cc
similarity index 98%
rename from tools/gn/visual_studio_utils.cc
rename to src/gn/visual_studio_utils.cc
index 00cd2a3..5282d0e 100644
--- a/tools/gn/visual_studio_utils.cc
+++ b/src/gn/visual_studio_utils.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/visual_studio_utils.h"
+#include "gn/visual_studio_utils.h"
 
 #include <vector>
 
diff --git a/tools/gn/visual_studio_utils.h b/src/gn/visual_studio_utils.h
similarity index 100%
rename from tools/gn/visual_studio_utils.h
rename to src/gn/visual_studio_utils.h
diff --git a/tools/gn/visual_studio_utils_unittest.cc b/src/gn/visual_studio_utils_unittest.cc
similarity index 98%
rename from tools/gn/visual_studio_utils_unittest.cc
rename to src/gn/visual_studio_utils_unittest.cc
index d777814..bf84a9e 100644
--- a/tools/gn/visual_studio_utils_unittest.cc
+++ b/src/gn/visual_studio_utils_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/visual_studio_utils.h"
+#include "gn/visual_studio_utils.h"
 
 #include "base/strings/string_util.h"
 #include "util/test/test.h"
diff --git a/tools/gn/visual_studio_writer.cc b/src/gn/visual_studio_writer.cc
similarity index 98%
rename from tools/gn/visual_studio_writer.cc
rename to src/gn/visual_studio_writer.cc
index 0a4c6a5..dd09055 100644
--- a/tools/gn/visual_studio_writer.cc
+++ b/src/gn/visual_studio_writer.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/visual_studio_writer.h"
+#include "gn/visual_studio_writer.h"
 
 #include <algorithm>
 #include <iterator>
@@ -15,20 +15,20 @@
 #include "base/logging.h"
 #include "base/strings/string_util.h"
 #include "base/strings/utf_string_conversions.h"
-#include "tools/gn/builder.h"
-#include "tools/gn/commands.h"
-#include "tools/gn/config.h"
-#include "tools/gn/config_values_extractors.h"
-#include "tools/gn/deps_iterator.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/label_pattern.h"
-#include "tools/gn/parse_tree.h"
-#include "tools/gn/path_output.h"
-#include "tools/gn/standard_out.h"
-#include "tools/gn/target.h"
-#include "tools/gn/variables.h"
-#include "tools/gn/visual_studio_utils.h"
-#include "tools/gn/xml_element_writer.h"
+#include "gn/builder.h"
+#include "gn/commands.h"
+#include "gn/config.h"
+#include "gn/config_values_extractors.h"
+#include "gn/deps_iterator.h"
+#include "gn/filesystem_utils.h"
+#include "gn/label_pattern.h"
+#include "gn/parse_tree.h"
+#include "gn/path_output.h"
+#include "gn/standard_out.h"
+#include "gn/target.h"
+#include "gn/variables.h"
+#include "gn/visual_studio_utils.h"
+#include "gn/xml_element_writer.h"
 
 #if defined(OS_WIN)
 #include "base/win/registry.h"
diff --git a/tools/gn/visual_studio_writer.h b/src/gn/visual_studio_writer.h
similarity index 99%
rename from tools/gn/visual_studio_writer.h
rename to src/gn/visual_studio_writer.h
index 9b2a239..e4957a1 100644
--- a/tools/gn/visual_studio_writer.h
+++ b/src/gn/visual_studio_writer.h
@@ -12,7 +12,7 @@
 
 #include "base/gtest_prod_util.h"
 #include "base/macros.h"
-#include "tools/gn/path_output.h"
+#include "gn/path_output.h"
 
 namespace base {
 class FilePath;
diff --git a/tools/gn/visual_studio_writer_unittest.cc b/src/gn/visual_studio_writer_unittest.cc
similarity index 98%
rename from tools/gn/visual_studio_writer_unittest.cc
rename to src/gn/visual_studio_writer_unittest.cc
index 36b9bcc..5e89fe1 100644
--- a/tools/gn/visual_studio_writer_unittest.cc
+++ b/src/gn/visual_studio_writer_unittest.cc
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/visual_studio_writer.h"
+#include "gn/visual_studio_writer.h"
 
 #include <memory>
 
 #include "base/strings/string_util.h"
-#include "tools/gn/test_with_scope.h"
-#include "tools/gn/visual_studio_utils.h"
+#include "gn/test_with_scope.h"
+#include "gn/visual_studio_utils.h"
 #include "util/test/test.h"
 
 namespace {
diff --git a/tools/gn/xcode_object.cc b/src/gn/xcode_object.cc
similarity index 99%
rename from tools/gn/xcode_object.cc
rename to src/gn/xcode_object.cc
index 8d81246..0d24805 100644
--- a/tools/gn/xcode_object.cc
+++ b/src/gn/xcode_object.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/xcode_object.h"
+#include "gn/xcode_object.h"
 
 #include <iomanip>
 #include <iterator>
@@ -13,7 +13,7 @@
 #include "base/logging.h"
 #include "base/macros.h"
 #include "base/strings/string_util.h"
-#include "tools/gn/filesystem_utils.h"
+#include "gn/filesystem_utils.h"
 
 // Helper methods -------------------------------------------------------------
 
diff --git a/tools/gn/xcode_object.h b/src/gn/xcode_object.h
similarity index 100%
rename from tools/gn/xcode_object.h
rename to src/gn/xcode_object.h
diff --git a/tools/gn/xcode_object_unittest.cc b/src/gn/xcode_object_unittest.cc
similarity index 99%
rename from tools/gn/xcode_object_unittest.cc
rename to src/gn/xcode_object_unittest.cc
index 70ac2c7..70a14df 100644
--- a/tools/gn/xcode_object_unittest.cc
+++ b/src/gn/xcode_object_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/xcode_object.h"
+#include "gn/xcode_object.h"
 
 #include "util/test/test.h"
 
diff --git a/tools/gn/xcode_writer.cc b/src/gn/xcode_writer.cc
similarity index 97%
rename from tools/gn/xcode_writer.cc
rename to src/gn/xcode_writer.cc
index 922b10a..8281a2c 100644
--- a/tools/gn/xcode_writer.cc
+++ b/src/gn/xcode_writer.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/xcode_writer.h"
+#include "gn/xcode_writer.h"
 
 #include <iomanip>
 #include <iterator>
@@ -17,18 +17,18 @@
 #include "base/sha1.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_util.h"
-#include "tools/gn/args.h"
-#include "tools/gn/build_settings.h"
-#include "tools/gn/builder.h"
-#include "tools/gn/commands.h"
-#include "tools/gn/deps_iterator.h"
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/settings.h"
-#include "tools/gn/source_file.h"
-#include "tools/gn/target.h"
-#include "tools/gn/value.h"
-#include "tools/gn/variables.h"
-#include "tools/gn/xcode_object.h"
+#include "gn/args.h"
+#include "gn/build_settings.h"
+#include "gn/builder.h"
+#include "gn/commands.h"
+#include "gn/deps_iterator.h"
+#include "gn/filesystem_utils.h"
+#include "gn/settings.h"
+#include "gn/source_file.h"
+#include "gn/target.h"
+#include "gn/value.h"
+#include "gn/variables.h"
+#include "gn/xcode_object.h"
 
 namespace {
 
diff --git a/tools/gn/xcode_writer.h b/src/gn/xcode_writer.h
similarity index 100%
rename from tools/gn/xcode_writer.h
rename to src/gn/xcode_writer.h
diff --git a/tools/gn/xml_element_writer.cc b/src/gn/xml_element_writer.cc
similarity index 98%
rename from tools/gn/xml_element_writer.cc
rename to src/gn/xml_element_writer.cc
index f94878c..8525057 100644
--- a/tools/gn/xml_element_writer.cc
+++ b/src/gn/xml_element_writer.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/xml_element_writer.h"
+#include "gn/xml_element_writer.h"
 
 #include <memory>
 
diff --git a/tools/gn/xml_element_writer.h b/src/gn/xml_element_writer.h
similarity index 100%
rename from tools/gn/xml_element_writer.h
rename to src/gn/xml_element_writer.h
diff --git a/tools/gn/xml_element_writer_unittest.cc b/src/gn/xml_element_writer_unittest.cc
similarity index 98%
rename from tools/gn/xml_element_writer_unittest.cc
rename to src/gn/xml_element_writer_unittest.cc
index 1b9eb13..6a4cfed 100644
--- a/tools/gn/xml_element_writer_unittest.cc
+++ b/src/gn/xml_element_writer_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "tools/gn/xml_element_writer.h"
+#include "gn/xml_element_writer.h"
 
 #include <sstream>
 
diff --git a/util/auto_reset_event.h b/src/util/auto_reset_event.h
similarity index 100%
rename from util/auto_reset_event.h
rename to src/util/auto_reset_event.h
diff --git a/util/build_config.h b/src/util/build_config.h
similarity index 100%
rename from util/build_config.h
rename to src/util/build_config.h
diff --git a/util/exe_path.cc b/src/util/exe_path.cc
similarity index 100%
rename from util/exe_path.cc
rename to src/util/exe_path.cc
diff --git a/util/exe_path.h b/src/util/exe_path.h
similarity index 100%
rename from util/exe_path.h
rename to src/util/exe_path.h
diff --git a/util/msg_loop.cc b/src/util/msg_loop.cc
similarity index 100%
rename from util/msg_loop.cc
rename to src/util/msg_loop.cc
diff --git a/util/msg_loop.h b/src/util/msg_loop.h
similarity index 100%
rename from util/msg_loop.h
rename to src/util/msg_loop.h
diff --git a/util/semaphore.cc b/src/util/semaphore.cc
similarity index 100%
rename from util/semaphore.cc
rename to src/util/semaphore.cc
diff --git a/util/semaphore.h b/src/util/semaphore.h
similarity index 100%
rename from util/semaphore.h
rename to src/util/semaphore.h
diff --git a/util/sys_info.cc b/src/util/sys_info.cc
similarity index 100%
rename from util/sys_info.cc
rename to src/util/sys_info.cc
diff --git a/util/sys_info.h b/src/util/sys_info.h
similarity index 100%
rename from util/sys_info.h
rename to src/util/sys_info.h
diff --git a/util/test/gn_test.cc b/src/util/test/gn_test.cc
similarity index 100%
rename from util/test/gn_test.cc
rename to src/util/test/gn_test.cc
diff --git a/util/test/test.h b/src/util/test/test.h
similarity index 100%
rename from util/test/test.h
rename to src/util/test/test.h
diff --git a/util/ticks.cc b/src/util/ticks.cc
similarity index 100%
rename from util/ticks.cc
rename to src/util/ticks.cc
diff --git a/util/ticks.h b/src/util/ticks.h
similarity index 100%
rename from util/ticks.h
rename to src/util/ticks.h
diff --git a/util/worker_pool.cc b/src/util/worker_pool.cc
similarity index 98%
rename from util/worker_pool.cc
rename to src/util/worker_pool.cc
index 3c049a9..38ab480 100644
--- a/util/worker_pool.cc
+++ b/src/util/worker_pool.cc
@@ -6,7 +6,7 @@
 
 #include "base/command_line.h"
 #include "base/strings/string_number_conversions.h"
-#include "tools/gn/switches.h"
+#include "gn/switches.h"
 #include "util/build_config.h"
 #include "util/sys_info.h"
 
diff --git a/util/worker_pool.h b/src/util/worker_pool.h
similarity index 100%
rename from util/worker_pool.h
rename to src/util/worker_pool.h