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('')