diff options
Diffstat (limited to 'build_files')
-rw-r--r-- | build_files/build_environment/CMakeLists.txt | 9 | ||||
-rw-r--r-- | build_files/build_environment/cmake/dpcpp.cmake | 7 | ||||
-rw-r--r-- | build_files/build_environment/cmake/setup_mingw64.cmake | 6 | ||||
-rw-r--r-- | build_files/build_environment/cmake/usd.cmake | 8 | ||||
-rw-r--r-- | build_files/build_environment/cmake/versions.cmake | 11 | ||||
-rw-r--r-- | build_files/build_environment/patches/cmake/modules/FindIlmBase.cmake | 12 | ||||
-rw-r--r-- | build_files/build_environment/patches/cmake/modules/FindOpenEXR.cmake | 3 | ||||
-rw-r--r-- | build_files/cmake/Modules/FindOpenEXR.cmake | 3 | ||||
-rw-r--r-- | build_files/cmake/Modules/FindUSD.cmake | 3 | ||||
-rw-r--r-- | build_files/cmake/config/blender_developer.cmake | 6 | ||||
-rw-r--r-- | build_files/cmake/macros.cmake | 46 | ||||
-rw-r--r-- | build_files/cmake/platform/platform_unix.cmake | 2 | ||||
-rw-r--r-- | build_files/cmake/platform/platform_win32.cmake | 9 | ||||
-rw-r--r-- | build_files/config/pipeline_config.yaml | 2 |
14 files changed, 87 insertions, 40 deletions
diff --git a/build_files/build_environment/CMakeLists.txt b/build_files/build_environment/CMakeLists.txt index 023d113b551..999223603d5 100644 --- a/build_files/build_environment/CMakeLists.txt +++ b/build_files/build_environment/CMakeLists.txt @@ -1,6 +1,6 @@ # SPDX-License-Identifier: GPL-2.0-or-later -#################################################################################################### +################################################################################################## # # This is a build system used by platform maintainers to build library dependencies on # Windows, macOS and Linux. @@ -22,7 +22,7 @@ # Install compiler cmake autoconf automake libtool yasm tcl # Run "make deps" from main Blender directory # -#################################################################################################### +################################################################################################## project("BlenderDependencies") cmake_minimum_required(VERSION 3.5) @@ -30,7 +30,8 @@ cmake_minimum_required(VERSION 3.5) include(ExternalProject) include(cmake/check_software.cmake) include(cmake/options.cmake) -# versions.cmake needs to be included after options.cmake due to the BLENDER_PLATFORM_ARM variable being needed. +# `versions.cmake` needs to be included after `options.cmake` +# due to the `BLENDER_PLATFORM_ARM` variable being needed. include(cmake/versions.cmake) include(cmake/boost_build_options.cmake) include(cmake/download.cmake) @@ -88,7 +89,7 @@ include(cmake/package_python.cmake) include(cmake/usd.cmake) include(cmake/potrace.cmake) include(cmake/haru.cmake) -# Boost needs to be included after python.cmake due to the PYTHON_BINARY variable being needed. +# Boost needs to be included after `python.cmake` due to the PYTHON_BINARY variable being needed. include(cmake/boost.cmake) include(cmake/pugixml.cmake) include(cmake/ispc.cmake) diff --git a/build_files/build_environment/cmake/dpcpp.cmake b/build_files/build_environment/cmake/dpcpp.cmake index dbba97b8264..28315d1f703 100644 --- a/build_files/build_environment/cmake/dpcpp.cmake +++ b/build_files/build_environment/cmake/dpcpp.cmake @@ -80,8 +80,11 @@ ExternalProject_Add(external_dpcpp SOURCE_SUBDIR llvm LIST_SEPARATOR ^^ CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/dpcpp ${DEFAULT_CMAKE_FLAGS} ${DPCPP_EXTRA_ARGS} - #CONFIGURE_COMMAND ${PYTHON_BINARY} ${BUILD_DIR}/dpcpp/src/external_dpcpp/buildbot/configure.py ${DPCPP_CONFIGURE_ARGS} - #BUILD_COMMAND echo "." #${PYTHON_BINARY} ${BUILD_DIR}/dpcpp/src/external_dpcpp/buildbot/compile.py + # CONFIGURE_COMMAND + # ${PYTHON_BINARY} + # ${BUILD_DIR}/dpcpp/src/external_dpcpp/buildbot/configure.py ${DPCPP_CONFIGURE_ARGS} + # BUILD_COMMAND + # echo "." # ${PYTHON_BINARY} ${BUILD_DIR}/dpcpp/src/external_dpcpp/buildbot/compile.py INSTALL_COMMAND ${CMAKE_COMMAND} --build . -- deploy-sycl-toolchain PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/dpcpp/src/external_dpcpp < ${PATCH_DIR}/dpcpp.diff INSTALL_DIR ${LIBDIR}/dpcpp diff --git a/build_files/build_environment/cmake/setup_mingw64.cmake b/build_files/build_environment/cmake/setup_mingw64.cmake index fa65212e056..6f53edb38ea 100644 --- a/build_files/build_environment/cmake/setup_mingw64.cmake +++ b/build_files/build_environment/cmake/setup_mingw64.cmake @@ -1,10 +1,10 @@ # SPDX-License-Identifier: GPL-2.0-or-later -#################################################################################################################### +################################################################################################## # Mingw64 Builds -#################################################################################################################### +################################################################################################## # This installs mingw64+msys to compile ffmpeg/iconv/libsndfile/fftw3 -#################################################################################################################### +################################################################################################## message("LIBDIR = ${LIBDIR}") macro(cmake_to_msys_path MsysPath ResultingPath) diff --git a/build_files/build_environment/cmake/usd.cmake b/build_files/build_environment/cmake/usd.cmake index 34e43383637..0661be3ba14 100644 --- a/build_files/build_environment/cmake/usd.cmake +++ b/build_files/build_environment/cmake/usd.cmake @@ -58,8 +58,9 @@ set(USD_EXTRA_ARGS -DPXR_BUILD_USD_TOOLS=OFF -DCMAKE_DEBUG_POSTFIX=_d -DBUILD_SHARED_LIBS=Off - # USD is hellbound on making a shared lib, unless you point this variable to a valid cmake file - # doesn't have to make sense, but as long as it points somewhere valid it will skip the shared lib. + # USD is hellbound on making a shared library, + # unless you point this variable to a valid CMAKE file doesn't have to make sense, + # but as long as it points somewhere valid it will skip the shared library. -DPXR_MONOLITHIC_IMPORT=${BUILD_DIR}/usd/src/external_usd/cmake/defaults/Version.cmake -DTBB_INCLUDE_DIRS=${LIBDIR}/tbb/include -DTBB_LIBRARIES=${LIBDIR}/tbb/lib/${LIBPREFIX}${TBB_LIBRARY}${LIBEXT} @@ -86,7 +87,8 @@ add_dependencies( external_opensubdiv ) -# Since USD 21.11 the libraries are prefixed with "usd_", i.e. "libusd_m.a" became "libusd_usd_m.a". +# Since USD 21.11 the libraries are prefixed with "usd_", i.e. +# "libusd_m.a" became "libusd_usd_m.a". # See https://github.com/PixarAnimationStudios/USD/blob/release/CHANGELOG.md#2111---2021-11-01 if(NOT WIN32) if (USD_VERSION VERSION_LESS 21.11) diff --git a/build_files/build_environment/cmake/versions.cmake b/build_files/build_environment/cmake/versions.cmake index 89b0a8d72de..4f4330b56f4 100644 --- a/build_files/build_environment/cmake/versions.cmake +++ b/build_files/build_environment/cmake/versions.cmake @@ -225,8 +225,9 @@ set(URLLIB3_CPE "cpe:2.3:a:urllib3:urllib3:${URLLIB3_VERSION}:*:*:*:*:*:*:*") set(CERTIFI_VERSION 2021.10.8) set(REQUESTS_VERSION 2.27.1) set(CYTHON_VERSION 0.29.26) -# The version of the zstd library used to build the Python package should match ZSTD_VERSION defined below. -# At this time of writing, 0.17.0 was already released, but built against zstd 1.5.1, while we use 1.5.0. +# The version of the zstd library used to build the Python package should match ZSTD_VERSION +# defined below. At this time of writing, 0.17.0 was already released, +# but built against zstd 1.5.1, while we use 1.5.0. set(ZSTANDARD_VERSION 0.16.0) set(AUTOPEP8_VERSION 1.6.0) set(PYCODESTYLE_VERSION 2.8.0) @@ -371,10 +372,10 @@ set(PYSTRING_HASH f2c68786b359f5e4e62bed53bc4fb86d) set(PYSTRING_HASH_TYPE MD5) set(PYSTRING_FILE pystring-${PYSTRING_VERSION}.tar.gz) -set(EXPAT_VERSION 2_4_9) -set(EXPAT_VERSION_DOTS 2.4.9) +set(EXPAT_VERSION 2_5_0) +set(EXPAT_VERSION_DOTS 2.5.0) set(EXPAT_URI https://github.com/libexpat/libexpat/archive/R_${EXPAT_VERSION}.tar.gz) -set(EXPAT_HASH b59a2aa796be1ee177bbab3b7231dfa5) +set(EXPAT_HASH d375fa3571c0abb945873f5061a8f2e2) set(EXPAT_HASH_TYPE MD5) set(EXPAT_FILE libexpat-${EXPAT_VERSION}.tar.gz) set(EXPAT_CPE "cpe:2.3:a:libexpat_project:libexpat:${EXPAT_VERSION_DOTS}:*:*:*:*:*:*:*") diff --git a/build_files/build_environment/patches/cmake/modules/FindIlmBase.cmake b/build_files/build_environment/patches/cmake/modules/FindIlmBase.cmake index 7611ca21708..c74ff788a75 100644 --- a/build_files/build_environment/patches/cmake/modules/FindIlmBase.cmake +++ b/build_files/build_environment/patches/cmake/modules/FindIlmBase.cmake @@ -177,7 +177,8 @@ if(ILMBASE_INCLUDE_DIR) "\\1" XYZ ${ILMBASE_BUILD_SPECIFICATION}) set("ILMBASE_VERSION" ${XYZ} CACHE STRING "Version of ILMBase lib") else() - # Old versions (before 2.0?) do not have any version string, just assuming 2.0 should be fine though. + # Old versions (before 2.0?) do not have any version string, + # just assuming 2.0 should be fine though. message(WARNING "Could not determine ILMBase library version, assuming 2.0.") set("ILMBASE_VERSION" "2.0" CACHE STRING "Version of ILMBase lib") endif() @@ -195,8 +196,13 @@ else() # elseif(${ILMBASE_VERSION} VERSION_LESS "2.1") set(IlmBase_Libraries Half Iex Imath IlmThread) # else() -# string(REGEX REPLACE "([0-9]+)[.]([0-9]+).*" "\\1_\\2" _ilmbase_libs_ver ${ILMBASE_VERSION}) -# set(IlmBase_Libraries Half Iex-${_ilmbase_libs_ver} Imath-${_ilmbase_libs_ver} IlmThread-${_ilmbase_libs_ver}) + # string(REGEX REPLACE "([0-9]+)[.]([0-9]+).*" "\\1_\\2" _ilmbase_libs_ver ${ILMBASE_VERSION}) + # set(IlmBase_Libraries + # Half + # Iex-${_ilmbase_libs_ver} + # Imath-${_ilmbase_libs_ver} + # IlmThread-${_ilmbase_libs_ver} + # ) endif() diff --git a/build_files/build_environment/patches/cmake/modules/FindOpenEXR.cmake b/build_files/build_environment/patches/cmake/modules/FindOpenEXR.cmake index 8b08b047eac..040dfe1c16f 100644 --- a/build_files/build_environment/patches/cmake/modules/FindOpenEXR.cmake +++ b/build_files/build_environment/patches/cmake/modules/FindOpenEXR.cmake @@ -175,7 +175,8 @@ if(OPENEXR_INCLUDE_DIR) "\\1" XYZ ${OPENEXR_BUILD_SPECIFICATION}) set("OPENEXR_VERSION" ${XYZ} CACHE STRING "Version of OpenEXR lib") else() - # Old versions (before 2.0?) do not have any version string, just assuming 2.0 should be fine though. + # Old versions (before 2.0?) do not have any version string, + # just assuming 2.0 should be fine though. message(WARNING "Could not determine ILMBase library version, assuming 2.0.") set("OPENEXR_VERSION" "2.0" CACHE STRING "Version of OpenEXR lib") endif() diff --git a/build_files/cmake/Modules/FindOpenEXR.cmake b/build_files/cmake/Modules/FindOpenEXR.cmake index 9107b562711..1cc3e50ba92 100644 --- a/build_files/cmake/Modules/FindOpenEXR.cmake +++ b/build_files/cmake/Modules/FindOpenEXR.cmake @@ -26,7 +26,8 @@ IF(NOT OPENEXR_ROOT_DIR AND NOT $ENV{OPENEXR_ROOT_DIR} STREQUAL "") SET(OPENEXR_ROOT_DIR $ENV{OPENEXR_ROOT_DIR}) ENDIF() -# Old versions (before 2.0?) do not have any version string, just assuming this should be fine though. +# Old versions (before 2.0?) do not have any version string, +# just assuming this should be fine though. SET(_openexr_libs_ver_init "2.0") SET(_openexr_SEARCH_DIRS diff --git a/build_files/cmake/Modules/FindUSD.cmake b/build_files/cmake/Modules/FindUSD.cmake index 0fd5f06bb35..ba5a3d7c843 100644 --- a/build_files/cmake/Modules/FindUSD.cmake +++ b/build_files/cmake/Modules/FindUSD.cmake @@ -32,7 +32,8 @@ FIND_PATH(USD_INCLUDE_DIR DOC "Universal Scene Description (USD) header files" ) -# Since USD 21.11 the libraries are prefixed with "usd_", i.e. "libusd_m.a" became "libusd_usd_m.a". +# Since USD 21.11 the libraries are prefixed with "usd_", i.e. +# "libusd_m.a" became "libusd_usd_m.a". # See https://github.com/PixarAnimationStudios/USD/blob/release/CHANGELOG.md#2111---2021-11-01 FIND_LIBRARY(USD_LIBRARY NAMES diff --git a/build_files/cmake/config/blender_developer.cmake b/build_files/cmake/config/blender_developer.cmake index 1f1a100d958..ebc5727a79c 100644 --- a/build_files/cmake/config/blender_developer.cmake +++ b/build_files/cmake/config/blender_developer.cmake @@ -8,7 +8,11 @@ set(WITH_ASSERT_ABORT ON CACHE BOOL "" FORCE) set(WITH_BUILDINFO OFF CACHE BOOL "" FORCE) -set(WITH_COMPILER_ASAN ON CACHE BOOL "" FORCE) +# Sadly ASAN is more often broken than working with MSVC do not enable it in the +# developer profile for now. +if(NOT WIN32) + set(WITH_COMPILER_ASAN ON CACHE BOOL "" FORCE) +endif() set(WITH_CYCLES_NATIVE_ONLY ON CACHE BOOL "" FORCE) set(WITH_DOC_MANPAGE OFF CACHE BOOL "" FORCE) set(WITH_GTESTS ON CACHE BOOL "" FORCE) diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake index 8af45690862..73883376060 100644 --- a/build_files/cmake/macros.cmake +++ b/build_files/cmake/macros.cmake @@ -57,6 +57,25 @@ macro(path_ensure_trailing_slash unset(_path_sep) endmacro() +# Our own version of `cmake_path(IS_PREFIX ..)`. +# This can be removed when 3.20 or greater is the minimum supported version. +macro(path_is_prefix + path_prefix path result_var + ) + # Remove when CMAKE version is bumped to "3.20" or greater. + # `cmake_path(IS_PREFIX ${path_prefix} ${path} NORMALIZE result_var)` + # Get the normalized paths (needed to remove `..`). + get_filename_component(_abs_prefix "${${path_prefix}}" ABSOLUTE) + get_filename_component(_abs_suffix "${${path}}" ABSOLUTE) + string(LENGTH "${_abs_prefix}" _len) + string(SUBSTRING "${_abs_suffix}" 0 "${_len}" _substr) + string(COMPARE EQUAL "${_abs_prefix}" "${_substr}" "${result_var}") + unset(_abs_prefix) + unset(_abs_suffix) + unset(_len) + unset(_substr) +endmacro() + # foo_bar.spam --> foo_barMySuffix.spam macro(file_suffix file_name_new file_name file_suffix @@ -995,7 +1014,8 @@ function(data_to_c_simple_icons add_custom_command( OUTPUT ${_file_from} ${_file_to} COMMAND ${CMAKE_COMMAND} -E make_directory ${_file_to_path} - # COMMAND python3 ${CMAKE_SOURCE_DIR}/source/blender/datatoc/datatoc_icon.py ${_path_from_abs} ${_file_from} + # COMMAND python3 ${CMAKE_SOURCE_DIR}/source/blender/datatoc/datatoc_icon.py + # ${_path_from_abs} ${_file_from} COMMAND "$<TARGET_FILE:datatoc_icon>" ${_path_from_abs} ${_file_from} COMMAND "$<TARGET_FILE:datatoc>" ${_file_from} ${_file_to} DEPENDS @@ -1073,23 +1093,27 @@ function(msgfmt_simple endfunction() function(find_python_package - package - relative_include_dir + package + relative_include_dir ) string(TOUPPER ${package} _upper_package) - # set but invalid + # Set but invalid. if((NOT ${PYTHON_${_upper_package}_PATH} STREQUAL "") AND (NOT ${PYTHON_${_upper_package}_PATH} MATCHES NOTFOUND)) -# if(NOT EXISTS "${PYTHON_${_upper_package}_PATH}/${package}") -# message(WARNING "PYTHON_${_upper_package}_PATH is invalid, ${package} not found in '${PYTHON_${_upper_package}_PATH}' " -# "WITH_PYTHON_INSTALL_${_upper_package} option will be ignored when installing python") -# set(WITH_PYTHON_INSTALL${_upper_package} OFF) -# endif() - # not set, so initialize + # if(NOT EXISTS "${PYTHON_${_upper_package}_PATH}/${package}") + # message( + # WARNING + # "PYTHON_${_upper_package}_PATH is invalid, ${package} not found in " + # "'${PYTHON_${_upper_package}_PATH}' " + # "WITH_PYTHON_INSTALL_${_upper_package} option will be ignored when installing Python" + # ) + # set(WITH_PYTHON_INSTALL${_upper_package} OFF) + # endif() + # Not set, so initialize. else() - string(REPLACE "." ";" _PY_VER_SPLIT "${PYTHON_VERSION}") + string(REPLACE "." ";" _PY_VER_SPLIT "${PYTHON_VERSION}") list(GET _PY_VER_SPLIT 0 _PY_VER_MAJOR) # re-cache diff --git a/build_files/cmake/platform/platform_unix.cmake b/build_files/cmake/platform/platform_unix.cmake index 343ed6d8ef4..f1ce3221440 100644 --- a/build_files/cmake/platform/platform_unix.cmake +++ b/build_files/cmake/platform/platform_unix.cmake @@ -151,7 +151,7 @@ if(WITH_PYTHON) # Installing into `site-packages`, warn when installing into `./../lib/` # which script authors almost certainly don't want. if(EXISTS ${LIBDIR}) - cmake_path(IS_PREFIX LIBDIR "${PYTHON_SITE_PACKAGES}" NORMALIZE _is_prefix) + path_is_prefix(LIBDIR PYTHON_SITE_PACKAGES _is_prefix) if(_is_prefix) message(WARNING " Building Blender with the following configuration: diff --git a/build_files/cmake/platform/platform_win32.cmake b/build_files/cmake/platform/platform_win32.cmake index 3818076634a..7a2d3ad948a 100644 --- a/build_files/cmake/platform/platform_win32.cmake +++ b/build_files/cmake/platform/platform_win32.cmake @@ -150,10 +150,11 @@ endif() # Debug Symbol format # sccache # MSVC_ASAN # format # why -# ON # ON # Z7 # sccache will only play nice with Z7 -# ON # OFF # Z7 # sccache will only play nice with Z7 -# OFF # ON # Zi # Asan will not play nice with Edit and Continue -# OFF # OFF # ZI # Neither asan nor sscache is enabled Edit and Continue is available +# ON # ON # Z7 # sccache will only play nice with Z7. +# ON # OFF # Z7 # sccache will only play nice with Z7. +# OFF # ON # Zi # Asan will not play nice with Edit and Continue. +# OFF # OFF # ZI # Neither ASAN nor sscache is enabled Edit and +# Continue is available. # Release Symbol format # sccache # MSVC_ASAN # format # why diff --git a/build_files/config/pipeline_config.yaml b/build_files/config/pipeline_config.yaml index 82cd009ea95..3359f89c41e 100644 --- a/build_files/config/pipeline_config.yaml +++ b/build_files/config/pipeline_config.yaml @@ -58,6 +58,8 @@ buildbot: version: '5.2.21440' optix: version: '7.3.0' + ocloc: + version: '101.3430' cmake: default: version: any |