[Bf-blender-cvs] [cd5db907261] master: Build Environment: updates for macOS.

Brecht Van Lommel noreply at git.blender.org
Tue Sep 11 08:03:17 CEST 2018


Commit: cd5db907261e92a27c1b43117e3976dc055246ae
Author: Brecht Van Lommel
Date:   Mon Sep 10 14:25:06 2018 +0200
Branches: master
https://developer.blender.org/rBcd5db907261e92a27c1b43117e3976dc055246ae

Build Environment: updates for macOS.

Mainly this is following Linux to build own xml2/lzma/ssl/sqlite and linking
them all statically. This ensures the Python ssl module uses a recent openssl
version rather than a very old one shipped with macOS.

===================================================================

M	build_files/build_environment/CMakeLists.txt
M	build_files/build_environment/cmake/harvest.cmake
M	build_files/build_environment/cmake/opencollada.cmake
M	build_files/build_environment/cmake/openvdb.cmake
M	build_files/build_environment/cmake/osl.cmake
M	build_files/build_environment/cmake/python.cmake
M	build_files/build_environment/cmake/ssl.cmake
M	build_files/build_environment/cmake/ssl.conf
M	build_files/build_environment/cmake/zlib.cmake
M	build_files/build_environment/patches/opencolorio.diff
M	build_files/build_environment/patches/sdl.diff

===================================================================

diff --git a/build_files/build_environment/CMakeLists.txt b/build_files/build_environment/CMakeLists.txt
index 5270a2e2b3d..00e486bbb40 100644
--- a/build_files/build_environment/CMakeLists.txt
+++ b/build_files/build_environment/CMakeLists.txt
@@ -19,10 +19,10 @@
 ####################################################################################################
 #
 # This is a build system used by platform maintainers to build library dependencies on
-# Windows and macOS. There is some support for Linux as well, but not ready for releases.
+# Windows, macOS and Linux.
 #
-# Windows and macOS users should download the precompiled libraries in lib/, Linux users
-# should run install_deps.sh for building dependencies.
+# For users building Blender, we recommend using the precompiled libraries from lib/ on
+# Windows and macOS, and install_deps.sh on Linux.
 #
 # WINDOWS USAGE:
 #   Don't call this cmake file your self, use build_deps.cmd
@@ -30,7 +30,7 @@
 #   build_deps 2015 x64 / build_deps 2015 x86
 #
 # MAC OS X USAGE:
-#	Install with homebrew: brew install autoconf automake libtool yasm openssl xz
+#	Install with homebrew: brew install autoconf automake libtool yasm nasm
 #   Run "make deps" from main Blender directory
 #
 # LINUX USAGE:
@@ -96,14 +96,16 @@ include(cmake/pugixml.cmake)
 if(WITH_WEBP)
 	include(cmake/webp.cmake)
 endif()
+
 if(WIN32)
-	#hmd_branch_deps
+	# HMD branch deps
 	include(cmake/hidapi.cmake)
-	#ocio deps
+	# OCIO deps
 	include(cmake/tinyxml.cmake)
 	include(cmake/yamlcpp.cmake)
-	#lcms is an ocio dep, but only if you build the apps, leaving it here for convenience
+	# LCMS is an OCIO dep, but only if you build the apps, leaving it here for convenience
 	#include(cmake/lcms.cmake)
+
 endif()
 
 if(NOT WIN32 OR ENABLE_MINGW64)
@@ -128,16 +130,16 @@ if(NOT WIN32 OR ENABLE_MINGW64)
 		endif()
 		if(UNIX)
 			include(cmake/flac.cmake)
+			include(cmake/xml2.cmake)
 			if(NOT APPLE)
 				include(cmake/spnav.cmake)
 				include(cmake/jemalloc.cmake)
-				include(cmake/xml2.cmake)
 			endif()
 		endif()
 	endif()
 endif()
 
-if(UNIX AND NOT APPLE)
+if(UNIX)
 	include(cmake/bzip2.cmake)
 	include(cmake/ffi.cmake)
 	include(cmake/lzma.cmake)
diff --git a/build_files/build_environment/cmake/harvest.cmake b/build_files/build_environment/cmake/harvest.cmake
index d47a5e65d3c..4ec71bf2ed2 100644
--- a/build_files/build_environment/cmake/harvest.cmake
+++ b/build_files/build_environment/cmake/harvest.cmake
@@ -110,6 +110,7 @@ endfunction()
 
 harvest(alembic/include alembic/include "*.h")
 harvest(alembic/lib/libAlembic.a alembic/lib/libAlembic.a)
