From 2bd8f7e05936a932d816b722c433a7165de64db0 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 6 Nov 2020 10:29:04 +1100 Subject: Cleanup: use string APPEND/PREPEND Replace 'set' with 'string(APPEND/PREPEND ...)'. This avoids duplicating the variable name. --- CMakeLists.txt | 40 +++++++++---------- .../build_environment/cmake/check_software.cmake | 2 +- build_files/build_environment/cmake/options.cmake | 2 +- build_files/cmake/buildinfo.cmake | 4 +- build_files/cmake/macros.cmake | 12 +++--- build_files/cmake/platform/platform_apple.cmake | 24 +++++------ .../cmake/platform/platform_apple_xcode.cmake | 4 +- build_files/cmake/platform/platform_unix.cmake | 22 +++++------ build_files/cmake/platform/platform_win32.cmake | 46 +++++++++++----------- .../cmake/platform/platform_win32_bundle_crt.cmake | 2 +- extern/bullet2/CMakeLists.txt | 2 +- extern/draco/dracoenc/cmake/compiler_flags.cmake | 18 ++++----- extern/draco/dracoenc/cmake/compiler_tests.cmake | 8 ++-- extern/mantaflow/CMakeLists.txt | 4 +- intern/cycles/CMakeLists.txt | 22 +++++------ intern/cycles/blender/CMakeLists.txt | 2 +- intern/cycles/kernel/CMakeLists.txt | 8 ++-- intern/cycles/kernel/osl/CMakeLists.txt | 4 +- intern/ghost/CMakeLists.txt | 2 +- intern/ghost/test/CMakeLists.txt | 4 +- source/blender/blendthumb/CMakeLists.txt | 2 +- source/blender/blenkernel/CMakeLists.txt | 2 +- .../blender/blentranslation/msgfmt/CMakeLists.txt | 2 +- source/blender/bmesh/CMakeLists.txt | 2 +- source/blender/io/collada/CMakeLists.txt | 2 +- source/blender/makesrna/intern/CMakeLists.txt | 4 +- source/blender/render/CMakeLists.txt | 4 +- 27 files changed, 125 insertions(+), 125 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index aba2fa806b0..4c1d3e55d58 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -526,10 +526,10 @@ if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang") # Silence the warning that object-size is not effective in -O0. set(_asan_defaults "${_asan_defaults}") else() - set(_asan_defaults "${_asan_defaults} -fsanitize=object-size") + string(APPEND _asan_defaults " -fsanitize=object-size") endif() else() - set(_asan_defaults "${_asan_defaults} -fsanitize=leak -fsanitize=object-size") + string(APPEND _asan_defaults " -fsanitize=leak -fsanitize=object-size") endif() set(COMPILER_ASAN_CFLAGS "${_asan_defaults}" CACHE STRING "C flags for address sanitizer") @@ -863,11 +863,11 @@ if(NOT CMAKE_BUILD_TYPE MATCHES "Release") # Since linker flags are not set, all compiler checks and `find_package` # calls that rely on `try_compile` will fail. # See CMP0066 also. - set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${COMPILER_ASAN_CFLAGS}") - set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} ${COMPILER_ASAN_CFLAGS}") + string(APPEND CMAKE_C_FLAGS_DEBUG " ${COMPILER_ASAN_CFLAGS}") + string(APPEND CMAKE_C_FLAGS_RELWITHDEBINFO " ${COMPILER_ASAN_CFLAGS}") - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${COMPILER_ASAN_CXXFLAGS}") - set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${COMPILER_ASAN_CXXFLAGS}") + string(APPEND CMAKE_CXX_FLAGS_DEBUG " ${COMPILER_ASAN_CXXFLAGS}") + string(APPEND CMAKE_CXX_FLAGS_RELWITHDEBINFO " ${COMPILER_ASAN_CXXFLAGS}") endif() if(MSVC) set(COMPILER_ASAN_LINKER_FLAGS "/FUNCTIONPADMIN:6") @@ -946,11 +946,11 @@ endif() # Do it globally, SSE2 is required for quite some time now. # Doing it now allows to use SSE/SSE2 in inline headers. if(SUPPORT_SSE_BUILD) - set(PLATFORM_CFLAGS " ${COMPILER_SSE_FLAG} ${PLATFORM_CFLAGS}") + string(PREPEND PLATFORM_CFLAGS "${COMPILER_SSE_FLAG} ") add_definitions(-D__SSE__ -D__MMX__) endif() if(SUPPORT_SSE2_BUILD) - set(PLATFORM_CFLAGS " ${PLATFORM_CFLAGS} ${COMPILER_SSE2_FLAG}") + string(APPEND PLATFORM_CFLAGS " ${COMPILER_SSE2_FLAG}") add_definitions(-D__SSE2__) if(NOT SUPPORT_SSE_BUILD) # don't double up add_definitions(-D__MMX__) @@ -1162,8 +1162,8 @@ if(WITH_OPENMP) if(OPENMP_FOUND) if(NOT WITH_OPENMP_STATIC) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") + string(APPEND CMAKE_C_FLAGS " ${OpenMP_C_FLAGS}") + string(APPEND CMAKE_CXX_FLAGS " ${OpenMP_CXX_FLAGS}") else() # Typically avoid adding flags as defines but we can't # pass OpenMP flags to the linker for static builds, meaning @@ -1553,8 +1553,8 @@ elseif(CMAKE_C_COMPILER_ID MATCHES "Intel") ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_SIGN_COMPARE -Wno-sign-compare) # disable numbered, false positives - set(C_WARNINGS "${C_WARNINGS} -wd188,186,144,913,556,858,597,177,1292,167,279,592,94,2722,3199") - set(CXX_WARNINGS "${CXX_WARNINGS} -wd188,186,144,913,556,858,597,177,1292,167,279,592,94,2722,3199") + string(APPEND C_WARNINGS " -wd188,186,144,913,556,858,597,177,1292,167,279,592,94,2722,3199") + string(APPEND CXX_WARNINGS " -wd188,186,144,913,556,858,597,177,1292,167,279,592,94,2722,3199") elseif(CMAKE_C_COMPILER_ID MATCHES "MSVC") # most msvc warnings are C & C++ set(_WARNINGS @@ -1585,7 +1585,7 @@ elseif(CMAKE_C_COMPILER_ID MATCHES "MSVC") if(MSVC_VERSION GREATER_EQUAL 1911) # see https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/c5038?view=vs-2017 - set(_WARNINGS "${_WARNINGS} /w35038") # order of initialization in c++ constructors + string(APPEND _WARNINGS " /w35038") # order of initialization in c++ constructors endif() string(REPLACE ";" " " _WARNINGS "${_WARNINGS}") @@ -1626,19 +1626,19 @@ if(WITH_PYTHON) endif() if(MSVC) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++17") + string(APPEND CMAKE_CXX_FLAGS " /std:c++17") # Make MSVC properly report the value of the __cplusplus preprocessor macro # Available MSVC 15.7 (1914) and up, without this it reports 199711L regardless # of the C++ standard chosen above if(MSVC_VERSION GREATER 1913) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Zc:__cplusplus") + string(APPEND CMAKE_CXX_FLAGS " /Zc:__cplusplus") endif() elseif( CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang" OR CMAKE_C_COMPILER_ID MATCHES "Intel" ) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") + string(APPEND CMAKE_CXX_FLAGS " -std=c++17") else() message(FATAL_ERROR "Unknown compiler ${CMAKE_C_COMPILER_ID}, can't enable C++17 build") endif() @@ -1651,12 +1651,12 @@ if( (CMAKE_C_COMPILER_ID MATCHES "Intel") ) # Use C11 + GNU extensions, works with GCC, Clang, ICC - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu11") + string(APPEND CMAKE_C_FLAGS " -std=gnu11") endif() if(UNIX AND NOT APPLE) if(NOT WITH_CXX11_ABI) - set(PLATFORM_CFLAGS "${PLATFORM_CFLAGS} -D_GLIBCXX_USE_CXX11_ABI=0") + string(APPEND PLATFORM_CFLAGS " -D_GLIBCXX_USE_CXX11_ABI=0") endif() endif() @@ -1682,7 +1682,7 @@ if(WITH_COMPILER_SHORT_FILE_MACRO) # Keep this variable so it can be stripped from build-info. set(PLATFORM_CFLAGS_FMACRO_PREFIX_MAP "-fmacro-prefix-map=\"${_src_dir}\"=\"\" -fmacro-prefix-map=\"${_bin_dir}\"=\"\"") - set(PLATFORM_CFLAGS "${PLATFORM_CFLAGS} ${PLATFORM_CFLAGS_FMACRO_PREFIX_MAP}") + string(APPEND PLATFORM_CFLAGS " ${PLATFORM_CFLAGS_FMACRO_PREFIX_MAP}") unset(_src_dir) unset(_bin_dir) endif() @@ -1795,7 +1795,7 @@ if(FIRST_RUN) set(_msg " - ${_setting}") string(LENGTH "${_msg}" _len) while("32" GREATER "${_len}") - set(_msg "${_msg} ") + string(APPEND _msg " ") math(EXPR _len "${_len} + 1") endwhile() diff --git a/build_files/build_environment/cmake/check_software.cmake b/build_files/build_environment/cmake/check_software.cmake index 56d6db70ea7..09883221091 100644 --- a/build_files/build_environment/cmake/check_software.cmake +++ b/build_files/build_environment/cmake/check_software.cmake @@ -43,7 +43,7 @@ if(UNIX) if(APPLE) if(NOT EXISTS "/usr/local/opt/bison/bin/bison") - set(_software_missing "${_software_missing} bison") + string(APPEND _software_missing " bison") endif() endif() diff --git a/build_files/build_environment/cmake/options.cmake b/build_files/build_environment/cmake/options.cmake index 29e2ffc7ed8..cfbe28b99c7 100644 --- a/build_files/build_environment/cmake/options.cmake +++ b/build_files/build_environment/cmake/options.cmake @@ -56,7 +56,7 @@ if(WIN32) if(MSVC_VERSION GREATER 1909) set(COMMON_MSVC_FLAGS "/Wv:18") #some deps with warnings as error aren't quite ready for dealing with the new 2017 warnings. endif() - set(COMMON_MSVC_FLAGS "${COMMON_MSVC_FLAGS} /bigobj") + string(APPEND COMMON_MSVC_FLAGS " /bigobj") if(WITH_OPTIMIZED_DEBUG) set(BLENDER_CMAKE_C_FLAGS_DEBUG "/MDd ${COMMON_MSVC_FLAGS} /O2 /Ob2 /DNDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS") else() diff --git a/build_files/cmake/buildinfo.cmake b/build_files/cmake/buildinfo.cmake index cef6b94ee2e..babc52df748 100644 --- a/build_files/cmake/buildinfo.cmake +++ b/build_files/cmake/buildinfo.cmake @@ -128,7 +128,7 @@ if(EXISTS ${SOURCE_DIR}/.git) OUTPUT_STRIP_TRAILING_WHITESPACE) if(NOT _git_changed_files STREQUAL "") - set(MY_WC_BRANCH "${MY_WC_BRANCH} (modified)") + string(APPEND MY_WC_BRANCH " (modified)") else() # Unpushed commits are also considered local modifications execute_process(COMMAND git log @{u}.. @@ -137,7 +137,7 @@ if(EXISTS ${SOURCE_DIR}/.git) OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET) if(NOT _git_unpushed_log STREQUAL "") - set(MY_WC_BRANCH "${MY_WC_BRANCH} (modified)") + string(APPEND MY_WC_BRANCH " (modified)") endif() unset(_git_unpushed_log) endif() diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake index ea348b06a07..202b44f611c 100644 --- a/build_files/cmake/macros.cmake +++ b/build_files/cmake/macros.cmake @@ -196,7 +196,7 @@ function(blender_user_header_search_paths foreach(_INC ${includes}) get_filename_component(_ABS_INC ${_INC} ABSOLUTE) # _ALL_INCS is a space-separated string of file paths in quotes. - set(_ALL_INCS "${_ALL_INCS} \"${_ABS_INC}\"") + string(APPEND _ALL_INCS " \"${_ABS_INC}\"") endforeach() set_target_properties(${name} PROPERTIES XCODE_ATTRIBUTE_USER_HEADER_SEARCH_PATHS "${_ALL_INCS}") endif() @@ -263,11 +263,11 @@ 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}\"") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${_name_upper}}" ${ARGV1}) + 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}\"") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${_name_upper}}" ${ARGV1}) + string(APPEND CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS_${_name_upper}}" ${ARGV1}) endif() unset(_name_upper) @@ -688,14 +688,14 @@ endmacro() macro(add_c_flag flag) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${flag}") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}") + string(APPEND CMAKE_C_FLAGS " ${flag}") + string(APPEND CMAKE_CXX_FLAGS " ${flag}") endmacro() macro(add_cxx_flag flag) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}") + string(APPEND CMAKE_CXX_FLAGS " ${flag}") endmacro() macro(remove_strict_flags) diff --git a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platform/platform_apple.cmake index 084426b8572..b1168cf28da 100644 --- a/build_files/cmake/platform/platform_apple.cmake +++ b/build_files/cmake/platform/platform_apple.cmake @@ -194,7 +194,7 @@ if(SYSTEMSTUBS_LIBRARY) list(APPEND PLATFORM_LINKLIBS SystemStubs) endif() -set(PLATFORM_CFLAGS "${PLATFORM_CFLAGS} -pipe -funsigned-char -fno-strict-aliasing") +string(APPEND PLATFORM_CFLAGS " -pipe -funsigned-char -fno-strict-aliasing") set(PLATFORM_LINKFLAGS "-fexceptions -framework CoreServices -framework Foundation -framework IOKit -framework AppKit -framework Cocoa -framework Carbon -framework AudioUnit -framework AudioToolbox -framework CoreAudio -framework Metal -framework QuartzCore" ) @@ -202,12 +202,12 @@ set(PLATFORM_LINKFLAGS list(APPEND PLATFORM_LINKLIBS c++) if(WITH_JACK) - set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -F/Library/Frameworks -weak_framework jackmp") + string(APPEND PLATFORM_LINKFLAGS " -F/Library/Frameworks -weak_framework jackmp") endif() if(WITH_PYTHON_MODULE OR WITH_PYTHON_FRAMEWORK) # force cmake to link right framework - set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} /Library/Frameworks/Python.framework/Versions/${PYTHON_VERSION}/Python") + string(APPEND PLATFORM_LINKFLAGS " /Library/Frameworks/Python.framework/Versions/${PYTHON_VERSION}/Python") endif() if(WITH_OPENCOLLADA) @@ -222,7 +222,7 @@ if(WITH_SDL) find_package(SDL2) set(SDL_INCLUDE_DIR ${SDL2_INCLUDE_DIRS}) set(SDL_LIBRARY ${SDL2_LIBRARIES}) - set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -framework ForceFeedback") + string(APPEND PLATFORM_LINKFLAGS " -framework ForceFeedback") endif() set(PNG_ROOT ${LIBDIR}/png) @@ -266,7 +266,7 @@ if(WITH_BOOST) endif() if(WITH_INTERNATIONAL OR WITH_CODEC_FFMPEG) - set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -liconv") # boost_locale and ffmpeg needs it ! + string(APPEND PLATFORM_LINKFLAGS " -liconv") # boost_locale and ffmpeg needs it ! endif() if(WITH_OPENIMAGEIO) @@ -337,7 +337,7 @@ if(WITH_CYCLES_EMBREE) find_package(Embree 3.8.0 REQUIRED) # Increase stack size for Embree, only works for executables. if(NOT WITH_PYTHON_MODULE) - set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -Xlinker -stack_size -Xlinker 0x100000") + string(APPEND PLATFORM_LINKFLAGS " -Xlinker -stack_size -Xlinker 0x100000") endif() # Embree static library linking can mix up SSE and AVX symbols, causing @@ -381,7 +381,7 @@ if(WITH_OPENMP) set(OPENMP_FOUND ON) set(OpenMP_C_FLAGS "-Xclang -fopenmp -I'${LIBDIR}/openmp/include'") set(OpenMP_CXX_FLAGS "-Xclang -fopenmp -I'${LIBDIR}/openmp/include'") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L'${LIBDIR}/openmp/lib' -lomp") + string(APPEND CMAKE_EXE_LINKER_FLAGS " -L'${LIBDIR}/openmp/lib' -lomp") # Copy libomp.dylib to allow executables like datatoc and tests to work. # `@executable_path/../Resources/lib/` is a default dylib search path. @@ -434,8 +434,8 @@ if(CMAKE_OSX_ARCHITECTURES MATCHES "x86_64" OR CMAKE_OSX_ARCHITECTURES MATCHES " set(CMAKE_CXX_FLAGS_RELEASE "-O2 -mdynamic-no-pic -msse -msse2 -msse3 -mssse3") set(CMAKE_C_FLAGS_RELEASE "-O2 -mdynamic-no-pic -msse -msse2 -msse3 -mssse3") if(NOT CMAKE_C_COMPILER_ID MATCHES "Clang") - set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -ftree-vectorize -fvariable-expansion-in-unroller") - set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -ftree-vectorize -fvariable-expansion-in-unroller") + string(APPEND CMAKE_C_FLAGS_RELEASE " -ftree-vectorize -fvariable-expansion-in-unroller") + string(APPEND CMAKE_CXX_FLAGS_RELEASE " -ftree-vectorize -fvariable-expansion-in-unroller") endif() else() set(CMAKE_C_FLAGS_RELEASE "-O2 -mdynamic-no-pic") @@ -444,7 +444,7 @@ endif() if(${XCODE_VERSION} VERSION_EQUAL 5 OR ${XCODE_VERSION} VERSION_GREATER 5) # Xcode 5 is always using CLANG, which has too low template depth of 128 for libmv - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftemplate-depth=1024") + string(APPEND CMAKE_CXX_FLAGS " -ftemplate-depth=1024") endif() # Avoid conflicts with Luxrender, and other plug-ins that may use the same @@ -453,8 +453,8 @@ set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -Xlinker -unexported_symbols_list -Xlinker '${CMAKE_SOURCE_DIR}/source/creator/osx_locals.map'" ) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") -set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -stdlib=libc++") +string(APPEND CMAKE_CXX_FLAGS " -stdlib=libc++") +string(APPEND PLATFORM_LINKFLAGS " -stdlib=libc++") # Suppress ranlib "has no symbols" warnings (workaround for T48250) set(CMAKE_C_ARCHIVE_CREATE " Scr ") diff --git a/build_files/cmake/platform/platform_apple_xcode.cmake b/build_files/cmake/platform/platform_apple_xcode.cmake index 3a43ca317dd..e4b804fc4ea 100644 --- a/build_files/cmake/platform/platform_apple_xcode.cmake +++ b/build_files/cmake/platform/platform_apple_xcode.cmake @@ -150,7 +150,7 @@ endif() if(NOT ${CMAKE_GENERATOR} MATCHES "Xcode") # Force CMAKE_OSX_DEPLOYMENT_TARGET for makefiles, will not work else (CMake bug?) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}") + string(APPEND CMAKE_C_FLAGS " -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}") + string(APPEND CMAKE_CXX_FLAGS " -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}") add_definitions("-DMACOSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}") endif() diff --git a/build_files/cmake/platform/platform_unix.cmake b/build_files/cmake/platform/platform_unix.cmake index 1aa96c8b842..97bd4981c22 100644 --- a/build_files/cmake/platform/platform_unix.cmake +++ b/build_files/cmake/platform/platform_unix.cmake @@ -73,7 +73,7 @@ if(EXISTS ${LIBDIR}) endif() if(WITH_STATIC_LIBS) - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libstdc++") + string(APPEND CMAKE_EXE_LINKER_FLAGS " -static-libstdc++") endif() # Wrapper to prefer static libraries @@ -620,7 +620,7 @@ if(CMAKE_COMPILER_IS_GNUCC) set(CMAKE_C_FLAGS_RELEASE "${GCC_EXTRA_FLAGS_RELEASE} ${CMAKE_C_FLAGS_RELEASE}") set(CMAKE_C_FLAGS_RELWITHDEBINFO "${GCC_EXTRA_FLAGS_RELEASE} ${CMAKE_C_FLAGS_RELWITHDEBINFO}") set(CMAKE_CXX_FLAGS_RELEASE "${GCC_EXTRA_FLAGS_RELEASE} ${CMAKE_CXX_FLAGS_RELEASE}") - set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${GCC_EXTRA_FLAGS_RELEASE} ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") + string(PREPEND CMAKE_CXX_FLAGS_RELWITHDEBINFO "${GCC_EXTRA_FLAGS_RELEASE} ") unset(GCC_EXTRA_FLAGS_RELEASE) if(WITH_LINKER_GOLD) @@ -628,8 +628,8 @@ if(CMAKE_COMPILER_IS_GNUCC) COMMAND ${CMAKE_C_COMPILER} -fuse-ld=gold -Wl,--version ERROR_QUIET OUTPUT_VARIABLE LD_VERSION) if("${LD_VERSION}" MATCHES "GNU gold") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fuse-ld=gold") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fuse-ld=gold") + string(APPEND CMAKE_C_FLAGS " -fuse-ld=gold") + string(APPEND CMAKE_CXX_FLAGS " -fuse-ld=gold") else() message(STATUS "GNU gold linker isn't available, using the default system linker.") endif() @@ -641,8 +641,8 @@ if(CMAKE_COMPILER_IS_GNUCC) COMMAND ${CMAKE_C_COMPILER} -fuse-ld=lld -Wl,--version ERROR_QUIET OUTPUT_VARIABLE LD_VERSION) if("${LD_VERSION}" MATCHES "LLD") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fuse-ld=lld") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fuse-ld=lld") + string(APPEND CMAKE_C_FLAGS " -fuse-ld=lld") + string(APPEND CMAKE_CXX_FLAGS " -fuse-ld=lld") else() message(STATUS "LLD linker isn't available, using the default system linker.") endif() @@ -667,12 +667,12 @@ elseif(CMAKE_C_COMPILER_ID MATCHES "Intel") endif() mark_as_advanced(XILD) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fp-model precise -prec_div -parallel") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fp-model precise -prec_div -parallel") + string(APPEND CMAKE_C_FLAGS " -fp-model precise -prec_div -parallel") + string(APPEND CMAKE_CXX_FLAGS " -fp-model precise -prec_div -parallel") - # set(PLATFORM_CFLAGS "${PLATFORM_CFLAGS} -diag-enable sc3") + # string(APPEND PLATFORM_CFLAGS " -diag-enable sc3") set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing") - set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -static-intel") + string(APPEND PLATFORM_LINKFLAGS " -static-intel") endif() # Avoid conflicts with Mesa llvmpipe, Luxrender, and other plug-ins that may @@ -685,5 +685,5 @@ set(PLATFORM_LINKFLAGS # browsers can't properly detect blender as an executable then. Still enabled # for non-portable installs as typically used by Linux distributions. if(WITH_INSTALL_PORTABLE) - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -no-pie") + string(APPEND CMAKE_EXE_LINKER_FLAGS " -no-pie") endif() diff --git a/build_files/cmake/platform/platform_win32.cmake b/build_files/cmake/platform/platform_win32.cmake index e7474b0035d..ac08c1a5fa9 100644 --- a/build_files/cmake/platform/platform_win32.cmake +++ b/build_files/cmake/platform/platform_win32.cmake @@ -49,7 +49,7 @@ if(CMAKE_C_COMPILER_ID MATCHES "Clang") if(NOT EXISTS "${CLANG_OPENMP_DLL}") message(FATAL_ERROR "Clang OpenMP library (${CLANG_OPENMP_DLL}) not found.") endif() - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} \"${CLANG_OPENMP_LIB}\"") + string(APPEND CMAKE_EXE_LINKER_FLAGS " \"${CLANG_OPENMP_LIB}\"") endif() if(WITH_WINDOWS_STRIPPED_PDB) message(WARNING "stripped pdb not supported with clang, disabling..") @@ -112,9 +112,9 @@ unset(_min_ver) # needed for some MSVC installations # 4099 : PDB 'filename' was not found with 'object/library' -set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SAFESEH:NO /ignore:4099") -set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /SAFESEH:NO /ignore:4099") -set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /SAFESEH:NO /ignore:4099") +string(APPEND CMAKE_EXE_LINKER_FLAGS " /SAFESEH:NO /ignore:4099") +string(APPEND CMAKE_SHARED_LINKER_FLAGS " /SAFESEH:NO /ignore:4099") +string(APPEND CMAKE_MODULE_LINKER_FLAGS " /SAFESEH:NO /ignore:4099") list(APPEND PLATFORM_LINKLIBS ws2_32 vfw32 winmm kernel32 user32 gdi32 comdlg32 Comctl32 version @@ -154,18 +154,18 @@ if(WITH_WINDOWS_PDB) endif() if(MSVC_CLANG) # Clangs version of cl doesn't support all flags - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX_WARN_FLAGS} /nologo /J /Gd /EHsc -Wno-unused-command-line-argument -Wno-microsoft-enum-forward-reference ") + string(APPEND CMAKE_CXX_FLAGS " ${CXX_WARN_FLAGS} /nologo /J /Gd /EHsc -Wno-unused-command-line-argument -Wno-microsoft-enum-forward-reference ") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /nologo /J /Gd -Wno-unused-command-line-argument -Wno-microsoft-enum-forward-reference") else() - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /nologo /J /Gd /MP /EHsc /bigobj") + string(APPEND CMAKE_CXX_FLAGS " /nologo /J /Gd /MP /EHsc /bigobj") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /nologo /J /Gd /MP /bigobj") endif() # C++ standards conformace (/permissive-) is available on msvc 15.5 (1912) and up if(MSVC_VERSION GREATER 1911 AND NOT MSVC_CLANG) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /permissive-") + string(APPEND CMAKE_CXX_FLAGS " /permissive-") # Two-phase name lookup does not place nicely with OpenMP yet, so disable for now - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Zc:twoPhase-") + string(APPEND CMAKE_CXX_FLAGS " /Zc:twoPhase-") endif() if(WITH_WINDOWS_SCCACHE AND CMAKE_VS_MSBUILD_COMMAND) @@ -183,33 +183,33 @@ else() set(SYMBOL_FORMAT /ZI) endif() -set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MDd ${SYMBOL_FORMAT}") -set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /MDd ${SYMBOL_FORMAT}") -set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MD ${PDB_INFO_OVERRIDE_FLAGS}") -set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /MD ${PDB_INFO_OVERRIDE_FLAGS}") -set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} /MD ${PDB_INFO_OVERRIDE_FLAGS}") -set(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL} /MD ${PDB_INFO_OVERRIDE_FLAGS}") -set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /MD ${SYMBOL_FORMAT}") -set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} /MD ${SYMBOL_FORMAT}") +string(APPEND CMAKE_CXX_FLAGS_DEBUG " /MDd ${SYMBOL_FORMAT}") +string(APPEND CMAKE_C_FLAGS_DEBUG " /MDd ${SYMBOL_FORMAT}") +string(APPEND CMAKE_CXX_FLAGS_RELEASE " /MD ${PDB_INFO_OVERRIDE_FLAGS}") +string(APPEND CMAKE_C_FLAGS_RELEASE " /MD ${PDB_INFO_OVERRIDE_FLAGS}") +string(APPEND CMAKE_CXX_FLAGS_MINSIZEREL " /MD ${PDB_INFO_OVERRIDE_FLAGS}") +string(APPEND CMAKE_C_FLAGS_MINSIZEREL " /MD ${PDB_INFO_OVERRIDE_FLAGS}") +string(APPEND CMAKE_CXX_FLAGS_RELWITHDEBINFO " /MD ${SYMBOL_FORMAT}") +string(APPEND CMAKE_C_FLAGS_RELWITHDEBINFO " /MD ${SYMBOL_FORMAT}") unset(SYMBOL_FORMAT) # JMC is available on msvc 15.8 (1915) and up if(MSVC_VERSION GREATER 1914 AND NOT MSVC_CLANG) - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /JMC") + string(APPEND CMAKE_CXX_FLAGS_DEBUG " /JMC") endif() -set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} /SUBSYSTEM:CONSOLE /STACK:2097152") +string(APPEND PLATFORM_LINKFLAGS " /SUBSYSTEM:CONSOLE /STACK:2097152") set(PLATFORM_LINKFLAGS_RELEASE "/NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:msvcrtd.lib") -set(PLATFORM_LINKFLAGS_DEBUG "${PLATFORM_LINKFLAGS_DEBUG} /IGNORE:4099 /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:libcmtd.lib") +string(APPEND PLATFORM_LINKFLAGS_DEBUG " /IGNORE:4099 /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:libcmtd.lib") # Ignore meaningless for us linker warnings. -set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} /ignore:4049 /ignore:4217 /ignore:4221") +string(APPEND PLATFORM_LINKFLAGS " /ignore:4049 /ignore:4217 /ignore:4221") set(PLATFORM_LINKFLAGS_RELEASE "${PLATFORM_LINKFLAGS} ${PDB_INFO_OVERRIDE_LINKER_FLAGS}") -set(CMAKE_STATIC_LINKER_FLAGS "${CMAKE_STATIC_LINKER_FLAGS} /ignore:4221") +string(APPEND CMAKE_STATIC_LINKER_FLAGS " /ignore:4221") if(CMAKE_CL_64) - set(PLATFORM_LINKFLAGS "/MACHINE:X64 ${PLATFORM_LINKFLAGS}") + string(PREPEND PLATFORM_LINKFLAGS "/MACHINE:X64 ") else() - set(PLATFORM_LINKFLAGS "/MACHINE:IX86 /LARGEADDRESSAWARE ${PLATFORM_LINKFLAGS}") + string(PREPEND PLATFORM_LINKFLAGS "/MACHINE:IX86 /LARGEADDRESSAWARE ") endif() if(NOT DEFINED LIBDIR) diff --git a/build_files/cmake/platform/platform_win32_bundle_crt.cmake b/build_files/cmake/platform/platform_win32_bundle_crt.cmake index 29ecb8d5afa..f5bc024e4e0 100644 --- a/build_files/cmake/platform/platform_win32_bundle_crt.cmake +++ b/build_files/cmake/platform/platform_win32_bundle_crt.cmake @@ -31,7 +31,7 @@ if(WITH_WINDOWS_BUNDLE_CRT) foreach(lib ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS}) get_filename_component(filename ${lib} NAME) file(SHA1 "${lib}" sha1_file) - set(CRTLIBS "${CRTLIBS} \n") + string(APPEND CRTLIBS " \n") endforeach() configure_file(${CMAKE_SOURCE_DIR}/release/windows/manifest/blender.crt.manifest.in ${CMAKE_CURRENT_BINARY_DIR}/blender.crt.manifest @ONLY) file(TOUCH ${manifest_trigger_file}) diff --git a/extern/bullet2/CMakeLists.txt b/extern/bullet2/CMakeLists.txt index 2c63d76296c..6138795f241 100644 --- a/extern/bullet2/CMakeLists.txt +++ b/extern/bullet2/CMakeLists.txt @@ -423,7 +423,7 @@ set(LIB if(CMAKE_COMPILER_IS_GNUCXX) # needed for gcc 4.6+ - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive") + string(APPEND CMAKE_CXX_FLAGS " -fpermissive") endif() if(MSVC) diff --git a/extern/draco/dracoenc/cmake/compiler_flags.cmake b/extern/draco/dracoenc/cmake/compiler_flags.cmake index d842a8ab1f4..bbfb069d2d3 100644 --- a/extern/draco/dracoenc/cmake/compiler_flags.cmake +++ b/extern/draco/dracoenc/cmake/compiler_flags.cmake @@ -23,9 +23,9 @@ macro (add_c_flag_if_supported c_flag) message("Checking C compiler flag support for: " ${c_flag}) check_c_compiler_flag("${c_flag}" C_FLAG_SUPPORTED) if (${C_FLAG_SUPPORTED}) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${c_flag}" CACHE STRING "") + string(APPEND CMAKE_C_FLAGS " ${c_flag}" CACHE STRING "") else () - set(DRACO_FAILED_C_FLAGS "${DRACO_FAILED_C_FLAGS} ${c_flag}" CACHE STRING + string(APPEND DRACO_FAILED_C_FLAGS " ${c_flag}" CACHE STRING "" FORCE) endif () endif () @@ -45,9 +45,9 @@ macro (add_cxx_flag_if_supported cxx_flag) message("Checking CXX compiler flag support for: " ${cxx_flag}) check_cxx_compiler_flag("${cxx_flag}" CXX_FLAG_SUPPORTED) if (${CXX_FLAG_SUPPORTED}) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${cxx_flag}" CACHE STRING "") + string(APPEND CMAKE_CXX_FLAGS " ${cxx_flag}" CACHE STRING "") else() - set(DRACO_FAILED_CXX_FLAGS "${DRACO_FAILED_CXX_FLAGS} ${cxx_flag}" CACHE + string(APPEND DRACO_FAILED_CXX_FLAGS " ${cxx_flag}" CACHE STRING "" FORCE) endif () endif () @@ -138,7 +138,7 @@ macro (append_as_flag flag) string(FIND "${DRACO_AS_FLAGS}" "${flag}" AS_FLAG_FOUND) if (${AS_FLAG_FOUND} EQUAL -1) - set(DRACO_AS_FLAGS "${DRACO_AS_FLAGS} ${flag}") + string(APPEND DRACO_AS_FLAGS " ${flag}") endif () endmacro () @@ -148,7 +148,7 @@ macro (append_c_flag flag) string(FIND "${CMAKE_C_FLAGS}" "${flag}" C_FLAG_FOUND) if (${C_FLAG_FOUND} EQUAL -1) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${flag}") + string(APPEND CMAKE_C_FLAGS " ${flag}") endif () endmacro () @@ -158,7 +158,7 @@ macro (append_cxx_flag flag) string(FIND "${CMAKE_CXX_FLAGS}" "${flag}" CXX_FLAG_FOUND) if (${CXX_FLAG_FOUND} EQUAL -1) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}") + string(APPEND CMAKE_CXX_FLAGS " ${flag}") endif () endmacro () @@ -174,7 +174,7 @@ macro (append_exe_linker_flag flag) string(FIND "${CMAKE_EXE_LINKER_FLAGS}" "${flag}" LINKER_FLAG_FOUND) if (${LINKER_FLAG_FOUND} EQUAL -1) - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${flag}") + string(APPEND CMAKE_EXE_LINKER_FLAGS " ${flag}") endif () endmacro () @@ -191,7 +191,7 @@ function (append_link_flag_to_target target flags) return() endif () - set(target_link_flags "${target_link_flags} ${flags}") + string(APPEND target_link_flags " ${flags}") else () set(target_link_flags "${flags}") endif () diff --git a/extern/draco/dracoenc/cmake/compiler_tests.cmake b/extern/draco/dracoenc/cmake/compiler_tests.cmake index e529ba11253..7cc3fbfc67d 100644 --- a/extern/draco/dracoenc/cmake/compiler_tests.cmake +++ b/extern/draco/dracoenc/cmake/compiler_tests.cmake @@ -41,9 +41,9 @@ macro(draco_check_c_compiles test_name test_source result_var) set(${result_var} ${C_TEST_COMPILED}) if (${C_TEST_COMPILED}) - set(DRACO_C_PASSED_TESTS "${DRACO_C_PASSED_TESTS} ${test_name}") + string(APPEND DRACO_C_PASSED_TESTS " ${test_name}") else () - set(DRACO_C_FAILED_TESTS "${DRACO_C_FAILED_TESTS} ${test_name}") + string(APPEND DRACO_C_FAILED_TESTS " ${test_name}") message("C Compiler test ${test_name} failed.") endif () elseif (NOT ${C_TEST_PASSED} EQUAL -1) @@ -71,9 +71,9 @@ macro(draco_check_cxx_compiles test_name test_source result_var) set(${result_var} ${CXX_TEST_COMPILED}) if (${CXX_TEST_COMPILED}) - set(DRACO_CXX_PASSED_TESTS "${DRACO_CXX_PASSED_TESTS} ${test_name}") + string(APPEND DRACO_CXX_PASSED_TESTS " ${test_name}") else () - set(DRACO_CXX_FAILED_TESTS "${DRACO_CXX_FAILED_TESTS} ${test_name}") + string(APPEND DRACO_CXX_FAILED_TESTS " ${test_name}") message("CXX Compiler test ${test_name} failed.") endif () elseif (NOT ${CXX_TEST_PASSED} EQUAL -1) diff --git a/extern/mantaflow/CMakeLists.txt b/extern/mantaflow/CMakeLists.txt index fe6c72660e0..ee155ee8636 100644 --- a/extern/mantaflow/CMakeLists.txt +++ b/extern/mantaflow/CMakeLists.txt @@ -37,8 +37,8 @@ endif() if(APPLE AND ("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64")) if(CMAKE_COMPILER_IS_GNUCXX OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden") + string(APPEND CMAKE_C_FLAGS " -fvisibility=hidden") + string(APPEND CMAKE_CXX_FLAGS " -fvisibility=hidden") endif() endif() diff --git a/intern/cycles/CMakeLists.txt b/intern/cycles/CMakeLists.txt index 9d5b5a2d1a6..b1bb1d3654d 100644 --- a/intern/cycles/CMakeLists.txt +++ b/intern/cycles/CMakeLists.txt @@ -45,7 +45,7 @@ if(WITH_CYCLES_NATIVE_ONLY) ) if(NOT MSVC) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native") + string(APPEND CMAKE_CXX_FLAGS " -march=native") set(CYCLES_KERNEL_FLAGS "-march=native") else() if(NOT MSVC_NATIVE_ARCH_FLAGS) @@ -101,10 +101,10 @@ elseif(WIN32 AND MSVC AND NOT CMAKE_CXX_COMPILER_ID MATCHES "Clang") set(CYCLES_AVX2_KERNEL_FLAGS "${CYCLES_AVX2_ARCH_FLAGS} ${CYCLES_KERNEL_FLAGS}") endif() - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CYCLES_KERNEL_FLAGS}") - set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Ox") - set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /Ox") - set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} /Ox") + string(APPEND CMAKE_CXX_FLAGS " ${CYCLES_KERNEL_FLAGS}") + string(APPEND CMAKE_CXX_FLAGS_RELEASE " /Ox") + string(APPEND CMAKE_CXX_FLAGS_RELWITHDEBINFO " /Ox") + string(APPEND CMAKE_CXX_FLAGS_MINSIZEREL " /Ox") elseif(CMAKE_COMPILER_IS_GNUCC OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang")) check_cxx_compiler_flag(-msse CXX_HAS_SSE) check_cxx_compiler_flag(-mavx CXX_HAS_AVX) @@ -113,20 +113,20 @@ elseif(CMAKE_COMPILER_IS_GNUCC OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang")) # Assume no signal trapping for better code generation. set(CYCLES_KERNEL_FLAGS "-fno-trapping-math") # Avoid overhead of setting errno for NaNs. - set(CYCLES_KERNEL_FLAGS "${CYCLES_KERNEL_FLAGS} -fno-math-errno") + string(APPEND CYCLES_KERNEL_FLAGS " -fno-math-errno") # Let compiler optimize 0.0 - x without worrying about signed zeros. - set(CYCLES_KERNEL_FLAGS "${CYCLES_KERNEL_FLAGS} -fno-signed-zeros") + string(APPEND CYCLES_KERNEL_FLAGS " -fno-signed-zeros") if(CMAKE_COMPILER_IS_GNUCC) # Assume no signal trapping for better code generation. - set(CYCLES_KERNEL_FLAGS "${CYCLES_KERNEL_FLAGS} -fno-signaling-nans") + string(APPEND CYCLES_KERNEL_FLAGS " -fno-signaling-nans") # Assume a fixed rounding mode for better constant folding. - set(CYCLES_KERNEL_FLAGS "${CYCLES_KERNEL_FLAGS} -fno-rounding-math") + string(APPEND CYCLES_KERNEL_FLAGS " -fno-rounding-math") endif() if(CXX_HAS_SSE) if(CMAKE_COMPILER_IS_GNUCC) - set(CYCLES_KERNEL_FLAGS "${CYCLES_KERNEL_FLAGS} -mfpmath=sse") + string(APPEND CYCLES_KERNEL_FLAGS " -mfpmath=sse") endif() set(CYCLES_SSE2_KERNEL_FLAGS "${CYCLES_KERNEL_FLAGS} -msse -msse2") @@ -140,7 +140,7 @@ elseif(CMAKE_COMPILER_IS_GNUCC OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang")) endif() endif() - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CYCLES_KERNEL_FLAGS}") + string(APPEND CMAKE_CXX_FLAGS " ${CYCLES_KERNEL_FLAGS}") elseif(WIN32 AND CMAKE_CXX_COMPILER_ID MATCHES "Intel") check_cxx_compiler_flag(/QxSSE2 CXX_HAS_SSE) check_cxx_compiler_flag(/arch:AVX CXX_HAS_AVX) diff --git a/intern/cycles/blender/CMakeLists.txt b/intern/cycles/blender/CMakeLists.txt index 0d805dc8683..2d48563d8a6 100644 --- a/intern/cycles/blender/CMakeLists.txt +++ b/intern/cycles/blender/CMakeLists.txt @@ -130,7 +130,7 @@ blender_add_lib(bf_intern_cycles "${SRC}" "${INC}" "${INC_SYS}" "${LIB}") # avoid link failure with clang 3.4 debug if(CMAKE_C_COMPILER_ID MATCHES "Clang" AND NOT ${CMAKE_C_COMPILER_VERSION} VERSION_LESS '3.4') - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -gline-tables-only") + string(APPEND CMAKE_CXX_FLAGS_DEBUG " -gline-tables-only") endif() add_dependencies(bf_intern_cycles bf_rna) diff --git a/intern/cycles/kernel/CMakeLists.txt b/intern/cycles/kernel/CMakeLists.txt index 26d7a7eee71..c39c67afb5a 100644 --- a/intern/cycles/kernel/CMakeLists.txt +++ b/intern/cycles/kernel/CMakeLists.txt @@ -649,13 +649,13 @@ include_directories(SYSTEM ${INC_SYS}) if(WITH_COMPILER_ASAN) if(CMAKE_COMPILER_IS_GNUCC AND (NOT WITH_CYCLES_KERNEL_ASAN)) # GCC hangs compiling the big kernel files with asan and release, so disable by default. - set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -fno-sanitize=all") - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fno-sanitize=vptr") + string(APPEND CMAKE_CXX_FLAGS_RELWITHDEBINFO " -fno-sanitize=all") + string(APPEND CMAKE_CXX_FLAGS_DEBUG " -fno-sanitize=vptr") elseif(CMAKE_C_COMPILER_ID MATCHES "Clang") # With OSL, Cycles disables rtti in some modules, wich then breaks at linking # when trying to use vptr sanitizer (included into 'undefined' general option). - set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -fno-sanitize=vptr") - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fno-sanitize=vptr") + string(APPEND CMAKE_CXX_FLAGS_RELWITHDEBINFO " -fno-sanitize=vptr") + string(APPEND CMAKE_CXX_FLAGS_DEBUG " -fno-sanitize=vptr") endif() endif() diff --git a/intern/cycles/kernel/osl/CMakeLists.txt b/intern/cycles/kernel/osl/CMakeLists.txt index 8144d480589..3b2d639f3a5 100644 --- a/intern/cycles/kernel/osl/CMakeLists.txt +++ b/intern/cycles/kernel/osl/CMakeLists.txt @@ -47,7 +47,7 @@ set(LIB ) # OSL and LLVM are built without RTTI -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${RTTI_DISABLE_FLAGS}") +string(APPEND CMAKE_CXX_FLAGS " ${RTTI_DISABLE_FLAGS}") if(APPLE) # Disable allocation warning on macOS prior to 10.14: the OSLRenderServices @@ -55,7 +55,7 @@ if(APPLE) # unordered_map_concurrent). This is not something what the SDK supportsm, but # since we take care of allocations ourselves is is OK to ignore the # diagnostic message. - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -faligned-allocation") + string(APPEND CMAKE_CXX_FLAGS " -faligned-allocation") endif() include_directories(${INC}) diff --git a/intern/ghost/CMakeLists.txt b/intern/ghost/CMakeLists.txt index 77e777db872..4a2a12932fe 100644 --- a/intern/ghost/CMakeLists.txt +++ b/intern/ghost/CMakeLists.txt @@ -332,7 +332,7 @@ elseif(WITH_GHOST_X11 OR WITH_GHOST_WAYLAND) elseif(WIN32) # # Warnings as errors, this is too strict! # if(MSVC) - # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX") + # string(APPEND CMAKE_CXX_FLAGS " /WX") # endif() list(APPEND INC_SYS diff --git a/intern/ghost/test/CMakeLists.txt b/intern/ghost/test/CMakeLists.txt index b6e3c0ecf5f..27a764cd050 100644 --- a/intern/ghost/test/CMakeLists.txt +++ b/intern/ghost/test/CMakeLists.txt @@ -233,8 +233,8 @@ else() set(GLEW_INCLUDE_PATH "${CMAKE_SOURCE_DIR}/extern/glew/include") endif() -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${PLATFORM_CFLAGS}") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${PLATFORM_CFLAGS}") +string(APPEND CMAKE_C_FLAGS " ${PLATFORM_CFLAGS}") +string(APPEND CMAKE_CXX_FLAGS " ${PLATFORM_CFLAGS}") # ----------------------------------------------------------------------------- # Executables diff --git a/source/blender/blendthumb/CMakeLists.txt b/source/blender/blendthumb/CMakeLists.txt index 0b1ce5149da..cb121cb9c8d 100644 --- a/source/blender/blendthumb/CMakeLists.txt +++ b/source/blender/blendthumb/CMakeLists.txt @@ -28,7 +28,7 @@ set(SRC src/Dll.cpp ) -set(CMAKE_SHARED_LINKER_FLAGS_DEBUG "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} /nodefaultlib:MSVCRT.lib") +string(APPEND CMAKE_SHARED_LINKER_FLAGS_DEBUG " /nodefaultlib:MSVCRT.lib") add_library(BlendThumb SHARED ${SRC}) target_link_libraries(BlendThumb ${ZLIB_LIBRARIES}) diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt index e6be2fe9531..97281dbccf0 100644 --- a/source/blender/blenkernel/CMakeLists.txt +++ b/source/blender/blenkernel/CMakeLists.txt @@ -706,7 +706,7 @@ endif() # # Warnings as errors, this is too strict! # if(MSVC) -# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /WX") +# string(APPEND CMAKE_C_FLAGS " /WX") # endif() blender_add_lib(bf_blenkernel "${SRC}" "${INC}" "${INC_SYS}" "${LIB}") diff --git a/source/blender/blentranslation/msgfmt/CMakeLists.txt b/source/blender/blentranslation/msgfmt/CMakeLists.txt index 20f5053bd29..4b8f0878c75 100644 --- a/source/blender/blentranslation/msgfmt/CMakeLists.txt +++ b/source/blender/blentranslation/msgfmt/CMakeLists.txt @@ -34,7 +34,7 @@ setup_libdirs() add_cc_flags_custom_test(msgfmt) if(WIN32) - set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} /nodefaultlib:MSVCRT.lib") + string(APPEND CMAKE_EXE_LINKER_FLAGS_DEBUG " /nodefaultlib:MSVCRT.lib") endif() add_executable(msgfmt ${SRC}) diff --git a/source/blender/bmesh/CMakeLists.txt b/source/blender/bmesh/CMakeLists.txt index 92c52f5d8d0..c215cf69e3a 100644 --- a/source/blender/bmesh/CMakeLists.txt +++ b/source/blender/bmesh/CMakeLists.txt @@ -183,7 +183,7 @@ set(LIB ) if(MSVC AND NOT MSVC_CLANG) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /WX /wd4101") + string(APPEND CMAKE_C_FLAGS " /WX /wd4101") endif() if(WITH_BULLET) diff --git a/source/blender/io/collada/CMakeLists.txt b/source/blender/io/collada/CMakeLists.txt index 8ffce9e3e7e..e1645083116 100644 --- a/source/blender/io/collada/CMakeLists.txt +++ b/source/blender/io/collada/CMakeLists.txt @@ -141,7 +141,7 @@ endif() if(CMAKE_COMPILER_IS_GNUCXX) # COLLADAFWArray.h gives error with gcc 4.5 - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive") + string(APPEND CMAKE_CXX_FLAGS " -fpermissive") endif() blender_add_lib(bf_collada "${SRC}" "${INC}" "${INC_SYS}" "${LIB}") diff --git a/source/blender/makesrna/intern/CMakeLists.txt b/source/blender/makesrna/intern/CMakeLists.txt index d8029ff16a0..bd015f3e477 100644 --- a/source/blender/makesrna/intern/CMakeLists.txt +++ b/source/blender/makesrna/intern/CMakeLists.txt @@ -20,7 +20,7 @@ if(CMAKE_COMPILER_IS_GNUCC) # add here so we fail early. - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror=implicit-function-declaration") + string(APPEND CMAKE_C_FLAGS " -Werror=implicit-function-declaration") endif() # files rna_access.c rna_define.c makesrna.c intentionally excluded. @@ -151,7 +151,7 @@ if(CMAKE_COMPILER_IS_GNUCC OR (CMAKE_C_COMPILER_ID MATCHES "Clang")) set(GENSRC_CFLAGS "-Wno-missing-prototypes") endif() if(CMAKE_C_COMPILER_ID MATCHES "Clang") - set(GENSRC_CFLAGS "${GENSRC_CFLAGS} -Wno-missing-variable-declarations") + string(APPEND GENSRC_CFLAGS " -Wno-missing-variable-declarations") endif() if(GENSRC_CFLAGS) diff --git a/source/blender/render/CMakeLists.txt b/source/blender/render/CMakeLists.txt index 598e6e019d4..41caee1a39c 100644 --- a/source/blender/render/CMakeLists.txt +++ b/source/blender/render/CMakeLists.txt @@ -101,8 +101,8 @@ endif() if(APPLE) # SSE math is enabled by default on x86_64 if(CMAKE_OSX_ARCHITECTURES MATCHES "i386") - set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mfpmath=sse") - set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -mfpmath=sse") + string(APPEND CMAKE_C_FLAGS_RELEASE " -mfpmath=sse") + string(APPEND CMAKE_CXX_FLAGS_RELEASE " -mfpmath=sse") endif() endif() -- cgit v1.2.3