114 lines
2.9 KiB
Batchfile
114 lines
2.9 KiB
Batchfile
|
:: //
|
||
|
:: // Batch file to build .py & .cpp modules from swig.i source files
|
||
|
:: //
|
||
|
:: // SYNTAX: swig_python.cmd file srcdir outdir pythonver
|
||
|
:: //
|
||
|
:: // EXAMPLE: swig_python.cmd base.i ..\..\.. d:\dev\main\game\sdktools\python\site-packages\vs pythonver 2.5
|
||
|
:: //
|
||
|
|
||
|
@echo off
|
||
|
|
||
|
setlocal
|
||
|
|
||
|
:: // Make sure we have 4 args
|
||
|
|
||
|
if .%1.==.. (
|
||
|
goto Usage
|
||
|
)
|
||
|
|
||
|
if .%2.==.. (
|
||
|
goto Usage
|
||
|
)
|
||
|
|
||
|
if .%3.==.. (
|
||
|
goto Usage
|
||
|
)
|
||
|
|
||
|
if .%4.==.. (
|
||
|
goto Usage
|
||
|
)
|
||
|
|
||
|
:Main
|
||
|
|
||
|
set SWIGFILE=%1%
|
||
|
set SRCDIR=%2%
|
||
|
set OUTDIR=%3%
|
||
|
set PYTHONVER=%4%
|
||
|
set SWIG=%SRCDIR%\devtools\swigwin-1.3.34\swig.exe
|
||
|
set SWIGDIR=swig_python%PYTHONVER%
|
||
|
set SWIGC=%SWIGFILE%_wrap_python%PYTHONVER%.cpp
|
||
|
set DIFF=%SRCDIR%\devtools\bin\diff.exe -q
|
||
|
set P4EDIT=%SRCDIR%\vpc_scripts\valve_p4_edit.cmd
|
||
|
|
||
|
:: // Check to see if things don't exist and issue inteligible error messages
|
||
|
if NOT EXIST %SWIG% goto NoSwig
|
||
|
|
||
|
if NOT EXIST %DIFF% goto NoDiff
|
||
|
|
||
|
:: // Make the output directory if necessary
|
||
|
if NOT EXIST %SWIGDIR% mkdir %SWIGDIR%
|
||
|
|
||
|
if NOT EXIST %SWIGDIR% goto NoSwigDir
|
||
|
|
||
|
if EXIST %SWIGC% attrib -R %SWIGC%
|
||
|
|
||
|
echo *** [swig_python] %SWIG% -small -Fmicrosoft -ignoremissing -c++ -Iswig_python%PYTHONVER% -I%SRCDIR%\public -o "%SWIGC%" -outdir "%SWIGDIR%" -python "%SWIGFILE%.i" ***
|
||
|
call %SWIG% -small -Fmicrosoft -ignoremissing -c++ -Iswig_python%PYTHONVER% -I%SRCDIR%\public -o "%SWIGC%" -outdir "%SWIGDIR%" -python "%SWIGFILE%.i"
|
||
|
if ERRORLEVEL 1 goto SwigFailed
|
||
|
|
||
|
if EXIST %SWIGC% attrib -R %SWIGC%
|
||
|
|
||
|
if NOT EXIST "%SWIGDIR%\%SWIGFILE%.py" echo "Can't Find diff SRC %SWIGDIR%\%SWIGFILE%.py"
|
||
|
if NOT EXIST "%OUTDIR%\%SWIGFILE%.py" echo "Can't Find diff DST %OUTDIR%\%SWIGFILE%.py"
|
||
|
echo *** [swig_python] %DIFF% "%SWIGDIR%\%SWIGFILE%.py" "%OUTDIR%\%SWIGFILE%.py" ***
|
||
|
call %DIFF% "%SWIGDIR%\%SWIGFILE%.py" "%OUTDIR%\%SWIGFILE%.py" > NUL:
|
||
|
if ERRORLEVEL 1 goto CopyPy
|
||
|
goto EndOk
|
||
|
|
||
|
:CopyPy
|
||
|
echo *** [swig_python] %P4EDIT% %OUTDIR%\%SWIGFILE%.py %SRCDIR% ***
|
||
|
call %P4EDIT% %OUTDIR%\%SWIGFILE%.py %SRCDIR%
|
||
|
if ERRORLEVEL 1 goto P4Failed
|
||
|
|
||
|
echo *** [swig_python] "%SWIGDIR%\%SWIGFILE%.py" "%OUTDIR%\%SWIGFILE%.py" ***
|
||
|
call copy "%SWIGDIR%\%SWIGFILE%.py" "%OUTDIR%\%SWIGFILE%.py" > NUL:
|
||
|
if ERRORLEVEL 1 goto CopyFailed
|
||
|
|
||
|
:EndOk
|
||
|
echo *** [swig_python] Swig Complete!
|
||
|
endlocal
|
||
|
exit /b 0
|
||
|
|
||
|
:Usage
|
||
|
echo *** [swig_python] Error calling command! No file specified for swig! Usage: swig_python.cmd file srcdir outdir pythonver
|
||
|
endlocal
|
||
|
exit 1
|
||
|
|
||
|
:SwigFailed
|
||
|
echo *** [swig_python] swig command failed
|
||
|
goto EndError
|
||
|
|
||
|
:P4Failed
|
||
|
echo *** [swig_python] ERROR: %P4EDIT% %OUTDIR%\%SWIGFILE%.py %SRCDIR%
|
||
|
goto EndError
|
||
|
|
||
|
:CopyFailed
|
||
|
echo *** [swig_python] ERROR: copy "%SWIGDIR%\%SWIGFILE%.py" "%OUTDIR%\%SWIGFILE%.py"
|
||
|
goto EndError
|
||
|
|
||
|
:NoSwig
|
||
|
echo *** [swig_python] ERROR: Can't Find SWIG executable "%SWIG%", ensure src/devtools is synced
|
||
|
goto EndError
|
||
|
|
||
|
:NoDiff
|
||
|
echo *** [swig_python] ERROR: Can't Find DIFF executable "%DIFF%", ensure src/devtools is synced
|
||
|
goto EndError
|
||
|
|
||
|
:NoSwigDir
|
||
|
echo *** [swig_python] ERROR: Can't Find Or Create Swig Intermediate Directory "%SWIGDIR%"
|
||
|
goto EndError
|
||
|
|
||
|
:EndError
|
||
|
endlocal
|
||
|
exit 1
|