aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Buesch <m@bues.ch>2018-09-10 21:18:53 +0200
committerMichael Buesch <m@bues.ch>2018-09-15 22:00:29 +0200
commit60b92047897485af045897fb29dfad6e8e976dd6 (patch)
treef0b3aeb97e3337fc4bff35b64a635af23006f922
parent2d3d105e33616f79f4d3865f99d89ca70b2fb439 (diff)
downloadawlsim-60b92047897485af045897fb29dfad6e8e976dd6.tar.xz
awlsim-60b92047897485af045897fb29dfad6e8e976dd6.zip
win-build: Add Cython build support
Signed-off-by: Michael Buesch <m@bues.ch>
-rw-r--r--maintenance/win-standalone-build.cmd47
1 files changed, 42 insertions, 5 deletions
diff --git a/maintenance/win-standalone-build.cmd b/maintenance/win-standalone-build.cmd
index 89209c4e..bcaa1724 100644
--- a/maintenance/win-standalone-build.cmd
+++ b/maintenance/win-standalone-build.cmd
@@ -25,6 +25,7 @@ set distdir=%project%-%winprefix%-standalone-%version%
set sfxfile=%project%-%winprefix%-%version%.package.exe
set bindirname=%project%-bin
set bindir=%distdir%\%bindirname%
+set builddir=%bindir%\build
set licensedirname=licenses
set licensedir=%distdir%\%licensedirname%
@@ -45,11 +46,34 @@ goto error
:framework_pyqt5
echo Using PyQt5
set excludes=PySide
-goto select_freezer
+goto select_buildcython
:framework_pyside4
echo Using PySide4
set excludes=PyQt5
+goto select_buildcython
+
+
+:select_buildcython
+echo.
+echo Build optimized Cython modules?
+echo 1) Do not build Cython modules (default)
+echo 2) Build Cython modules
+set /p buildcython=Selection:
+if "%buildcython%" == "" goto buildcython_no
+if "%buildcython%" == "1" goto buildcython_no
+if "%buildcython%" == "2" goto buildcython_yes
+echo "Error: Invalid selection"
+goto error
+
+:buildcython_yes
+echo Building Cython modules
+set AWLSIM_CYTHON_BUILD=1
+goto select_freezer
+
+:buildcython_no
+echo Not building Cython modules
+set AWLSIM_CYTHON_BUILD=0
goto select_freezer
@@ -70,10 +94,11 @@ goto error
set buildtype=1
echo === Creating the cx_Freeze distribution
call :prepare_env
-py setup.py build_exe ^
- --build-exe=%bindir% ^
- --excludes=%excludes% ^
- --silent
+py setup.py ^
+ build ^
+ --build-base=%builddir% ^
+ build_exe ^
+ --build-exe=%bindir%
if ERRORLEVEL 1 goto error_exe
goto copy_files
@@ -95,6 +120,15 @@ goto copy_files
:copy_files
echo === Copying additional files
+if %AWLSIM_CYTHON_BUILD% NEQ 0 (
+ rem Copy Cython modules from builddir to bindir
+ for /D %%f in ( "%builddir%\lib*" ) do (
+ for /D %%i in ( "%%f\*_cython" ) do (
+ xcopy /E /I %%i %bindir%\lib\%%~ni
+ if ERRORLEVEL 1 goto error_copy
+ )
+ )
+)
mkdir %licensedir%
if ERRORLEVEL 1 goto error_copy
copy examples\*.awlpro %distdir%\
@@ -121,11 +155,14 @@ if %buildtype% == 1 goto no_servermod_rename
move %bindir%\server.exe %bindir%\awlsim-server-module.exe
if ERRORLEVEL 1 goto error_copy
:no_servermod_rename
+rd /S /Q %builddir%
+if ERRORLEVEL 1 goto error_copy
echo === Generating startup wrapper
set wrapper=%distdir%\%project%.cmd
echo @set PATH=%bindirname%;%bindirname%\lib;%bindirname%\platforms;%bindirname%\imageformats;%%PATH%%> %wrapper%
+echo @set AWLSIM_CYTHON=1 >> %wrapper%
echo @start %project%-bin\awlsim-gui.exe %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8 %%9>> %wrapper%
if ERRORLEVEL 1 goto error_wrapper
bues.ch cgit interface