diff options
Diffstat (limited to 'intern/cycles/cmake/external_libs.cmake')
-rw-r--r-- | intern/cycles/cmake/external_libs.cmake | 69 |
1 files changed, 39 insertions, 30 deletions
diff --git a/intern/cycles/cmake/external_libs.cmake b/intern/cycles/cmake/external_libs.cmake index d2f30fe764b..aaeb85f700d 100644 --- a/intern/cycles/cmake/external_libs.cmake +++ b/intern/cycles/cmake/external_libs.cmake @@ -91,6 +91,8 @@ if(CYCLES_STANDALONE_REPOSITORY) _set_default(USD_ROOT_DIR "${_cycles_lib_dir}/usd") _set_default(WEBP_ROOT_DIR "${_cycles_lib_dir}/webp") _set_default(ZLIB_ROOT "${_cycles_lib_dir}/zlib") + _set_default(LEVEL_ZERO_ROOT_DIR "${_cycles_lib_dir}/level-zero") + _set_default(SYCL_ROOT_DIR "${_cycles_lib_dir}/dpcpp") # Ignore system libraries set(CMAKE_IGNORE_PATH "${CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES};${CMAKE_SYSTEM_INCLUDE_PATH};${CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES};${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES}") @@ -503,26 +505,19 @@ if(CYCLES_STANDALONE_REPOSITORY) endif() ########################################################################### -# GLEW +# Epoxy ########################################################################### if(CYCLES_STANDALONE_REPOSITORY) if((WITH_CYCLES_STANDALONE AND WITH_CYCLES_STANDALONE_GUI) OR WITH_CYCLES_HYDRA_RENDER_DELEGATE) if(MSVC AND EXISTS ${_cycles_lib_dir}) - set(GLEW_LIBRARY "${_cycles_lib_dir}/opengl/lib/glew.lib") - set(GLEW_INCLUDE_DIR "${_cycles_lib_dir}/opengl/include") - add_definitions(-DGLEW_STATIC) + set(Epoxy_LIBRARIES "${_cycles_lib_dir}/epoxy/lib/epoxy.lib") + set(Epoxy_INCLUDE_DIRS "${_cycles_lib_dir}/epoxy/include") else() - find_package(GLEW REQUIRED) + find_package(Epoxy REQUIRED) endif() - - set(CYCLES_GLEW_LIBRARIES ${GLEW_LIBRARY}) endif() -else() - # Workaround for unconventional variable name use in Blender. - set(GLEW_INCLUDE_DIR "${GLEW_INCLUDE_PATH}") - set(CYCLES_GLEW_LIBRARIES bf_intern_glew_mx ${BLENDER_GLEW_LIBRARIES}) endif() ########################################################################### @@ -555,25 +550,6 @@ if(EXISTS ${_cycles_lib_dir}) endif() ########################################################################### -# OpenGL -########################################################################### - -if((WITH_CYCLES_STANDALONE AND WITH_CYCLES_STANDALONE_GUI) OR - WITH_CYCLES_HYDRA_RENDER_DELEGATE) - if(CYCLES_STANDALONE_REPOSITORY) - if(NOT DEFINED OpenGL_GL_PREFERENCE) - set(OpenGL_GL_PREFERENCE "LEGACY") - endif() - - find_package(OpenGL REQUIRED) - - set(CYCLES_GL_LIBRARIES ${OPENGL_gl_LIBRARY}) - else() - set(CYCLES_GL_LIBRARIES ${BLENDER_GL_LIBRARIES}) - endif() -endif() - -########################################################################### # SDL ########################################################################### @@ -647,3 +623,36 @@ if(WITH_CYCLES_DEVICE_METAL) message(STATUS "Found Metal: ${METAL_LIBRARY}") endif() endif() + +########################################################################### +# oneAPI +########################################################################### + +if(WITH_CYCLES_DEVICE_ONEAPI) + find_package(SYCL) + find_package(LevelZero) + + if(SYCL_FOUND AND LEVEL_ZERO_FOUND) + message(STATUS "Found oneAPI: ${SYCL_LIBRARY}") + message(STATUS "Found Level Zero: ${LEVEL_ZERO_LIBRARY}") + + if(WITH_CYCLES_ONEAPI_BINARIES) + if(NOT OCLOC_INSTALL_DIR) + get_filename_component(_sycl_compiler_root ${SYCL_COMPILER} DIRECTORY) + get_filename_component(OCLOC_INSTALL_DIR "${_sycl_compiler_root}/../lib/ocloc" ABSOLUTE) + unset(_sycl_compiler_root) + endif() + + if(NOT EXISTS ${OCLOC_INSTALL_DIR}) + message(STATUS "oneAPI ocloc not found in ${OCLOC_INSTALL_DIR}, disabling WITH_CYCLES_ONEAPI_BINARIES." + " A different ocloc directory can be set using OCLOC_INSTALL_DIR cmake variable.") + set(WITH_CYCLES_ONEAPI_BINARIES OFF) + endif() + endif() + else() + message(STATUS "oneAPI or Level Zero not found, disabling WITH_CYCLES_DEVICE_ONEAPI") + set(WITH_CYCLES_DEVICE_ONEAPI OFF) + endif() +endif() + +unset(_cycles_lib_dir) |