From 60b92047897485af045897fb29dfad6e8e976dd6 Mon Sep 17 00:00:00 2001 From: Michael Buesch Date: Mon, 10 Sep 2018 21:18:53 +0200 Subject: win-build: Add Cython build support Signed-off-by: Michael Buesch --- maintenance/win-standalone-build.cmd | 47 ++++++++++++++++++++++++++++++++---- 1 file 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 -- cgit v1.2.3