Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Molenkamp <github@lazydodo.com>2022-10-30 22:06:10 +0300
committerRay Molenkamp <github@lazydodo.com>2022-10-30 22:07:16 +0300
commite697442f099aa390923979941fe7f5298d44b1ec (patch)
tree8ebaf6b1151ed0bed1a49367996b13e70506f5c6 /build_files
parentce3a045009f298ad5014f36ace07b104f696b924 (diff)
deps_builder/win: use our openssl version for python
Python will take care of the build, we only need to unpack openssl in the right place and python's prepare_ssl will patch and build openssl for us.
Diffstat (limited to 'build_files')
-rw-r--r--build_files/build_environment/CMakeLists.txt3
-rw-r--r--build_files/build_environment/cmake/python.cmake18
-rw-r--r--build_files/build_environment/cmake/ssl.cmake66
-rw-r--r--build_files/build_environment/patches/python_windows.diff22
4 files changed, 76 insertions, 33 deletions
diff --git a/build_files/build_environment/CMakeLists.txt b/build_files/build_environment/CMakeLists.txt
index ef3c0388c29..6dacedcf98d 100644
--- a/build_files/build_environment/CMakeLists.txt
+++ b/build_files/build_environment/CMakeLists.txt
@@ -43,7 +43,7 @@ if(ENABLE_MINGW64)
else()
set(mingw_LIBDIR ${LIBDIR})
endif()
-
+include(cmake/ssl.cmake)
include(cmake/zlib.cmake)
include(cmake/zstd.cmake)
include(cmake/openal.cmake)
@@ -167,7 +167,6 @@ if(UNIX)
include(cmake/bzip2.cmake)
include(cmake/ffi.cmake)
include(cmake/lzma.cmake)
- include(cmake/ssl.cmake)
include(cmake/sqlite.cmake)
endif()
diff --git a/build_files/build_environment/cmake/python.cmake b/build_files/build_environment/cmake/python.cmake
index c56f1e62419..c9a0d5ab6af 100644
--- a/build_files/build_environment/cmake/python.cmake
+++ b/build_files/build_environment/cmake/python.cmake
@@ -16,10 +16,12 @@ if(WIN32)
set(PYTHON_EXTERNALS_FOLDER ${BUILD_DIR}/python/src/external_python/externals)
set(ZLIB_SOURCE_FOLDER ${BUILD_DIR}/zlib/src/external_zlib)
+ set(SSL_SOURCE_FOLDER ${BUILD_DIR}/ssl/src/external_ssl)
set(DOWNLOADS_EXTERNALS_FOLDER ${DOWNLOAD_DIR}/externals)
cmake_to_dos_path(${PYTHON_EXTERNALS_FOLDER} PYTHON_EXTERNALS_FOLDER_DOS)
cmake_to_dos_path(${ZLIB_SOURCE_FOLDER} ZLIB_SOURCE_FOLDER_DOS)
+ cmake_to_dos_path(${SSL_SOURCE_FOLDER} SSL_SOURCE_FOLDER_DOS)
cmake_to_dos_path(${DOWNLOADS_EXTERNALS_FOLDER} DOWNLOADS_EXTERNALS_FOLDER_DOS)
ExternalProject_Add(external_python
@@ -31,11 +33,14 @@ if(WIN32)
# that beyond placing some code in their externals dir before it tries.
# the foldernames *HAVE* to match the ones inside pythons get_externals.cmd.
# python 3.10.8 still ships zlib 1.2.12, replace it with our 1.2.13
- # copy until they update.
+ # copy until they update. Same rules apply to openssl foldernames HAVE to match
+ # regardless of the version actually in there.
CONFIGURE_COMMAND mkdir ${PYTHON_EXTERNALS_FOLDER_DOS} &&
mklink /J ${PYTHON_EXTERNALS_FOLDER_DOS}\\zlib-1.2.12 ${ZLIB_SOURCE_FOLDER_DOS} &&
- ${CMAKE_COMMAND} -E copy ${ZLIB_SOURCE_FOLDER}/../external_zlib-build/zconf.h ${PYTHON_EXTERNALS_FOLDER}/zlib-1.2.12/zconf.h
- BUILD_COMMAND cd ${BUILD_DIR}/python/src/external_python/pcbuild/ && set IncludeTkinter=false && call build.bat -e -p x64 -c ${BUILD_MODE}
+ mklink /J ${PYTHON_EXTERNALS_FOLDER_DOS}\\openssl-1.1.1q ${SSL_SOURCE_FOLDER_DOS} &&
+ ${CMAKE_COMMAND} -E copy ${ZLIB_SOURCE_FOLDER}/../external_zlib-build/zconf.h ${PYTHON_EXTERNALS_FOLDER}/zlib-1.2.12/zconf.h &&
+ ${PATCH_CMD} --verbose -p1 -d ${BUILD_DIR}/python/src/external_python < ${PATCH_DIR}/python_windows.diff
+ BUILD_COMMAND ${CONFIGURE_ENV_MSVC} && cd ${BUILD_DIR}/python/src/external_python/pcbuild/ && set IncludeTkinter=false && set LDFLAGS=/DEBUG && call prepare_ssl.bat && call build.bat -e -p x64 -c ${BUILD_MODE}
INSTALL_COMMAND ${PYTHON_BINARY_INTERNAL} ${PYTHON_SRC}/PC/layout/main.py -b ${PYTHON_SRC}/PCbuild/amd64 -s ${PYTHON_SRC} -t ${PYTHON_SRC}/tmp/ --include-stable --include-pip --include-dev --include-launchers --include-venv --include-symbols ${PYTHON_EXTRA_INSTLAL_FLAGS} --copy ${LIBDIR}/python
)
add_dependencies(
@@ -96,15 +101,18 @@ else()
INSTALL_DIR ${LIBDIR}/python)
endif()
+add_dependencies(
+ external_python
+ external_ssl
+ external_zlib
+)
if(UNIX)
add_dependencies(
external_python
external_bzip2
external_ffi
external_lzma
- external_ssl
external_sqlite
- external_zlib
)
endif()
diff --git a/build_files/build_environment/cmake/ssl.cmake b/build_files/build_environment/cmake/ssl.cmake
index 628187dc0ac..6241e2d44e6 100644
--- a/build_files/build_environment/cmake/ssl.cmake
+++ b/build_files/build_environment/cmake/ssl.cmake
@@ -3,33 +3,47 @@
set(SSL_CONFIGURE_COMMAND ./Configure)
set(SSL_PATCH_CMD echo .)
-if(APPLE)
- set(SSL_OS_COMPILER "blender-darwin-${CMAKE_OSX_ARCHITECTURES}")
- set(SSL_PATCH_CMD ${PATCH_CMD} --verbose -p 0 -d ${BUILD_DIR}/ssl/src/external_ssl < ${PATCH_DIR}/ssl.diff)
+if(WIN32)
+ # Python will build this with its preferred build options and patches. We only need to unpack openssl
+ ExternalProject_Add(external_ssl
+ URL file://${PACKAGE_DIR}/${SSL_FILE}
+ DOWNLOAD_DIR ${DOWNLOAD_DIR}
+ URL_HASH ${SSL_HASH_TYPE}=${SSL_HASH}
+ PREFIX ${BUILD_DIR}/ssl
+ CONFIGURE_COMMAND echo "."
+ BUILD_COMMAND echo "."
+ INSTALL_COMMAND echo "."
+ INSTALL_DIR ${LIBDIR}/ssl
+ )
else()
- if(BLENDER_PLATFORM_ARM)
- set(SSL_OS_COMPILER "blender-linux-aarch64")
- elseif("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
- set(SSL_EXTRA_ARGS enable-ec_nistp_64_gcc_128)
- set(SSL_OS_COMPILER "blender-linux-x86_64")
+ if(APPLE)
+ set(SSL_OS_COMPILER "blender-darwin-${CMAKE_OSX_ARCHITECTURES}")
+ set(SSL_PATCH_CMD ${PATCH_CMD} --verbose -p 0 -d ${BUILD_DIR}/ssl/src/external_ssl < ${PATCH_DIR}/ssl.diff)
else()
- set(SSL_OS_COMPILER "blender-linux-x86")
+ if(BLENDER_PLATFORM_ARM)
+ set(SSL_OS_COMPILER "blender-linux-aarch64")
+ elseif("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
+ set(SSL_EXTRA_ARGS enable-ec_nistp_64_gcc_128)
+ set(SSL_OS_COMPILER "blender-linux-x86_64")
+ else()
+ set(SSL_OS_COMPILER "blender-linux-x86")
+ endif()
endif()
-endif()
-ExternalProject_Add(external_ssl
- URL file://${PACKAGE_DIR}/${SSL_FILE}
- DOWNLOAD_DIR ${DOWNLOAD_DIR}
- URL_HASH ${SSL_HASH_TYPE}=${SSL_HASH}
- PREFIX ${BUILD_DIR}/ssl
- PATCH_COMMAND ${SSL_PATCH_CMD}
- CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ssl/src/external_ssl/ && ${SSL_CONFIGURE_COMMAND} --prefix=${LIBDIR}/ssl
- --openssldir=${LIBDIR}/ssl
- no-shared
- no-idea no-mdc2 no-rc5 no-zlib no-ssl3 enable-unit-test no-ssl3-method enable-rfc3779 enable-cms
- --config=${CMAKE_CURRENT_SOURCE_DIR}/cmake/ssl.conf
- ${SSL_OS_COMPILER}
- BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ssl/src/external_ssl/ && make -j${MAKE_THREADS}
- INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ssl/src/external_ssl/ && make install
- INSTALL_DIR ${LIBDIR}/ssl
-)
+ ExternalProject_Add(external_ssl
+ URL file://${PACKAGE_DIR}/${SSL_FILE}
+ DOWNLOAD_DIR ${DOWNLOAD_DIR}
+ URL_HASH ${SSL_HASH_TYPE}=${SSL_HASH}
+ PREFIX ${BUILD_DIR}/ssl
+ PATCH_COMMAND ${SSL_PATCH_CMD}
+ CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ssl/src/external_ssl/ && ${SSL_CONFIGURE_COMMAND} --prefix=${LIBDIR}/ssl
+ --openssldir=${LIBDIR}/ssl
+ no-shared
+ no-idea no-mdc2 no-rc5 no-zlib no-ssl3 enable-unit-test no-ssl3-method enable-rfc3779 enable-cms
+ --config=${CMAKE_CURRENT_SOURCE_DIR}/cmake/ssl.conf
+ ${SSL_OS_COMPILER}
+ BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ssl/src/external_ssl/ && make -j${MAKE_THREADS}
+ INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ssl/src/external_ssl/ && make install
+ INSTALL_DIR ${LIBDIR}/ssl
+ )
+endif() \ No newline at end of file
diff --git a/build_files/build_environment/patches/python_windows.diff b/build_files/build_environment/patches/python_windows.diff
new file mode 100644
index 00000000000..5b6434f1440
--- /dev/null
+++ b/build_files/build_environment/patches/python_windows.diff
@@ -0,0 +1,22 @@
+--- a/PCbuild/prepare_ssl.bat 2022-10-30 11:48:14 -0600
++++ b/PCbuild/prepare_ssl.bat 2022-10-30 11:53:16 -0600
+@@ -47,12 +47,13 @@
+ if "%PERL%" == "" where perl > "%TEMP%\perl.loc" 2> nul && set /P PERL= <"%TEMP%\perl.loc" & del "%TEMP%\perl.loc"
+ if "%PERL%" == "" (echo Cannot locate perl.exe on PATH or as PERL variable & exit /b 4)
+
+-%MSBUILD% "%PCBUILD%\openssl.vcxproj" /p:Configuration=Release /p:Platform=Win32
+-if errorlevel 1 exit /b
++REM Blender: we only need x64, ssl is kind of a long build, so just build what we need
++REM %MSBUILD% "%PCBUILD%\openssl.vcxproj" /p:Configuration=Release /p:Platform=Win32
++REMif errorlevel 1 exit /b
+ %MSBUILD% "%PCBUILD%\openssl.vcxproj" /p:Configuration=Release /p:Platform=x64
+ if errorlevel 1 exit /b
+-%MSBUILD% "%PCBUILD%\openssl.vcxproj" /p:Configuration=Release /p:Platform=ARM
+-if errorlevel 1 exit /b
+-%MSBUILD% "%PCBUILD%\openssl.vcxproj" /p:Configuration=Release /p:Platform=ARM64
+-if errorlevel 1 exit /b
++REM %MSBUILD% "%PCBUILD%\openssl.vcxproj" /p:Configuration=Release /p:Platform=ARM
++REM if errorlevel 1 exit /b
++REM %MSBUILD% "%PCBUILD%\openssl.vcxproj" /p:Configuration=Release /p:Platform=ARM64
++REM if errorlevel 1 exit /b
+