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
119 copy /Y /B %PRODUCT_INSTALL%\python%LIB_TAG%.exe %PRODUCT_INSTALL%\python3.exe
121 REM some prequistes the DLL to be renamed
122 REM on purpose we don't use mklink, since this requires the user to have his node set in developer mode.
123 cd %PRODUCT_INSTALL%\
124 if %SAT_DEBUG% == 1 (
125 FOR %%G IN (python3 python python36 sqlite3 pyshellext) DO copy /Y /B %PRODUCT_INSTALL%\%%G%LIB_TAG%.dll %PRODUCT_INSTALL%\%%G.dll
128 REM some of the products expect .lib instead of _d.lib...
129 REM on purpose we don't use mklink, since this requires the user to have his node set in developer mode.
130 cd %PRODUCT_INSTALL%\libs\
131 if %SAT_DEBUG% == 1 (
132 SETLOCAL ENABLEDELAYEDEXPANSION
133 FOR %%f IN (*_d.lib) do (
135 copy /Y /B %PRODUCT_INSTALL%\libs\%%f %PRODUCT_INSTALL%\libs\!X:_d.lib=.lib!
136 copy /Y /B %PRODUCT_INSTALL%\%%f %PRODUCT_INSTALL%\!X:_d.lib=.lib!
141 cd %PRODUCT_INSTALL%\
142 powershell -Command "Get-ChildItem *_d.exe| Rename-Item -newname { $_.name -replace '_d.exe','.exe' }"
143 REM powershell -Command "Get-ChildItem *_d.dll| Rename-Item -newname { $_.name -replace '_d.dll','.dll' }"
144 REM powershell -Command "Get-ChildItem *_d.pdb| Rename-Item -newname { $_.name -replace '_d.pdb','.pdb' }"
145 REM powershell -Command "Get-ChildItem *_d.pyd| Rename-Item -newname { $_.name -replace '_d.pyd','.pyd' }"
146 REM powershell -Command "Get-ChildItem *_d.exp| Rename-Item -newname { $_.name -replace '_d.exp','.exp' }"
147 REM powershell -Command "Get-ChildItem *_d.ilk| Rename-Item -newname { $_.name -replace '_d.ilk','.ilk' }"
150 set PYTHONHOME=%PRODUCT_INSTALL%
151 set PYTHON_ROOT_DIR=%PRODUCT_INSTALL%
152 set PYTHON_VERSION=3.6
153 set PATH=%PRODUCT_INSTALL%;%PATH%
154 set PATH=%PRODUCT_INSTALL%\lib;%PATH%
155 set PYTHON_INCLUDE=%PRODUCT_INSTALL%\include
156 set PYTHONPATH=%PRODUCT_INSTALL%\lib;%PYTHONPATH%
157 set PYTHONPATH=%PRODUCT_INSTALL%\lib\site-packages;%PYTHONPATH%
158 set PYTHONBIN=%PRODUCT_INSTALL%\python.exe
159 set PATH=%PRODUCT_INSTALL%\Scripts;%PATH%
161 %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
163 taskkill /F /IM "mspdbsrv.exe"