Salome HOME
Merge branch 'bos/23995' into master
[tools/sat_salome.git] / products / compil_scripts / Python-3.6.5.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 LIB_TAG=
17 if %SAT_DEBUG% == 1 (
18   set LIB_TAG=_d
19 )
20
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%
25 mkdir %BUILD_DIR%
26
27 SET MSBUILDDISABLENODEREUSE=1
28
29 cd %SOURCE_DIR%\PCbuild
30
31 REM Upgrade to current version of MSVC
32 echo.
33 echo *** devenv pcbuild.sln /upgrade
34 devenv pcbuild.sln /upgrade
35 if NOT %ERRORLEVEL% == 0 (
36     echo ERROR on devenv
37     exit 1
38 )
39
40
41 echo.
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
47
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
53
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
59
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
65
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
71
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
75
76 REM Compilation
77
78 cd %SOURCE_DIR%
79 echo.
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 (
83     echo ERROR on msbuild
84     exit 2
85 )
86
87 REM Installation of additional files
88 echo.
89 echo *** Installation of additional files
90 cd ..
91 xcopy /Y /I /E %SOURCE_DIR%\include %PRODUCT_INSTALL%\include
92 if NOT %ERRORLEVEL% == 0 (
93     echo ERROR on xcopy include
94     exit 3
95 )
96
97 copy /Y %SOURCE_DIR%\PC\pyconfig.h %PRODUCT_INSTALL%\include
98 if NOT %ERRORLEVEL% == 0 (
99     echo ERROR on copy PC\pyconfig.h
100     exit 4
101 )
102
103 xcopy /Y /I /E %SOURCE_DIR%\lib %PRODUCT_INSTALL%\lib
104 if NOT %ERRORLEVEL% == 0 (
105     echo ERROR on xcopy lib
106     exit 5
107 )
108
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
115     exit 6
116 )
117
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 
125 )
126
127 cd %PRODUCT_INSTALL%\
128
129 REM Add PIP support
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%
140
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
142
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 (
145   cd %PRODUCT_INSTALL%
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'}}}"
149 )
150
151
152 taskkill /F /IM "mspdbsrv.exe"
153
154 echo.
155 echo ########## END