3 echo ##########################################################################
5 echo ##########################################################################
7 IF NOT DEFINED SAT_DEBUG (
11 SET PRODUCT_BUILD_TYPE=Release
13 set PRODUCT_BUILD_TYPE=Debug
16 set PLATFORM_TARGET=x64
17 if "%SALOME_APPLICATION_NAME%" == "URANIE" (
18 set PLATFORM_TARGET=Win32
26 if NOT exist "%PRODUCT_INSTALL%" mkdir %PRODUCT_INSTALL%
27 if NOT exist "%PRODUCT_INSTALL%\libs" mkdir %PRODUCT_INSTALL%\libs
28 REM clean BUILD directory
29 if exist "%BUILD_DIR%" rmdir /Q /S %BUILD_DIR%
33 xcopy * %BUILD_DIR% /E /I /Q
34 if NOT %ERRORLEVEL% == 0 (
39 SET MSBUILDDISABLENODEREUSE=1
41 cd %BUILD_DIR%\PCbuild
43 REM Upgrade to current version of MSVC
45 echo *** devenv pcbuild.sln /upgrade
46 devenv pcbuild.sln /upgrade
47 if NOT %ERRORLEVEL% == 0 (
56 echo Extracting zlib...
57 if exist "%BUILD_DIR%\externals\cpython-source-deps-zlib-1.2.11" rmdir /Q /S "%BUILD_DIR%\externals\cpython-source-deps-zlib-1.2.11"
58 if exist "%BUILD_DIR%\externals\zlib-1.2.11" rmdir /Q /S "%BUILD_DIR%\externals\zlib-1.2.11"
59 7z x -y %BUILD_DIR%\externals\zips\zlib-1.2.11.zip -o%BUILD_DIR%\externals
60 mv %BUILD_DIR%\externals\cpython-source-deps-zlib-1.2.11 %BUILD_DIR%\externals\zlib-1.2.11
62 echo Extracting nasm...
63 if exist "%BUILD_DIR%\externals\cpython-bin-deps-nasm-2.11.06" rmdir /Q /S "%BUILD_DIR%\externals\cpython-bin-deps-nasm-2.11.06"
64 if exist "%BUILD_DIR%\externals\nasm-2.11.06" rmdir /Q /S "%BUILD_DIR%\externals\nasm-2.11.06"
65 7z x -y %BUILD_DIR%\externals\zips\nasm-2.11.06.zip -o%BUILD_DIR%\externals
66 mv %BUILD_DIR%\externals\cpython-bin-deps-nasm-2.11.06 %BUILD_DIR%\externals\nasm-2.11.06
68 echo Extracting openssl...
69 if exist "%BUILD_DIR%\externals\cpython-source-deps-openssl-1.1.1g" rmdir /Q /S "%BUILD_DIR%\externals\cpython-source-deps-openssl-1.1.1g"
70 if exist "%BUILD_DIR%\externals\openssl-1.1.1g" rmdir /Q /S "%BUILD_DIR%\externals\openssl-1.1.1g"
71 7z x -y %BUILD_DIR%\externals\zips\openssl-1.1.1g.zip -o%BUILD_DIR%\externals
72 mv %BUILD_DIR%\externals\cpython-source-deps-openssl-1.1.1g %BUILD_DIR%\externals\openssl-1.1.1g
74 echo Extracting sqlite...
75 if exist "%BUILD_DIR%\externals\cpython-source-deps-sqlite-3.31.1.0" rmdir /Q /S "%BUILD_DIR%\externals\cpython-source-deps-sqlite-3.31.1.0"
76 if exist "%BUILD_DIR%\externals\sqlite-3.31.1.0" rmdir /Q /S "%BUILD_DIR%\externals\sqlite-3.31.1.0"
77 7z x -y %BUILD_DIR%\externals\zips\sqlite-3.31.1.0.zip -o%BUILD_DIR%\externals
78 mv %BUILD_DIR%\externals\cpython-source-deps-sqlite-3.31.1.0 %BUILD_DIR%\externals\sqlite-3.31.1.0
81 if exist "%BUILD_DIR%\externals\cpython-source-deps-xz-5.2.2" rmdir /Q /S "%BUILD_DIR%\externals\cpython-source-deps-xz-5.2.2"
82 if exist "%BUILD_DIR%\externals\xz-5.2.2" rmdir /Q /S "%BUILD_DIR%\externals\xz-5.2.2"
83 7z x -y %BUILD_DIR%\externals\zips\xz-5.2.2.zip -o%BUILD_DIR%\externals
84 mv %BUILD_DIR%\externals\cpython-source-deps-xz-5.2.2 %BUILD_DIR%\externals\xz-5.2.2
87 if exist "%BUILD_DIR%\externals\cpython-source-deps-bzip2-1.0.6" rmdir /Q /S "%BUILD_DIR%\externals\cpython-source-deps-bzip2-1.0.6"
88 if exist "%BUILD_DIR%\externals\bzip2-1.0.6" rmdir /Q /S "%BUILD_DIR%\externals\bzip2-1.0.6"
89 7z x -y %BUILD_DIR%\externals\zips\bzip2-1.0.6.zip -o%BUILD_DIR%\externals
90 mv %BUILD_DIR%\externals\cpython-source-deps-bzip2-1.0.6 %BUILD_DIR%\externals\bzip2-1.0.6
92 echo Extracting pip...
93 if exist "%BUILD_DIR%\externals\pip-21.1.1" rmdir /Q /S "%BUILD_DIR%\externals\pip-21.1.1"
94 7z x -y %BUILD_DIR%\externals\zips\pip-21.1.1.zip -o%BUILD_DIR%\externals
101 REM Upgrade to current version of MSVC
103 echo *** devenv pcbuild.sln /upgrade
104 devenv pcbuild.sln /upgrade
105 if NOT %ERRORLEVEL% == 0 (
110 echo *** msbuild %BUILD_DIR%\PCBuild\pcbuild.sln /t:Build /m /nologo /v:m /p:Configuration=%PRODUCT_BUILD_TYPE% /p:Platform=%PLATFORM_TARGET% /p:BuildProjectReferences=false /p:OutDir=%PRODUCT_INSTALL%\
111 msbuild %BUILD_DIR%\PCBuild\pcbuild.sln /t:Build /m /nologo /v:m /p:Configuration=%PRODUCT_BUILD_TYPE% /p:Platform=%PLATFORM_TARGET% /p:OutDir=%PRODUCT_INSTALL%\
112 if NOT %ERRORLEVEL% == 0 (
113 echo ERROR on msbuild
117 REM Installation of additional files
119 echo *** Installation of additional files
121 xcopy /Y /I /E %BUILD_DIR%\include %PRODUCT_INSTALL%\include
122 if NOT %ERRORLEVEL% == 0 (
123 echo ERROR on xcopy include
127 copy /Y %BUILD_DIR%\PC\pyconfig.h %PRODUCT_INSTALL%\include
128 if NOT %ERRORLEVEL% == 0 (
129 echo ERROR on copy PC\pyconfig.h
133 xcopy /Y /I /E %BUILD_DIR%\lib %PRODUCT_INSTALL%\lib
134 if NOT %ERRORLEVEL% == 0 (
135 echo ERROR on xcopy lib
139 REM some prequistes if compiled in Debug mode require the lib to be in folder libs
140 REM other ones require these static lib to be in the root directory
141 REM on purpose we don't use mklink, since this requires the user to have his node set in developer mode.
142 xcopy /Y %PRODUCT_INSTALL%\*.lib %PRODUCT_INSTALL%\libs\
143 if NOT %ERRORLEVEL% == 0 (
144 echo ERROR could not copy static libraries
148 REM on purpose, we don't use mklink - requires admin rights...
149 copy /Y /B %PRODUCT_INSTALL%\python%LIB_TAG%.exe %PRODUCT_INSTALL%\python3.exe
150 if %SAT_DEBUG% == 1 (
151 copy /Y /B %PRODUCT_INSTALL%\python_d.exe %PRODUCT_INSTALL%\python.exe
152 REM otherwise OmniORB does not compile...
153 copy /Y /B %PRODUCT_INSTALL%\libs\python37_d.lib %PRODUCT_INSTALL%\libs\python37.lib
154 copy /Y /B %PRODUCT_INSTALL%\libs\python_d.lib %PRODUCT_INSTALL%\libs\python.lib
157 cd %PRODUCT_INSTALL%\
160 set PYTHONHOME=%PRODUCT_INSTALL%
161 set PYTHON_ROOT_DIR=%PRODUCT_INSTALL%
162 set PYTHON_VERSION=3.7
163 set PATH=%PRODUCT_INSTALL%;%PATH%
164 set PATH=%PRODUCT_INSTALL%\lib;%PATH%
165 set PYTHON_INCLUDE=%PRODUCT_INSTALL%\include
166 set PYTHONPATH=%PRODUCT_INSTALL%\lib;%PYTHONPATH%
167 set PYTHONPATH=%PRODUCT_INSTALL%\lib\site-packages;%PYTHONPATH%
168 set PYTHONBIN=%PRODUCT_INSTALL%\python.exe
169 set PATH=%PRODUCT_INSTALL%\Scripts;%PATH%
171 %PRODUCT_INSTALL%\python.exe %BUILD_DIR%\externals\pip-21.1.1\get-pip.py --force-reinstall --no-setuptools --no-wheel --no-index --find-links=%BUILD_DIR%\externals\pip-21.1.1
173 REM In debug mode, we need to rename all _d.pyd to .pyd... don't ask why. Seems like a known bug in OmniORB.
174 if %SAT_DEBUG% == 1 (
176 powershell -Command "Get-ChildItem -File -Recurse *.pyd| ForEach-Object {if ((!$_.Name.EndsWith('_d.pyd'))) { $_ | Copy-Item -Destination {$_.Name -replace '.pyd','_d.pyd'}}}"
177 cd %PRODUCT_INSTALL%\lib\site-packages
178 powershell -Command "Get-ChildItem -File -Recurse *.pyd| ForEach-Object {if ((!$_.Name.EndsWith('_d.pyd'))) { $_ | Copy-Item -Destination {$_.Name -replace '.pyd','_d.pyd'}}}"
182 taskkill /F /IM "mspdbsrv.exe"