diff options
-rw-r--r-- | CMakeLists.txt | 5 | ||||
-rw-r--r-- | build_files/cmake/Modules/GTestTesting.cmake | 1 | ||||
-rw-r--r-- | build_files/cmake/macros.cmake | 33 | ||||
-rw-r--r-- | intern/cycles/test/CMakeLists.txt | 3 | ||||
-rw-r--r-- | source/blender/blenlib/tests/performance/CMakeLists.txt | 3 | ||||
-rw-r--r-- | source/blender/blentranslation/msgfmt/CMakeLists.txt | 5 | ||||
-rw-r--r-- | source/blender/datatoc/CMakeLists.txt | 2 | ||||
-rw-r--r-- | source/blender/makesdna/intern/CMakeLists.txt | 2 | ||||
-rw-r--r-- | source/blender/makesrna/intern/CMakeLists.txt | 2 | ||||
-rw-r--r-- | source/creator/CMakeLists.txt | 15 | ||||
-rw-r--r-- | tests/gtests/runner/CMakeLists.txt | 2 |
11 files changed, 22 insertions, 51 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index c9a020ebbc3..a2e6e557a62 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -840,11 +840,10 @@ set(CXX_WARNINGS) set(C_REMOVE_STRICT_FLAGS) set(CXX_REMOVE_STRICT_FLAGS) -# libraries to link the binary with passed to target_link_libraries() -# known as LLIBS to scons +# Libraries to link to targets in setup_platform_linker_libs set(PLATFORM_LINKLIBS "") -# Added to linker flags in setup_liblinks +# Added to target linker flags in setup_platform_linker_flags # - CMAKE_EXE_LINKER_FLAGS # - CMAKE_EXE_LINKER_FLAGS_DEBUG set(PLATFORM_LINKFLAGS "") diff --git a/build_files/cmake/Modules/GTestTesting.cmake b/build_files/cmake/Modules/GTestTesting.cmake index 053d5196f41..2e45f253a9a 100644 --- a/build_files/cmake/Modules/GTestTesting.cmake +++ b/build_files/cmake/Modules/GTestTesting.cmake @@ -39,6 +39,7 @@ macro(BLENDER_SRC_GTEST_EX) add_definitions(${GLOG_DEFINES}) add_executable(${TARGET_NAME} ${ARG_SRC} ${MANIFEST}) + setup_platform_linker_flags(${TARGET_NAME}) target_include_directories(${TARGET_NAME} PUBLIC "${TEST_INC}") target_include_directories(${TARGET_NAME} SYSTEM PUBLIC "${TEST_INC_SYS}") target_link_libraries(${TARGET_NAME} ${ARG_EXTRA_LIBS} ${PLATFORM_LINKLIBS}) diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake index dcab6d58870..268daa4aae3 100644 --- a/build_files/cmake/macros.cmake +++ b/build_files/cmake/macros.cmake @@ -514,33 +514,18 @@ function(SETUP_LIBDIRS) endif() endfunction() -macro(setup_platform_linker_flags) - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${PLATFORM_LINKFLAGS}") - set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} ${PLATFORM_LINKFLAGS_RELEASE}") - set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} ${PLATFORM_LINKFLAGS_DEBUG}") -endmacro() +# 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}") +endfunction() -function(setup_liblinks +# Platform specific libraries for targets. +function(setup_platform_linker_libs target ) - - # NOTE: This might look like it affects global scope, accumulating linker flags on every call - # to setup_liblinks, but this isn't how CMake works. These flags will only affect current - # directory from where the function is called. - # This means that setup_liblinks() called for ffmpeg_test will not affect blender, and each - # of thsoe targets will have single set of linker flags. - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${PLATFORM_LINKFLAGS}" PARENT_SCOPE) - set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} ${PLATFORM_LINKFLAGS_DEBUG}" PARENT_SCOPE) - set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} ${PLATFORM_LINKFLAGS_RELEASE}" PARENT_SCOPE) - - set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${PLATFORM_LINKFLAGS}" PARENT_SCOPE) - set(CMAKE_SHARED_LINKER_FLAGS_DEBUG "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} ${PLATFORM_LINKFLAGS_DEBUG}" PARENT_SCOPE) - set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} ${PLATFORM_LINKFLAGS_RELEASE}" PARENT_SCOPE) - - set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${PLATFORM_LINKFLAGS}" PARENT_SCOPE) - set(CMAKE_MODULE_LINKER_FLAGS_DEBUG "${CMAKE_MODULE_LINKER_FLAGS_DEBUG} ${PLATFORM_LINKFLAGS_DEBUG}" PARENT_SCOPE) - set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} ${PLATFORM_LINKFLAGS_RELEASE}" PARENT_SCOPE) - # jemalloc must be early in the list, to be before pthread (see T57998) if(WITH_MEM_JEMALLOC) target_link_libraries(${target} ${JEMALLOC_LIBRARIES}) diff --git a/intern/cycles/test/CMakeLists.txt b/intern/cycles/test/CMakeLists.txt index aa145af293a..1dc3d44dead 100644 --- a/intern/cycles/test/CMakeLists.txt +++ b/intern/cycles/test/CMakeLists.txt @@ -50,9 +50,6 @@ include_directories(${INC}) cycles_link_directories() -set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${PLATFORM_LINKFLAGS}") -set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} ${PLATFORM_LINKFLAGS_DEBUG}") - CYCLES_TEST(render_graph_finalize "${ALL_CYCLES_LIBRARIES};bf_intern_numaapi") cycles_target_link_libraries(cycles_render_graph_finalize_test) CYCLES_TEST(util_aligned_malloc "cycles_util") diff --git a/source/blender/blenlib/tests/performance/CMakeLists.txt b/source/blender/blenlib/tests/performance/CMakeLists.txt index 88fbed0a49b..5342dbe286c 100644 --- a/source/blender/blenlib/tests/performance/CMakeLists.txt +++ b/source/blender/blenlib/tests/performance/CMakeLists.txt @@ -26,8 +26,5 @@ set(INC setup_libdirs() include_directories(${INC}) -set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${PLATFORM_LINKFLAGS}") -set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} ${PLATFORM_LINKFLAGS_DEBUG}") - BLENDER_TEST_PERFORMANCE(BLI_ghash_performance "bf_blenlib") BLENDER_TEST_PERFORMANCE(BLI_task_performance "bf_blenlib") diff --git a/source/blender/blentranslation/msgfmt/CMakeLists.txt b/source/blender/blentranslation/msgfmt/CMakeLists.txt index 350473fa195..20f5053bd29 100644 --- a/source/blender/blentranslation/msgfmt/CMakeLists.txt +++ b/source/blender/blentranslation/msgfmt/CMakeLists.txt @@ -33,15 +33,12 @@ set(SRC setup_libdirs() add_cc_flags_custom_test(msgfmt) -if(APPLE) - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${PLATFORM_LINKFLAGS}") -endif() - if(WIN32) set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} /nodefaultlib:MSVCRT.lib") endif() add_executable(msgfmt ${SRC}) +setup_platform_linker_flags(msgfmt) target_link_libraries(msgfmt bf_blenlib) target_link_libraries(msgfmt bf_intern_guardedalloc) diff --git a/source/blender/datatoc/CMakeLists.txt b/source/blender/datatoc/CMakeLists.txt index b750edd044e..3253db2314d 100644 --- a/source/blender/datatoc/CMakeLists.txt +++ b/source/blender/datatoc/CMakeLists.txt @@ -34,7 +34,7 @@ if(NOT WITH_HEADLESS) set(SRC datatoc_icon.c ) - setup_platform_linker_flags() + setup_platform_linker_flags(datatoc) if(WIN32) include_directories( ../blenlib diff --git a/source/blender/makesdna/intern/CMakeLists.txt b/source/blender/makesdna/intern/CMakeLists.txt index 9808740e030..e902474deb1 100644 --- a/source/blender/makesdna/intern/CMakeLists.txt +++ b/source/blender/makesdna/intern/CMakeLists.txt @@ -56,9 +56,9 @@ endif() # SRC_DNA_INC is defined in the parent dir add_cc_flags_custom_test(makesdna) -setup_platform_linker_flags() add_executable(makesdna ${SRC} ${SRC_DNA_INC}) +setup_platform_linker_flags(makesdna) if(WIN32 AND NOT UNIX) target_link_libraries(makesdna ${PTHREADS_LIBRARIES}) diff --git a/source/blender/makesrna/intern/CMakeLists.txt b/source/blender/makesrna/intern/CMakeLists.txt index 976035b9886..386777db739 100644 --- a/source/blender/makesrna/intern/CMakeLists.txt +++ b/source/blender/makesrna/intern/CMakeLists.txt @@ -386,9 +386,9 @@ blender_include_dirs( ) add_cc_flags_custom_test(makesrna) -setup_platform_linker_flags() add_executable(makesrna ${SRC} ${SRC_RNA_INC} ${SRC_DNA_INC}) +setup_platform_linker_flags(makesrna) target_link_libraries(makesrna bf_dna) target_link_libraries(makesrna bf_dna_blenlib) diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt index 43f77556ba1..ae672aa3b5c 100644 --- a/source/creator/CMakeLists.txt +++ b/source/creator/CMakeLists.txt @@ -256,13 +256,7 @@ if(WITH_PYTHON_MODULE) ) if(APPLE) - set_target_properties( - blender - PROPERTIES - MACOSX_BUNDLE TRUE - LINK_FLAGS_RELEASE "${PLATFORM_LINKFLAGS}" - LINK_FLAGS_DEBUG "${PLATFORM_LINKFLAGS_DEBUG}" - ) + set_target_properties(blender PROPERTIES MACOSX_BUNDLE TRUE) endif() if(WIN32) @@ -1127,7 +1121,8 @@ add_dependencies(blender makesdna) target_link_libraries(blender ${LIB}) unset(LIB) -setup_liblinks(blender) +setup_platform_linker_flags(blender) +setup_platform_linker_libs(blender) if(APPLE) set_target_properties(blender PROPERTIES LINK_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/osx_locals.map) @@ -1162,9 +1157,9 @@ if(WIN32) # CMAKE_BUILD_TYPE. This can be simplified by target_link_options and the $<CONFIG> # generator expression in newer cmake (2.13+) but until that time this fill have suffice. if(CMAKE_BUILD_TYPE) - set_property(TARGET blender APPEND PROPERTY LINK_FLAGS " /PDBSTRIPPED:${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}/blender_public.pdb") + set_property(TARGET blender APPEND_STRING PROPERTY LINK_FLAGS " /PDBSTRIPPED:${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}/blender_public.pdb") else() - set_property(TARGET blender APPEND PROPERTY LINK_FLAGS " /PDBSTRIPPED:${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/blender_public.pdb") + set_property(TARGET blender APPEND_STRING PROPERTY LINK_FLAGS " /PDBSTRIPPED:${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/blender_public.pdb") endif() endif() endif() diff --git a/tests/gtests/runner/CMakeLists.txt b/tests/gtests/runner/CMakeLists.txt index 8b3390e7aec..c1487e45b26 100644 --- a/tests/gtests/runner/CMakeLists.txt +++ b/tests/gtests/runner/CMakeLists.txt @@ -51,7 +51,7 @@ BLENDER_SRC_GTEST_EX( EXTRA_LIBS "${TEST_LIBS}" SKIP_ADD_TEST ) -setup_liblinks(blender_test) +setup_platform_linker_libs(blender_test) if(WIN32) foreach(_lib ${_test_libs}) |