summaryrefslogtreecommitdiffstats
path: root/scripts/scons.bat
diff options
context:
space:
mode:
authorWilliam Deegan <bill@baddogconsulting.com>2020-03-21 23:35:56 (GMT)
committerWilliam Deegan <bill@baddogconsulting.com>2020-04-09 20:47:32 (GMT)
commit072ebad9f866bdb4b79f5309071c0a92df1e21be (patch)
tree6a78442474f32f913fd0d90db6522d7f727dbbca /scripts/scons.bat
parent23197f27e50f9f66d9f7263fbac5c38855731922 (diff)
downloadSCons-072ebad9f866bdb4b79f5309071c0a92df1e21be.zip
SCons-072ebad9f866bdb4b79f5309071c0a92df1e21be.tar.gz
SCons-072ebad9f866bdb4b79f5309071c0a92df1e21be.tar.bz2
Move scripts from src/scripts to scripts. Simplify scons.py to only be used for running from this source tree and for scons-local packaging
Diffstat (limited to 'scripts/scons.bat')
-rw-r--r--scripts/scons.bat38
1 files changed, 38 insertions, 0 deletions
diff --git a/scripts/scons.bat b/scripts/scons.bat
new file mode 100644
index 0000000..10b8637
--- /dev/null
+++ b/scripts/scons.bat
@@ -0,0 +1,38 @@
+@REM __COPYRIGHT__
+@REM __FILE__ __REVISION__ __DATE__ __DEVELOPER__
+@echo off
+set SCONS_ERRORLEVEL=
+if "%OS%" == "Windows_NT" goto WinNT
+
+@REM for 9x/Me you better not have more than 9 args
+python -c "from os.path import join; import sys; sys.path = [ join(sys.prefix, 'Lib', 'site-packages', 'scons-__VERSION__'), join(sys.prefix, 'Lib', 'site-packages', 'scons'), join(sys.prefix, 'scons-__VERSION__'), join(sys.prefix, 'scons')] + sys.path; import SCons.Script; SCons.Script.main()" %1 %2 %3 %4 %5 %6 %7 %8 %9
+@REM no way to set exit status of this script for 9x/Me
+goto endscons
+
+@REM Credit where credit is due: we return the exit code despite our
+@REM use of setlocal+endlocal using a technique from Bear's Journal:
+@REM http://code-bear.com/bearlog/2007/06/01/getting-the-exit-code-from-a-batch-file-that-is-run-from-a-python-program/
+
+:WinNT
+setlocal
+@REM ensure the script will be executed with the Python it was installed for
+pushd %~dp0..
+set path=%~dp0;%CD%;%path%
+popd
+@REM try the script named as the .bat file in current dir, then in Scripts subdir
+set scriptname=%~dp0%~n0.py
+if not exist "%scriptname%" set scriptname=%~dp0Scripts\%~n0.py
+@REM Handle when running from wheel where the script has no .py extension
+if not exist "%scriptname%" set scriptname=%~dp0%~n0
+python "%scriptname%" %*
+endlocal & set SCONS_ERRORLEVEL=%ERRORLEVEL%
+
+if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto returncode
+if errorlevel 9009 echo you do not have python in your PATH
+goto endscons
+
+:returncode
+exit /B %SCONS_ERRORLEVEL%
+
+:endscons
+call :returncode %SCONS_ERRORLEVEL%