diff options
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 68 |
1 files changed, 42 insertions, 26 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index a9c29101123..5c5b5eb317e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -187,6 +187,13 @@ mark_as_advanced(CPACK_OVERRIDE_PACKAGENAME) mark_as_advanced(BUILDINFO_OVERRIDE_DATE) mark_as_advanced(BUILDINFO_OVERRIDE_TIME) +if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16") + option(WITH_UNITY_BUILD "Enable unity build for modules that support it to improve compile times" ON) + mark_as_advanced(WITH_UNITY_BUILD) +else() + set(WITH_UNITY_BUILD OFF) +endif() + option(WITH_IK_ITASC "Enable ITASC IK solver (only disable for development & for incompatible C++ compilers)" ON) option(WITH_IK_SOLVER "Enable Legacy IK solver (only disable for development)" ON) option(WITH_FFTW3 "Enable FFTW3 support (Used for smoke, ocean sim, and audio effects)" ON) @@ -426,30 +433,40 @@ mark_as_advanced(WITH_CYCLES_DEBUG_NAN) mark_as_advanced(WITH_CYCLES_NATIVE_ONLY) # NVIDIA CUDA & OptiX -option(WITH_CYCLES_DEVICE_CUDA "Enable Cycles NVIDIA CUDA compute support" ON) -option(WITH_CYCLES_DEVICE_OPTIX "Enable Cycles NVIDIA OptiX support" ON) -mark_as_advanced(WITH_CYCLES_DEVICE_CUDA) - -option(WITH_CYCLES_CUDA_BINARIES "Build Cycles NVIDIA CUDA binaries" OFF) -set(CYCLES_CUDA_BINARIES_ARCH sm_30 sm_35 sm_37 sm_50 sm_52 sm_60 sm_61 sm_70 sm_75 sm_86 compute_75 CACHE STRING "CUDA architectures to build binaries for") -option(WITH_CYCLES_CUBIN_COMPILER "Build cubins with nvrtc based compiler instead of nvcc" OFF) -option(WITH_CYCLES_CUDA_BUILD_SERIAL "Build cubins one after another (useful on machines with limited RAM)" OFF) -option(WITH_CUDA_DYNLOAD "Dynamically load CUDA libraries at runtime (for developers, makes cuda-gdb work)" ON) -mark_as_advanced(CYCLES_CUDA_BINARIES_ARCH) -mark_as_advanced(WITH_CYCLES_CUBIN_COMPILER) -mark_as_advanced(WITH_CYCLES_CUDA_BUILD_SERIAL) -mark_as_advanced(WITH_CUDA_DYNLOAD) +if(NOT APPLE) + option(WITH_CYCLES_DEVICE_CUDA "Enable Cycles NVIDIA CUDA compute support" ON) + option(WITH_CYCLES_DEVICE_OPTIX "Enable Cycles NVIDIA OptiX support" ON) + mark_as_advanced(WITH_CYCLES_DEVICE_CUDA) + + option(WITH_CYCLES_CUDA_BINARIES "Build Cycles NVIDIA CUDA binaries" OFF) + set(CYCLES_CUDA_BINARIES_ARCH sm_30 sm_35 sm_37 sm_50 sm_52 sm_60 sm_61 sm_70 sm_75 sm_86 compute_75 CACHE STRING "CUDA architectures to build binaries for") + option(WITH_CYCLES_CUBIN_COMPILER "Build cubins with nvrtc based compiler instead of nvcc" OFF) + option(WITH_CYCLES_CUDA_BUILD_SERIAL "Build cubins one after another (useful on machines with limited RAM)" OFF) + option(WITH_CUDA_DYNLOAD "Dynamically load CUDA libraries at runtime (for developers, makes cuda-gdb work)" ON) + mark_as_advanced(CYCLES_CUDA_BINARIES_ARCH) + mark_as_advanced(WITH_CYCLES_CUBIN_COMPILER) + mark_as_advanced(WITH_CYCLES_CUDA_BUILD_SERIAL) + mark_as_advanced(WITH_CUDA_DYNLOAD) +endif() # AMD HIP -if(WIN32) - option(WITH_CYCLES_DEVICE_HIP "Enable Cycles AMD HIP support" ON) -else() - option(WITH_CYCLES_DEVICE_HIP "Enable Cycles AMD HIP support" OFF) +if(NOT APPLE) + if(WIN32) + option(WITH_CYCLES_DEVICE_HIP "Enable Cycles AMD HIP support" ON) + else() + option(WITH_CYCLES_DEVICE_HIP "Enable Cycles AMD HIP support" OFF) + endif() + + option(WITH_CYCLES_HIP_BINARIES "Build Cycles AMD HIP binaries" OFF) + set(CYCLES_HIP_BINARIES_ARCH gfx1010 gfx1011 gfx1012 gfx1030 gfx1031 gfx1032 gfx1034 CACHE STRING "AMD HIP architectures to build binaries for") + mark_as_advanced(WITH_CYCLES_DEVICE_HIP) + mark_as_advanced(CYCLES_HIP_BINARIES_ARCH) +endif() + +# Apple Metal +if(APPLE) + option(WITH_CYCLES_DEVICE_METAL "Enable Cycles Apple Metal compute support" ON) endif() -option(WITH_CYCLES_HIP_BINARIES "Build Cycles AMD HIP binaries" OFF) -set(CYCLES_HIP_BINARIES_ARCH gfx1010 gfx1011 gfx1012 gfx1030 gfx1031 gfx1032 gfx1034 CACHE STRING "AMD HIP architectures to build binaries for") -mark_as_advanced(WITH_CYCLES_DEVICE_HIP) -mark_as_advanced(CYCLES_HIP_BINARIES_ARCH) # Draw Manager option(WITH_DRAW_DEBUG "Add extra debug capabilities to Draw Manager" OFF) @@ -494,11 +511,10 @@ if(WIN32) endif() # This should be turned off when Blender enter beta/rc/release -if("${BLENDER_VERSION_CYCLE}" STREQUAL "release" OR - "${BLENDER_VERSION_CYCLE}" STREQUAL "rc") - set(WITH_EXPERIMENTAL_FEATURES OFF) -else() +if("${BLENDER_VERSION_CYCLE}" STREQUAL "alpha") set(WITH_EXPERIMENTAL_FEATURES ON) +else() + set(WITH_EXPERIMENTAL_FEATURES OFF) endif() # Unit testsing @@ -840,7 +856,7 @@ if(WITH_AUDASPACE) endif() # Auto-enable CUDA dynload if toolkit is not found. -if(NOT WITH_CUDA_DYNLOAD) +if(WITH_CYCLES AND WITH_CYCLES_DEVICE_CUDA AND NOT WITH_CUDA_DYNLOAD) find_package(CUDA) if(NOT CUDA_FOUND) message(STATUS "CUDA toolkit not found, using dynamic runtime loading of libraries (WITH_CUDA_DYNLOAD) instead") |