rendering-in-cgi/Framework/external/embree/common/tasking/CMakeLists.txt
2024-04-23 10:14:24 +02:00

78 lines
3 KiB
CMake

## Copyright 2009-2021 Intel Corporation
## SPDX-License-Identifier: Apache-2.0
IF (TASKING_INTERNAL)
ADD_LIBRARY(tasking STATIC taskschedulerinternal.cpp)
ELSEIF (TASKING_TBB)
##############################################################
# Find TBB
##############################################################
if (NOT ${EMBREE_TBB_ROOT} STREQUAL "")
set(TBB_FIND_PACKAGE_OPTION "NO_DEFAULT_PATH")
set(TBB_ROOT ${EMBREE_TBB_ROOT})
list(APPEND CMAKE_PREFIX_PATH ${EMBREE_TBB_ROOT})
endif()
ADD_LIBRARY(tasking STATIC taskschedulertbb.cpp)
if (TARGET TBB::${EMBREE_TBB_COMPONENT})
message("-- TBB: reuse existing TBB::${TBB_COMPONENT} target")
TARGET_LINK_LIBRARIES(tasking PUBLIC TBB::${EMBREE_TBB_COMPONENT})
else()
# Try getting TBB via config first
find_package(TBB 2020 COMPONENTS ${EMBREE_TBB_COMPONENT} CONFIG ${TBB_FIND_PACKAGE_OPTION})
if (TBB_FOUND)
TARGET_LINK_LIBRARIES(tasking PUBLIC TBB::${EMBREE_TBB_COMPONENT})
message("-- Found TBB: ${TBB_VERSION} at ${TBB_DIR} via TBBConfig.cmake")
else()
# If not found try getting older TBB via module (FindTBB.cmake)
message("-- Using FindTBB.cmake ")
unset(TBB_DIR CACHE)
find_package(TBB 4.1 REQUIRED ${EMBREE_TBB_COMPONENT})
if (TBB_FOUND)
TARGET_LINK_LIBRARIES(tasking PUBLIC TBB)
TARGET_INCLUDE_DIRECTORIES(tasking PUBLIC $<BUILD_INTERFACE:${TBB_INCLUDE_DIRS}>)
IF (EMBREE_STATIC_LIB)
INSTALL(TARGETS TBB EXPORT TBB-targets)
INSTALL(EXPORT TBB-targets DESTINATION ${EMBREE_CMAKEEXPORT_DIR} COMPONENT devel)
ENDIF()
endif()
if (NOT TBB_FOUND)
message("-- Not found TBB")
endif()
endif()
endif()
IF(WIN32)
GET_TARGET_PROPERTY(DLL_PATH TBB::${EMBREE_TBB_COMPONENT} IMPORTED_LOCATION_RELEASE)
GET_TARGET_PROPERTY(DLL_PATH_DEBUG TBB::${EMBREE_TBB_COMPONENT} IMPORTED_LOCATION_DEBUG)
SET_TARGET_PROPERTIES(tasking PROPERTIES IMPORTED_LOCATION_RELEASE ${DLL_PATH})
SET_TARGET_PROPERTIES(tasking PROPERTIES IMPORTED_LOCATION_DEBUG ${DLL_PATH_DEBUG})
ENDIF()
###############################################################
## Create tasking target and link against TBB. Also set include directory
## information on tasking target to provide the "algorithms" object library
## with the TBB header files
###############################################################
#TARGET_LINK_LIBRARIES(tasking PUBLIC TBB)
#TARGET_INCLUDE_DIRECTORIES(tasking PUBLIC "${TBB_INCLUDE_DIRS}")
include(installTBB)
ELSEIF (TASKING_PPL)
ADD_LIBRARY(tasking STATIC taskschedulerppl.cpp)
TARGET_LINK_LIBRARIES(tasking PUBLIC ${PPL_LIBRARIES})
ENDIF()
SET_PROPERTY(TARGET tasking PROPERTY FOLDER common)
SET_PROPERTY(TARGET tasking APPEND PROPERTY COMPILE_FLAGS " ${FLAGS_LOWEST}")
IF (EMBREE_STATIC_LIB)
INSTALL(TARGETS tasking EXPORT tasking-targets ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT devel)
INSTALL(EXPORT tasking-targets DESTINATION "${EMBREE_CMAKEEXPORT_DIR}" COMPONENT devel)
ENDIF()