+harvest(alembic/bin alembic/bin "*")
 harvest(boost/include boost/include "*")
 harvest(boost/lib boost/lib "*.a")
 harvest(ffmpeg/include ffmpeg/include "*.h")
diff --git a/build_files/build_environment/cmake/opencollada.cmake b/build_files/build_environment/cmake/opencollada.cmake
index 2f5360ba958..c9aee2bfe64 100644
--- a/build_files/build_environment/cmake/opencollada.cmake
+++ b/build_files/build_environment/cmake/opencollada.cmake
@@ -16,7 +16,7 @@
 #
 # ***** END GPL LICENSE BLOCK *****
 
-if(UNIX AND NOT APPLE)
+if(UNIX)
 	set(OPENCOLLADA_EXTRA_ARGS
 		-DLIBXML2_INCLUDE_DIR=${LIBDIR}/xml2/include/libxml2
 		-DLIBXML2_LIBRARIES=${LIBDIR}/xml2/lib/libxml2.a)
@@ -32,7 +32,7 @@ ExternalProject_Add(external_opencollada
 	INSTALL_DIR ${LIBDIR}/opencollada
 )
 
-if(UNIX AND NOT APPLE)
+if(UNIX)
 	add_dependencies(
 		external_opencollada
 		external_xml2
@@ -62,4 +62,4 @@ if(WIN32)
 			DEPENDEES install
 		)
 	endif()
-endif()
\ No newline at end of file
+endif()
diff --git a/build_files/build_environment/cmake/openvdb.cmake b/build_files/build_environment/cmake/openvdb.cmake
index a550ed5decb..125c1b2df85 100644
--- a/build_files/build_environment/cmake/openvdb.cmake
+++ b/build_files/build_environment/cmake/openvdb.cmake
@@ -29,9 +29,7 @@ set(OPENVDB_EXTRA_ARGS
 	-DBoost_NO_SYSTEM_PATHS=ON
 	-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
 	-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
-	-DWITH_BLOSC=ON
 	-DBLOSC_INCLUDE_DIR=${LIBDIR}/blosc/include/
-	-DBLOSC_LIBRARY=${LIBDIR}/blosc/lib/libblosc${BLOSC_POST}${LIBEXT}
 	-DBLOSC_blosc_LIBRARY=${LIBDIR}/blosc/lib/libblosc${BLOSC_POST}${LIBEXT}
 	-DOPENVDB_ENABLE_3_ABI_COMPATIBLE=OFF
 	-DOPENVDB_BUILD_UNITTESTS=Off
@@ -48,7 +46,6 @@ set(OPENVDB_EXTRA_ARGS
 	-DOpenexr_ILMIMF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}
 	-DTBB_LIBRARYDIR=${LIBDIR}/tbb/lib
 	-DTbb_TBB_LIBRARY=${LIBDIR}/tbb/lib/${LIBPREFIX}tbb_static${LIBEXT}
-	-DTBB_LIBRARY_DIR=${LIBDIR}/tbb/lib
 	-DTBB_LIBRARY_PATH=${LIBDIR}/tbb/lib
 )
 
diff --git a/build_files/build_environment/cmake/osl.cmake b/build_files/build_environment/cmake/osl.cmake
index eaf6a62d18a..795892f29e2 100644
--- a/build_files/build_environment/cmake/osl.cmake
+++ b/build_files/build_environment/cmake/osl.cmake
@@ -77,10 +77,17 @@ set(OSL_EXTRA_ARGS
 )
 
 if(WIN32)
