diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake index 4927db20623..d347f7e57b5 100644 --- a/build_files/cmake/macros.cmake +++ b/build_files/cmake/macros.cmake @@ -232,7 +232,10 @@ function(blender_user_header_search_paths # _ALL_INCS is a space-separated string of file paths in quotes. string(APPEND _ALL_INCS " \"${_ABS_INC}\"") endforeach() - set_target_properties(${name} PROPERTIES XCODE_ATTRIBUTE_USER_HEADER_SEARCH_PATHS "${_ALL_INCS}") + set_target_properties( + ${name} PROPERTIES + XCODE_ATTRIBUTE_USER_HEADER_SEARCH_PATHS "${_ALL_INCS}" + ) endif() endfunction() @@ -296,11 +299,18 @@ macro(add_cc_flags_custom_test string(TOUPPER ${name} _name_upper) if(DEFINED CMAKE_C_FLAGS_${_name_upper}) - message(STATUS "Using custom CFLAGS: CMAKE_C_FLAGS_${_name_upper} in \"${CMAKE_CURRENT_SOURCE_DIR}\"") + message( + STATUS + "Using custom CFLAGS: " + "CMAKE_C_FLAGS_${_name_upper} in \"${CMAKE_CURRENT_SOURCE_DIR}\"") string(APPEND CMAKE_C_FLAGS " ${CMAKE_C_FLAGS_${_name_upper}}" ${ARGV1}) endif() if(DEFINED CMAKE_CXX_FLAGS_${_name_upper}) - message(STATUS "Using custom CXXFLAGS: CMAKE_CXX_FLAGS_${_name_upper} in \"${CMAKE_CURRENT_SOURCE_DIR}\"") + message( + STATUS + "Using custom CXXFLAGS: " + "CMAKE_CXX_FLAGS_${_name_upper} in \"${CMAKE_CURRENT_SOURCE_DIR}\"" + ) string(APPEND CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS_${_name_upper}}" ${ARGV1}) endif() unset(_name_upper) @@ -468,7 +478,10 @@ function(blender_add_test_suite) --test-release-dir "${_test_release_dir}" ) if(WIN32) - set_tests_properties(${ARGS_SUITE_NAME} PROPERTIES ENVIRONMENT "PATH=${CMAKE_INSTALL_PREFIX_WITH_CONFIG}/blender.shared/;$ENV{PATH}") + set_tests_properties( + ${ARGS_SUITE_NAME} PROPERTIES + ENVIRONMENT "PATH=${CMAKE_INSTALL_PREFIX_WITH_CONFIG}/blender.shared/;$ENV{PATH}" + ) endif() unset(_test_release_dir) endfunction() @@ -610,13 +623,25 @@ endfunction() # Platform specific linker flags for targets. function(setup_platform_linker_flags target) - set_property(TARGET ${target} APPEND_STRING PROPERTY LINK_FLAGS " ${PLATFORM_LINKFLAGS}") - set_property(TARGET ${target} APPEND_STRING PROPERTY LINK_FLAGS_RELEASE " ${PLATFORM_LINKFLAGS_RELEASE}") - set_property(TARGET ${target} APPEND_STRING PROPERTY LINK_FLAGS_DEBUG " ${PLATFORM_LINKFLAGS_DEBUG}") + set_property( + TARGET ${target} APPEND_STRING PROPERTY + LINK_FLAGS " ${PLATFORM_LINKFLAGS}" + ) + set_property( + TARGET ${target} APPEND_STRING PROPERTY + LINK_FLAGS_RELEASE " ${PLATFORM_LINKFLAGS_RELEASE}" + ) + set_property( + TARGET ${target} APPEND_STRING PROPERTY + LINK_FLAGS_DEBUG " ${PLATFORM_LINKFLAGS_DEBUG}" + ) get_target_property(target_type ${target} TYPE) if(target_type STREQUAL "EXECUTABLE") - set_property(TARGET ${target} APPEND_STRING PROPERTY LINK_FLAGS " ${PLATFORM_LINKFLAGS_EXECUTABLE}") + set_property( + TARGET ${target} APPEND_STRING PROPERTY + LINK_FLAGS " ${PLATFORM_LINKFLAGS_EXECUTABLE}" + ) endif() endfunction() @@ -830,9 +855,9 @@ macro(remove_strict_c_flags_file foreach(_SOURCE ${ARGV}) if(CMAKE_COMPILER_IS_GNUCC OR (CMAKE_C_COMPILER_ID MATCHES "Clang")) - set_source_files_properties(${_SOURCE} - PROPERTIES - COMPILE_FLAGS "${C_REMOVE_STRICT_FLAGS}" + set_source_files_properties( + ${_SOURCE} PROPERTIES + COMPILE_FLAGS "${C_REMOVE_STRICT_FLAGS}" ) endif() if(MSVC) @@ -848,9 +873,9 @@ macro(remove_strict_cxx_flags_file foreach(_SOURCE ${ARGV}) if(CMAKE_COMPILER_IS_GNUCC OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang")) - set_source_files_properties(${_SOURCE} - PROPERTIES - COMPILE_FLAGS "${CXX_REMOVE_STRICT_FLAGS}" + set_source_files_properties( + ${_SOURCE} PROPERTIES + COMPILE_FLAGS "${CXX_REMOVE_STRICT_FLAGS}" ) endif() if(MSVC) @@ -951,11 +976,23 @@ function(get_blender_version) ${CMAKE_BINARY_DIR}/source/blender/blenkernel/BKE_blender_version.h.done ) - file(STRINGS ${CMAKE_SOURCE_DIR}/source/blender/blenkernel/BKE_blender_version.h _contents REGEX "^#define[ \t]+BLENDER_.*$") + file( + STRINGS ${CMAKE_SOURCE_DIR}/source/blender/blenkernel/BKE_blender_version.h + _contents REGEX "^#define[ \t]+BLENDER_.*$" + ) - string(REGEX REPLACE ".*#define[ \t]+BLENDER_VERSION[ \t]+([0-9]+).*" "\\1" _out_version "${_contents}") - string(REGEX REPLACE ".*#define[ \t]+BLENDER_VERSION_PATCH[ \t]+([0-9]+).*" "\\1" _out_version_patch "${_contents}") - string(REGEX REPLACE ".*#define[ \t]+BLENDER_VERSION_CYCLE[ \t]+([a-z]+).*" "\\1" _out_version_cycle "${_contents}") + string( + REGEX REPLACE ".*#define[ \t]+BLENDER_VERSION[ \t]+([0-9]+).*" "\\1" + _out_version "${_contents}" + ) + string( + REGEX REPLACE ".*#define[ \t]+BLENDER_VERSION_PATCH[ \t]+([0-9]+).*" "\\1" + _out_version_patch "${_contents}" + ) + string( + REGEX REPLACE ".*#define[ \t]+BLENDER_VERSION_CYCLE[ \t]+([a-z]+).*" "\\1" + _out_version_cycle "${_contents}" + ) if(NOT ${_out_version} MATCHES "[0-9]+") message(FATAL_ERROR "Version parsing failed for BLENDER_VERSION") @@ -1186,7 +1223,10 @@ function(svg_to_png add_custom_command( OUTPUT ${_file_to} - COMMAND ${INKSCAPE_EXE} ${_file_from} --export-dpi=${dpi} --without-gui --export-png=${_file_to} + + COMMAND ${INKSCAPE_EXE} + ${_file_from} --export-dpi=${dpi} --without-gui --export-png=${_file_to} + DEPENDS ${_file_from} ${INKSCAPE_EXE} ) else() @@ -1212,8 +1252,13 @@ function(msgfmt_simple add_custom_command( OUTPUT ${_file_to} - COMMAND ${CMAKE_COMMAND} -E make_directory ${_file_to_path} - COMMAND ${CMAKE_COMMAND} -E env ${PLATFORM_ENV_BUILD} "$" ${_file_from} ${_file_to} + + COMMAND ${CMAKE_COMMAND} -E + make_directory ${_file_to_path} + + COMMAND ${CMAKE_COMMAND} -E + env ${PLATFORM_ENV_BUILD} "$" ${_file_from} ${_file_to} + DEPENDS msgfmt ${_file_from}) set_source_files_properties(${_file_to} PROPERTIES GENERATED TRUE) @@ -1221,7 +1266,7 @@ endfunction() function(find_python_package package - relative_include_dir + relative_inc_dir ) string(TOUPPER ${package} _upper_package) @@ -1272,19 +1317,20 @@ function(find_python_package "'${PYTHON_LIBPATH}/python${PYTHON_VERSION}/vendor-packages/${package}', " "'${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/vendor-packages/${package}', " "\n" - "The 'WITH_PYTHON_INSTALL_${_upper_package}' option will be ignored when installing Python.\n" + "The 'WITH_PYTHON_INSTALL_${_upper_package}' ""option will be ignored " + "when installing Python.\n" "The build will be usable, only add-ons that depend on this package won't be functional." ) set(WITH_PYTHON_INSTALL_${_upper_package} OFF PARENT_SCOPE) else() message(STATUS "${package} found at '${PYTHON_${_upper_package}_PATH}'") - if(NOT "${relative_include_dir}" STREQUAL "") - set(_relative_include_dir "${package}/${relative_include_dir}") + if(NOT "${relative_inc_dir}" STREQUAL "") + set(_relative_inc_dir "${package}/${relative_inc_dir}") unset(PYTHON_${_upper_package}_INCLUDE_DIRS CACHE) find_path(PYTHON_${_upper_package}_INCLUDE_DIRS NAMES - "${_relative_include_dir}" + "${_relative_inc_dir}" HINTS "${PYTHON_LIBPATH}/" "${PYTHON_LIBPATH}/python${PYTHON_VERSION}/" @@ -1295,31 +1341,35 @@ function(find_python_package "vendor-packages/" NO_DEFAULT_PATH DOC - "Path to python site-packages or dist-packages containing '${package}' module header files" + "\ +Path to python site-packages or dist-packages containing '${package}' module header files" ) mark_as_advanced(PYTHON_${_upper_package}_INCLUDE_DIRS) if(NOT EXISTS "${PYTHON_${_upper_package}_INCLUDE_DIRS}") message(WARNING "Python package '${package}' include dir path could not be found in:\n" - "'${PYTHON_LIBPATH}/python${PYTHON_VERSION}/site-packages/${_relative_include_dir}', " - "'${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/site-packages/${_relative_include_dir}', " - "'${PYTHON_LIBPATH}/python${PYTHON_VERSION}/dist-packages/${_relative_include_dir}', " - "'${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/dist-packages/${_relative_include_dir}', " - "'${PYTHON_LIBPATH}/python${PYTHON_VERSION}/vendor-packages/${_relative_include_dir}', " - "'${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/vendor-packages/${_relative_include_dir}', " + "'${PYTHON_LIBPATH}/python${PYTHON_VERSION}/site-packages/${_relative_inc_dir}', " + "'${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/site-packages/${_relative_inc_dir}', " + "'${PYTHON_LIBPATH}/python${PYTHON_VERSION}/dist-packages/${_relative_inc_dir}', " + "'${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/dist-packages/${_relative_inc_dir}', " + "'${PYTHON_LIBPATH}/python${PYTHON_VERSION}/vendor-packages/${_relative_inc_dir}', " + "'${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/vendor-packages/${_relative_inc_dir}', " "\n" "The 'WITH_PYTHON_${_upper_package}' option will be disabled.\n" - "The build will be usable, only add-ons that depend on this package won't be functional." + "The build will be usable, only add-ons that depend on this package " + "won't be functional." ) set(WITH_PYTHON_${_upper_package} OFF PARENT_SCOPE) else() - set(_temp "${PYTHON_${_upper_package}_INCLUDE_DIRS}/${package}/${relative_include_dir}") + set(_temp "${PYTHON_${_upper_package}_INCLUDE_DIRS}/${package}/${relative_inc_dir}") unset(PYTHON_${_upper_package}_INCLUDE_DIRS CACHE) set(PYTHON_${_upper_package}_INCLUDE_DIRS "${_temp}" CACHE PATH "Path to the include directory of the ${package} module") - message(STATUS "${package} include files found at '${PYTHON_${_upper_package}_INCLUDE_DIRS}'") + message(STATUS + "${package} include files found at '${PYTHON_${_upper_package}_INCLUDE_DIRS}'" + ) endif() endif() endif() @@ -1344,10 +1394,22 @@ macro(openmp_delayload else() set(OPENMP_DLL_NAME "vcomp140") endif() - set_property(TARGET ${projectname} APPEND_STRING PROPERTY LINK_FLAGS_RELEASE " /DELAYLOAD:${OPENMP_DLL_NAME}.dll delayimp.lib") - set_property(TARGET ${projectname} APPEND_STRING PROPERTY LINK_FLAGS_DEBUG " /DELAYLOAD:${OPENMP_DLL_NAME}d.dll delayimp.lib") - set_property(TARGET ${projectname} APPEND_STRING PROPERTY LINK_FLAGS_RELWITHDEBINFO " /DELAYLOAD:${OPENMP_DLL_NAME}.dll delayimp.lib") - set_property(TARGET ${projectname} APPEND_STRING PROPERTY LINK_FLAGS_MINSIZEREL " /DELAYLOAD:${OPENMP_DLL_NAME}.dll delayimp.lib") + set_property( + TARGET ${projectname} APPEND_STRING PROPERTY + LINK_FLAGS_RELEASE " /DELAYLOAD:${OPENMP_DLL_NAME}.dll delayimp.lib" + ) + set_property( + TARGET ${projectname} APPEND_STRING PROPERTY + LINK_FLAGS_DEBUG " /DELAYLOAD:${OPENMP_DLL_NAME}d.dll delayimp.lib" + ) + set_property( + TARGET ${projectname} APPEND_STRING PROPERTY + LINK_FLAGS_RELWITHDEBINFO " /DELAYLOAD:${OPENMP_DLL_NAME}.dll delayimp.lib" + ) + set_property( + TARGET ${projectname} APPEND_STRING PROPERTY + LINK_FLAGS_MINSIZEREL " /DELAYLOAD:${OPENMP_DLL_NAME}.dll delayimp.lib" + ) endif() endif() endmacro() @@ -1378,7 +1440,12 @@ macro(set_and_warn_library_found endmacro() macro(without_system_libs_begin) - set(CMAKE_IGNORE_PATH "${CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES};${CMAKE_SYSTEM_INCLUDE_PATH};${CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES};${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES}") + set(CMAKE_IGNORE_PATH + "${CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES}" + "${CMAKE_SYSTEM_INCLUDE_PATH}" + "${CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES}" + "${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES}" + ) endmacro() macro(without_system_libs_end) @@ -1407,7 +1474,13 @@ macro(windows_install_shared_manifest) set(options OPTIONAL DEBUG RELEASE ALL) set(oneValueArgs) set(multiValueArgs FILES) - cmake_parse_arguments(WINDOWS_INSTALL "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} ) + cmake_parse_arguments( + WINDOWS_INSTALL + "${options}" + "${oneValueArgs}" + "${multiValueArgs}" + ${ARGN} + ) # If none of the options are set assume ALL. unset(WINDOWS_CONFIGURATIONS) if(NOT WINDOWS_INSTALL_ALL AND @@ -1451,13 +1524,23 @@ macro(windows_generate_manifest) set(options) set(oneValueArgs OUTPUT NAME) set(multiValueArgs FILES) - cmake_parse_arguments(WINDOWS_MANIFEST "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} ) + cmake_parse_arguments( + WINDOWS_MANIFEST + "${options}" + "${oneValueArgs}" + "${multiValueArgs}" + ${ARGN} + ) set(MANIFEST_LIBS "") foreach(lib ${WINDOWS_MANIFEST_FILES}) get_filename_component(filename ${lib} NAME) set(MANIFEST_LIBS "${MANIFEST_LIBS} \n") endforeach() - configure_file(${CMAKE_SOURCE_DIR}/release/windows/manifest/blender.manifest.in ${WINDOWS_MANIFEST_OUTPUT} @ONLY) + configure_file( + ${CMAKE_SOURCE_DIR}/release/windows/manifest/blender.manifest.in + ${WINDOWS_MANIFEST_OUTPUT} + @ONLY + ) endmacro() macro(windows_generate_shared_manifest) diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt index 11c36894e1f..f26df3e754c 100644 --- a/source/creator/CMakeLists.txt +++ b/source/creator/CMakeLists.txt @@ -930,8 +930,13 @@ elseif(WIN32) if(MSVC_ASAN) # The ASAN DLL's can be found in the same folder as the compiler, # this is the easiest way to find these. - string(REPLACE "cl.exe" "clang_rt.asan_dynamic-x86_64.dll" ASAN_DLL ${CMAKE_C_COMPILER}) - string(REPLACE "cl.exe" "clang_rt.asan_dbg_dynamic-x86_64.dll" ASAN_DEBUG_DLL ${CMAKE_C_COMPILER}) + string( + REPLACE "cl.exe" "clang_rt.asan_dynamic-x86_64.dll" + ASAN_DLL ${CMAKE_C_COMPILER}) + string( + REPLACE "cl.exe" "clang_rt.asan_dbg_dynamic-x86_64.dll" + ASAN_DEBUG_DLL ${CMAKE_C_COMPILER} + ) if(NOT EXISTS "${ASAN_DLL}") message( FATAL_ERROR @@ -1681,7 +1686,7 @@ endif() # Always install MaterialX files regardless if Blender itself uses them, the # bundled Python module still needs it. -if((DEFINED LIBDIR) AND TARGETDIR_LIB AND WITH_MATERIALX ) +if((DEFINED LIBDIR) AND TARGETDIR_LIB AND WITH_MATERIALX) install( DIRECTORY ${LIBDIR}/materialx/libraries DESTINATION "${TARGETDIR_LIB}/materialx"