summaryrefslogtreecommitdiff
path: root/site_scons
diff options
context:
space:
mode:
authorRyan Egesdahl <ryan.egesdahl@mongodb.com>2021-10-15 12:26:34 -0700
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-10-15 21:28:56 +0000
commita9e2c89cae1be4235dee8321e0ff5511566772c1 (patch)
tree41a3eae0590d29c6bf2bbb5bd3de4452b64e3cc8 /site_scons
parent2119cbfd590aa667b5ee3d4b3b2a331cc4d58486 (diff)
downloadmongo-a9e2c89cae1be4235dee8321e0ff5511566772c1.tar.gz
Revert "SERVER-55259 Ensure build.ninja is always in a clean state"
This reverts commit c12d02757ceb26e611a7bafcd30d78db99d8778f.
Diffstat (limited to 'site_scons')
-rw-r--r--site_scons/site_tools/ninja.py36
1 files changed, 7 insertions, 29 deletions
diff --git a/site_scons/site_tools/ninja.py b/site_scons/site_tools/ninja.py
index bc215afc3b1..b9b2c3d2d47 100644
--- a/site_scons/site_tools/ninja.py
+++ b/site_scons/site_tools/ninja.py
@@ -28,7 +28,6 @@ import importlib
import io
import shutil
import shlex
-import tempfile
import textwrap
from glob import glob
@@ -447,7 +446,6 @@ class NinjaState:
self.variables = {
"COPY": "cmd.exe /c 1>NUL copy" if sys.platform == "win32" else "cp",
- "NOOP": "cmd.exe /c 1>NUL echo 0" if sys.platform == "win32" else "echo 0 >/dev/null",
"SCONS_INVOCATION": "{} {} __NINJA_NO=1 $out".format(
sys.executable,
" ".join(
@@ -517,11 +515,6 @@ class NinjaState:
),
"description": "Symlink $in -> $out",
},
- "NOOP": {
- "command": "$NOOP",
- "description": "Checking $out",
- "pool": "local_pool",
- },
"INSTALL": {
"command": "$COPY $in $out",
"description": "Install $out",
@@ -566,9 +559,9 @@ class NinjaState:
},
"REGENERATE": {
"command": "$SCONS_INVOCATION_W_TARGETS",
- "description": "Regenerating $self",
- "depfile": os.path.join(get_path(env['NINJA_BUILDDIR']), '$out.depfile'),
+ "description": "Regenerating $out",
"generator": 1,
+ "depfile": os.path.join(get_path(env['NINJA_BUILDDIR']), '$out.depfile'),
# Console pool restricts to 1 job running at a time,
# it additionally has some special handling about
# passing stdin, stdout, etc to process in this pool
@@ -813,28 +806,15 @@ class NinjaState:
# list of build generation about. However, because the generate rule
# is hardcoded here, we need to do this generate_depfile call manually.
ninja_file_path = self.env.File(ninja_file).path
- ninja_in_file_path = os.path.join(get_path(self.env['NINJA_BUILDDIR']), os.path.basename(ninja_file)) + ".in"
generate_depfile(
self.env,
- ninja_in_file_path,
- self.env['NINJA_REGENERATE_DEPS'],
- )
-
- ninja.build(
- ninja_in_file_path,
- rule="REGENERATE",
- variables={
- "self": ninja_file_path,
- },
+ ninja_file_path,
+ self.env['NINJA_REGENERATE_DEPS']
)
- # This sets up a dependency edge between build.ninja.in and build.ninja
- # without actually taking any action to transform one into the other
- # because we write both files ourselves later.
ninja.build(
ninja_file_path,
- rule="NOOP",
- inputs=[ninja_in_file_path],
+ rule="REGENERATE",
implicit=[__file__],
)
@@ -871,10 +851,8 @@ class NinjaState:
if scons_default_targets:
ninja.default(" ".join(scons_default_targets))
- with tempfile.NamedTemporaryFile(delete=False, mode='w') as temp_ninja_file:
- temp_ninja_file.write(content.getvalue())
- shutil.move(temp_ninja_file.name, ninja_in_file_path)
- shutil.copy2(ninja_in_file_path, ninja_file)
+ with open(ninja_file, "w") as build_ninja:
+ build_ninja.write(content.getvalue())
self.__generated = True