diff options
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 79 |
1 files changed, 64 insertions, 15 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 3e97e393f17..c998919622e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -222,6 +222,17 @@ if(UNIX AND NOT (APPLE OR HAIKU)) option(WITH_GHOST_WAYLAND "Enable building Blender against Wayland for windowing (under development)" OFF) mark_as_advanced(WITH_GHOST_WAYLAND) + + if (WITH_GHOST_WAYLAND) + option(WITH_GHOST_WAYLAND_LIBDECOR "Optionally build with LibDecor window decorations" OFF) + mark_as_advanced(WITH_GHOST_WAYLAND_LIBDECOR) + + option(WITH_GHOST_WAYLAND_DBUS "Optionally build with DBUS support (used for Cursor themes). May hang on startup systems where DBUS is not used." OFF) + mark_as_advanced(WITH_GHOST_WAYLAND_DBUS) + + option(WITH_GHOST_WAYLAND_DYNLOAD "Enable runtime dynamic WAYLAND libraries loading" OFF) + mark_as_advanced(WITH_GHOST_WAYLAND_DYNLOAD) + endif() endif() if(WITH_GHOST_X11) @@ -255,19 +266,11 @@ if(WITH_GHOST_X11) endif() if(UNIX AND NOT APPLE) - option(WITH_SYSTEM_GLEW "Use GLEW OpenGL wrapper library provided by the operating system" OFF) - option(WITH_SYSTEM_GLES "Use OpenGL ES library provided by the operating system" ON) option(WITH_SYSTEM_FREETYPE "Use the freetype library provided by the operating system" OFF) + option(WITH_SYSTEM_EIGEN3 "Use the systems Eigen3 library" OFF) else() - # not an option for other OS's - set(WITH_SYSTEM_GLEW OFF) - set(WITH_SYSTEM_GLES OFF) set(WITH_SYSTEM_FREETYPE OFF) -endif() - - -if(UNIX AND NOT APPLE) - option(WITH_SYSTEM_EIGEN3 "Use the systems Eigen3 library" OFF) + set(WITH_SYSTEM_EIGEN3 OFF) endif() @@ -300,6 +303,9 @@ option(WITH_USD "Enable Universal Scene Description (USD) Suppor # 3D format support # Disable opencollada when we don't have precompiled libs option(WITH_OPENCOLLADA "Enable OpenCollada Support (http://www.opencollada.org)" ON) +option(WITH_IO_WAVEFRONT_OBJ "Enable Wavefront-OBJ 3D file format support (*.obj)" ON) +option(WITH_IO_STL "Enable STL 3D file format support (*.stl)" ON) +option(WITH_IO_GPENCIL "Enable grease-pencil file format IO (*.svg, *.pdf)" ON) # Sound output option(WITH_SDL "Enable SDL for sound" ON) @@ -441,7 +447,7 @@ endif() if(NOT APPLE) option(WITH_CYCLES_DEVICE_HIP "Enable Cycles AMD HIP support" ON) 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") + set(CYCLES_HIP_BINARIES_ARCH gfx900 gfx906 gfx90c gfx902 gfx1010 gfx1011 gfx1012 gfx1030 gfx1031 gfx1032 gfx1034 gfx1035 CACHE STRING "AMD HIP architectures to build binaries for") mark_as_advanced(WITH_CYCLES_DEVICE_HIP) mark_as_advanced(CYCLES_HIP_BINARIES_ARCH) endif() @@ -451,6 +457,21 @@ if(APPLE) option(WITH_CYCLES_DEVICE_METAL "Enable Cycles Apple Metal compute support" ON) endif() +# oneAPI +if(NOT APPLE) + option(WITH_CYCLES_DEVICE_ONEAPI "Enable Cycles oneAPI compute support" OFF) + option(WITH_CYCLES_ONEAPI_BINARIES "Enable Ahead-Of-Time compilation for Cycles oneAPI device" OFF) + option(WITH_CYCLES_ONEAPI_SYCL_HOST_ENABLED "Enable use of SYCL host (CPU) device execution by oneAPI implementation. This option is for debugging purposes and impacts GPU execution." OFF) + + # https://www.intel.com/content/www/us/en/develop/documentation/oneapi-dpcpp-cpp-compiler-dev-guide-and-reference/top/compilation/ahead-of-time-compilation.html + SET (CYCLES_ONEAPI_SPIR64_GEN_DEVICES "dg2" CACHE STRING "oneAPI Intel GPU architectures to build binaries for") + SET (CYCLES_ONEAPI_SYCL_TARGETS spir64 spir64_gen CACHE STRING "oneAPI targets to build AOT binaries for") + + mark_as_advanced(WITH_CYCLES_ONEAPI_SYCL_HOST_ENABLED) + mark_as_advanced(CYCLES_ONEAPI_SPIR64_GEN_DEVICES) + mark_as_advanced(CYCLES_ONEAPI_SYCL_TARGETS) +endif() + # Draw Manager option(WITH_DRAW_DEBUG "Add extra debug capabilities to Draw Manager" OFF) mark_as_advanced(WITH_DRAW_DEBUG) @@ -515,20 +536,48 @@ endif() # OpenGL +# Experimental EGL option. +option(WITH_GL_EGL "Use the EGL OpenGL system library instead of the platform specific OpenGL system library (CGL, GLX or WGL)" OFF) +mark_as_advanced(WITH_GL_EGL) + +if(WITH_GHOST_WAYLAND) + # Wayland can only use EGL to create OpenGL contexts, not GLX. + set(WITH_GL_EGL ON) +endif() + +if(UNIX AND NOT APPLE) + if(WITH_GL_EGL) + # GLEW can only be built with either GLX or EGL support. Most binary distributions are + # built with GLX support and we have no automated way to detect this. So always build + # GLEW from source to be sure it has EGL support. + set(WITH_SYSTEM_GLEW OFF) + else() + option(WITH_SYSTEM_GLEW "Use GLEW OpenGL wrapper library provided by the operating system" OFF) + endif() + + option(WITH_SYSTEM_GLES "Use OpenGL ES library provided by the operating system" ON) +else() + # System GLEW and GLES not an option on other platforms. + set(WITH_SYSTEM_GLEW OFF) + set(WITH_SYSTEM_GLES OFF) +endif() + option(WITH_OPENGL "When off limits visibility of the opengl headers to just bf_gpu and gawain (temporary option for development purposes)" ON) option(WITH_GLEW_ES "Switches to experimental copy of GLEW that has support for OpenGL ES. (temporary option for development purposes)" OFF) -option(WITH_GL_EGL "Use the EGL OpenGL system library instead of the platform specific OpenGL system library (CGL, glX, or WGL)" OFF) option(WITH_GL_PROFILE_ES20 "Support using OpenGL ES 2.0. (through either EGL or the AGL/WGL/XGL 'es20' profile)" OFF) -option(WITH_GPU_SHADER_BUILDER "Shader builder is a developer option enabling linting on GLSL during compilation" OFF) +option(WITH_GPU_BUILDTIME_SHADER_BUILDER "Shader builder is a developer option enabling linting on GLSL during compilation" OFF) mark_as_advanced( WITH_OPENGL WITH_GLEW_ES - WITH_GL_EGL WITH_GL_PROFILE_ES20 - WITH_GPU_SHADER_BUILDER + WITH_GPU_BUILDTIME_SHADER_BUILDER ) +if(WITH_HEADLESS) + set(WITH_OPENGL OFF) +endif() + # Metal if (APPLE) |