pw_env_setup: Update default gni path
Update the default environment gni file path to
'//build_overrides/pigweed_environment.gni'. Most 1P projects already
include this path in their .gitignore files and explicitly set this as
the gni file path so this should have no effect.
Change-Id: Iaba84acea929e4bcb6fbce217de4972c016432d0
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/88880
Reviewed-by: Joe Ethier <jethier@google.com>
Commit-Queue: Rob Mohr <mohrr@google.com>
diff --git a/pw_env_setup/compatibility.json b/pw_env_setup/compatibility.json
index 2e88a6e..402ea7e 100644
--- a/pw_env_setup/compatibility.json
+++ b/pw_env_setup/compatibility.json
@@ -9,6 +9,5 @@
"gn_targets": [
":python.install"
]
- },
- "gni_file": "build_overrides/pigweed_environment.gni"
+ }
}
diff --git a/pw_env_setup/docs.rst b/pw_env_setup/docs.rst
index 2813281..ecaecb3 100644
--- a/pw_env_setup/docs.rst
+++ b/pw_env_setup/docs.rst
@@ -281,7 +281,8 @@
``gni_file``
Location to write a ``.gni`` file containing paths to many things within the
- environment directory.
+ environment directory. Defaults to
+ ``build_overrides/pigweed_environment.gni``.
``json_file``
Location to write a ``.json`` file containing step-by-step modifications to
diff --git a/pw_env_setup/py/pw_env_setup/env_setup.py b/pw_env_setup/py/pw_env_setup/env_setup.py
index 47661c3..d742e4f 100755
--- a/pw_env_setup/py/pw_env_setup/env_setup.py
+++ b/pw_env_setup/py/pw_env_setup/env_setup.py
@@ -263,10 +263,7 @@
if 'json_file' in config:
self._json_file = config.pop('json_file')
- self._gni_file = config.pop(
- 'gni_file',
- os.path.join(self._install_dir, 'environment.gni'),
- )
+ self._gni_file = config.pop('gni_file', None)
self._optional_submodules.extend(config.pop('optional_submodules', ()))
self._required_submodules.extend(config.pop('required_submodules', ()))
@@ -361,6 +358,15 @@
raise MissingSubmodulesError(', '.join(sorted(missing)))
+ def _write_gni_file(self):
+ gni_file = os.path.join(self._project_root, 'build_overrides',
+ 'pigweed_environment.gni')
+ if self._gni_file:
+ gni_file = os.path.join(self._project_root, self._gni_file)
+
+ with open(gni_file, 'w') as outs:
+ self._env.gni(outs, self._project_root)
+
def _log(self, *args, **kwargs):
# Not using logging module because it's awkward to flush a log handler.
if self._quiet:
@@ -455,11 +461,7 @@
# Python virtualenv step. It also needs to be rewritten after the
# Python virtualenv step, so it's easiest to just write it after
# every step.
- gni_file = (os.path.join(self._env.get('PW_PROJECT_ROOT'),
- self._gni_file)
- or os.path.join(self._install_dir, 'environment.gni'))
- with open(gni_file, 'w') as outs:
- self._env.gni(outs, self._project_root)
+ self._write_gni_file()
self._log('')
self._env.echo('')