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:
authorSergey Sharybin <sergey.vfx@gmail.com>2018-08-28 19:28:05 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2018-08-28 19:29:13 +0300
commitc70eb30240f8b5d5a8f2ac509f0eb585936142b5 (patch)
tree99220555b77c180216f95cf5da68a87136eae050
parent19c65cd6e2a61a4eec4aa8ea11128a4675aa34b1 (diff)
Build environment: Make sure Python is linkign against static Zlib
There is system-wide libz development package installed by default, needed for some other dependencies. This patch ensures Python will use our own self-compiled Zlib.
-rw-r--r--build_files/build_environment/cmake/python.cmake6
-rw-r--r--build_files/build_environment/cmake/zlib.cmake6
-rw-r--r--build_files/build_environment/patches/python_linux.diff29
3 files changed, 39 insertions, 2 deletions
diff --git a/build_files/build_environment/cmake/python.cmake b/build_files/build_environment/cmake/python.cmake
index 0e3356e343d..9d0edd9246e 100644
--- a/build_files/build_environment/cmake/python.cmake
+++ b/build_files/build_environment/cmake/python.cmake
@@ -93,13 +93,14 @@ else()
else()
set(PYTHON_CONFIGURE_EXTRA_ARGS "--with-openssl=${LIBDIR}/ssl")
set(PYTHON_CONFIGURE_ENV ${CONFIGURE_ENV})
- set(PYTHON_CFLAGS "-I${LIBDIR}/sqlite/include -I${LIBDIR}/bzip2/include -I${LIBDIR}/lzma/include")
- set(PYTHON_LDFLAGS "-L${LIBDIR}/sqlite/lib -L${LIBDIR}/bzip2/lib -L${LIBDIR}/lzma/lib")
+ set(PYTHON_CFLAGS "-I${LIBDIR}/sqlite/include -I${LIBDIR}/bzip2/include -I${LIBDIR}/lzma/include -I${LIBDIR}/zlib/include")
+ set(PYTHON_LDFLAGS "-L${LIBDIR}/sqlite/lib -L${LIBDIR}/bzip2/lib -L${LIBDIR}/lzma/lib -L${LIBDIR}/zlib/lib")
set(PYTHON_CONFIGURE_EXTRA_ENV
export CFLAGS=${PYTHON_CFLAGS} &&
export CPPFLAGS=${PYTHON_CFLAGS} &&
export LDFLAGS=${PYTHON_LDFLAGS})
set(PYTHON_BINARY ${BUILD_DIR}/python/src/external_python/python)
+ set(PYTHON_PATCH ${PATCH_CMD} --verbose -p1 -d ${BUILD_DIR}/python/src/external_python < ${PATCH_DIR}/python_linux.diff)
endif()
ExternalProject_Add(external_python
@@ -179,5 +180,6 @@ if(UNIX AND NOT APPLE)
external_lzma
external_ssl
external_sqlite
+ external_zlib
)
endif()
diff --git a/build_files/build_environment/cmake/zlib.cmake b/build_files/build_environment/cmake/zlib.cmake
index b768293487a..7bf1c45e359 100644
--- a/build_files/build_environment/cmake/zlib.cmake
+++ b/build_files/build_environment/cmake/zlib.cmake
@@ -46,4 +46,10 @@ else()
DEPENDEES install
)
endif()
+ if (UNIX AND NOT APPLE)
+ ExternalProject_Add_Step(external_zlib after_install
+ COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/zlib/lib/libz.a ${LIBDIR}/zlib/lib/libz_pic.a
+ DEPENDEES install
+ )
+ endif()
endif()
diff --git a/build_files/build_environment/patches/python_linux.diff b/build_files/build_environment/patches/python_linux.diff
new file mode 100644
index 00000000000..3c65e12111f
--- /dev/null
+++ b/build_files/build_environment/patches/python_linux.diff
@@ -0,0 +1,29 @@
+diff --git a/setup.py.orig b/setup.py
+index a97a755..ee2bfad 100644
+--- a/setup.py.orig
++++ b/setup.py
+@@ -1422,13 +1422,13 @@ class PyBuildExt(build_ext):
+ version = line.split()[2]
+ break
+ if version >= version_req:
+- if (self.compiler.find_library_file(lib_dirs, 'z')):
++ if (self.compiler.find_library_file(lib_dirs, 'z_pic')):
+ if host_platform == "darwin":
+ zlib_extra_link_args = ('-Wl,-search_paths_first',)
+ else:
+ zlib_extra_link_args = ()
+ exts.append( Extension('zlib', ['zlibmodule.c'],
+- libraries = ['z'],
++ libraries = ['z_pic'],
+ extra_link_args = zlib_extra_link_args))
+ have_zlib = True
+ else:
+@@ -1442,7 +1442,7 @@ class PyBuildExt(build_ext):
+ # crc32 if we have it. Otherwise binascii uses its own.
+ if have_zlib:
+ extra_compile_args = ['-DUSE_ZLIB_CRC32']
+- libraries = ['z']
++ libraries = ['z_pic']
+ extra_link_args = zlib_extra_link_args
+ else:
+ extra_compile_args = []