Salome HOME
spns #29664: omniORB: fix python path
[tools/sat_salome.git] / products / compil_scripts / Python-3.7.9.bat
1 @echo off
2
3 echo ##########################################################################
4 echo Python %VERSION%
5 echo ##########################################################################
6
7 IF NOT DEFINED SAT_DEBUG (
8   SET SAT_DEBUG=0
9 )
10
11 SET PRODUCT_BUILD_TYPE=Release
12 if %SAT_DEBUG% == 1 (
13   set PRODUCT_BUILD_TYPE=Debug
14 )
15
16 set PLATFORM_TARGET=x64
17 if "%SALOME_APPLICATION_NAME%" == "URANIE" (
18   set PLATFORM_TARGET=Win32
19 )
20
21 SET LIB_TAG=
22 if %SAT_DEBUG% == 1 (
23   set LIB_TAG=_d
24 )
25
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%
30 mkdir %BUILD_DIR%
31
32 cd %SOURCE_DIR%
33 xcopy * %BUILD_DIR% /E /I /Q
34 if NOT %ERRORLEVEL% == 0 (
35     echo ERROR on xcopy
36     exit 1
37 )
38
39 SET MSBUILDDISABLENODEREUSE=1
40
41 cd %BUILD_DIR%\PCbuild
42
43 REM Upgrade to current version of MSVC
44 echo.
45 echo *** devenv pcbuild.sln /upgrade
46 devenv pcbuild.sln /upgrade
47 if NOT %ERRORLEVEL% == 0 (
48     echo ERROR on devenv
49     exit 1
50 )
51
52 echo.
53
54 cd PCBuild
55 echo.
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
61
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
67
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
73
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
79
80 echo Extracting xz...
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
85
86 echo Extracting xz...
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
91
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
95
96 REM Compilation
97
98 cd %BUILD_DIR%
99 echo.
100
101 REM Upgrade to current version of MSVC
102 echo.
103 echo *** devenv pcbuild.sln /upgrade
104 devenv pcbuild.sln /upgrade
105 if NOT %ERRORLEVEL% == 0 (
106     echo ERROR on devenv
107     exit 1
108 )
109
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
114     exit 2
115 )
116
117 REM Installation of additional files
118 echo.
119 echo *** Installation of additional files
120 cd ..
121 xcopy /Y /I /E %BUILD_DIR%\include %PRODUCT_INSTALL%\include
122 if NOT %ERRORLEVEL% == 0 (
123     echo ERROR on xcopy include
124     exit 3
125 )
126
127 copy /Y %BUILD_DIR%\PC\pyconfig.h %PRODUCT_INSTALL%\include
128 if NOT %ERRORLEVEL% == 0 (
129     echo ERROR on copy PC\pyconfig.h
130     exit 4
131 )
132
133 xcopy /Y /I /E %BUILD_DIR%\lib %PRODUCT_INSTALL%\lib
134 if NOT %ERRORLEVEL% == 0 (
135     echo ERROR on xcopy lib
136     exit 5
137 )
138
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
145     exit 6
146 )
147
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 
155 )
156
157 cd %PRODUCT_INSTALL%\
158
159 REM Add PIP support
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%
170
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
172
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 (
175   cd %PRODUCT_INSTALL%
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'}}}"
179 )
180
181
182 taskkill /F /IM "mspdbsrv.exe"
183
184 echo.
185 echo ########## END