-set(OSL_EXTRA_ARGS
-	${OSL_EXTRA_FLAGS}
-	-DPUGIXML_HOME=${LIBDIR}/pugixml
-)
+	set(OSL_EXTRA_ARGS
+		${OSL_EXTRA_ARGS}
+		-DPUGIXML_HOME=${LIBDIR}/pugixml
+	)
+elseif(APPLE)
+	# Make symbol hiding consistent with OIIO which defaults to OFF,
+	# avoids linker warnings on macOS
+	set(OSL_EXTRA_ARGS
+		${OSL_EXTRA_ARGS}
+		-DHIDE_SYMBOLS=OFF
+	)
 endif()
 
 ExternalProject_Add(external_osl
diff --git a/build_files/build_environment/cmake/python.cmake b/build_files/build_environment/cmake/python.cmake
index 22b4052189e..c61a0084b6f 100644
--- a/build_files/build_environment/cmake/python.cmake
+++ b/build_files/build_environment/cmake/python.cmake
@@ -67,9 +67,6 @@ if(WIN32)
 	message("POutput = ${PYTHON_OUTPUTDIR}")
 else()
 	if(APPLE)
-		# we need to add homebrew pkgconfig directories to get ssl, xz
-
-                set(BREW_PKG_CONFIG "/usr/local/opt/openssl/lib/pkgconfig:/usr/local/opt/xz/lib/pkgconfig")
 		# disable functions that can be in 10.13 sdk but aren't available on 10.9 target
 		set(PYTHON_FUNC_CONFIGS
 		  export ac_cv_func_futimens=no &&
@@ -83,25 +80,22 @@ else()
 		  export ac_cv_func_mkostemp=no &&
 		  export ac_cv_func_mkostemps=no &&
 		  export ac_cv_func_timingsafe_bcmp=no)
-
-		set(PYTHON_CONFIGURE_ENV ${CONFIGURE_ENV} && export PKG_CONFIG_PATH=${BREW_PKG_CONFIG} && ${PYTHON_FUNC_CONFIGS})
+		set(PYTHON_CONFIGURE_ENV ${CONFIGURE_ENV} && ${PYTHON_FUNC_CONFIGS})
 		set(PYTHON_BINARY ${BUILD_DIR}/python/src/external_python/python.exe)
-		set(PYTHON_PATCH echo .)
-		set(PYTHON_CONFIGURE_EXTRA_ENV echo .)
-		set(PYTHON_CONFIGURE_EXTRA_ARGS)
 	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 -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()
 
+	set(PYTHON_CONFIGURE_EXTRA_ARGS "--with-openssl=${LIBDIR}/ssl")
+	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_PATCH ${PATCH_CMD} --verbose -p1 -d ${BUILD_DIR}/python/src/external_python < ${PATCH_DIR}/python_linux.diff)
+
 	ExternalProject_Add(external_python
 		URL ${PYTHON_URI}
 		DOWNLOAD_DIR ${DOWNLOAD_DIR}
@@ -172,7 +166,7 @@ if(MSVC)
 	add_custom_target(Make_Python_Environment ALL DEPENDS ${BUILD_DIR}/python/src/external_python/run/python${PYTHON_POSTFIX}.exe Package_Python)
 endif()
 
-if(UNIX AND NOT APPLE)
+if(UNIX)
 	add_dependencies(
 		external_python
 		external_bzip2
diff --git a/build_files/build_environment/cmake/ssl.cmake b/build_files/build_environment/cmake/ssl.cmake
index dd1b9957cc2..993e6f3ff6a 100644
--- a/build_files/build_environment/cmake/ssl.cmake
+++ b/build_files/build_environment/cmake/ssl.cmake
@@ -19,11 +19,15 @@
 set(SSL_CONFIGURE_COMMAND ./Configure)
 set(SSL_PATCH_CMD echo .)
 
-if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
-	set(SSL_EXTRA_ARGS enable-ec_nistp_64_gcc_128)
-	set(SSL_OS_COMPILER "blender-x86_64")
+if (APPLE)
+	set(SSL_OS_COMPILER "blender-darwin-x86_64")
 else()
-	set(SSL_OS_COMPILER "blender-x86")
+	if("${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()
 
 ExternalProject_Add(external_ssl
diff --git a/build_files/build_environment/cmake/ssl.conf b/build_files/build_environment/cmake/ssl.conf
index a9534e56291..91f4357f8d8 100644
--- a/build_files/build_environment/cmake/ssl.conf
+++ b/build_files/build_environment/cmake/ssl.conf
@@ -1,10 +1,15 @@
 %targets = (
-  "blender-x86" => {
+
+  "blender-linux-x86" => {
     inherit_from     => [ "linux-x86" ],
     cflags => add("-fPIC"),
   },
-  "blender-x86_64" => {
+  "blender-linux-x86_64" => {
     inherit_from     => [ "linux-x86_64" ],
     cflags => add("-fPIC"),
   },
+  "blender-darwin-x86_64" => {
+    inherit_from     => [ "darwin64-x86_64-cc" ],
+    cflags => add("-fPIC"),
+  },
 );
diff --git a/build_files/build_environment/cmake/zlib.cmake b/build_files/build_environment/cmake/zlib.cmake
index 7bf1c45e359..396bb3a318e 100644
--- a/build_files/build_environment/cmake/zlib.cmake
+++ b/build_files/build_environment/cmake/zlib.cmake
@@ -46,7 +46,7 @@ else()
 			DEPENDEES install
 		)
 	endif()
-	if (UNIX AND NOT APPLE)
+	if (UNIX)
 		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
diff --git a/build_files/build_environment/patches

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list