You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
2.2 KiB
53 lines
2.2 KiB
if(TARGET embree::embree)
|
|
return()
|
|
endif()
|
|
|
|
message(STATUS "Third-party: creating target 'embree::embree'")
|
|
|
|
include(FetchContent)
|
|
FetchContent_Declare(
|
|
embree
|
|
GIT_REPOSITORY https://github.com/embree/embree.git
|
|
GIT_TAG v3.13.3
|
|
GIT_SHALLOW TRUE
|
|
)
|
|
|
|
# Set Embree's default options
|
|
option(EMBREE_ISPC_SUPPORT "Build Embree with support for ISPC applications." OFF)
|
|
option(EMBREE_TUTORIALS "Enable to build Embree tutorials" OFF)
|
|
option(EMBREE_STATIC_LIB "Build Embree as a static library." ON)
|
|
set(EMBREE_TESTING_INTENSITY 0 CACHE STRING "Intensity of testing (0 = no testing, 1 = verify and tutorials, 2 = light testing, 3 = intensive testing.")
|
|
set(EMBREE_TASKING_SYSTEM "INTERNAL" CACHE STRING "Selects tasking system")
|
|
set(EMBREE_MAX_ISA "DEFAULT" CACHE STRING "Selects highest ISA to support.")
|
|
|
|
# Ready to include embree's atrocious CMake
|
|
FetchContent_MakeAvailable(embree)
|
|
|
|
# Disable warnings
|
|
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
|
# Embree's subgrid.h is known for causing array subscript out of bound
|
|
# warning. Embree dev claim the code is correct and it is a GCC bug
|
|
# for misfiring warnings. See https://github.com/embree/embree/issues/271
|
|
#
|
|
# The issue should be fixed for gcc 9.2.1 and later.
|
|
target_compile_options(embree PRIVATE "-Wno-array-bounds")
|
|
endif()
|
|
|
|
# Now we need to do some juggling to propagate the include directory properties
|
|
# along with the `embree` target
|
|
include(GNUInstallDirs)
|
|
target_include_directories(embree SYSTEM INTERFACE
|
|
"$<BUILD_INTERFACE:${embree_SOURCE_DIR}/include>"
|
|
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/>"
|
|
)
|
|
|
|
add_library(embree::embree ALIAS embree)
|
|
|
|
# Some order for IDEs
|
|
set_target_properties(embree PROPERTIES FOLDER "ThirdParty//Embree")
|
|
set_target_properties(lexers PROPERTIES FOLDER "ThirdParty//Embree")
|
|
set_target_properties(math PROPERTIES FOLDER "ThirdParty//Embree")
|
|
set_target_properties(simd PROPERTIES FOLDER "ThirdParty//Embree")
|
|
set_target_properties(sys PROPERTIES FOLDER "ThirdParty//Embree")
|
|
set_target_properties(tasking PROPERTIES FOLDER "ThirdParty//Embree")
|
|
set_target_properties(uninstall PROPERTIES FOLDER "ThirdParty//Embree")
|
|
|