diff options
Diffstat (limited to 'build_files/cmake')
-rw-r--r-- | build_files/cmake/Modules/FindEmbree.cmake | 8 | ||||
-rw-r--r-- | build_files/cmake/Modules/GTestTesting.cmake | 3 | ||||
-rw-r--r-- | build_files/cmake/config/blender_full.cmake | 3 | ||||
-rw-r--r-- | build_files/cmake/config/blender_lite.cmake | 1 | ||||
-rw-r--r-- | build_files/cmake/config/blender_release.cmake | 3 | ||||
-rw-r--r-- | build_files/cmake/macros.cmake | 4 | ||||
-rw-r--r-- | build_files/cmake/platform/platform_apple.cmake | 9 | ||||
-rw-r--r-- | build_files/cmake/platform/platform_unix.cmake | 17 | ||||
-rw-r--r-- | build_files/cmake/platform/platform_win32.cmake | 7 |
9 files changed, 53 insertions, 2 deletions
diff --git a/build_files/cmake/Modules/FindEmbree.cmake b/build_files/cmake/Modules/FindEmbree.cmake index ccd0d6cd40a..2b3cd8e20c4 100644 --- a/build_files/cmake/Modules/FindEmbree.cmake +++ b/build_files/cmake/Modules/FindEmbree.cmake @@ -59,6 +59,14 @@ FOREACH(COMPONENT ${_embree_FIND_COMPONENTS}) PATH_SUFFIXES lib64 lib ) + IF (NOT EMBREE_${UPPERCOMPONENT}_LIBRARY) + IF (EMBREE_EMBREE3_LIBRARY) + # If we can't find all the static libraries, try to fall back to the shared library if found. + # This allows building with a shared embree library + SET(_embree_LIBRARIES ${EMBREE_EMBREE3_LIBRARY}) + BREAK() + ENDIF () + ENDIF () LIST(APPEND _embree_LIBRARIES "${EMBREE_${UPPERCOMPONENT}_LIBRARY}") ENDFOREACH() diff --git a/build_files/cmake/Modules/GTestTesting.cmake b/build_files/cmake/Modules/GTestTesting.cmake index a744f4202da..053d5196f41 100644 --- a/build_files/cmake/Modules/GTestTesting.cmake +++ b/build_files/cmake/Modules/GTestTesting.cmake @@ -70,6 +70,9 @@ macro(BLENDER_SRC_GTEST_EX) if(WITH_TBB) target_link_libraries(${TARGET_NAME} ${TBB_LIBRARIES}) endif() + if(WITH_GMP) + target_link_libraries(${TARGET_NAME} ${GMP_LIBRARIES}) + endif() get_property(GENERATOR_IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) if(GENERATOR_IS_MULTI_CONFIG) diff --git a/build_files/cmake/config/blender_full.cmake b/build_files/cmake/config/blender_full.cmake index 7d3284af158..0f27ff61e8b 100644 --- a/build_files/cmake/config/blender_full.cmake +++ b/build_files/cmake/config/blender_full.cmake @@ -15,11 +15,12 @@ set(WITH_CYCLES_EMBREE ON CACHE BOOL "" FORCE) set(WITH_CYCLES_OSL ON CACHE BOOL "" FORCE) set(WITH_DRACO ON CACHE BOOL "" FORCE) set(WITH_FFTW3 ON CACHE BOOL "" FORCE) -set(WITH_GMP OFF CACHE BOOL "" FORCE) +set(WITH_GMP ON CACHE BOOL "" FORCE) set(WITH_LIBMV ON CACHE BOOL "" FORCE) set(WITH_LIBMV_SCHUR_SPECIALIZATIONS ON CACHE BOOL "" FORCE) set(WITH_COMPOSITOR ON CACHE BOOL "" FORCE) set(WITH_FREESTYLE ON CACHE BOOL "" FORCE) +set(WITH_GMP ON CACHE BOOL "" FORCE) set(WITH_IK_SOLVER ON CACHE BOOL "" FORCE) set(WITH_IK_ITASC ON CACHE BOOL "" FORCE) set(WITH_IMAGE_CINEON ON CACHE BOOL "" FORCE) diff --git a/build_files/cmake/config/blender_lite.cmake b/build_files/cmake/config/blender_lite.cmake index 16c15961c59..7a664bbc008 100644 --- a/build_files/cmake/config/blender_lite.cmake +++ b/build_files/cmake/config/blender_lite.cmake @@ -25,6 +25,7 @@ set(WITH_LIBMV OFF CACHE BOOL "" FORCE) set(WITH_LLVM OFF CACHE BOOL "" FORCE) set(WITH_COMPOSITOR OFF CACHE BOOL "" FORCE) set(WITH_FREESTYLE OFF CACHE BOOL "" FORCE) +set(WITH_GMP OFF CACHE BOOL "" FORCE) set(WITH_IK_SOLVER OFF CACHE BOOL "" FORCE) set(WITH_IK_ITASC OFF CACHE BOOL "" FORCE) set(WITH_IMAGE_CINEON OFF CACHE BOOL "" FORCE) diff --git a/build_files/cmake/config/blender_release.cmake b/build_files/cmake/config/blender_release.cmake index ddd9aa1d766..93962d7ebb0 100644 --- a/build_files/cmake/config/blender_release.cmake +++ b/build_files/cmake/config/blender_release.cmake @@ -16,11 +16,12 @@ set(WITH_CYCLES_EMBREE ON CACHE BOOL "" FORCE) set(WITH_CYCLES_OSL ON CACHE BOOL "" FORCE) set(WITH_DRACO ON CACHE BOOL "" FORCE) set(WITH_FFTW3 ON CACHE BOOL "" FORCE) -set(WITH_GMP OFF CACHE BOOL "" FORCE) +set(WITH_GMP ON CACHE BOOL "" FORCE) set(WITH_LIBMV ON CACHE BOOL "" FORCE) set(WITH_LIBMV_SCHUR_SPECIALIZATIONS ON CACHE BOOL "" FORCE) set(WITH_COMPOSITOR ON CACHE BOOL "" FORCE) set(WITH_FREESTYLE ON CACHE BOOL "" FORCE) +set(WITH_GMP ON CACHE BOOL "" FORCE) set(WITH_IK_SOLVER ON CACHE BOOL "" FORCE) set(WITH_IK_ITASC ON CACHE BOOL "" FORCE) set(WITH_IMAGE_CINEON ON CACHE BOOL "" FORCE) diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake index 51cfadecc3e..dcab6d58870 100644 --- a/build_files/cmake/macros.cmake +++ b/build_files/cmake/macros.cmake @@ -496,6 +496,10 @@ function(SETUP_LIBDIRS) link_directories(${ALEMBIC_LIBPATH}) endif() + if(WITH_GMP) + link_directories(${GMP_LIBPATH}) + endif() + if(WITH_GHOST_WAYLAND) link_directories( ${wayland-client_LIBRARY_DIRS} diff --git a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platform/platform_apple.cmake index ace5de3330c..822110cb88f 100644 --- a/build_files/cmake/platform/platform_apple.cmake +++ b/build_files/cmake/platform/platform_apple.cmake @@ -407,6 +407,15 @@ if(WITH_TBB) find_package(TBB) endif() +if(WITH_GMP) + find_package(GMP) + + if(NOT GMP_FOUND) + set(WITH_GMP OFF) + message(STATUS "GMP not found") + endif() +endif() + # CMake FindOpenMP doesn't know about AppleClang before 3.12, so provide custom flags. if(WITH_OPENMP) if(CMAKE_C_COMPILER_ID MATCHES "AppleClang" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL "7.0") diff --git a/build_files/cmake/platform/platform_unix.cmake b/build_files/cmake/platform/platform_unix.cmake index 83909a0cf66..3a7875ca46c 100644 --- a/build_files/cmake/platform/platform_unix.cmake +++ b/build_files/cmake/platform/platform_unix.cmake @@ -427,6 +427,15 @@ if(WITH_TBB) find_package_wrapper(TBB) endif() +if(WITH_GMP) + find_package(GMP) + + if(NOT GMP_FOUND) + set(WITH_GMP OFF) + message(STATUS "GMP not found") + endif() +endif() + if(WITH_XR_OPENXR) find_package(XR_OpenXR_SDK) if(NOT XR_OPENXR_SDK_FOUND) @@ -590,6 +599,14 @@ endif() if(CMAKE_COMPILER_IS_GNUCC) set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing") + # `maybe-uninitialized` is unreliable in release builds, but fine in debug builds. + set(GCC_EXTRA_FLAGS_RELEASE "-Wno-maybe-uninitialized") + 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}") + unset(GCC_EXTRA_FLAGS_RELEASE) + if(WITH_LINKER_GOLD) execute_process( COMMAND ${CMAKE_C_COMPILER} -fuse-ld=gold -Wl,--version diff --git a/build_files/cmake/platform/platform_win32.cmake b/build_files/cmake/platform/platform_win32.cmake index b8af2dfc961..007f77a583f 100644 --- a/build_files/cmake/platform/platform_win32.cmake +++ b/build_files/cmake/platform/platform_win32.cmake @@ -136,6 +136,13 @@ add_definitions( # MSVC11 needs _ALLOW_KEYWORD_MACROS to build add_definitions(-D_ALLOW_KEYWORD_MACROS) +# RTTI is on by default even without this switch +# however having it in the CXX Flags makes it difficult +# to remove for individual files that want to disable it +# using the /GR- flag without generating a build warning +# that both /GR and /GR- are specified. +remove_cc_flag("/GR") + # We want to support Windows 7 level ABI add_definitions(-D_WIN32_WINNT=0x601) include(build_files/cmake/platform/platform_win32_bundle_crt.cmake) |