Salome HOME
Merge branch 'V9_6_BR'
[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
119 copy /Y /B %PRODUCT_INSTALL%\python%LIB_TAG%.exe %PRODUCT_INSTALL%\python3.exe
120
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
126 )
127
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 (
134      set X=%%f
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!
137   )
138   ENDLOCAL
139 )
140
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' }"
148
149 REM Add PIP support
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%
160
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
162
163 taskkill /F /IM "mspdbsrv.exe"
164
165 echo.
166 echo ########## END