3 echo ##########################################################################
5 echo ##########################################################################
7 IF NOT DEFINED SAT_DEBUG (
11 SET PRODUCT_BUILD_TYPE=Release
13 set PRODUCT_BUILD_TYPE=Debug
21 if NOT exist "%PRODUCT_INSTALL%" mkdir %PRODUCT_INSTALL%
22 if NOT exist "%PRODUCT_INSTALL%\libs" mkdir %PRODUCT_INSTALL%\libs
23 REM clean BUILD directory
24 if exist "%BUILD_DIR%" rmdir /Q /S %BUILD_DIR%
27 SET MSBUILDDISABLENODEREUSE=1
29 cd %SOURCE_DIR%\PCbuild
31 REM Upgrade to current version of MSVC
33 echo *** devenv pcbuild.sln /upgrade
34 devenv pcbuild.sln /upgrade
35 if NOT %ERRORLEVEL% == 0 (
42 REM echo Extracting nasm...
43 if exist "%SOURCE_DIR%\externals\cpython-bin-deps-nasm-2.11.06" rmdir /Q /S "%SOURCE_DIR%\externals\cpython-bin-deps-nasm-2.11.06"
44 if exist "%SOURCE_DIR%\externals\nasm-2.11.06" rmdir /Q /S "%SOURCE_DIR%\externals\nasm-2.11.06"
45 7z x -y %SOURCE_DIR%\externals\zips\nasm-2.11.06.zip -o%SOURCE_DIR%\externals
46 mv %SOURCE_DIR%\externals\cpython-bin-deps-nasm-2.11.06 %SOURCE_DIR%\externals\nasm-2.11.06
48 REM echo Extracting openssl...
49 if exist "%SOURCE_DIR%\externals\cpython-source-deps-openssl-1.0.2k" rmdir /Q /S "%SOURCE_DIR%\externals\cpython-source-deps-openssl-1.0.2k"
50 if exist "%SOURCE_DIR%\externals\openssl-1.0.2k" rmdir /Q /S "%SOURCE_DIR%\externals\openssl-1.0.2k"
51 7z x -y %SOURCE_DIR%\externals\zips\openssl-1.0.2k.zip -o%SOURCE_DIR%\externals
52 mv %SOURCE_DIR%\externals\cpython-source-deps-openssl-1.0.2k %SOURCE_DIR%\externals\openssl-1.0.2k
54 REM echo Extracting sqlite...
55 if exist "%SOURCE_DIR%\externals\cpython-source-deps-sqlite-3.21.0.0" rmdir /Q /S "%SOURCE_DIR%\externals\cpython-source-deps-sqlite-3.21.0.0"
56 if exist "%SOURCE_DIR%\externals\sqlite-3.21.0.0" rmdir /Q /S "%SOURCE_DIR%\externals\sqlite-3.21.0.0"
57 7z x -y %SOURCE_DIR%\externals\zips\sqlite-3.21.0.0.zip -o%SOURCE_DIR%\externals
58 mv %SOURCE_DIR%\externals\cpython-source-deps-sqlite-3.21.0.0 %SOURCE_DIR%\externals\sqlite-3.21.0.0
60 REM echo Extracting xz...
61 if exist "%SOURCE_DIR%\externals\cpython-source-deps-xz-5.2.2" rmdir /Q /S "%SOURCE_DIR%\externals\cpython-source-deps-xz-5.2.2"
62 if exist "%SOURCE_DIR%\externals\xz-5.2.2" rmdir /Q /S "%SOURCE_DIR%\externals\xz-5.2.2"
63 7z x -y %SOURCE_DIR%\externals\zips\xz-5.2.2.zip -o%SOURCE_DIR%\externals
64 mv %SOURCE_DIR%\externals\cpython-source-deps-xz-5.2.2 %SOURCE_DIR%\externals\xz-5.2.2
66 REM echo Extracting xz...
67 if exist "%SOURCE_DIR%\externals\cpython-source-deps-bzip2-1.0.6" rmdir /Q /S "%SOURCE_DIR%\externals\cpython-source-deps-bzip2-1.0.6"
68 if exist "%SOURCE_DIR%\externals\bzip2-1.0.6" rmdir /Q /S "%SOURCE_DIR%\externals\bzip2-1.0.6"
69 7z x -y %SOURCE_DIR%\externals\zips\bzip2-1.0.6.zip -o%SOURCE_DIR%\externals
70 mv %SOURCE_DIR%\externals\cpython-source-deps-bzip2-1.0.6 %SOURCE_DIR%\externals\bzip2-1.0.6
72 REM echo Extracting pip...
73 if exist "%SOURCE_DIR%\externals\pip-19.1.1" rmdir /Q /S "%SOURCE_DIR%\externals\pip-19.1.1"
74 7z x -y %SOURCE_DIR%\externals\zips\pip-19.1.1.zip -o%SOURCE_DIR%\externals
80 echo *** msbuild %SOURCE_DIR%\PCBuild\pcbuild.sln /t:Build /m /nologo /v:m /p:Configuration=%PRODUCT_BUILD_TYPE% /p:Platform=x64 /p:BuildProjectReferences=false /p:OutDir=%PRODUCT_INSTALL%\
81 msbuild %SOURCE_DIR%\PCBuild\pcbuild.sln /t:Build /m /nologo /v:m /p:Configuration=%PRODUCT_BUILD_TYPE% /p:Platform=x64 /p:OutDir=%PRODUCT_INSTALL%\
82 if NOT %ERRORLEVEL% == 0 (
87 REM Installation of additional files
89 echo *** Installation of additional files
91 xcopy /Y /I /E %SOURCE_DIR%\include %PRODUCT_INSTALL%\include
92 if NOT %ERRORLEVEL% == 0 (
93 echo ERROR on xcopy include
97 copy /Y %SOURCE_DIR%\PC\pyconfig.h %PRODUCT_INSTALL%\include
98 if NOT %ERRORLEVEL% == 0 (
99 echo ERROR on copy PC\pyconfig.h
103 xcopy /Y /I /E %SOURCE_DIR%\lib %PRODUCT_INSTALL%\lib
104 if NOT %ERRORLEVEL% == 0 (
105 echo ERROR on xcopy lib
109 REM some prequistes if compiled in Debug mode require the lib to be in folder libs
110 REM other ones require these static lib to be in the root directory
111 REM on purpose we don't use mklink, since this requires the user to have his node set in developer mode.
112 xcopy /Y %PRODUCT_INSTALL%\*.lib %PRODUCT_INSTALL%\libs\
113 if NOT %ERRORLEVEL% == 0 (
114 echo ERROR could not copy static libraries
118 REM on purpose, we don't use mklink - requires admin rights...
119 copy /Y /B %PRODUCT_INSTALL%\python%LIB_TAG%.exe %PRODUCT_INSTALL%\python3.exe
120 if %SAT_DEBUG% == 1 (
121 copy /Y /B %PRODUCT_INSTALL%\python_d.exe %PRODUCT_INSTALL%\python.exe
122 REM otherwise OmniORB does not compile...
123 copy /Y /B %PRODUCT_INSTALL%\libs\python36_d.lib %PRODUCT_INSTALL%\libs\python36.lib
124 copy /Y /B %PRODUCT_INSTALL%\libs\python_d.lib %PRODUCT_INSTALL%\libs\python.lib
127 cd %PRODUCT_INSTALL%\
130 set PYTHONHOME=%PRODUCT_INSTALL%
131 set PYTHON_ROOT_DIR=%PRODUCT_INSTALL%
132 set PYTHON_VERSION=3.6
133 set PATH=%PRODUCT_INSTALL%;%PATH%
134 set PATH=%PRODUCT_INSTALL%\lib;%PATH%
135 set PYTHON_INCLUDE=%PRODUCT_INSTALL%\include
136 set PYTHONPATH=%PRODUCT_INSTALL%\lib;%PYTHONPATH%
137 set PYTHONPATH=%PRODUCT_INSTALL%\lib\site-packages;%PYTHONPATH%
138 set PYTHONBIN=%PRODUCT_INSTALL%\python.exe
139 set PATH=%PRODUCT_INSTALL%\Scripts;%PATH%
141 %PRODUCT_INSTALL%\python.exe %SOURCE_DIR%\externals\pip-19.1.1\get-pip.py --force-reinstall --no-setuptools --no-wheel --no-index --find-links=%SOURCE_DIR%\externals\pip-19.1.1
143 REM In debug mode, we need to rename all _d.pyd to .pyd... don't ask why. Seems like a known bug in OmniORB.
144 if %SAT_DEBUG% == 1 (
146 powershell -Command "Get-ChildItem -File -Recurse *.pyd| ForEach-Object {if ((!$_.Name.EndsWith('_d.pyd'))) { $_ | Copy-Item -Destination {$_.Name -replace '.pyd','_d.pyd'}}}"
147 cd %PRODUCT_INSTALL%\lib\site-packages
148 powershell -Command "Get-ChildItem -File -Recurse *.pyd| ForEach-Object {if ((!$_.Name.EndsWith('_d.pyd'))) { $_ | Copy-Item -Destination {$_.Name -replace '.pyd','_d.pyd'}}}"
152 taskkill /F /IM "mspdbsrv.exe"