Do not use the root scope for BUILDCONFIG.gn.
Create a new scope for BUILDCONFIG.gn with the correct current
directory setting.
This fixes relative path resolution in BUILDCONFIG.gn when
BUILDCONFIG.gn is not in the root directory.
Change-Id: If39c3467d8983cbe41020a07a57caf67687a9fa7
Reviewed-on: https://gn-review.googlesource.com/c/gn/+/5500
Reviewed-by: Brett Wilson <brettw@chromium.org>
Commit-Queue: Brett Wilson <brettw@chromium.org>
diff --git a/AUTHORS b/AUTHORS
index 417cc5f..17b4959 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -20,6 +20,7 @@
Yandex LLC <*@yandex-team.ru>
Alexis Menard <alexis.menard@intel.com>
+Alfredo Mazzinghi <mzz.lrd@gmail.com>
Andrew Boyarshin <andrew.boyarshin@gmail.com>
Anuj Kumar Sharma <anujk.sharma@samsung.com>
DanCraft99 <simputest@gmail.com>
diff --git a/tools/gn/loader.cc b/tools/gn/loader.cc
index b0f81bc..b53b094 100644
--- a/tools/gn/loader.cc
+++ b/tools/gn/loader.cc
@@ -310,7 +310,10 @@
trace.SetToolchain(settings->toolchain_label());
Err err;
- root->Execute(base_config, &err);
+ Scope our_scope(base_config);
+ our_scope.set_source_dir(
+ settings->build_settings()->build_config_file().GetDir());
+ root->Execute(&our_scope, &err);
// Clear all private variables left in the scope. We want the root build
// config to be like a .gni file in that variables beginning with an