Initial commit.
This commit is contained in:
commit
d3bb49b3f5
1073 changed files with 484757 additions and 0 deletions
75
Framework/external/embree/common/cmake/FindOpenImageIO.cmake
vendored
Normal file
75
Framework/external/embree/common/cmake/FindOpenImageIO.cmake
vendored
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
## Copyright 2009-2021 Intel Corporation
|
||||
## SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
IF (NOT OPENIMAGEIO_ROOT)
|
||||
SET(OPENIMAGEIO_ROOT $ENV{OPENIMAGEIO_ROOT})
|
||||
ENDIF()
|
||||
IF (NOT OPENIMAGEIO_ROOT)
|
||||
SET(OPENIMAGEIO_ROOT $ENV{OPENIMAGEIOROOT})
|
||||
ENDIF()
|
||||
|
||||
# detect changed OPENIMAGEIO_ROOT
|
||||
IF (NOT OPENIMAGEIO_ROOT STREQUAL OPENIMAGEIO_ROOT_LAST)
|
||||
UNSET(OPENIMAGEIO_INCLUDE_DIR CACHE)
|
||||
UNSET(OPENIMAGEIO_LIBRARY CACHE)
|
||||
ENDIF()
|
||||
|
||||
set(OPENIMAGEIO_LIB_SUFFIX "")
|
||||
IF (WIN32)
|
||||
IF (MSVC14)
|
||||
SET(OPENIMAGEIO_LIB_SUFFIX "vc2015")
|
||||
ELSEIF (MSVC12)
|
||||
SET(OPENIMAGEIO_LIB_SUFFIX "vc2013")
|
||||
ELSEIF (MSVC11)
|
||||
SET(OPENIMAGEIO_LIB_SUFFIX "vc2012")
|
||||
ELSEIF (MINGW)
|
||||
IF (X64)
|
||||
SET(OPENIMAGEIO_LIB_SUFFIX "mingw-w64")
|
||||
# Who's ever going to build for 32bit??
|
||||
ELSE ()
|
||||
SET(OPENIMAGEIO_LIB_SUFFIX "mingw-w64")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDIF ()
|
||||
|
||||
FIND_PATH(OPENIMAGEIO_ROOT include/OpenImageIO/imageio.h
|
||||
DOC "Root of OpenImageIO installation"
|
||||
HINTS ${OPENIMAGEIO_ROOT}
|
||||
PATHS
|
||||
"${PROJECT_SOURCE_DIR}/oiio"
|
||||
/usr/local
|
||||
/usr
|
||||
/
|
||||
)
|
||||
|
||||
FIND_PATH(OPENIMAGEIO_INCLUDE_DIR OpenImageIO/imageio.h PATHS ${OPENIMAGEIO_ROOT}/include NO_DEFAULT_PATH)
|
||||
SET(OPENIMAGEIO_HINTS
|
||||
HINTS
|
||||
${OPENIMAGEIO_ROOT}
|
||||
PATH_SUFFIXES
|
||||
/lib
|
||||
/lib64
|
||||
/lib-${OPENIMAGEIO_LIB_SUFFIX}
|
||||
)
|
||||
SET(OPENIMAGEIO_PATHS PATHS /usr/lib /usr/lib64 /lib /lib64)
|
||||
FIND_LIBRARY(OPENIMAGEIO_LIBRARY OpenImageIO ${OPENIMAGEIO_HINTS} ${OPENIMAGEIO_PATHS})
|
||||
|
||||
SET(OPENIMAGEIO_ROOT_LAST ${OPENIMAGEIO_ROOT} CACHE INTERNAL "Last value of OPENIMAGEIO_ROOT to detect changes")
|
||||
|
||||
SET(OPENIMAGEIO_ERROR_MESSAGE "OpenImageIO not found in your environment. You can 1) install
|
||||
via your OS package manager, or 2) install it
|
||||
somewhere on your machine and point OPENIMAGEIO_ROOT to it.")
|
||||
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenImageIO
|
||||
${OPENIMAGEIO_ERROR_MESSAGE}
|
||||
OPENIMAGEIO_INCLUDE_DIR OPENIMAGEIO_LIBRARY
|
||||
)
|
||||
|
||||
IF (OPENIMAGEIO_FOUND)
|
||||
SET(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO_INCLUDE_DIR})
|
||||
SET(OPENIMAGEIO_LIBRARIES ${OPENIMAGEIO_LIBRARY})
|
||||
ENDIF()
|
||||
|
||||
MARK_AS_ADVANCED(OPENIMAGEIO_INCLUDE_DIR)
|
||||
MARK_AS_ADVANCED(OPENIMAGEIO_LIBRARY)
|
||||
11
Framework/external/embree/common/cmake/FindPNG.cmake
vendored
Normal file
11
Framework/external/embree/common/cmake/FindPNG.cmake
vendored
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
## Copyright 2009-2021 Intel Corporation
|
||||
## SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
FIND_PATH( PNG_INCLUDE_DIR NAMES png.h )
|
||||
FIND_LIBRARY( PNG_LIBRARIES NAMES png )
|
||||
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(PNG DEFAULT_MSG PNG_INCLUDE_DIR PNG_LIBRARIES)
|
||||
|
||||
MARK_AS_ADVANCED(PNG_INCLUDE_DIR)
|
||||
MARK_AS_ADVANCED(PNG_LIBRARIES)
|
||||
482
Framework/external/embree/common/cmake/FindTBB.cmake
vendored
Normal file
482
Framework/external/embree/common/cmake/FindTBB.cmake
vendored
Normal file
|
|
@ -0,0 +1,482 @@
|
|||
## Copyright 2009-2021 Intel Corporation
|
||||
## SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
#===============================================================================
|
||||
# This script will attempt to find TBB and set up a TBB target.
|
||||
#
|
||||
# The user may specify a version and lists of required and optional components:
|
||||
#
|
||||
# find_package(TBB 2017.0 EXACT REQUIRED
|
||||
# tbb tbbmalloc
|
||||
# OPTIONAL_COMPONENTS tbbmalloc_proxy
|
||||
# QUIET)
|
||||
#
|
||||
# If this target exists already, the script will attempt to re-use it, but fail
|
||||
# if version or components do not match the user-specified requirements.
|
||||
#
|
||||
# If all the required component targets (e.g. TBB::tbb) exist, the script will
|
||||
# attempt to create a target TBB and link existing component targets to it.
|
||||
# It will fail if the component target version does not match the user-specified
|
||||
# requirements.
|
||||
#
|
||||
# The user may specify the following variables to help the search process:
|
||||
# - TBB_ROOT
|
||||
# - TBB_INCLUDE_DIR
|
||||
#
|
||||
# After the script has run successfully, there is a target TBB, as well as
|
||||
# component targets TBB::<COMPONENT>, e.g. TBB::tbbmalloc.
|
||||
#
|
||||
# The targets will attempt to link to release versions of TBB in release mode,
|
||||
# and debug versions in debug mode.
|
||||
#
|
||||
# In addition to the targets, the script defines:
|
||||
#
|
||||
# TBB_FOUND
|
||||
# TBB_INCLUDE_DIRS
|
||||
#
|
||||
#===============================================================================
|
||||
|
||||
# We use INTERFACE libraries, which are only supported in 3.x
|
||||
cmake_minimum_required(VERSION 3.1)
|
||||
|
||||
# These two are used to automatically find the root and include directories.
|
||||
set(_TBB_INCLUDE_SUBDIR "include")
|
||||
set(_TBB_HEADER "tbb/tbb.h")
|
||||
|
||||
# Initialize cache variable; but use existing non-cache variable as the default,
|
||||
# and fall back to the environment variable.
|
||||
if (NOT TBB_ROOT)
|
||||
set(TBB_ROOT "$ENV{TBB_ROOT}")
|
||||
endif()
|
||||
|
||||
set(TBB_ROOT "${TBB_ROOT}" CACHE PATH "The root path of TBB.")
|
||||
|
||||
#===============================================================================
|
||||
# Error messages that respect the user's wishes about peace and quiet.
|
||||
#===============================================================================
|
||||
|
||||
function(rk_tbb_status)
|
||||
if (NOT TBB_FIND_QUIETLY)
|
||||
message(STATUS "${ARGV}")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(rk_tbb_warning)
|
||||
if (NOT TBB_FIND_QUIETLY)
|
||||
message(WARNING "${ARGV}")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
macro(rk_tbb_error)
|
||||
if (TBB_FIND_REQUIRED)
|
||||
message(FATAL_ERROR "${ARGV}")
|
||||
else()
|
||||
rk_tbb_warning("${ARGV}")
|
||||
endif()
|
||||
return()
|
||||
endmacro()
|
||||
|
||||
#===============================================================================
|
||||
# Extract a list of required and optional components.
|
||||
#===============================================================================
|
||||
|
||||
macro(rk_tbb_list_components)
|
||||
# cmake provides the TBB_FIND_COMPONENTS and
|
||||
# TBB_FIND_REQUIRED_<C> variables based on the invocation
|
||||
# of find_package.
|
||||
if (TBB_FIND_COMPONENTS STREQUAL "")
|
||||
set(_REQUIRED_COMPONENTS "tbb")
|
||||
set(_OPTIONAL_COMPONENTS "tbbmalloc"
|
||||
"tbbmalloc_proxy"
|
||||
"tbbbind"
|
||||
"tbbpreview")
|
||||
else()
|
||||
set(_REQUIRED_COMPONENTS "")
|
||||
set(_OPTIONAL_COMPONENTS "")
|
||||
foreach (C IN LISTS TBB_FIND_COMPONENTS)
|
||||
if (${TBB_FIND_REQUIRED_${C}})
|
||||
list(APPEND _REQUIRED_COMPONENTS ${C})
|
||||
else()
|
||||
list(APPEND _OPTIONAL_COMPONENTS ${C})
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
rk_tbb_status("Looking for TBB components ${_REQUIRED_COMPONENTS}"
|
||||
" (${_OPTIONAL_COMPONENTS})")
|
||||
endmacro()
|
||||
|
||||
#===============================================================================
|
||||
# List components that are available, and check if any REQUIRED components
|
||||
# are missing.
|
||||
#===============================================================================
|
||||
|
||||
macro(rk_tbb_check_components)
|
||||
set(_TBB_MISSING_COMPONENTS "")
|
||||
set(_TBB_AVAILABLE_COMPONENTS "")
|
||||
|
||||
foreach (C IN LISTS _REQUIRED_COMPONENTS)
|
||||
if (TARGET TBB::${C})
|
||||
list(APPEND _TBB_AVAILABLE_COMPONENTS ${C})
|
||||
else()
|
||||
list(APPEND _TBB_MISSING_COMPONENTS ${C})
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
foreach (C IN LISTS _OPTIONAL_COMPONENTS)
|
||||
if (TARGET TBB::${C})
|
||||
list(APPEND _TBB_AVAILABLE_COMPONENTS ${C})
|
||||
endif()
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
||||
#===============================================================================
|
||||
# Check the version of the TBB root we found.
|
||||
#===============================================================================
|
||||
|
||||
macro(rk_tbb_check_version)
|
||||
# Extract the version we found in our root.
|
||||
if(EXISTS "${TBB_INCLUDE_DIR}/oneapi/tbb/version.h")
|
||||
set(_TBB_VERSION_HEADER "oneapi/tbb/version.h")
|
||||
elseif(EXISTS "${TBB_INCLUDE_DIR}/tbb/tbb_stddef.h")
|
||||
set(_TBB_VERSION_HEADER "tbb/tbb_stddef.h")
|
||||
elseif(EXISTS "${TBB_INCLUDE_DIR}/tbb/version.h")
|
||||
set(_TBB_VERSION_HEADER "tbb/version.h")
|
||||
else()
|
||||
rk_tbb_error("Missing TBB version information. Could not find"
|
||||
"tbb/tbb_stddef.h or tbb/version.h in ${TBB_INCLUDE_DIR}")
|
||||
endif()
|
||||
file(READ "${TBB_INCLUDE_DIR}/${_TBB_VERSION_HEADER}" VERSION_HEADER_CONTENT)
|
||||
string(REGEX MATCH "#define TBB_VERSION_MAJOR ([0-9]+)" DUMMY "${VERSION_HEADER_CONTENT}")
|
||||
set(TBB_VERSION_MAJOR ${CMAKE_MATCH_1})
|
||||
string(REGEX MATCH "#define TBB_VERSION_MINOR ([0-9]+)" DUMMY "${VERSION_HEADER_CONTENT}")
|
||||
set(TBB_VERSION_MINOR ${CMAKE_MATCH_1})
|
||||
set(TBB_VERSION "${TBB_VERSION_MAJOR}.${TBB_VERSION_MINOR}")
|
||||
set(TBB_VERSION_STRING "${TBB_VERSION}")
|
||||
|
||||
# If the user provided information about required versions, check them!
|
||||
if (TBB_FIND_VERSION)
|
||||
if (${TBB_FIND_VERSION_EXACT} AND NOT
|
||||
TBB_VERSION VERSION_EQUAL ${TBB_FIND_VERSION})
|
||||
rk_tbb_error("Requested exact TBB version ${TBB_FIND_VERSION},"
|
||||
" but found ${TBB_VERSION}")
|
||||
elseif(TBB_VERSION VERSION_LESS ${TBB_FIND_VERSION})
|
||||
rk_tbb_error("Requested minimum TBB version ${TBB_FIND_VERSION},"
|
||||
" but found ${TBB_VERSION}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
rk_tbb_status("Found TBB version ${TBB_VERSION} at ${TBB_ROOT}")
|
||||
endmacro()
|
||||
|
||||
#===============================================================================
|
||||
# Reuse existing targets.
|
||||
# NOTE: This must be a macro, as we rely on return() to exit this script.
|
||||
#===============================================================================
|
||||
|
||||
macro(rk_tbb_reuse_existing_target_components)
|
||||
rk_tbb_check_components()
|
||||
|
||||
if (_TBB_MISSING_COMPONENTS STREQUAL "")
|
||||
rk_tbb_status("Found existing TBB component targets: ${_TBB_AVAILABLE_COMPONENTS}")
|
||||
|
||||
# Get TBB_INCLUDE_DIR if not already set to check for the version of the
|
||||
# existing component targets (making the assumption that they all have
|
||||
# the same version)
|
||||
if (NOT TBB_INCLUDE_DIR)
|
||||
list(GET _TBB_AVAILABLE_COMPONENTS 0 first_target)
|
||||
get_target_property(TBB_INCLUDE_DIR TBB::${first_target} INTERFACE_INCLUDE_DIRECTORIES)
|
||||
foreach(TGT IN LISTS _TBB_AVAILABLE_COMPONENTS)
|
||||
get_target_property(_TGT_INCLUDE_DIR TBB::${TGT} INTERFACE_INCLUDE_DIRECTORIES)
|
||||
if (NOT _TGT_INCLUDE_DIR STREQUAL "${TBB_INCLUDE_DIR}")
|
||||
rk_tbb_error("Existing TBB component targets have inconsistent include directories.")
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
find_path(TBB_INCLUDE_DIR
|
||||
NAMES "${_TBB_HEADER}"
|
||||
PATHS "${TBB_INCLUDE_DIRS}")
|
||||
|
||||
# Extract TBB_ROOT from the include path so that rk_tbb_check_version
|
||||
# prints the correct tbb location
|
||||
string(REPLACE "/${_TBB_INCLUDE_SUBDIR}" "" TBB_ROOT "${TBB_INCLUDE_DIR}")
|
||||
rk_tbb_check_version()
|
||||
|
||||
# Add target TBB and link all available components
|
||||
if (NOT TARGET TBB)
|
||||
add_library(TBB INTERFACE)
|
||||
foreach(C IN LISTS _TBB_AVAILABLE_COMPONENTS)
|
||||
target_link_libraries(TBB INTERFACE TBB::${C})
|
||||
endforeach()
|
||||
endif()
|
||||
set(TBB_FOUND TRUE)
|
||||
set(TBB_INCLUDE_DIRS "${TBB_INCLUDE_DIR}")
|
||||
return()
|
||||
elseif ((TARGET TBB) OR (NOT _TBB_AVAILABLE_COMPONENTS STREQUAL ""))
|
||||
rk_tbb_error("Ignoring existing TBB targets because required components are missing: ${_TBB_MISSING_COMPONENTS}")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
|
||||
#===============================================================================
|
||||
# Find the root directory if a manual override is not specified.
|
||||
# Sets TBB_ROOT in the parent scope, but does not check for failure.
|
||||
#===============================================================================
|
||||
|
||||
function(rk_tbb_find_root)
|
||||
if (NOT TBB_ROOT OR TBB_ROOT STREQUAL "")
|
||||
set(TBB_HINTS "")
|
||||
set(TBB_PATHS "")
|
||||
|
||||
if (WIN32)
|
||||
# workaround for parentheses in variable name / CMP0053
|
||||
set(PROGRAMFILESx86 "PROGRAMFILES(x86)")
|
||||
set(PROGRAMFILES32 "$ENV{${PROGRAMFILESx86}}")
|
||||
if(NOT PROGRAMFILES32)
|
||||
set(PROGRAMFILES32 "$ENV{PROGRAMFILES}")
|
||||
endif()
|
||||
if(NOT PROGRAMFILES32)
|
||||
set(PROGRAMFILES32 "C:/Program Files (x86)")
|
||||
endif()
|
||||
set(TBB_PATHS
|
||||
"${PROJECT_SOURCE_DIR}/../tbb"
|
||||
"${PROGRAMFILES32}/IntelSWTools/compilers_and_libraries/windows/tbb"
|
||||
"${PROGRAMFILES32}/Intel/Composer XE/tbb"
|
||||
"${PROGRAMFILES32}/Intel/compilers_and_libraries/windows/tbb")
|
||||
else()
|
||||
set(TBB_HINTS "/usr/local")
|
||||
set(TBB_PATHS
|
||||
"${PROJECT_SOURCE_DIR}/tbb"
|
||||
"/opt/intel/composerxe/tbb"
|
||||
"/opt/intel/compilers_and_libraries/tbb"
|
||||
"/opt/intel/compilers_and_libraries/linux/tbb"
|
||||
"/opt/intel/tbb")
|
||||
endif()
|
||||
|
||||
set(TBB_ROOT "TBB_ROOT-NOTFOUND")
|
||||
find_path(TBB_ROOT
|
||||
NAMES "${_TBB_INCLUDE_SUBDIR}/${_TBB_HEADER}"
|
||||
HINTS ${TBB_HINTS}
|
||||
PATHS ${TBB_PATHS}
|
||||
NO_PACKAGE_ROOT_PATH)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
#===============================================================================
|
||||
# Find the include directory if a manual override is not specified.
|
||||
# Assumes TBB_ROOT to be set.
|
||||
#===============================================================================
|
||||
|
||||
function(rk_tbb_find_include_directory)
|
||||
find_path(TBB_INCLUDE_DIR
|
||||
NAMES "${_TBB_HEADER}"
|
||||
HINTS "${TBB_ROOT}/${_TBB_INCLUDE_SUBDIR}"
|
||||
NO_PACKAGE_ROOT_PATH)
|
||||
endfunction()
|
||||
|
||||
#===============================================================================
|
||||
# Find a specific library and create a target for it.
|
||||
#===============================================================================
|
||||
|
||||
function(rk_tbb_find_library COMPONENT_NAME BUILD_CONFIG)
|
||||
set(LIB_VAR "${COMPONENT_NAME}_LIBRARY_${BUILD_CONFIG}")
|
||||
set(BIN_DIR_VAR "${COMPONENT_NAME}_BIN_DIR_${BUILD_CONFIG}")
|
||||
set(DLL_VAR "${COMPONENT_NAME}_DLL_${BUILD_CONFIG}")
|
||||
if (BUILD_CONFIG STREQUAL "DEBUG")
|
||||
set(LIB_NAME "${COMPONENT_NAME}_debug")
|
||||
else()
|
||||
set(LIB_NAME "${COMPONENT_NAME}")
|
||||
endif()
|
||||
|
||||
unset(LIB_PATHS)
|
||||
|
||||
if (WIN32)
|
||||
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
set(TBB_ARCH intel64)
|
||||
else()
|
||||
set(TBB_ARCH ia32)
|
||||
endif()
|
||||
|
||||
if(MSVC10)
|
||||
set(TBB_VCVER vc10)
|
||||
elseif(MSVC11)
|
||||
set(TBB_VCVER vc11)
|
||||
elseif(MSVC12)
|
||||
set(TBB_VCVER vc12)
|
||||
else()
|
||||
set(TBB_VCVER vc14)
|
||||
endif()
|
||||
|
||||
set(LIB_PATHS
|
||||
${TBB_ROOT}/lib/${TBB_ARCH}/${TBB_VCVER}
|
||||
${TBB_ROOT}/lib
|
||||
)
|
||||
|
||||
# On window, also search the DLL so that the client may install it.
|
||||
set(DLL_NAME "${LIB_NAME}.dll")
|
||||
|
||||
# lib name with version suffix to handle oneTBB tbb12.dll
|
||||
set(LIB_NAME_VERSION "")
|
||||
if (${COMPONENT_NAME} STREQUAL "tbb")
|
||||
if (BUILD_CONFIG STREQUAL "DEBUG")
|
||||
set(LIB_NAME_VERSION "tbb12_debug")
|
||||
else()
|
||||
set(LIB_NAME_VERSION "tbb12")
|
||||
endif()
|
||||
endif()
|
||||
set(DLL_NAME_VERSION "${LIB_NAME_VERSION}.dll")
|
||||
|
||||
find_file(BIN_FILE
|
||||
NAMES ${DLL_NAME} ${DLL_NAME_VERSION}
|
||||
PATHS
|
||||
"${TBB_ROOT}/bin/${TBB_ARCH}/${TBB_VCVER}"
|
||||
"${TBB_ROOT}/bin"
|
||||
"${TBB_ROOT}/redist/${TBB_ARCH}/${TBB_VCVER}"
|
||||
"${TBB_ROOT}/../redist/${TBB_ARCH}/tbb/${TBB_VCVER}"
|
||||
"${TBB_ROOT}/../redist/${TBB_ARCH}_win/tbb/${TBB_VCVER}"
|
||||
NO_DEFAULT_PATH)
|
||||
get_filename_component(${BIN_DIR_VAR} ${BIN_FILE} DIRECTORY)
|
||||
set(${DLL_VAR} "${BIN_FILE}" CACHE PATH "${COMPONENT_NAME} ${BUILD_CONFIG} dll path")
|
||||
elseif(APPLE)
|
||||
set(LIB_PATHS ${TBB_ROOT}/lib)
|
||||
else()
|
||||
file(GLOB LIB_PATHS PATHS ${TBB_ROOT}/lib/intel64/gcc*)
|
||||
list(REVERSE LIB_PATHS)
|
||||
list(APPEND LIB_PATHS
|
||||
${TBB_ROOT}/lib
|
||||
${TBB_ROOT}/lib/x86_64-linux-gnu
|
||||
${TBB_ROOT}/lib64
|
||||
${TBB_ROOT}/libx86_64-linux-gnu)
|
||||
endif()
|
||||
|
||||
# We prefer finding the versioned file on Unix so that the library path
|
||||
# variable will not point to a symlink. This makes installing TBB as a
|
||||
# dependency easier.
|
||||
if (UNIX)
|
||||
set(LIB_NAME lib${LIB_NAME}.so.2 ${LIB_NAME})
|
||||
endif()
|
||||
|
||||
find_library(${LIB_VAR}
|
||||
NAMES ${LIB_NAME}
|
||||
PATHS ${LIB_PATHS}
|
||||
NO_DEFAULT_PATH)
|
||||
|
||||
# Hide this variable if we found something, otherwise display it for
|
||||
# easy override.
|
||||
if(${LIB_VAR})
|
||||
mark_as_advanced(${LIB_VAR})
|
||||
endif()
|
||||
if(${BIN_DIR_VAR})
|
||||
mark_as_advanced(${BIN_DIR_VAR})
|
||||
endif()
|
||||
if(${DLL_VAR})
|
||||
mark_as_advanced(${DLL_VAR})
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
#===============================================================================
|
||||
# Find the given component.
|
||||
# This macro attempts to find both release and debug versions, and falls back
|
||||
# appropriately if only one can be found.
|
||||
# On success, it creates a target ${TARGET}::${COMPONENT_NAME} and links
|
||||
# it to the overall ${TARGET}.
|
||||
#
|
||||
# For more information on the variables set here, see
|
||||
# https://cmake.org/cmake/help/v3.17/manual/cmake-developer.7.html#a-sample-find-module
|
||||
#===============================================================================
|
||||
|
||||
function(rk_tbb_find_and_link_component COMPONENT_NAME)
|
||||
set(COMPONENT_TARGET "TBB::${COMPONENT_NAME}")
|
||||
|
||||
rk_tbb_find_library("${COMPONENT_NAME}" RELEASE)
|
||||
rk_tbb_find_library("${COMPONENT_NAME}" DEBUG)
|
||||
|
||||
if (${COMPONENT_NAME}_LIBRARY_RELEASE OR ${COMPONENT_NAME}_LIBRARY_DEBUG)
|
||||
# Note: We *must* use SHARED here rather than UNKNOWN as our
|
||||
# IMPORTED_NO_SONAME trick a few lines down does not work with
|
||||
# UNKNOWN.
|
||||
add_library(${COMPONENT_TARGET} SHARED IMPORTED)
|
||||
|
||||
if (${COMPONENT_NAME}_LIBRARY_RELEASE)
|
||||
set_property(TARGET ${COMPONENT_TARGET} APPEND PROPERTY
|
||||
IMPORTED_CONFIGURATIONS RELEASE)
|
||||
if(WIN32)
|
||||
set_target_properties(${COMPONENT_TARGET} PROPERTIES
|
||||
IMPORTED_LOCATION_RELEASE "${${COMPONENT_NAME}_DLL_RELEASE}")
|
||||
set_target_properties(${COMPONENT_TARGET} PROPERTIES
|
||||
IMPORTED_IMPLIB_RELEASE "${${COMPONENT_NAME}_LIBRARY_RELEASE}")
|
||||
else()
|
||||
set_target_properties(${COMPONENT_TARGET} PROPERTIES
|
||||
IMPORTED_LOCATION_RELEASE "${${COMPONENT_NAME}_LIBRARY_RELEASE}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (${COMPONENT_NAME}_LIBRARY_DEBUG)
|
||||
set_property(TARGET ${COMPONENT_TARGET} APPEND PROPERTY
|
||||
IMPORTED_CONFIGURATIONS DEBUG)
|
||||
if(WIN32)
|
||||
set_target_properties(${COMPONENT_TARGET} PROPERTIES
|
||||
IMPORTED_LOCATION_DEBUG "${${COMPONENT_NAME}_DLL_DEBUG}")
|
||||
set_target_properties(${COMPONENT_TARGET} PROPERTIES
|
||||
IMPORTED_IMPLIB_DEBUG "${${COMPONENT_NAME}_LIBRARY_DEBUG}")
|
||||
else()
|
||||
set_target_properties(${COMPONENT_TARGET} PROPERTIES
|
||||
IMPORTED_LOCATION_DEBUG "${${COMPONENT_NAME}_LIBRARY_DEBUG}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set_target_properties(${COMPONENT_TARGET} PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${TBB_INCLUDE_DIR}"
|
||||
INTERFACE_COMPILE_DEFINITIONS "__TBB_NO_IMPLICIT_LINKAGE=1"
|
||||
)
|
||||
|
||||
|
||||
if(NOT WIN32)
|
||||
# Note: IMPORTED_NO_SONAME must be set or cmake will attempt
|
||||
# to link to the full path of libtbb.so. Instead, we
|
||||
# rely on the linker to find libtbb.so.2.
|
||||
set_target_properties(${COMPONENT_TARGET} PROPERTIES
|
||||
IMPORTED_NO_SONAME TRUE
|
||||
)
|
||||
endif()
|
||||
|
||||
target_link_libraries(TBB INTERFACE ${COMPONENT_TARGET})
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
#===============================================================================
|
||||
|
||||
# Note: The order of these is important.
|
||||
# Some of these macros create variables that are used in later calls.
|
||||
rk_tbb_list_components()
|
||||
rk_tbb_reuse_existing_target_components()
|
||||
|
||||
rk_tbb_find_root()
|
||||
if (NOT EXISTS "${TBB_ROOT}")
|
||||
rk_tbb_error("Unable to find root directory ${TBB_ROOT}")
|
||||
endif()
|
||||
mark_as_advanced(TBB_ROOT) # Hide, we found something.
|
||||
|
||||
rk_tbb_find_include_directory()
|
||||
if (NOT EXISTS "${TBB_INCLUDE_DIR}")
|
||||
rk_tbb_error("Unable to find include directory ${TBB_INCLUDE_DIR}")
|
||||
endif()
|
||||
mark_as_advanced(TBB_INCLUDE_DIR) # Hide, we found something.
|
||||
|
||||
rk_tbb_check_version()
|
||||
|
||||
add_library(TBB INTERFACE)
|
||||
|
||||
foreach(C IN LISTS _REQUIRED_COMPONENTS _OPTIONAL_COMPONENTS)
|
||||
rk_tbb_find_and_link_component(${C})
|
||||
endforeach()
|
||||
|
||||
rk_tbb_check_components()
|
||||
if (_TBB_MISSING_COMPONENTS)
|
||||
rk_tbb_error("Cannot find required components: "
|
||||
"${_TBB_MISSING_COMPONENTS}")
|
||||
endif()
|
||||
|
||||
set(TBB_FOUND TRUE)
|
||||
set(TBB_INCLUDE_DIRS "${TBB_INCLUDE_DIR}")
|
||||
13
Framework/external/embree/common/cmake/check_arm_neon.cpp
vendored
Normal file
13
Framework/external/embree/common/cmake/check_arm_neon.cpp
vendored
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
// Copyright 2009-2020 Intel Corporation
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
#if !defined(__ARM_NEON)
|
||||
#error "No ARM Neon support"
|
||||
#endif
|
||||
|
||||
#include <arm_neon.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
return vaddvq_s32(vdupq_n_s32(1));
|
||||
}
|
||||
20
Framework/external/embree/common/cmake/check_globals.cmake
vendored
Normal file
20
Framework/external/embree/common/cmake/check_globals.cmake
vendored
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
## Copyright 2009-2021 Intel Corporation
|
||||
## SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
IF (WIN32 OR APPLE)
|
||||
return()
|
||||
ENDIF()
|
||||
|
||||
execute_process(COMMAND objdump -C -t ${file} OUTPUT_VARIABLE output)
|
||||
string(REPLACE "\n" ";" output ${output})
|
||||
|
||||
foreach (line ${output})
|
||||
if ("${line}" MATCHES "O .bss")
|
||||
if (NOT "${line}" MATCHES "std::__ioinit" AND # this is caused by iostream initialization and is likely also ok
|
||||
NOT "${line}" MATCHES "\\(\\)::" AND # this matches a static inside a function which is fine
|
||||
NOT "${line}" MATCHES "function_local_static_" AND # static variable inside a function (explicitly named)
|
||||
NOT "${line}" MATCHES "__\\$U") # ICC generated locks for static variable inside a function
|
||||
message(WARNING "\nProblematic global variable in non-SSE code:\n" ${line})
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
36
Framework/external/embree/common/cmake/check_isa.cpp
vendored
Normal file
36
Framework/external/embree/common/cmake/check_isa.cpp
vendored
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
// ======================================================================== //
|
||||
// Copyright 2017 Kitware, Inc. //
|
||||
// //
|
||||
// Licensed under the Apache License, Version 2.0 (the "License"); //
|
||||
// you may not use this file except in compliance with the License. //
|
||||
// You may obtain a copy of the License at //
|
||||
// //
|
||||
// http://www.apache.org/licenses/LICENSE-2.0 //
|
||||
// //
|
||||
// Unless required by applicable law or agreed to in writing, software //
|
||||
// distributed under the License is distributed on an "AS IS" BASIS, //
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. //
|
||||
// See the License for the specific language governing permissions and //
|
||||
// limitations under the License. //
|
||||
// ======================================================================== //
|
||||
|
||||
#if \
|
||||
defined(__AVX512F__) && defined(__AVX512CD__) && \
|
||||
defined(__AVX512DQ__) && defined(__AVX512BW__) && defined(__AVX512VL__)
|
||||
char const *info_isa = "ISA" ":" "AVX512";
|
||||
#elif defined(__AVX2__)
|
||||
char const *info_isa = "ISA" ":" "AVX2";
|
||||
#elif defined(__AVX__)
|
||||
char const *info_isa = "ISA" ":" "AVX";
|
||||
#elif defined(__SSE4_2__)
|
||||
char const *info_isa = "ISA" ":" "SSE42";
|
||||
#else // defined(__SSE2__)
|
||||
char const *info_isa = "ISA" ":" "SSE2";
|
||||
#endif
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
int require = 0;
|
||||
require += info_isa[argc];
|
||||
return require;
|
||||
}
|
||||
43
Framework/external/embree/common/cmake/check_isa_default.cmake
vendored
Normal file
43
Framework/external/embree/common/cmake/check_isa_default.cmake
vendored
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
## ======================================================================== ##
|
||||
## Copyright 2017 Kitware, Inc. ##
|
||||
## ##
|
||||
## Licensed under the Apache License, Version 2.0 (the "License"); ##
|
||||
## you may not use this file except in compliance with the License. ##
|
||||
## You may obtain a copy of the License at ##
|
||||
## ##
|
||||
## http://www.apache.org/licenses/LICENSE-2.0 ##
|
||||
## ##
|
||||
## Unless required by applicable law or agreed to in writing, software ##
|
||||
## distributed under the License is distributed on an "AS IS" BASIS, ##
|
||||
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ##
|
||||
## See the License for the specific language governing permissions and ##
|
||||
## limitations under the License. ##
|
||||
## ======================================================================== ##
|
||||
|
||||
SET(CHECK_ISA_DIR "${CMAKE_CURRENT_LIST_DIR}")
|
||||
FUNCTION(CHECK_ISA_DEFAULT OUTVAR)
|
||||
|
||||
TRY_COMPILE(COMPILER_SUPPORTS_ARM_NEON "${CMAKE_BINARY_DIR}" "${PROJECT_SOURCE_DIR}/common/cmake/check_arm_neon.cpp")
|
||||
IF (COMPILER_SUPPORTS_ARM_NEON)
|
||||
SET(ISA_DEFAULT "NEON")
|
||||
SET(${OUTVAR} ${ISA_DEFAULT} PARENT_SCOPE)
|
||||
RETURN()
|
||||
ENDIF()
|
||||
|
||||
SET(ISA_DEFAULT_BIN "${CMAKE_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/check_isa_default.bin")
|
||||
SET(SRC "${CHECK_ISA_DIR}/check_isa.cpp")
|
||||
TRY_COMPILE(ISA_DEFAULT_COMPILE
|
||||
"${CMAKE_BINARY_DIR}"
|
||||
"${SRC}"
|
||||
COPY_FILE "${ISA_DEFAULT_BIN}"
|
||||
)
|
||||
IF(NOT ISA_DEFAULT_COMPILE)
|
||||
SET(ISA_DEFAULT "SSE2")
|
||||
SET(${OUTVAR} ${ISA_DEFAULT} PARENT_SCOPE)
|
||||
RETURN()
|
||||
ENDIF()
|
||||
|
||||
FILE(STRINGS ${ISA_DEFAULT_BIN} ISA_DEFAULT REGEX "^ISA:")
|
||||
STRING(REPLACE "ISA:" "" ISA_DEFAULT "${ISA_DEFAULT}")
|
||||
SET(${OUTVAR} ${ISA_DEFAULT} PARENT_SCOPE)
|
||||
ENDFUNCTION()
|
||||
24
Framework/external/embree/common/cmake/check_stack_frame_size.cmake
vendored
Normal file
24
Framework/external/embree/common/cmake/check_stack_frame_size.cmake
vendored
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
## Copyright 2009-2021 Intel Corporation
|
||||
## SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
IF (WIN32 OR APPLE)
|
||||
return()
|
||||
ENDIF()
|
||||
|
||||
execute_process(COMMAND objdump -d ${file} OUTPUT_VARIABLE output)
|
||||
string(REPLACE "\n" ";" output ${output})
|
||||
|
||||
SET(lastfunc "")
|
||||
foreach (line ${output})
|
||||
if ("${line}" MATCHES "^.*<([^>]*)>:$")
|
||||
SET(lastfunc ${CMAKE_MATCH_1})
|
||||
endif()
|
||||
if ("${line}" MATCHES ".*sub[ ]+[$]([^,]*),%rsp.*")
|
||||
set(bytes ${CMAKE_MATCH_1})
|
||||
if ("${bytes}" GREATER "4096")
|
||||
if ("${lastfunc}" MATCHES ".*recurse.*")
|
||||
message(WARNING "Large stack space requirement: ${lastfunc} size: ${bytes}")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
146
Framework/external/embree/common/cmake/clang.cmake
vendored
Normal file
146
Framework/external/embree/common/cmake/clang.cmake
vendored
Normal file
|
|
@ -0,0 +1,146 @@
|
|||
## Copyright 2009-2021 Intel Corporation
|
||||
## SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
MACRO(_SET_IF_EMPTY VAR VALUE)
|
||||
IF(NOT ${VAR})
|
||||
SET(${VAR} "${VALUE}")
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
||||
IF (EMBREE_ARM)
|
||||
SET(FLAGS_SSE2 "-D__SSE__ -D__SSE2__")
|
||||
SET(FLAGS_SSE42 "-D__SSE4_2__ -D__SSE4_1__")
|
||||
SET(FLAGS_AVX "-D__AVX__ -D__SSE4_2__ -D__SSE4_1__ -D__BMI__ -D__BMI2__ -D__LZCNT__")
|
||||
SET(FLAGS_AVX2 "-D__AVX2__ -D__AVX__ -D__SSE4_2__ -D__SSE4_1__ -D__BMI__ -D__BMI2__ -D__LZCNT__")
|
||||
ELSE ()
|
||||
# for `thread` keyword
|
||||
_SET_IF_EMPTY(FLAGS_SSE2 "-msse -msse2 -mno-sse4.2")
|
||||
_SET_IF_EMPTY(FLAGS_SSE42 "-msse4.2")
|
||||
_SET_IF_EMPTY(FLAGS_AVX "-mavx")
|
||||
_SET_IF_EMPTY(FLAGS_AVX2 "-mf16c -mavx2 -mfma -mlzcnt -mbmi -mbmi2")
|
||||
_SET_IF_EMPTY(FLAGS_AVX512 "-march=skx")
|
||||
ENDIF ()
|
||||
|
||||
IF (WIN32)
|
||||
|
||||
SET(COMMON_CXX_FLAGS "")
|
||||
SET(COMMON_CXX_FLAGS "${COMMON_CXX_FLAGS} /EHsc") # catch C++ exceptions only and extern "C" functions never throw a C++ exception
|
||||
# SET(COMMON_CXX_FLAGS "${COMMON_CXX_FLAGS} /MP") # compile source files in parallel
|
||||
SET(COMMON_CXX_FLAGS "${COMMON_CXX_FLAGS} /GR") # enable runtime type information (on by default)
|
||||
SET(COMMON_CXX_FLAGS "${COMMON_CXX_FLAGS} -Xclang -fcxx-exceptions") # enable C++ exceptions in Clang
|
||||
SET(COMMON_CXX_FLAGS "${COMMON_CXX_FLAGS} /w") # disable all warnings
|
||||
SET(COMMON_CXX_FLAGS "${COMMON_CXX_FLAGS} /Gy") # package individual functions
|
||||
IF (EMBREE_STACK_PROTECTOR)
|
||||
SET(COMMON_CXX_FLAGS "${COMMON_CXX_FLAGS} /GS") # protects against return address overrides
|
||||
ELSE()
|
||||
SET(COMMON_CXX_FLAGS "${COMMON_CXX_FLAGS} /GS-") # do not protect against return address overrides
|
||||
ENDIF()
|
||||
MACRO(DISABLE_STACK_PROTECTOR_FOR_FILE file)
|
||||
IF (EMBREE_STACK_PROTECTOR)
|
||||
SET_SOURCE_FILES_PROPERTIES(${file} PROPERTIES COMPILE_FLAGS "/GS-")
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${COMMON_CXX_FLAGS}")
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /DDEBUG") # enables assertions
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /DTBB_USE_DEBUG") # configures TBB in debug mode
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /Ox") # enable full optimizations
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /Oi") # inline intrinsic functions
|
||||
SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} /DEBUG") # generate debug information
|
||||
SET(CMAKE_SHARED_LINKER_FLAGS_DEBUG "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} /DEBUG") # generate debug information
|
||||
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${COMMON_CXX_FLAGS}")
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Ox") # enable full optimizations
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Oi") # inline intrinsic functions
|
||||
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${COMMON_CXX_FLAGS}")
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /Ox") # enable full optimizations
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /Oi") # inline intrinsic functions
|
||||
SET(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO} /DEBUG") # generate debug information
|
||||
SET(CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO} /DEBUG") # generate debug information
|
||||
|
||||
SET(SECURE_LINKER_FLAGS "")
|
||||
SET(SECURE_LINKER_FLAGS "${SECURE_LINKER_FLAGS} /NXCompat") # compatible with data execution prevention (on by default)
|
||||
SET(SECURE_LINKER_FLAGS "${SECURE_LINKER_FLAGS} /DynamicBase") # random rebase of executable at load time
|
||||
IF (CMAKE_SIZEOF_VOID_P EQUAL 4)
|
||||
SET(SECURE_LINKER_FLAGS "${SECURE_LINKER_FLAGS} /SafeSEH") # invoke known exception handlers (Win32 only, x64 exception handlers are safe by design)
|
||||
ENDIF()
|
||||
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${SECURE_LINKER_FLAGS}")
|
||||
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${SECURE_LINKER_FLAGS}")
|
||||
|
||||
INCLUDE(msvc_post)
|
||||
ELSE()
|
||||
|
||||
OPTION(EMBREE_IGNORE_CMAKE_CXX_FLAGS "When enabled Embree ignores default CMAKE_CXX_FLAGS." ON)
|
||||
OPTION(EMBREE_ADDRESS_SANITIZER "Enabled CLANG address sanitizer." OFF)
|
||||
IF (EMBREE_IGNORE_CMAKE_CXX_FLAGS)
|
||||
SET(CMAKE_CXX_FLAGS "")
|
||||
ENDIF()
|
||||
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") # enables most warnings
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wformat -Wformat-security") # enables string format vulnerability warnings
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsigned-char") # treat char as signed on all processors, including ARM
|
||||
IF (NOT APPLE)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIE") # enables support for more secure position independent execution
|
||||
ENDIF()
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") # generate position independent code suitable for shared libraries
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC") # generate position independent code suitable for shared libraries
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") # enables C++11 features
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden") # makes all symbols hidden by default
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility-inlines-hidden") # makes all inline symbols hidden by default
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-strict-aliasing") # disables strict aliasing rules
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-tree-vectorize") # disable auto vectorizer
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_FORTIFY_SOURCE=2") # perform extra security checks for some standard library calls
|
||||
IF (EMBREE_STACK_PROTECTOR)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstack-protector") # protects against return address overrides
|
||||
ENDIF()
|
||||
MACRO(DISABLE_STACK_PROTECTOR_FOR_FILE file)
|
||||
IF (EMBREE_STACK_PROTECTOR)
|
||||
SET_SOURCE_FILES_PROPERTIES(${file} PROPERTIES COMPILE_FLAGS "-fno-stack-protector")
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
||||
IF (EMBREE_ADDRESS_SANITIZER)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fsanitize-address-use-after-scope -fno-omit-frame-pointer -fno-optimize-sibling-calls")
|
||||
ENDIF()
|
||||
|
||||
IF (EMSCRIPTEN)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fexceptions") # enable exceptions
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread") # enable threads
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msimd128") # enable SIMD intrinsics
|
||||
ENDIF()
|
||||
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "")
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g") # generate debug information
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG") # enable assertions
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DTBB_USE_DEBUG") # configure TBB in debug mode
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O3") # enable full optimizations
|
||||
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "")
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DNDEBUG") # disable assertions
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3") # enable full optimizations
|
||||
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "")
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -g") # generate debug information
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -DNDEBUG") # disable assertions
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O3") # enable full optimizations
|
||||
|
||||
IF (APPLE)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=10.7") # makes sure code runs on older MacOSX versions
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") # link against libc++ which supports C++11 features
|
||||
ELSE(APPLE)
|
||||
IF (NOT EMBREE_ADDRESS_SANITIZER) # for address sanitizer this causes link errors
|
||||
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined") # issues link error for undefined symbols in shared library
|
||||
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie") # enables position independent execution for executable
|
||||
IF (NOT EMSCRIPTEN)
|
||||
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -z relro -z now") # re-arranges data sections to increase security
|
||||
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -z noexecstack") # we do not need an executable stack
|
||||
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -z relro -z now") # re-arranges data sections to increase security
|
||||
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -z noexecstack") # we do not need an executable stack
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDIF(APPLE)
|
||||
|
||||
|
||||
ENDIF()
|
||||
23
Framework/external/embree/common/cmake/crayprgenv.cmake
vendored
Normal file
23
Framework/external/embree/common/cmake/crayprgenv.cmake
vendored
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
## ======================================================================== ##
|
||||
## Copyright 2017 Kitware, Inc. ##
|
||||
## ##
|
||||
## Licensed under the Apache License, Version 2.0 (the "License"); ##
|
||||
## you may not use this file except in compliance with the License. ##
|
||||
## You may obtain a copy of the License at ##
|
||||
## ##
|
||||
## http://www.apache.org/licenses/LICENSE-2.0 ##
|
||||
## ##
|
||||
## Unless required by applicable law or agreed to in writing, software ##
|
||||
## distributed under the License is distributed on an "AS IS" BASIS, ##
|
||||
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ##
|
||||
## See the License for the specific language governing permissions and ##
|
||||
## limitations under the License. ##
|
||||
## ======================================================================== ##
|
||||
SET(FLAGS_SSE2 "-target-cpu=x86_64")
|
||||
SET(FLAGS_SSE42 "NOT_SUPPORTED")
|
||||
SET(FLAGS_AVX "-target-cpu=sandybridge")
|
||||
SET(FLAGS_AVX2 "-target-cpu=haswell")
|
||||
SET(FLAGS_AVX512 "-target-cpu=x86-skylake")
|
||||
|
||||
STRING(TOLOWER "${CMAKE_CXX_COMPILER_ID}" _lower_compiler_id)
|
||||
INCLUDE("${CMAKE_CURRENT_LIST_DIR}/${_lower_compiler_id}.cmake" OPTIONAL)
|
||||
4
Framework/external/embree/common/cmake/create_isa_dummy_file.cmake
vendored
Normal file
4
Framework/external/embree/common/cmake/create_isa_dummy_file.cmake
vendored
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
## Copyright 2009-2021 Intel Corporation
|
||||
## SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
file(WRITE ${dst} "#include \"${src}\"\n")
|
||||
0
Framework/external/embree/common/cmake/dep_level_zero.cmake
vendored
Normal file
0
Framework/external/embree/common/cmake/dep_level_zero.cmake
vendored
Normal file
292
Framework/external/embree/common/cmake/dpcpp.cmake
vendored
Normal file
292
Framework/external/embree/common/cmake/dpcpp.cmake
vendored
Normal file
|
|
@ -0,0 +1,292 @@
|
|||
## Copyright 2009-2022 Intel Corporation
|
||||
## SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
MACRO(_SET_IF_EMPTY VAR VALUE)
|
||||
IF(NOT ${VAR})
|
||||
SET(${VAR} "${VALUE}")
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
||||
_SET_IF_EMPTY(FLAGS_SSE2 "-msse2")
|
||||
_SET_IF_EMPTY(FLAGS_SSE42 "-msse4.2")
|
||||
_SET_IF_EMPTY(FLAGS_AVX "-mavx")
|
||||
_SET_IF_EMPTY(FLAGS_AVX2 "-mf16c -mavx2 -mfma -mlzcnt -mbmi -mbmi2")
|
||||
_SET_IF_EMPTY(FLAGS_AVX512 "-march=skx")
|
||||
|
||||
IF (NOT WIN32)
|
||||
OPTION(EMBREE_IGNORE_CMAKE_CXX_FLAGS "When enabled Embree ignores default CMAKE_CXX_FLAGS." ON)
|
||||
IF (EMBREE_IGNORE_CMAKE_CXX_FLAGS)
|
||||
SET(CMAKE_CXX_FLAGS "")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
GET_FILENAME_COMPONENT(SYCL_COMPILER_DIR ${CMAKE_CXX_COMPILER} PATH)
|
||||
GET_FILENAME_COMPONENT(SYCL_COMPILER_NAME ${CMAKE_CXX_COMPILER} NAME_WE)
|
||||
IF (NOT SYCL_COMPILER_NAME STREQUAL "clang++")
|
||||
SET(SYCL_ONEAPI TRUE)
|
||||
IF (SYCL_COMPILER_NAME STREQUAL "icx" OR SYCL_COMPILER_NAME STREQUAL "icpx")
|
||||
SET(SYCL_ONEAPI_ICX TRUE)
|
||||
ELSE()
|
||||
SET(SYCL_ONEAPI_ICX FALSE)
|
||||
ENDIF()
|
||||
SET(STORE_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
|
||||
SET(STORE_CMAKE_CXX_LINK_FLAGS ${CMAKE_CXX_LINK_FLAGS})
|
||||
IF (NOT EMBREE_SYCL_SUPPORT)
|
||||
# if EMBREE_SYCL_SUPPORT is off we don't want the -fsycl flags
|
||||
SET(CMAKE_CXX_FLAGS ${STORE_CMAKE_CXX_FLAGS})
|
||||
SET(CMAKE_CXX_LINK_FLAGS ${STORE_CMAKE_CXX_LINK_FLAGS})
|
||||
ENDIF()
|
||||
ELSE()
|
||||
SET(SYCL_ONEAPI FALSE)
|
||||
ADD_DEFINITIONS(-D__INTEL_LLVM_COMPILER)
|
||||
ENDIF()
|
||||
|
||||
IF (EMBREE_SYCL_SUPPORT)
|
||||
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-sycl") # makes dpcpp compiler compatible with clang++
|
||||
|
||||
SET(CMAKE_CXX_FLAGS_SYCL "-fsycl -fsycl-unnamed-lambda -Xclang -fsycl-allow-func-ptr")
|
||||
SET(CMAKE_CXX_FLAGS_SYCL "${CMAKE_CXX_FLAGS_SYCL} -Wno-mismatched-tags -Wno-pessimizing-move -Wno-reorder -Wno-unneeded-internal-declaration -Wno-delete-non-abstract-non-virtual-dtor -Wno-dangling-field -Wno-unknown-pragmas -Wno-logical-op-parentheses")
|
||||
|
||||
IF (SYCL_ONEAPI_ICX AND WIN32)
|
||||
SET(CMAKE_CXX_FLAGS_SYCL "${CMAKE_CXX_FLAGS_SYCL} /debug:none") # FIXME: debug information generation takes forever in SYCL
|
||||
SET(CMAKE_CXX_FLAGS_SYCL "${CMAKE_CXX_FLAGS_SYCL} /DNDEBUG") # FIXME: debug information generation takes forever in SYCL
|
||||
ELSE()
|
||||
SET(CMAKE_CXX_FLAGS_SYCL "${CMAKE_CXX_FLAGS_SYCL} -g0") # FIXME: debug information generation takes forever in SYCL
|
||||
SET(CMAKE_CXX_FLAGS_SYCL "${CMAKE_CXX_FLAGS_SYCL} -UDEBUG -DNDEBUG") # FIXME: assertion still not working in SYCL
|
||||
ENDIF()
|
||||
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-bitwise-instead-of-logical") # disables "use of bitwise '&' with boolean operands" warning
|
||||
SET(CMAKE_CXX_FLAGS_SYCL "${CMAKE_CXX_FLAGS_SYCL} -Wno-bitwise-instead-of-logical") # disables "use of bitwise '&' with boolean operands" warning
|
||||
|
||||
IF (WIN32)
|
||||
SET(SYCL_COMPILER_LIB_DIR "${SYCL_COMPILER_DIR}/../lib")
|
||||
IF (CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
file(GLOB SYCL_LIB RELATIVE ${SYCL_COMPILER_LIB_DIR}
|
||||
${SYCL_COMPILER_LIB_DIR}/sycld.lib
|
||||
${SYCL_COMPILER_LIB_DIR}/sycl[0-9]d.lib
|
||||
${SYCL_COMPILER_LIB_DIR}/sycl[0-9][0-9]d.lib)
|
||||
ELSE()
|
||||
file(GLOB SYCL_LIB RELATIVE ${SYCL_COMPILER_LIB_DIR}
|
||||
${SYCL_COMPILER_LIB_DIR}/sycl.lib
|
||||
${SYCL_COMPILER_LIB_DIR}/sycl[0-9].lib
|
||||
${SYCL_COMPILER_LIB_DIR}/sycl[0-9][0-9].lib)
|
||||
ENDIF()
|
||||
GET_FILENAME_COMPONENT(SYCL_LIB_NAME ${SYCL_LIB} NAME_WE)
|
||||
ELSE()
|
||||
SET(SYCL_LIB_NAME "sycl")
|
||||
ENDIF()
|
||||
|
||||
SET(CMAKE_LINK_FLAGS_SYCL "-fsycl")
|
||||
|
||||
#LIST(APPEND CMAKE_IGC_OPTIONS "EnableOCLNoInlineAttr=0") # enabled __noinline
|
||||
#LIST(APPEND CMAKE_IGC_OPTIONS "ControlKernelTotalSize=0")
|
||||
#LIST(APPEND CMAKE_IGC_OPTIONS "SubroutineThreshold=110000") # Minimal kernel size to enable subroutines
|
||||
#LIST(APPEND CMAKE_IGC_OPTIONS "EnableUnmaskedFunctions=1") # enables unmasked functions
|
||||
#LIST(APPEND CMAKE_IGC_OPTIONS "ByPassAllocaSizeHeuristic=64") # puts small arrays into registers
|
||||
#LIST(APPEND CMAKE_IGC_OPTIONS "EnableIndirectCallOptimization=0") # Enables inlining indirect calls by comparing function addresses
|
||||
#LIST(APPEND CMAKE_IGC_OPTIONS "FunctionControl=0") # 0 = default, 1 = inline, 2 = subroutine, 3 = stackcall, 4 = keep indirect calls
|
||||
#LIST(APPEND CMAKE_IGC_OPTIONS "forceGlobalRA=1") # "force global register allocator
|
||||
#LIST(APPEND CMAKE_IGC_OPTIONS "TotalGRFNum=128") # Total GRF used for register allocation
|
||||
#LIST(APPEND CMAKE_IGC_OPTIONS "GRFNumToUse=64") # "Set the number of general registers to use (64 to totalGRFNum)
|
||||
#LIST(APPEND CMAKE_IGC_OPTIONS "ReplaceIndirectCallWithJmpi=1") # Replace indirect call with jmpi instruction (HW WA)
|
||||
#LIST(APPEND CMAKE_IGC_OPTIONS "DisableUniformAnalysis=1") # Setting this to 1/true adds a compiler switch to disable uniform_analysis
|
||||
#LIST(APPEND CMAKE_IGC_OPTIONS "DisableLoopUnroll=1") # Setting this to 1/true adds a compiler switch to disable loop unrolling
|
||||
#LIST(APPEND CMAKE_IGC_OPTIONS "EnableStatelessToStatefull=0") # Enable Stateless To Statefull transformation for global and constant address space in OpenCL kernels
|
||||
#LIST(APPEND CMAKE_IGC_OPTIONS "EnableRecursionOpenCL=1") # Enable recursion with OpenCL user functions
|
||||
#LIST(APPEND CMAKE_IGC_OPTIONS "EnableAdvMemOpt=0") # Enable advanced memory optimization
|
||||
#LIST(APPEND CMAKE_IGC_OPTIONS "UniformMemOptLimit=512") # "Limit of uniform memory optimization in bits
|
||||
#LIST(APPEND CMAKE_IGC_OPTIONS "EnablePreemption=0") # Enable generating preeemptable code (SKL+)
|
||||
#LIST(APPEND CMAKE_IGC_OPTIONS "AllowSubroutineAndInirectdCalls=1") # Allow subroutine in the presence of indirect calls
|
||||
#LIST(APPEND CMAKE_IGC_OPTIONS "AllocaRAPressureThreshold=0") # The threshold for the register pressure potential (this reduces amount of spilling!)
|
||||
#LIST(APPEND CMAKE_IGC_OPTIONS "AssumeInt64Support=0") # Architecture with partial int64 still promote uniform arrays to registers
|
||||
LIST(APPEND CMAKE_IGC_OPTIONS "VISAOptions=-scratchAllocForStackInKB 128 ") # this works around some IGC bug in spill compression
|
||||
|
||||
IF (CMAKE_BUILD_TYPE STREQUAL "Debug") # to allow printf inside indirectly callable function
|
||||
LIST(APPEND CMAKE_IGC_OPTIONS "ForceInlineStackCallWithImplArg=0")
|
||||
LIST(APPEND CMAKE_IGC_OPTIONS "EnableGlobalStateBuffer=1")
|
||||
ENDIF()
|
||||
|
||||
STRING(REPLACE ";" "," CMAKE_IGC_OPTIONS "${CMAKE_IGC_OPTIONS}")
|
||||
|
||||
IF (EMBREE_SYCL_AOT_DEVICE_REVISION GREATER 0)
|
||||
SET(CMAKE_OCL_OPTIONS "${CMAKE_OCL_OPTIONS} -revision_id ${EMBREE_SYCL_AOT_DEVICE_REVISION}") # Enable this to override the stepping/RevId
|
||||
ENDIF()
|
||||
|
||||
SET(CMAKE_OCL_OPTIONS "${CMAKE_OCL_OPTIONS} -cl-intel-greater-than-4GB-buffer-required") # enables support for buffers larger than 4GB
|
||||
IF (EMBREE_SYCL_LARGEGRF)
|
||||
SET(CMAKE_OCL_OPTIONS "${CMAKE_OCL_OPTIONS} -internal_options -cl-intel-256-GRF-per-thread") # large GRF mode
|
||||
ENDIF()
|
||||
SET(CMAKE_OCL_OTHER_OPTIONS "${CMAKE_OCL_OTHER_OPTIONS} -cl-intel-force-global-mem-allocation -cl-intel-no-local-to-generic")
|
||||
#SET(CMAKE_OCL_OTHER_OPTIONS "${CMAKE_OCL_OTHER_OPTIONS} -cl-intel-private-memory-minimal-size-per-thread 8192")
|
||||
|
||||
IF (EMBREE_SYCL_AOT_DEVICES STREQUAL "none")
|
||||
SET(CMAKE_CXX_FLAGS_SYCL_AOT "-fsycl-targets=spir64")
|
||||
ELSE()
|
||||
SET(CMAKE_CXX_FLAGS_SYCL_AOT "-fsycl-targets=spir64,spir64_gen")
|
||||
ENDIF()
|
||||
|
||||
SET(CMAKE_LINK_FLAGS_SYCL_AOT "${CMAKE_CXX_FLAGS_SYCL_AOT} -Xsycl-target-backend=spir64 \"${CMAKE_OCL_OPTIONS} -options \\\"${CMAKE_OCL_OTHER_OPTIONS} -igc_opts='${CMAKE_IGC_OPTIONS}'\\\"\"")
|
||||
|
||||
IF (NOT EMBREE_SYCL_AOT_DEVICES STREQUAL "none")
|
||||
SET(CMAKE_LINK_FLAGS_SYCL_AOT "${CMAKE_LINK_FLAGS_SYCL_AOT} -Xsycl-target-backend=spir64_gen \"-device ${EMBREE_SYCL_AOT_DEVICES} ${CMAKE_OCL_OPTIONS} -options \\\"${CMAKE_OCL_OTHER_OPTIONS} -igc_opts='${CMAKE_IGC_OPTIONS}'\\\"\"")
|
||||
ENDIF()
|
||||
|
||||
IF (EMBREE_SYCL_DBG)
|
||||
SET(CMAKE_CXX_FLAGS_SYCL_AOT "-g")
|
||||
ENDIF()
|
||||
|
||||
SET(CMAKE_CXX_FLAGS_SYCL "${CMAKE_CXX_FLAGS_SYCL} ${CMAKE_CXX_FLAGS_SYCL_AOT}")
|
||||
SET(CMAKE_LINK_FLAGS_SYCL "${CMAKE_LINK_FLAGS_SYCL} ${CMAKE_LINK_FLAGS_SYCL_AOT}")
|
||||
|
||||
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-pessimizing-move") # disabled: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
|
||||
|
||||
IF (SYCL_ONEAPI_ICX AND WIN32)
|
||||
IF (${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER_EQUAL 2024.0)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I\"${SYCL_COMPILER_DIR}/../opt/compiler/include/sycl\" -I\"${SYCL_COMPILER_DIR}/../opt/compiler/include/sycl/sycl\"") # disable warning from SYCL header
|
||||
ENDIF()
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I\"${SYCL_COMPILER_DIR}/../include/sycl\" -I\"${SYCL_COMPILER_DIR}/../include/\"") # disable warning from SYCL header
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Qstd=c++17")
|
||||
ELSE()
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")
|
||||
IF (SYCL_ONEAPI_ICX AND ${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER_EQUAL 2024.0)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -isystem \"${SYCL_COMPILER_DIR}/../opt/compiler/include/sycl\" -isystem \"${SYCL_COMPILER_DIR}/../opt/compiler/include/sycl/sycl\"") # disable warning from SYCL header
|
||||
ENDIF()
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -isystem \"${SYCL_COMPILER_DIR}/../include/sycl\" -isystem \"${SYCL_COMPILER_DIR}/../include/\"") # disable warning from SYCL header
|
||||
ENDIF()
|
||||
|
||||
# enable C++17 features
|
||||
IF (SYCL_ONEAPI_ICX AND WIN32)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Qstd=c++17")
|
||||
ELSE()
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")
|
||||
ENDIF()
|
||||
ENDIF(EMBREE_SYCL_SUPPORT)
|
||||
|
||||
IF(SYCL_ONEAPI_ICX)
|
||||
IF (WIN32)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Qno-intel-lib")
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /Qno-intel-lib")
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Qimf-use-svml:false")
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /Qimf-use-svml:false")
|
||||
SET(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} /Qno-intel-lib")
|
||||
SET(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} /Qno-intel-lib")
|
||||
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /Qoption,link,/DEPENDENTLOADFLAG:0x2000")
|
||||
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /Qoption,link,/DEPENDENTLOADFLAG:0x2000")
|
||||
ELSE()
|
||||
SET(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -static-intel")
|
||||
SET(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} -static-intel")
|
||||
#SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fimf-use-svml=false")
|
||||
#SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fimf-use-svml=false")
|
||||
IF (NOT EMBREE_SYCL_SUPPORT)
|
||||
SET(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -no-intel-lib")
|
||||
SET(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} -no-intel-lib")
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -no-intel-lib")
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -no-intel-lib")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
IF (EMBREE_STACK_PROTECTOR)
|
||||
IF (SYCL_ONEAPI_ICX AND WIN32)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /GS") # protects against return address overrides
|
||||
ELSE()
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstack-protector") # protects against return address overrides
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
MACRO(DISABLE_STACK_PROTECTOR_FOR_FILE file)
|
||||
IF (EMBREE_STACK_PROTECTOR)
|
||||
IF (SYCL_ONEAPI_ICX AND WIN32)
|
||||
SET_SOURCE_FILES_PROPERTIES(${file} PROPERTIES COMPILE_FLAGS "/GS-")
|
||||
ELSE()
|
||||
SET_SOURCE_FILES_PROPERTIES(${file} PROPERTIES COMPILE_FLAGS "-fno-stack-protector")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
||||
IF (SYCL_ONEAPI_ICX AND WIN32)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /fp:precise") # makes dpcpp compiler compatible with clang++
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc") # catch C++ exceptions only and extern "C" functions never throw a C++ exception
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /GR") # enable runtime type information (on by default)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Xclang -fcxx-exceptions") # enable C++ exceptions in Clang
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Gy") # package individual functions
|
||||
ELSE()
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden") # makes all symbols hidden by default
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility-inlines-hidden") # makes all inline symbols hidden by default
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-strict-aliasing") # disables strict aliasing rules
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-tree-vectorize") # disable auto vectorizer
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_FORTIFY_SOURCE=2") # perform extra security checks for some standard library calls
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsigned-char") # treat char as signed on all processors, including ARM
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") # enables most warnings
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wformat -Wformat-security") # enables string format vulnerability warnings
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ffp-model=precise") # makes dpcpp compiler compatible with clang++
|
||||
ENDIF()
|
||||
|
||||
IF (WIN32)
|
||||
|
||||
IF (NOT EMBREE_SYCL_SUPPORT)
|
||||
IF (SYCL_ONEAPI_ICX)
|
||||
IF (${MSVC_VERSION} VERSION_GREATER_EQUAL 1916)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Qstd=c++14")
|
||||
ELSE()
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Qstd=c++11")
|
||||
ENDIF()
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Oi")
|
||||
ELSE()
|
||||
IF (${MSVC_VERSION} VERSION_GREATER_EQUAL 1916)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
|
||||
ELSE()
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
INCLUDE(msvc_post)
|
||||
|
||||
# workaround for file encoding problems of kernels/embree.rc found here https://gitlab.kitware.com/cmake/cmake/-/issues/18311
|
||||
set(CMAKE_NINJA_CMCLDEPS_RC OFF)
|
||||
|
||||
ELSE()
|
||||
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIE") # enables support for more secure position independent execution
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") # generate position independent code suitable for shared libraries
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC") # generate position independent code suitable for shared libraries
|
||||
|
||||
OPTION(EMBREE_ADDRESS_SANITIZER "Enabled CLANG address sanitizer." OFF)
|
||||
|
||||
IF (EMBREE_ADDRESS_SANITIZER)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fsanitize-address-use-after-scope -fno-omit-frame-pointer -fno-optimize-sibling-calls")
|
||||
ENDIF()
|
||||
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "")
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g") # generate debug information
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG") # enable assertions
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DTBB_USE_DEBUG") # configure TBB in debug mode
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O3") # enable full optimizations
|
||||
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "")
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DNDEBUG") # disable assertions
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3") # enable full optimizations
|
||||
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "")
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -g") # generate debug information
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -DNDEBUG") # disable assertions
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O3") # enable full optimizations
|
||||
|
||||
IF(EMBREE_SYCL_SUPPORT)
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHASSERT "")
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHASSERT "${CMAKE_CXX_FLAGS_RELWITHASSERT} -DDEBUG") # enable assertions
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHASSERT "${CMAKE_CXX_FLAGS_RELWITHASSERT} -O3") # enable full optimizations
|
||||
ENDIF(EMBREE_SYCL_SUPPORT)
|
||||
|
||||
IF (NOT EMBREE_ADDRESS_SANITIZER) # for address sanitizer this causes link errors
|
||||
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined") # issues link error for undefined symbols in shared library
|
||||
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -z noexecstack") # we do not need an executable stack
|
||||
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -z relro -z now") # re-arranges data sections to increase security
|
||||
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -z noexecstack") # we do not need an executable stack
|
||||
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -z relro -z now") # re-arranges data sections to increase security
|
||||
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie") # enables position independent execution for executable
|
||||
ENDIF()
|
||||
|
||||
ENDIF()
|
||||
11
Framework/external/embree/common/cmake/embree-config-builddir.cmake
vendored
Normal file
11
Framework/external/embree/common/cmake/embree-config-builddir.cmake
vendored
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
## Copyright 2009-2021 Intel Corporation
|
||||
## SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
# use default install config
|
||||
INCLUDE("${CMAKE_CURRENT_LIST_DIR}/embree-config-install.cmake")
|
||||
|
||||
# and override path variables to match for build directory
|
||||
SET(EMBREE_INCLUDE_DIRS @PROJECT_SOURCE_DIR@/include)
|
||||
SET(EMBREE_LIBRARY @PROJECT_BINARY_DIR@/@EMBREE_LIBRARY_FULLNAME@)
|
||||
SET(EMBREE_LIBRARIES ${EMBREE_LIBRARY})
|
||||
|
||||
16
Framework/external/embree/common/cmake/embree-config-version.cmake
vendored
Normal file
16
Framework/external/embree/common/cmake/embree-config-version.cmake
vendored
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
## Copyright 2009-2021 Intel Corporation
|
||||
## SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
SET(PACKAGE_VERSION @EMBREE_VERSION@)
|
||||
|
||||
SET(PACKAGE_VERSION_EXACT 0)
|
||||
SET(PACKAGE_VERSION_COMPATIBLE 0)
|
||||
|
||||
IF (PACKAGE_FIND_VERSION VERSION_EQUAL PACKAGE_VERSION)
|
||||
SET(PACKAGE_VERSION_EXACT 1)
|
||||
SET(PACKAGE_VERSION_COMPATIBLE 1)
|
||||
ENDIF()
|
||||
|
||||
IF (PACKAGE_FIND_VERSION_MAJOR EQUAL @EMBREE_VERSION_MAJOR@ AND PACKAGE_FIND_VERSION VERSION_LESS PACKAGE_VERSION)
|
||||
SET(PACKAGE_VERSION_COMPATIBLE 1)
|
||||
ENDIF()
|
||||
112
Framework/external/embree/common/cmake/embree-config.cmake
vendored
Normal file
112
Framework/external/embree/common/cmake/embree-config.cmake
vendored
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
## Copyright 2009-2021 Intel Corporation
|
||||
## SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
SET(EMBREE_ROOT_DIR "${CMAKE_CURRENT_LIST_DIR}/@EMBREE_RELATIVE_ROOT_DIR@")
|
||||
GET_FILENAME_COMPONENT(EMBREE_ROOT_DIR "${EMBREE_ROOT_DIR}" ABSOLUTE)
|
||||
|
||||
SET(EMBREE_INCLUDE_DIRS "${EMBREE_ROOT_DIR}/@CMAKE_INSTALL_INCLUDEDIR@")
|
||||
SET(EMBREE_LIBRARY "${EMBREE_ROOT_DIR}/@CMAKE_INSTALL_LIBDIR@/@EMBREE_LIBRARY_FULLNAME@")
|
||||
SET(EMBREE_LIBRARIES ${EMBREE_LIBRARY})
|
||||
|
||||
SET(EMBREE_VERSION @EMBREE_VERSION@)
|
||||
SET(EMBREE_VERSION_MAJOR @EMBREE_VERSION_MAJOR@)
|
||||
SET(EMBREE_VERSION_MINOR @EMBREE_VERSION_MINOR@)
|
||||
SET(EMBREE_VERSION_PATCH @EMBREE_VERSION_PATCH@)
|
||||
SET(EMBREE_VERSION_NOTE "@EMBREE_VERSION_NOTE@")
|
||||
|
||||
SET(EMBREE_MAX_ISA @EMBREE_MAX_ISA@)
|
||||
SET(EMBREE_ISA_SSE2 @EMBREE_ISA_SSE2@)
|
||||
SET(EMBREE_ISA_SSE42 @EMBREE_ISA_SSE42@)
|
||||
SET(EMBREE_ISA_AVX @EMBREE_ISA_AVX@)
|
||||
SET(EMBREE_ISA_AVX2 @EMBREE_ISA_AVX2@)
|
||||
SET(EMBREE_ISA_AVX512 @EMBREE_ISA_AVX512@)
|
||||
SET(EMBREE_ISA_AVX512SKX @EMBREE_ISA_AVX512@) # just for compatibility
|
||||
SET(EMBREE_ISA_NEON @EMBREE_ISA_NEON@)
|
||||
SET(EMBREE_ISA_NEON2X @EMBREE_ISA_NEON2X@)
|
||||
|
||||
SET(EMBREE_BUILD_TYPE @CMAKE_BUILD_TYPE@)
|
||||
SET(EMBREE_ISPC_SUPPORT @EMBREE_ISPC_SUPPORT@)
|
||||
SET(EMBREE_STATIC_LIB @EMBREE_STATIC_LIB@)
|
||||
SET(EMBREE_SYCL_SUPPORT @EMBREE_SYCL_SUPPORT@)
|
||||
SET(EMBREE_SYCL_GEOMETRY_CALLBACK @EMBREE_SYCL_GEOMETRY_CALLBACK@)
|
||||
SET(EMBREE_TUTORIALS @EMBREE_TUTORIALS@)
|
||||
|
||||
SET(EMBREE_RAY_MASK @EMBREE_RAY_MASK@)
|
||||
SET(EMBREE_STAT_COUNTERS @EMBREE_STAT_COUNTERS@)
|
||||
SET(EMBREE_BACKFACE_CULLING @EMBREE_BACKFACE_CULLING@)
|
||||
SET(EMBREE_FILTER_FUNCTION @EMBREE_FILTER_FUNCTION@)
|
||||
SET(EMBREE_IGNORE_INVALID_RAYS @EMBREE_IGNORE_INVALID_RAYS@)
|
||||
SET(EMBREE_TASKING_SYSTEM @EMBREE_TASKING_SYSTEM@)
|
||||
SET(EMBREE_TBB_COMPONENT @EMBREE_TBB_COMPONENT@)
|
||||
SET(EMBREE_COMPACT_POLYS @EMBREE_COMPACT_POLYS@)
|
||||
|
||||
SET(EMBREE_GEOMETRY_TRIANGLE @EMBREE_GEOMETRY_TRIANGLE@)
|
||||
SET(EMBREE_GEOMETRY_QUAD @EMBREE_GEOMETRY_QUAD@)
|
||||
SET(EMBREE_GEOMETRY_CURVE @EMBREE_GEOMETRY_CURVE@)
|
||||
SET(EMBREE_GEOMETRY_SUBDIVISION @EMBREE_GEOMETRY_SUBDIVISION@)
|
||||
SET(EMBREE_GEOMETRY_USER @EMBREE_GEOMETRY_USER@)
|
||||
SET(EMBREE_GEOMETRY_INSTANCE @EMBREE_GEOMETRY_INSTANCE@)
|
||||
SET(EMBREE_GEOMETRY_INSTANCE_ARRAY @EMBREE_GEOMETRY_INSTANCE_ARRAY@)
|
||||
SET(EMBREE_GEOMETRY_GRID @EMBREE_GEOMETRY_GRID@)
|
||||
SET(EMBREE_GEOMETRY_POINT @EMBREE_GEOMETRY_POINT@)
|
||||
|
||||
SET(EMBREE_RAY_PACKETS @EMBREE_RAY_PACKETS@)
|
||||
SET(EMBREE_MAX_INSTANCE_LEVEL_COUNT @EMBREE_MAX_INSTANCE_LEVEL_COUNT@)
|
||||
SET(EMBREE_CURVE_SELF_INTERSECTION_AVOIDANCE_FACTOR @EMBREE_CURVE_SELF_INTERSECTION_AVOIDANCE_FACTOR@)
|
||||
SET(EMBREE_DISC_POINT_SELF_INTERSECTION_AVOIDANCE @EMBREE_DISC_POINT_SELF_INTERSECTION_AVOIDANCE@)
|
||||
SET(EMBREE_MIN_WIDTH @EMBREE_MIN_WIDTH@)
|
||||
|
||||
IF (EMBREE_STATIC_LIB AND (EMBREE_TASKING_SYSTEM STREQUAL "TBB"))
|
||||
INCLUDE(CMakeFindDependencyMacro)
|
||||
FIND_DEPENDENCY(TBB)
|
||||
ENDIF()
|
||||
|
||||
IF (EMBREE_STATIC_LIB)
|
||||
|
||||
INCLUDE("${EMBREE_ROOT_DIR}/@EMBREE_CMAKEEXPORT_DIR@/sys-targets.cmake")
|
||||
INCLUDE("${EMBREE_ROOT_DIR}/@EMBREE_CMAKEEXPORT_DIR@/math-targets.cmake")
|
||||
INCLUDE("${EMBREE_ROOT_DIR}/@EMBREE_CMAKEEXPORT_DIR@/simd-targets.cmake")
|
||||
INCLUDE("${EMBREE_ROOT_DIR}/@EMBREE_CMAKEEXPORT_DIR@/lexers-targets.cmake")
|
||||
INCLUDE("${EMBREE_ROOT_DIR}/@EMBREE_CMAKEEXPORT_DIR@/tasking-targets.cmake")
|
||||
|
||||
IF (EMBREE_ISA_SSE42)
|
||||
INCLUDE("${EMBREE_ROOT_DIR}/@EMBREE_CMAKEEXPORT_DIR@/embree_sse42-targets.cmake")
|
||||
ENDIF()
|
||||
|
||||
IF (EMBREE_ISA_AVX)
|
||||
INCLUDE("${EMBREE_ROOT_DIR}/@EMBREE_CMAKEEXPORT_DIR@/embree_avx-targets.cmake")
|
||||
ENDIF()
|
||||
|
||||
IF (EMBREE_ISA_AVX2)
|
||||
INCLUDE("${EMBREE_ROOT_DIR}/@EMBREE_CMAKEEXPORT_DIR@/embree_avx2-targets.cmake")
|
||||
ENDIF()
|
||||
|
||||
IF (EMBREE_ISA_AVX512)
|
||||
INCLUDE("${EMBREE_ROOT_DIR}/@EMBREE_CMAKEEXPORT_DIR@/embree_avx512-targets.cmake")
|
||||
ENDIF()
|
||||
|
||||
ENDIF()
|
||||
|
||||
IF (EMBREE_SYCL_SUPPORT)
|
||||
|
||||
SET(EMBREE_SYCL_AOT_DEVICES @EMBREE_SYCL_AOT_DEVICES@)
|
||||
SET(EMBREE_SYCL_LARGEGRF @EMBREE_SYCL_LARGEGRF@)
|
||||
SET(EMBREE_SYCL_RT_VALIDATION_API @EMBREE_SYCL_RT_VALIDATION_API@)
|
||||
IF (EMBREE_SYCL_RT_VALIDATION_API)
|
||||
INCLUDE("${EMBREE_ROOT_DIR}/@EMBREE_CMAKEEXPORT_DIR@/embree_rthwif_sycl-targets.cmake")
|
||||
ENDIF()
|
||||
IF (EMBREE_STATIC_LIB)
|
||||
INCLUDE("${EMBREE_ROOT_DIR}/@EMBREE_CMAKEEXPORT_DIR@/embree_rthwif-targets.cmake")
|
||||
INCLUDE("${EMBREE_ROOT_DIR}/@EMBREE_CMAKEEXPORT_DIR@/ze_wrapper-targets.cmake")
|
||||
ENDIF()
|
||||
INCLUDE("${EMBREE_ROOT_DIR}/@EMBREE_CMAKEEXPORT_DIR@/embree_sycl-targets.cmake")
|
||||
|
||||
ENDIF()
|
||||
|
||||
INCLUDE("${EMBREE_ROOT_DIR}/@EMBREE_CMAKEEXPORT_DIR@/embree-targets.cmake")
|
||||
|
||||
|
||||
SET(EMBREE_TESTING_ONLY_SYCL_TESTS @EMBREE_TESTING_ONLY_SYCL_TESTS@)
|
||||
SET(EMBREE_TESTING_INTENSITY @EMBREE_TESTING_INTENSITY@)
|
||||
SET(EMBREE_TESTING_MEMCHECK @EMBREE_TESTING_MEMCHECK@)
|
||||
SET(EMBREE_TESTING_BENCHMARK @EMBREE_TESTING_BENCHMARK@)
|
||||
8
Framework/external/embree/common/cmake/embree.entitlements
vendored
Normal file
8
Framework/external/embree/common/cmake/embree.entitlements
vendored
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>com.apple.security.cs.disable-library-validation</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
105
Framework/external/embree/common/cmake/gnu.cmake
vendored
Normal file
105
Framework/external/embree/common/cmake/gnu.cmake
vendored
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
## Copyright 2009-2021 Intel Corporation
|
||||
## SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
MACRO(_SET_IF_EMPTY VAR VALUE)
|
||||
IF(NOT ${VAR})
|
||||
SET(${VAR} "${VALUE}")
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
||||
IF (EMBREE_ARM)
|
||||
SET(FLAGS_SSE2 "-D__SSE__ -D__SSE2__")
|
||||
SET(FLAGS_SSE42 "-D__SSE4_2__ -D__SSE4_1__")
|
||||
SET(FLAGS_AVX "-D__AVX__ -D__SSE4_2__ -D__SSE4_1__ -D__BMI__ -D__BMI2__ -D__LZCNT__")
|
||||
SET(FLAGS_AVX2 "-D__AVX2__ -D__AVX__ -D__SSE4_2__ -D__SSE4_1__ -D__BMI__ -D__BMI2__ -D__LZCNT__")
|
||||
ELSE ()
|
||||
_SET_IF_EMPTY(FLAGS_SSE2 "-msse2")
|
||||
_SET_IF_EMPTY(FLAGS_SSE42 "-msse4.2")
|
||||
_SET_IF_EMPTY(FLAGS_AVX "-mavx")
|
||||
_SET_IF_EMPTY(FLAGS_AVX2 "-mf16c -mavx2 -mfma -mlzcnt -mbmi -mbmi2")
|
||||
_SET_IF_EMPTY(FLAGS_AVX512 "-mavx512f -mavx512dq -mavx512cd -mavx512bw -mavx512vl -mf16c -mavx2 -mfma -mlzcnt -mbmi -mbmi2 -mprefer-vector-width=256")
|
||||
ENDIF ()
|
||||
|
||||
OPTION(EMBREE_IGNORE_CMAKE_CXX_FLAGS "When enabled Embree ignores default CMAKE_CXX_FLAGS." ON)
|
||||
IF (EMBREE_IGNORE_CMAKE_CXX_FLAGS)
|
||||
SET(CMAKE_CXX_FLAGS "")
|
||||
ENDIF()
|
||||
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||
|
||||
IF (EMBREE_ARM)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsigned-char") # treat 'char' as 'signed char'
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -flax-vector-conversions") # allow lax vector type conversions
|
||||
ENDIF (EMBREE_ARM)
|
||||
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") # enables most warnings
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wformat -Wformat-security") # enables string format vulnerability warnings
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-class-memaccess") # disables clearing an object of type ‘XXX’ with no trivial copy-assignment; use assignment or value-initialization instead
|
||||
|
||||
# these prevent compile to optimize away security checks
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-strict-overflow") # assume that signed overflow occurs
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-delete-null-pointer-checks") # keep all checks for NULL pointers
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fwrapv") # this option instructs the compiler to assume that signed arithmetic overflow warps around.
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsigned-char") # treat char as signed on all processors, including ARM
|
||||
|
||||
IF (NOT WIN32)
|
||||
IF (NOT APPLE)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIE") # enables support for more secure position independent execution
|
||||
ENDIF()
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") # generate position independent code suitable for shared libraries
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC") # generate position independent code suitable for shared libraries
|
||||
ENDIF ()
|
||||
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") # enables C++11 features
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden") # makes all symbols hidden by default
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility-inlines-hidden") # makes all inline symbols hidden by default
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-strict-aliasing") # disables strict aliasing rules
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-tree-vectorize") # disable auto vectorizer
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_FORTIFY_SOURCE=2") # perform extra security checks for some standard library calls
|
||||
IF (EMBREE_STACK_PROTECTOR)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstack-protector") # protects against return address overrides
|
||||
ENDIF()
|
||||
MACRO(DISABLE_STACK_PROTECTOR_FOR_FILE file)
|
||||
IF (EMBREE_STACK_PROTECTOR)
|
||||
SET_SOURCE_FILES_PROPERTIES(${file} PROPERTIES COMPILE_FLAGS "-fno-stack-protector")
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "")
|
||||
IF (EMBREE_ARM)
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fsigned-char") # treat 'char' as 'signed char'
|
||||
ENDIF (EMBREE_ARM)
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g") # generate debug information
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG") # enable assertions
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DTBB_USE_DEBUG") # configure TBB in debug mode
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O3") # enable full optimizations
|
||||
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "")
|
||||
IF (EMBREE_ARM)
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fsigned-char") # treat 'char' as 'signed char'
|
||||
ENDIF (EMBREE_ARM)
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DNDEBUG") # disable assertions
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3") # enable full optimizations
|
||||
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "")
|
||||
IF (EMBREE_ARM)
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -fsigned-char") # treat 'char' as 'signed char'
|
||||
ENDIF (EMBREE_ARM)
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -g") # generate debug information
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -DNDEBUG") # disable assertions
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O3") # enable full optimizations
|
||||
|
||||
IF (APPLE)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=10.7") # makes sure code runs on older MacOSX versions
|
||||
# SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") # link against libc++ which supports C++11 features
|
||||
ELSE(APPLE)
|
||||
IF (CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
||||
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined") # issues link error for undefined symbols in shared library
|
||||
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -z noexecstack") # we do not need an executable stack
|
||||
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -z relro -z now") # re-arranges data sections to increase security
|
||||
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -z noexecstack") # we do not need an executable stack
|
||||
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -z relro -z now") # re-arranges data sections to increase security
|
||||
ENDIF ()
|
||||
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie") # enables position independent execution for executable
|
||||
ENDIF(APPLE)
|
||||
|
||||
25
Framework/external/embree/common/cmake/installTBB.cmake
vendored
Normal file
25
Framework/external/embree/common/cmake/installTBB.cmake
vendored
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
## Copyright 2009-2021 Intel Corporation
|
||||
## SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
IF (EMBREE_INSTALL_DEPENDENCIES)
|
||||
IF (TARGET TBB::${EMBREE_TBB_COMPONENT})
|
||||
GET_TARGET_PROPERTY(LIB_PATH TBB::${EMBREE_TBB_COMPONENT} IMPORTED_LOCATION_RELEASE)
|
||||
IF(WIN32)
|
||||
INSTALL(FILES "${LIB_PATH}" DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT examples)
|
||||
GET_TARGET_PROPERTY(IMPLIB_PATH TBB::${EMBREE_TBB_COMPONENT} IMPORTED_IMPLIB_RELEASE)
|
||||
INSTALL(FILES "${IMPLIB_PATH}" DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT lib)
|
||||
|
||||
# Include tbbmalloc.dll even though we don't use or need tbb_malloc.dll because it is searched for by tbb.dll.
|
||||
GET_FILENAME_COMPONENT(LIB_FOLDER ${LIB_PATH} DIRECTORY)
|
||||
FILE(GLOB TBB_MALLOC_FILES LIST_DIRECTORIES false "${LIB_FOLDER}/tbbmalloc.dll" "${LIB_FOLDER}/tbbmalloc?.dll")
|
||||
INSTALL(FILES "${TBB_MALLOC_FILES}" DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT examples)
|
||||
|
||||
ELSE()
|
||||
GET_FILENAME_COMPONENT(LIB_DIR "${LIB_PATH}" DIRECTORY)
|
||||
FILE(GLOB LIB_FILES ${LIB_DIR}/libtbb.* ${LIB_DIR}/libtbbmalloc.so*)
|
||||
INSTALL(FILES ${LIB_FILES} DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT lib)
|
||||
ENDIF()
|
||||
ELSE()
|
||||
MESSAGE(SEND_ERROR "Target TBB::${EMBREE_TBB_COMPONENT} not found during install.")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
176
Framework/external/embree/common/cmake/intel.cmake
vendored
Normal file
176
Framework/external/embree/common/cmake/intel.cmake
vendored
Normal file
|
|
@ -0,0 +1,176 @@
|
|||
## Copyright 2009-2021 Intel Corporation
|
||||
## SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
MACRO(_SET_IF_EMPTY VAR VALUE)
|
||||
IF(NOT ${VAR})
|
||||
SET(${VAR} "${VALUE}")
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
||||
IF (WIN32)
|
||||
|
||||
_SET_IF_EMPTY(FLAGS_SSE2 "/QxSSE2")
|
||||
_SET_IF_EMPTY(FLAGS_SSE42 "/QxSSE4.2")
|
||||
_SET_IF_EMPTY(FLAGS_AVX "/arch:AVX")
|
||||
_SET_IF_EMPTY(FLAGS_AVX2 "/QxCORE-AVX2")
|
||||
_SET_IF_EMPTY(FLAGS_AVX512 "/QxCORE-AVX512")
|
||||
|
||||
SET(COMMON_CXX_FLAGS "")
|
||||
SET(COMMON_CXX_FLAGS "${COMMON_CXX_FLAGS} /EHsc") # catch C++ exceptions only and extern "C" functions never throw a C++ exception
|
||||
SET(COMMON_CXX_FLAGS "${COMMON_CXX_FLAGS} /MP") # compile source files in parallel
|
||||
SET(COMMON_CXX_FLAGS "${COMMON_CXX_FLAGS} /GR") # enable runtime type information (on by default)
|
||||
SET(COMMON_CXX_FLAGS "${COMMON_CXX_FLAGS} /Qvec-") # disable auto vectorizer
|
||||
SET(COMMON_CXX_FLAGS "${COMMON_CXX_FLAGS} /Qfast-transcendentals-") # disable fast transcendentals, prevents sin(x),cos(x) -> sincos(x) optimization
|
||||
IF (EMBREE_STACK_PROTECTOR)
|
||||
SET(COMMON_CXX_FLAGS "${COMMON_CXX_FLAGS} /GS") # protects against return address overrides
|
||||
ELSE()
|
||||
SET(COMMON_CXX_FLAGS "${COMMON_CXX_FLAGS} /GS-") # do not protect against return address overrides
|
||||
ENDIF()
|
||||
MACRO(DISABLE_STACK_PROTECTOR_FOR_FILE file)
|
||||
IF (EMBREE_STACK_PROTECTOR)
|
||||
SET_SOURCE_FILES_PROPERTIES(${file} PROPERTIES COMPILE_FLAGS "/GS-")
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
||||
SET(COMMON_CXX_FLAGS "${COMMON_CXX_FLAGS} /Qdiag-disable:11074 ") # remark #11074: Inlining inhibited by limit max-size
|
||||
SET(COMMON_CXX_FLAGS "${COMMON_CXX_FLAGS} /Qdiag-disable:11075 ") # remark #11075: To get full report use -Qopt-report:4 -Qopt-report-phase ipo
|
||||
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${COMMON_CXX_FLAGS}")
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /DDEBUG") # enables assertions
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /DTBB_USE_DEBUG") # configures TBB in debug mode
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /Oi") # inline intrinsic functions
|
||||
SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} /DEBUG") # generate debug information
|
||||
SET(CMAKE_SHARED_LINKER_FLAGS_DEBUG "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} /DEBUG") # generate debug information
|
||||
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${COMMON_CXX_FLAGS}")
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Ox") # enable full optimizations
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Oi") # inline intrinsic functions
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Gy") # package individual functions
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Qinline-max-total-size-") # no size limit when performing inlining
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Qinline-factor=150") # increase default inline factors by 2x
|
||||
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${COMMON_CXX_FLAGS}")
|
||||
# SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /DTBB_USE_DEBUG") # configures TBB in debug mode
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /Ox") # enable full optimizations
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /Oi") # inline intrinsic functions
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /Gy") # package individual functions
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /Qinline-max-total-size-") # no size limit when performing inlining
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /Qinline-factor=150") # increase default inline factors by 2x
|
||||
SET(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO} /DEBUG") # generate debug information
|
||||
SET(CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO} /DEBUG") # generate debug information
|
||||
|
||||
SET(SECURE_LINKER_FLAGS "")
|
||||
SET(SECURE_LINKER_FLAGS "${SECURE_LINKER_FLAGS} /NXCompat") # compatible with data execution prevention (on by default)
|
||||
SET(SECURE_LINKER_FLAGS "${SECURE_LINKER_FLAGS} /DynamicBase") # random rebase of executable at load time
|
||||
IF (CMAKE_SIZEOF_VOID_P EQUAL 4)
|
||||
SET(SECURE_LINKER_FLAGS "${SECURE_LINKER_FLAGS} /SafeSEH") # invoke known exception handlers (Win32 only, x64 exception handlers are safe by design)
|
||||
ENDIF()
|
||||
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${SECURE_LINKER_FLAGS}")
|
||||
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${SECURE_LINKER_FLAGS}")
|
||||
|
||||
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /IGNORE:4217") # locally defined symbol XXX imported in function YYY (happens as the ISPC API layer uses exported library functions)
|
||||
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /IGNORE:4049") # warning LNK4049: locally defined symbol _rtcOccluded1M imported
|
||||
|
||||
INCLUDE(msvc_post)
|
||||
|
||||
# remove libmmd dependency
|
||||
IF (NOT EMBREE_STATIC_RUNTIME)
|
||||
# Use the default math library instead of libmmd[d]
|
||||
STRING(APPEND CMAKE_EXE_LINKER_FLAGS_DEBUG " /nodefaultlib:libmmdd.lib")
|
||||
STRING(APPEND CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO " /nodefaultlib:libmmd.lib")
|
||||
STRING(APPEND CMAKE_EXE_LINKER_FLAGS_RELEASE " /nodefaultlib:libmmd.lib")
|
||||
STRING(APPEND CMAKE_SHARED_LINKER_FLAGS_DEBUG " /nodefaultlib:libmmdd.lib")
|
||||
STRING(APPEND CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO " /nodefaultlib:libmmd.lib")
|
||||
STRING(APPEND CMAKE_SHARED_LINKER_FLAGS_RELEASE " /nodefaultlib:libmmd.lib")
|
||||
|
||||
# Link the static version of SVML
|
||||
string(APPEND CMAKE_EXE_LINKER_FLAGS " /defaultlib:svml_dispmt.lib")
|
||||
string(APPEND CMAKE_SHARED_LINKER_FLAGS " /defaultlib:svml_dispmt.lib")
|
||||
ENDIF()
|
||||
|
||||
ELSE()
|
||||
|
||||
IF (APPLE)
|
||||
_SET_IF_EMPTY(FLAGS_SSE2 "-xssse3") # on MacOSX ICC does not support SSE2
|
||||
ELSE()
|
||||
_SET_IF_EMPTY(FLAGS_SSE2 "-xsse2")
|
||||
ENDIF()
|
||||
_SET_IF_EMPTY(FLAGS_SSE42 "-xsse4.2")
|
||||
_SET_IF_EMPTY(FLAGS_AVX "-xAVX")
|
||||
_SET_IF_EMPTY(FLAGS_AVX2 "-xCORE-AVX2")
|
||||
_SET_IF_EMPTY(FLAGS_AVX512 "-xCORE-AVX512")
|
||||
|
||||
OPTION(EMBREE_IGNORE_CMAKE_CXX_FLAGS "When enabled Embree ignores default CMAKE_CXX_FLAGS." ON)
|
||||
IF (EMBREE_IGNORE_CMAKE_CXX_FLAGS)
|
||||
SET(CMAKE_CXX_FLAGS "")
|
||||
ENDIF()
|
||||
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") # enables most warnings
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wformat -Wformat-security") # enables string format vulnerability warnings
|
||||
|
||||
# these prevent compile to optimize away security checks
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-strict-overflow") # assume that signed overflow occurs
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-delete-null-pointer-checks") # keep all checks for NULL pointers
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fwrapv") # this option instructs the compiler to assume that signed arithmetic overflow warps around.
|
||||
|
||||
IF (NOT APPLE)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIE") # enables support for more secure position independent execution
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftls-model=local-dynamic") # otherwise ICC2019 cannot compile code with -fPIE enabled
|
||||
ENDIF()
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") # generate position independent code suitable for shared libraries
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC") # generate position independent code suitable for shared libraries
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") # enables C++11 features
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden") # makes all symbols hidden by default
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility-inlines-hidden") # makes all inline symbols hidden by default
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -no-ansi-alias") # disables strict aliasing rules
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -no-vec") # disable auto vectorizer
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fasm-blocks") # enable assembly blocks
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_FORTIFY_SOURCE=2") # perform extra security checks for some standard library calls
|
||||
IF (EMBREE_STACK_PROTECTOR)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstack-protector") # protects against return address overrides
|
||||
ENDIF()
|
||||
MACRO(DISABLE_STACK_PROTECTOR_FOR_FILE file)
|
||||
IF (EMBREE_STACK_PROTECTOR)
|
||||
SET_SOURCE_FILES_PROPERTIES(${file} PROPERTIES COMPILE_FLAGS "-fno-stack-protector")
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -restrict") # enable restrict keyword
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -no-inline-max-total-size") # no size limit when performing inlining
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -no-inline-max-per-compile") # no maximal number of inlinings per compilation unit
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -inline-factor=150") # increase default inline factors by 2x
|
||||
|
||||
IF(NOT CMAKE_CXX_COMPILER_WRAPPER STREQUAL "CrayPrgEnv")
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-intel") # links intel runtime statically
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -no-intel-extensions") # disables some intel extensions which cause symbols to be exported
|
||||
ENDIF()
|
||||
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "")
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g") # generate debug information
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG") # enable assertions
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DTBB_USE_DEBUG") # configure TBB in debug mode
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O3") # enable full optimizations
|
||||
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "")
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DNDEBUG") # disable assertions
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3") # enable full optimizations
|
||||
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "")
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -g") # generate debug information
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -DNDEBUG") # disable assertions
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O3") # enable full optimizations
|
||||
|
||||
IF (APPLE)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=10.7") # makes sure code runs on older MacOSX versions
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") # link against libc++ which supports C++11 features
|
||||
ELSE(APPLE)
|
||||
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined") # issues link error for undefined symbols in shared library
|
||||
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -z noexecstack") # we do not need an executable stack
|
||||
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -z relro -z now") # re-arranges data sections to increase security
|
||||
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -z noexecstack") # we do not need an executable stack
|
||||
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -z relro -z now") # re-arranges data sections to increase security
|
||||
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie") # enables position independent execution for executable
|
||||
ENDIF(APPLE)
|
||||
|
||||
ENDIF()
|
||||
211
Framework/external/embree/common/cmake/ispc.cmake
vendored
Normal file
211
Framework/external/embree/common/cmake/ispc.cmake
vendored
Normal file
|
|
@ -0,0 +1,211 @@
|
|||
## Copyright 2009-2021 Intel Corporation
|
||||
## SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
# ##################################################################
|
||||
# add macro INCLUDE_DIRECTORIES_ISPC() that allows to specify search
|
||||
# paths for ISPC sources
|
||||
# ##################################################################
|
||||
SET(ISPC_INCLUDE_DIR "")
|
||||
MACRO (INCLUDE_DIRECTORIES_ISPC)
|
||||
SET(ISPC_INCLUDE_DIR ${ISPC_INCLUDE_DIR} ${ARGN})
|
||||
ENDMACRO ()
|
||||
|
||||
IF (EMBREE_ISPC_SUPPORT)
|
||||
|
||||
# ISPC versions to look for, in descending order (newest first)
|
||||
SET(ISPC_VERSION_WORKING "1.9.1" "1.9.0" "1.8.3" "1.8.2")
|
||||
LIST(GET ISPC_VERSION_WORKING -1 ISPC_VERSION_REQUIRED)
|
||||
|
||||
IF (NOT EMBREE_ISPC_EXECUTABLE)
|
||||
# try sibling folder as hint for path of ISPC
|
||||
IF (APPLE)
|
||||
SET(ISPC_DIR_SUFFIX "osx")
|
||||
ELSEIF(WIN32)
|
||||
SET(ISPC_DIR_SUFFIX "windows")
|
||||
IF (MSVC14)
|
||||
LIST(APPEND ISPC_DIR_SUFFIX "windows-vs2015")
|
||||
ELSE()
|
||||
LIST(APPEND ISPC_DIR_SUFFIX "windows-vs2013")
|
||||
ENDIF()
|
||||
ELSE()
|
||||
SET(ISPC_DIR_SUFFIX "linux")
|
||||
ENDIF()
|
||||
FOREACH(ver ${ISPC_VERSION_WORKING})
|
||||
FOREACH(suffix ${ISPC_DIR_SUFFIX})
|
||||
LIST(APPEND ISPC_DIR_HINT "${PROJECT_SOURCE_DIR}/../ispc-v${ver}-${suffix}")
|
||||
ENDFOREACH()
|
||||
ENDFOREACH()
|
||||
|
||||
FIND_PROGRAM(EMBREE_ISPC_EXECUTABLE ispc PATHS ${ISPC_DIR_HINT} DOC "Path to the ISPC executable.")
|
||||
IF (NOT EMBREE_ISPC_EXECUTABLE)
|
||||
MESSAGE(FATAL_ERROR "Intel SPMD Compiler (ISPC) not found. Disable EMBREE_ISPC_SUPPORT or install ISPC.")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
# check ISPC version
|
||||
EXECUTE_PROCESS(COMMAND ${EMBREE_ISPC_EXECUTABLE} --version
|
||||
OUTPUT_VARIABLE ISPC_OUTPUT
|
||||
RESULT_VARIABLE ISPC_RESULT)
|
||||
|
||||
IF (NOT ${ISPC_RESULT} STREQUAL "0")
|
||||
MESSAGE(FATAL_ERROR "Error executing ISPC executable '${EMBREE_ISPC_EXECUTABLE}': ${ISPC_RESULT}")
|
||||
ELSE()
|
||||
MESSAGE(STATUS "Found working Intel SPMD Compiler (ISPC): ${EMBREE_ISPC_EXECUTABLE}")
|
||||
ENDIF()
|
||||
|
||||
STRING(REGEX MATCH "([0-9]+[.][0-9]+[.][0-9]+)" DUMMY "${ISPC_OUTPUT}")
|
||||
SET(ISPC_VERSION ${CMAKE_MATCH_1})
|
||||
|
||||
IF (ISPC_VERSION VERSION_LESS ISPC_VERSION_REQUIRED)
|
||||
MESSAGE(FATAL_ERROR "ISPC ${ISPC_VERSION} is too old. You need at least ISPC ${ISPC_VERSION_REQUIRED}.")
|
||||
ENDIF()
|
||||
|
||||
GET_FILENAME_COMPONENT(ISPC_DIR ${EMBREE_ISPC_EXECUTABLE} PATH)
|
||||
|
||||
SET(EMBREE_ISPC_ADDRESSING 32 CACHE STRING "32vs64 bit addressing in ispc")
|
||||
SET_PROPERTY(CACHE EMBREE_ISPC_ADDRESSING PROPERTY STRINGS 32 64)
|
||||
MARK_AS_ADVANCED(EMBREE_ISPC_ADDRESSING)
|
||||
|
||||
MACRO (ISPC_COMPILE)
|
||||
SET(ISPC_ADDITIONAL_ARGS "")
|
||||
|
||||
SET(ISPC_TARGET_EXT ${CMAKE_CXX_OUTPUT_EXTENSION})
|
||||
STRING(REPLACE ";" "," ISPC_TARGET_ARGS "${ISPC_TARGETS}")
|
||||
|
||||
IF (CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
IF (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm64|aarch64")
|
||||
SET(ISPC_ARCHITECTURE "aarch64")
|
||||
ELSE()
|
||||
SET(ISPC_ARCHITECTURE "x86-64")
|
||||
ENDIF()
|
||||
ELSE()
|
||||
SET(ISPC_ARCHITECTURE "x86")
|
||||
ENDIF()
|
||||
|
||||
SET(ISPC_TARGET_DIR "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
|
||||
IF(ISPC_INCLUDE_DIR)
|
||||
STRING(REPLACE ";" ";-I;" ISPC_INCLUDE_DIR_PARMS "${ISPC_INCLUDE_DIR}")
|
||||
SET(ISPC_INCLUDE_DIR_PARMS "-I" ${ISPC_INCLUDE_DIR_PARMS})
|
||||
ENDIF()
|
||||
|
||||
IF (WIN32 OR "${CMAKE_BUILD_TYPE}" STREQUAL "Release")
|
||||
SET(ISPC_OPT_FLAGS -O3)
|
||||
ELSE()
|
||||
SET(ISPC_OPT_FLAGS -O2)
|
||||
ENDIF()
|
||||
|
||||
IF (WIN32)
|
||||
SET(ISPC_ADDITIONAL_ARGS ${ISPC_ADDITIONAL_ARGS} --dllexport)
|
||||
ELSE()
|
||||
SET(ISPC_ADDITIONAL_ARGS ${ISPC_ADDITIONAL_ARGS} --pic)
|
||||
ENDIF()
|
||||
|
||||
SET(ISPC_OBJECTS "")
|
||||
|
||||
FOREACH(src ${ARGN})
|
||||
GET_FILENAME_COMPONENT(fname ${src} NAME_WE)
|
||||
GET_FILENAME_COMPONENT(dir ${src} PATH)
|
||||
|
||||
SET(outdir "${ISPC_TARGET_DIR}/${dir}")
|
||||
SET(input "${CMAKE_CURRENT_SOURCE_DIR}/${src}")
|
||||
|
||||
SET(deps "")
|
||||
IF (EXISTS ${outdir}/${fname}.dev.idep)
|
||||
FILE(READ ${outdir}/${fname}.dev.idep contents)
|
||||
STRING(REPLACE " " ";" contents "${contents}")
|
||||
STRING(REPLACE ";" "\\\\;" contents "${contents}")
|
||||
STRING(REPLACE "\n" ";" contents "${contents}")
|
||||
FOREACH(dep ${contents})
|
||||
IF (EXISTS ${dep})
|
||||
SET(deps ${deps} ${dep})
|
||||
ENDIF (EXISTS ${dep})
|
||||
ENDFOREACH(dep ${contents})
|
||||
ENDIF ()
|
||||
|
||||
SET(results "${outdir}/${fname}.dev${ISPC_TARGET_EXT}")
|
||||
|
||||
# if we have multiple targets add additional object files
|
||||
LIST(LENGTH ISPC_TARGETS NUM_TARGETS)
|
||||
IF (NUM_TARGETS GREATER 1)
|
||||
FOREACH(target ${ISPC_TARGETS})
|
||||
IF (${target} STREQUAL "avx512skx-i32x16")
|
||||
SET(target "avx512skx")
|
||||
ENDIF()
|
||||
SET(results ${results} "${outdir}/${fname}.dev_${target}${ISPC_TARGET_EXT}")
|
||||
ENDFOREACH()
|
||||
ENDIF()
|
||||
|
||||
ADD_CUSTOM_COMMAND(
|
||||
OUTPUT ${results} "${ISPC_TARGET_DIR}/${fname}_ispc.h"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${outdir}
|
||||
COMMAND ${EMBREE_ISPC_EXECUTABLE}
|
||||
-I "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
${ISPC_INCLUDE_DIR_PARMS}
|
||||
${ISPC_DEFINITIONS}
|
||||
--arch=${ISPC_ARCHITECTURE}
|
||||
--addressing=${EMBREE_ISPC_ADDRESSING}
|
||||
${ISPC_OPT_FLAGS}
|
||||
--target=${ISPC_TARGET_ARGS}
|
||||
--woff
|
||||
--opt=fast-math
|
||||
${ISPC_ADDITIONAL_ARGS}
|
||||
-h "${ISPC_TARGET_DIR}/${fname}_ispc.h"
|
||||
-MMM ${outdir}/${fname}.dev.idep
|
||||
-o ${outdir}/${fname}.dev${ISPC_TARGET_EXT}
|
||||
${input}
|
||||
DEPENDS ${input} ${deps}
|
||||
COMMENT "Building ISPC object ${outdir}/${fname}.dev${ISPC_TARGET_EXT}"
|
||||
)
|
||||
|
||||
SET(ISPC_OBJECTS ${ISPC_OBJECTS} ${results})
|
||||
ENDFOREACH()
|
||||
ENDMACRO()
|
||||
|
||||
MACRO (ADD_EMBREE_ISPC_EXECUTABLE name)
|
||||
SET(ISPC_SOURCES "")
|
||||
SET(OTHER_SOURCES "")
|
||||
FOREACH(src ${ARGN})
|
||||
GET_FILENAME_COMPONENT(ext ${src} EXT)
|
||||
IF (ext STREQUAL ".ispc")
|
||||
SET(ISPC_SOURCES ${ISPC_SOURCES} ${src})
|
||||
ELSE ()
|
||||
SET(OTHER_SOURCES ${OTHER_SOURCES} ${src})
|
||||
ENDIF ()
|
||||
ENDFOREACH()
|
||||
ISPC_COMPILE(${ISPC_SOURCES})
|
||||
ADD_EXECUTABLE(${name} ${ISPC_OBJECTS} ${OTHER_SOURCES})
|
||||
ENDMACRO()
|
||||
|
||||
MACRO (ADD_ISPC_LIBRARY name type)
|
||||
SET(ISPC_SOURCES "")
|
||||
SET(OTHER_SOURCES "")
|
||||
FOREACH(src ${ARGN})
|
||||
GET_FILENAME_COMPONENT(ext ${src} EXT)
|
||||
IF (ext STREQUAL ".ispc")
|
||||
SET(ISPC_SOURCES ${ISPC_SOURCES} ${src})
|
||||
ELSE ()
|
||||
SET(OTHER_SOURCES ${OTHER_SOURCES} ${src})
|
||||
ENDIF ()
|
||||
ENDFOREACH()
|
||||
ISPC_COMPILE(${ISPC_SOURCES})
|
||||
ADD_LIBRARY(${name} ${type} ${ISPC_OBJECTS} ${OTHER_SOURCES})
|
||||
ENDMACRO()
|
||||
|
||||
ELSE (EMBREE_ISPC_SUPPORT)
|
||||
|
||||
MACRO (ADD_ISPC_LIBRARY name type)
|
||||
SET(ISPC_SOURCES "")
|
||||
SET(OTHER_SOURCES "")
|
||||
FOREACH(src ${ARGN})
|
||||
GET_FILENAME_COMPONENT(ext ${src} EXT)
|
||||
IF (ext STREQUAL ".ispc")
|
||||
SET(ISPC_SOURCES ${ISPC_SOURCES} ${src})
|
||||
ELSE ()
|
||||
SET(OTHER_SOURCES ${OTHER_SOURCES} ${src})
|
||||
ENDIF ()
|
||||
ENDFOREACH()
|
||||
ADD_LIBRARY(${name} ${type} ${OTHER_SOURCES})
|
||||
ENDMACRO()
|
||||
|
||||
ENDIF (EMBREE_ISPC_SUPPORT)
|
||||
60
Framework/external/embree/common/cmake/msvc.cmake
vendored
Normal file
60
Framework/external/embree/common/cmake/msvc.cmake
vendored
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
## Copyright 2009-2021 Intel Corporation
|
||||
## SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
SET(FLAGS_SSE2 "/D__SSE__ /D__SSE2__")
|
||||
SET(FLAGS_SSE42 "${FLAGS_SSE2} /D__SSE3__ /D__SSSE3__ /D__SSE4_1__ /D__SSE4_2__")
|
||||
SET(FLAGS_AVX "${FLAGS_SSE42} /arch:AVX")
|
||||
SET(FLAGS_AVX2 "${FLAGS_SSE42} /arch:AVX2")
|
||||
|
||||
SET(COMMON_CXX_FLAGS "")
|
||||
SET(COMMON_CXX_FLAGS "${COMMON_CXX_FLAGS} /EHsc") # catch C++ exceptions only and extern "C" functions never throw a C++ exception
|
||||
SET(COMMON_CXX_FLAGS "${COMMON_CXX_FLAGS} /MP") # compile source files in parallel
|
||||
SET(COMMON_CXX_FLAGS "${COMMON_CXX_FLAGS} /GR") # enable runtime type information (on by default)
|
||||
SET(COMMON_CXX_FLAGS "${COMMON_CXX_FLAGS} /Gy") # package individual functions
|
||||
IF (EMBREE_STACK_PROTECTOR)
|
||||
SET(COMMON_CXX_FLAGS "${COMMON_CXX_FLAGS} /GS") # protects against return address overrides
|
||||
ELSE()
|
||||
SET(COMMON_CXX_FLAGS "${COMMON_CXX_FLAGS} /GS-") # do not protect against return address overrides
|
||||
ENDIF()
|
||||
MACRO(DISABLE_STACK_PROTECTOR_FOR_FILE file)
|
||||
IF (EMBREE_STACK_PROTECTOR)
|
||||
SET_SOURCE_FILES_PROPERTIES(${file} PROPERTIES COMPILE_FLAGS "/GS-")
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
||||
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /DEPENDENTLOADFLAG:0x2000")
|
||||
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /DEPENDENTLOADFLAG:0x2000")
|
||||
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${COMMON_CXX_FLAGS}")
|
||||
STRING(REPLACE "/RTC1" "" CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG}) # disable native runtime checks
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /DDEBUG") # enables assertions
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /DTBB_USE_DEBUG") # configures TBB in debug mode
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /Ox") # enable full optimizations
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /Oi") # inline intrinsic functions
|
||||
SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} /DEBUG") # generate debug information
|
||||
SET(CMAKE_SHARED_LINKER_FLAGS_DEBUG "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} /DEBUG") # generate debug information
|
||||
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${COMMON_CXX_FLAGS}")
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Ox") # enable full optimizations
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Oi") # inline intrinsic functions
|
||||
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${COMMON_CXX_FLAGS}")
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /Ox") # enable full optimizations
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /Oi") # inline intrinsic functions
|
||||
SET(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO} /DEBUG") # generate debug information
|
||||
SET(CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO} /DEBUG") # generate debug information
|
||||
|
||||
SET(SECURE_LINKER_FLAGS "")
|
||||
SET(SECURE_LINKER_FLAGS "${SECURE_LINKER_FLAGS} /NXCompat") # compatible with data execution prevention (on by default)
|
||||
SET(SECURE_LINKER_FLAGS "${SECURE_LINKER_FLAGS} /DynamicBase") # random rebase of executable at load time
|
||||
IF (CMAKE_SIZEOF_VOID_P EQUAL 4)
|
||||
SET(SECURE_LINKER_FLAGS "${SECURE_LINKER_FLAGS} /SafeSEH") # invoke known exception handlers (Win32 only, x64 exception handlers are safe by design)
|
||||
ENDIF()
|
||||
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${SECURE_LINKER_FLAGS}")
|
||||
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${SECURE_LINKER_FLAGS}")
|
||||
|
||||
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /IGNORE:4217") # locally defined symbol XXX imported in function YYY (happens as the ISPC API layer uses exported library functions)
|
||||
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /IGNORE:4049") # warning LNK4049: locally defined symbol _rtcOccluded1M imported
|
||||
|
||||
INCLUDE(msvc_post)
|
||||
|
||||
13
Framework/external/embree/common/cmake/msvc_post.cmake
vendored
Normal file
13
Framework/external/embree/common/cmake/msvc_post.cmake
vendored
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
## Copyright 2009-2021 Intel Corporation
|
||||
## SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
# optionally use static runtime library
|
||||
OPTION(EMBREE_STATIC_RUNTIME "Use the static version of the C/C++ runtime library." OFF)
|
||||
IF (EMBREE_STATIC_RUNTIME)
|
||||
STRING(REPLACE "/MDd" "/MTd" CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG})
|
||||
STRING(REPLACE "/MD" "/MT" CMAKE_CXX_FLAGS_RELWITHDEBINFO ${CMAKE_CXX_FLAGS_RELWITHDEBINFO})
|
||||
STRING(REPLACE "/MD" "/MT" CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE})
|
||||
ENDIF()
|
||||
|
||||
# remove define NDEBUG and instead set define DEBUG for config RelWithDebInfo
|
||||
STRING(REPLACE "NDEBUG" "DEBUG" CMAKE_CXX_FLAGS_RELWITHDEBINFO ${CMAKE_CXX_FLAGS_RELWITHDEBINFO})
|
||||
359
Framework/external/embree/common/cmake/package.cmake
vendored
Normal file
359
Framework/external/embree/common/cmake/package.cmake
vendored
Normal file
|
|
@ -0,0 +1,359 @@
|
|||
## Copyright 2009-2021 Intel Corporation
|
||||
## SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
INCLUDE(GNUInstallDirs)
|
||||
|
||||
IF (NOT EMBREE_ZIP_MODE AND NOT WIN32 AND NOT APPLE)
|
||||
SET(CMAKE_INSTALL_BINDIR "${CMAKE_INSTALL_BINDIR}/embree${EMBREE_VERSION_MAJOR}")
|
||||
SET(CMAKE_INSTALL_FULL_BINDIR "${CMAKE_INSTALL_FULL_BINDIR}/embree${EMBREE_VERSION_MAJOR}")
|
||||
ENDIF()
|
||||
|
||||
# use full absolute path as install name
|
||||
IF (NOT EMBREE_ZIP_MODE)
|
||||
SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_FULL_LIBDIR}")
|
||||
ELSE()
|
||||
IF(APPLE)
|
||||
SET(CMAKE_INSTALL_RPATH "@loader_path/../${CMAKE_INSTALL_LIBDIR}")
|
||||
ELSE()
|
||||
SET(CMAKE_INSTALL_RPATH "$ORIGIN/../${CMAKE_INSTALL_LIBDIR}")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
##############################################################
|
||||
# Install SYCL specific files
|
||||
##############################################################
|
||||
|
||||
# SYCL library
|
||||
IF (EMBREE_SYCL_SUPPORT AND EMBREE_INSTALL_DEPENDENCIES)
|
||||
GET_FILENAME_COMPONENT(DPCPP_COMPILER_DIR ${CMAKE_CXX_COMPILER} PATH)
|
||||
|
||||
IF (WIN32)
|
||||
|
||||
FILE(GLOB LIB_SYCL_LIB_FILES LIST_DIRECTORIES FALSE
|
||||
"${DPCPP_COMPILER_DIR}/../lib/sycl.lib"
|
||||
"${DPCPP_COMPILER_DIR}/../lib/sycl?.lib")
|
||||
INSTALL(FILES ${LIB_SYCL_LIB_FILES} DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT lib)
|
||||
|
||||
FILE(GLOB LIB_SYCL_DLL_FILES LIST_DIRECTORIES FALSE
|
||||
"${DPCPP_COMPILER_DIR}/../bin/sycl.dll"
|
||||
"${DPCPP_COMPILER_DIR}/../bin/sycl?.dll")
|
||||
INSTALL(FILES ${LIB_SYCL_DLL_FILES} DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT lib)
|
||||
|
||||
INSTALL(FILES "${DPCPP_COMPILER_DIR}/pi_level_zero.dll" DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT lib)
|
||||
INSTALL(FILES "${DPCPP_COMPILER_DIR}/win_proxy_loader.dll" DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT lib OPTIONAL)
|
||||
|
||||
IF (EXISTS "${DPCPP_COMPILER_DIR}/../redist/intel64_win/compiler/svml_dispmd.dll")
|
||||
INSTALL(FILES "${DPCPP_COMPILER_DIR}/../redist/intel64_win/compiler/svml_dispmd.dll" DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT lib)
|
||||
ENDIF()
|
||||
IF (EXISTS "${DPCPP_COMPILER_DIR}/../redist/intel64_win/compiler/libmmd.dll")
|
||||
INSTALL(FILES "${DPCPP_COMPILER_DIR}/../redist/intel64_win/compiler/libmmd.dll" DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT lib)
|
||||
ENDIF()
|
||||
IF (EXISTS "${DPCPP_COMPILER_DIR}/libmmd.dll")
|
||||
INSTALL(FILES "${DPCPP_COMPILER_DIR}/libmmd.dll" DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT lib)
|
||||
ENDIF()
|
||||
|
||||
IF (EXISTS "${DPCPP_COMPILER_DIR}/pi_win_proxy_loader.dll")
|
||||
INSTALL(FILES "${DPCPP_COMPILER_DIR}/pi_win_proxy_loader.dll" DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT lib)
|
||||
ENDIF()
|
||||
ELSE()
|
||||
|
||||
FILE(GLOB LIB_SYCL_FILES LIST_DIRECTORIES FALSE
|
||||
"${DPCPP_COMPILER_DIR}/../lib/libsycl.so"
|
||||
"${DPCPP_COMPILER_DIR}/../lib/libsycl.so.?"
|
||||
"${DPCPP_COMPILER_DIR}/../lib/libsycl.so.?.?"
|
||||
"${DPCPP_COMPILER_DIR}/../lib/libsycl.so.?.?.?"
|
||||
"${DPCPP_COMPILER_DIR}/../lib/libsycl.so.?.?.?-?")
|
||||
INSTALL(FILES ${LIB_SYCL_FILES} DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT lib)
|
||||
|
||||
INSTALL(FILES "${DPCPP_COMPILER_DIR}/../lib/libpi_level_zero.so" DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT lib)
|
||||
|
||||
IF (EXISTS "${DPCPP_COMPILER_DIR}/../compiler/lib/intel64_lin/libsvml.so")
|
||||
INSTALL(FILES "${DPCPP_COMPILER_DIR}/../compiler/lib/intel64_lin/libsvml.so" DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT lib)
|
||||
ENDIF()
|
||||
IF (EXISTS "${DPCPP_COMPILER_DIR}/../compiler/lib/intel64_lin/libirng.so")
|
||||
INSTALL(FILES "${DPCPP_COMPILER_DIR}/../compiler/lib/intel64_lin/libirng.so" DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT lib)
|
||||
ENDIF()
|
||||
IF (EXISTS "${DPCPP_COMPILER_DIR}/../compiler/lib/intel64_lin/libimf.so")
|
||||
INSTALL(FILES "${DPCPP_COMPILER_DIR}/../compiler/lib/intel64_lin/libimf.so" DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT lib)
|
||||
ENDIF()
|
||||
IF (EXISTS "${DPCPP_COMPILER_DIR}/../compiler/lib/intel64_lin/libintlc.so")
|
||||
FILE(GLOB LIB_SYCL_FILES LIST_DIRECTORIES FALSE
|
||||
"${DPCPP_COMPILER_DIR}/../compiler/lib/intel64_lin/libintlc.so"
|
||||
"${DPCPP_COMPILER_DIR}/../compiler/lib/intel64_lin/libintlc.so.?")
|
||||
INSTALL(FILES ${LIB_SYCL_FILES} DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT lib)
|
||||
ENDIF()
|
||||
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
##############################################################
|
||||
# Install MSVC runtime
|
||||
##############################################################
|
||||
|
||||
IF (WIN32)
|
||||
IF(SYCL_ONEAPI_ICX AND EMBREE_INSTALL_DEPENDENCIES)
|
||||
GET_FILENAME_COMPONENT(DPCPP_COMPILER_DIR ${CMAKE_CXX_COMPILER} PATH)
|
||||
IF (EXISTS "${DPCPP_COMPILER_DIR}/../redist/intel64_win/compiler/libmmd.dll")
|
||||
INSTALL(FILES "${DPCPP_COMPILER_DIR}/../redist/intel64_win/compiler/libmmd.dll" DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT lib)
|
||||
ENDIF()
|
||||
IF (EXISTS "${DPCPP_COMPILER_DIR}//libmmd.dll")
|
||||
INSTALL(FILES "${DPCPP_COMPILER_DIR}/libmmd.dll" DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT lib)
|
||||
ENDIF()
|
||||
IF (EXISTS "${DPCPP_COMPILER_DIR}/../redist/intel64_win/compiler/svml_dispmd.dll")
|
||||
INSTALL(FILES "${DPCPP_COMPILER_DIR}/../redist/intel64_win/compiler/svml_dispmd.dll" DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT lib)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
SET(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP TRUE)
|
||||
SET(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS TRUE)
|
||||
INCLUDE(InstallRequiredSystemLibraries)
|
||||
LIST(FILTER CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS INCLUDE REGEX ".*msvcp[0-9]+\.dll|.*vcruntime[0-9]+\.dll|.*vcruntime[0-9]+_[0-9]+\.dll")
|
||||
INSTALL(FILES ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS} DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT lib)
|
||||
|
||||
ELSE()
|
||||
|
||||
IF(SYCL_ONEAPI_ICX AND EMBREE_INSTALL_DEPENDENCIES)
|
||||
|
||||
GET_FILENAME_COMPONENT(DPCPP_COMPILER_DIR ${CMAKE_CXX_COMPILER} PATH)
|
||||
IF (EXISTS "${DPCPP_COMPILER_DIR}/../compiler/lib/intel64_lin/libsvml.so")
|
||||
INSTALL(FILES "${DPCPP_COMPILER_DIR}/../compiler/lib/intel64_lin/libsvml.so" DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT lib)
|
||||
ENDIF()
|
||||
|
||||
IF (EXISTS "${DPCPP_COMPILER_DIR}/../compiler/lib/intel64_lin/libirng.so")
|
||||
INSTALL(FILES "${DPCPP_COMPILER_DIR}/../compiler/lib/intel64_lin/libirng.so" DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT lib)
|
||||
ENDIF()
|
||||
|
||||
IF (EXISTS "${DPCPP_COMPILER_DIR}/../compiler/lib/intel64_lin/libimf.so")
|
||||
INSTALL(FILES "${DPCPP_COMPILER_DIR}/../compiler/lib/intel64_lin/libimf.so" DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT lib)
|
||||
ENDIF()
|
||||
|
||||
IF (EXISTS "${DPCPP_COMPILER_DIR}/../compiler/lib/intel64_lin/libintlc.so")
|
||||
FILE(GLOB LIB_SYCL_FILES LIST_DIRECTORIES FALSE
|
||||
"${DPCPP_COMPILER_DIR}/../compiler/lib/intel64_lin/libintlc.so"
|
||||
"${DPCPP_COMPILER_DIR}/../compiler/lib/intel64_lin/libintlc.so.?")
|
||||
INSTALL(FILES ${LIB_SYCL_FILES} DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT lib)
|
||||
ENDIF()
|
||||
|
||||
ENDIF()
|
||||
|
||||
ENDIF()
|
||||
|
||||
##############################################################
|
||||
# Install Headers
|
||||
##############################################################
|
||||
|
||||
INSTALL(DIRECTORY include/embree4 DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" COMPONENT devel)
|
||||
IF (NOT WIN32)
|
||||
INSTALL(DIRECTORY man/man3 DESTINATION "${CMAKE_INSTALL_MANDIR}" COMPONENT devel)
|
||||
ENDIF()
|
||||
|
||||
##############################################################
|
||||
# Install Models
|
||||
##############################################################
|
||||
|
||||
IF (EMBREE_TUTORIALS)
|
||||
INSTALL(DIRECTORY tutorials/models DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT examples)
|
||||
ENDIF()
|
||||
|
||||
##############################################################
|
||||
# Install Documentation
|
||||
##############################################################
|
||||
|
||||
INSTALL(FILES "${PROJECT_SOURCE_DIR}/LICENSE.txt" DESTINATION "${CMAKE_INSTALL_DOCDIR}" COMPONENT lib)
|
||||
INSTALL(FILES "${PROJECT_SOURCE_DIR}/CHANGELOG.md" DESTINATION "${CMAKE_INSTALL_DOCDIR}" COMPONENT lib)
|
||||
INSTALL(FILES "${PROJECT_SOURCE_DIR}/README.md" DESTINATION "${CMAKE_INSTALL_DOCDIR}" COMPONENT lib)
|
||||
INSTALL(FILES "${PROJECT_SOURCE_DIR}/readme.pdf" DESTINATION "${CMAKE_INSTALL_DOCDIR}" COMPONENT lib)
|
||||
INSTALL(FILES "${PROJECT_SOURCE_DIR}/third-party-programs.txt" DESTINATION "${CMAKE_INSTALL_DOCDIR}" COMPONENT lib)
|
||||
INSTALL(FILES "${PROJECT_SOURCE_DIR}/third-party-programs-TBB.txt" DESTINATION "${CMAKE_INSTALL_DOCDIR}" COMPONENT lib)
|
||||
INSTALL(FILES "${PROJECT_SOURCE_DIR}/third-party-programs-OIDN.txt" DESTINATION "${CMAKE_INSTALL_DOCDIR}" COMPONENT lib)
|
||||
INSTALL(FILES "${PROJECT_SOURCE_DIR}/third-party-programs-DPCPP.txt" DESTINATION "${CMAKE_INSTALL_DOCDIR}" COMPONENT lib)
|
||||
INSTALL(FILES "${PROJECT_SOURCE_DIR}/third-party-programs-oneAPI-DPCPP.txt" DESTINATION "${CMAKE_INSTALL_DOCDIR}" COMPONENT lib)
|
||||
|
||||
##############################################################
|
||||
# Install scripts to set embree paths
|
||||
##############################################################
|
||||
|
||||
IF (EMBREE_ZIP_MODE)
|
||||
IF (WIN32)
|
||||
ELSEIF(APPLE)
|
||||
CONFIGURE_FILE("${PROJECT_SOURCE_DIR}/scripts/install_macosx/embree-vars.sh" embree-vars.sh @ONLY)
|
||||
CONFIGURE_FILE("${PROJECT_SOURCE_DIR}/scripts/install_macosx/embree-vars.csh" embree-vars.csh @ONLY)
|
||||
INSTALL(FILES "${PROJECT_BINARY_DIR}/embree-vars.sh" DESTINATION "." COMPONENT lib)
|
||||
INSTALL(FILES "${PROJECT_BINARY_DIR}/embree-vars.csh" DESTINATION "." COMPONENT lib)
|
||||
ELSE()
|
||||
CONFIGURE_FILE("${PROJECT_SOURCE_DIR}/scripts/install_linux/embree-vars.sh" embree-vars.sh @ONLY)
|
||||
CONFIGURE_FILE("${PROJECT_SOURCE_DIR}/scripts/install_linux/embree-vars.csh" embree-vars.csh @ONLY)
|
||||
INSTALL(FILES "${PROJECT_BINARY_DIR}/embree-vars.sh" DESTINATION "." COMPONENT lib)
|
||||
INSTALL(FILES "${PROJECT_BINARY_DIR}/embree-vars.csh" DESTINATION "." COMPONENT lib)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
##############################################################
|
||||
# Install Embree CMake Configuration
|
||||
##############################################################
|
||||
|
||||
IF (NOT EMBREE_ZIP_MODE)
|
||||
SET(EMBREE_CONFIG_VERSION ${EMBREE_VERSION})
|
||||
ELSE()
|
||||
SET(EMBREE_CONFIG_VERSION ${EMBREE_VERSION_MAJOR})
|
||||
ENDIF()
|
||||
|
||||
# why does this have to be so complicated...
|
||||
IF (EMBREE_STATIC_LIB)
|
||||
SET(EMBREE_LIBRARY_FULLNAME ${CMAKE_STATIC_LIBRARY_PREFIX}${EMBREE_LIBRARY_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX})
|
||||
ELSE()
|
||||
IF (WIN32)
|
||||
SET(EMBREE_LIBRARY_FULLNAME ${CMAKE_IMPORT_LIBRARY_PREFIX}${EMBREE_LIBRARY_NAME}${CMAKE_IMPORT_LIBRARY_SUFFIX})
|
||||
ELSEIF (APPLE)
|
||||
SET(EMBREE_LIBRARY_FULLNAME ${CMAKE_SHARED_LIBRARY_PREFIX}${EMBREE_LIBRARY_NAME}.${EMBREE_CONFIG_VERSION}${CMAKE_SHARED_LIBRARY_SUFFIX})
|
||||
ELSE()
|
||||
SET(EMBREE_LIBRARY_FULLNAME ${CMAKE_SHARED_LIBRARY_PREFIX}${EMBREE_LIBRARY_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}.${EMBREE_CONFIG_VERSION})
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
#IF (WIN32 OR EMBREE_ZIP_MODE)
|
||||
# for local "installs" and on Windows we want the cmake config files placed
|
||||
# in the install root, such that users can point the CMake variable
|
||||
# embree_DIR just to the install folder
|
||||
# SET(EMBREE_CMAKECONFIG_DIR ".")
|
||||
# SET(EMBREE_CMAKEEXPORT_DIR "cmake")
|
||||
# SET(EMBREE_RELATIVE_ROOT_DIR ".")
|
||||
#ELSE()
|
||||
SET(EMBREE_CMAKECONFIG_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/embree-${EMBREE_VERSION}")
|
||||
SET(EMBREE_CMAKEEXPORT_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/embree-${EMBREE_VERSION}")
|
||||
IF (WIN32)
|
||||
SET(EMBREE_RELATIVE_ROOT_DIR "../../../")
|
||||
ELSE()
|
||||
FILE(RELATIVE_PATH EMBREE_RELATIVE_ROOT_DIR "/${EMBREE_CMAKECONFIG_DIR}" "/")
|
||||
ENDIF()
|
||||
#ENDIF()
|
||||
|
||||
CONFIGURE_FILE(common/cmake/embree-config.cmake embree-config-install.cmake @ONLY)
|
||||
CONFIGURE_FILE(common/cmake/embree-config-version.cmake embree-config-version.cmake @ONLY)
|
||||
# create a config file for the build directory
|
||||
CONFIGURE_FILE(common/cmake/embree-config-builddir.cmake embree-config.cmake @ONLY)
|
||||
|
||||
INSTALL(FILES "${PROJECT_BINARY_DIR}/embree-config-install.cmake" DESTINATION "${EMBREE_CMAKECONFIG_DIR}" RENAME "embree-config.cmake" COMPONENT devel)
|
||||
INSTALL(FILES "${PROJECT_BINARY_DIR}/embree-config-version.cmake" DESTINATION "${EMBREE_CMAKECONFIG_DIR}" COMPONENT devel)
|
||||
|
||||
##############################################################
|
||||
# CPack specific stuff
|
||||
##############################################################
|
||||
|
||||
SET(CPACK_PACKAGE_NAME "Intel(R) Embree Ray Tracing Kernels")
|
||||
SET(CPACK_PACKAGE_FILE_NAME "embree-${EMBREE_VERSION}${EMBREE_VERSION_NOTE}")
|
||||
IF (EMBREE_SYCL_SUPPORT)
|
||||
SET(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_FILE_NAME}.sycl")
|
||||
SET(EMBREE_VERSION_SUFFIX)
|
||||
ENDIF()
|
||||
#SET(CPACK_PACKAGE_ICON "${PROJECT_SOURCE_DIR}/embree-doc/images/icon.png")
|
||||
#SET(CPACK_PACKAGE_RELOCATABLE TRUE)
|
||||
SET(CPACK_STRIP_FILES TRUE)
|
||||
|
||||
SET(CPACK_PACKAGE_VERSION_MAJOR ${EMBREE_VERSION_MAJOR})
|
||||
SET(CPACK_PACKAGE_VERSION_MINOR ${EMBREE_VERSION_MINOR})
|
||||
SET(CPACK_PACKAGE_VERSION_PATCH ${EMBREE_VERSION_PATCH})
|
||||
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Intel(R) Embree implements high performance ray tracing kernels including acceleration structure construction and traversal.")
|
||||
SET(CPACK_PACKAGE_VENDOR "Intel Corporation")
|
||||
SET(CPACK_PACKAGE_CONTACT embree_support@intel.com)
|
||||
|
||||
|
||||
SET(CPACK_ARCHIVE_COMPONENT_INSTALL ON)
|
||||
SET(CPACK_COMPONENTS_GROUPING ONE_PER_GROUP)
|
||||
|
||||
SET(CPACK_COMPONENT_LIB_DISPLAY_NAME "Library")
|
||||
SET(CPACK_COMPONENT_LIB_DESCRIPTION "The Embree library including documentation.")
|
||||
SET(CPACK_COMPONENT_LIB_GROUP "embree")
|
||||
|
||||
SET(CPACK_COMPONENT_DEVEL_DISPLAY_NAME "Development")
|
||||
SET(CPACK_COMPONENT_DEVEL_DESCRIPTION "Header Files for C and ISPC required to develop applications with Embree.")
|
||||
SET(CPACK_COMPONENT_DEVEL_GROUP "embree")
|
||||
|
||||
SET(CPACK_COMPONENT_EXAMPLES_DISPLAY_NAME "Examples")
|
||||
SET(CPACK_COMPONENT_EXAMPLES_DESCRIPTION "Tutorials demonstrating how to use Embree.")
|
||||
SET(CPACK_COMPONENT_EXAMPLES_GROUP "embree")
|
||||
|
||||
SET(CPACK_COMPONENT_TESTING_DISPLAY_NAME "Testing")
|
||||
SET(CPACK_COMPONENT_TESTING_DESCRIPTION "Models and reference images for tests")
|
||||
SET(CPACK_COMPONENT_TESTING_GROUP "embree-testing")
|
||||
|
||||
# dependencies between components
|
||||
#SET(CPACK_COMPONENT_DEVEL_DEPENDS lib)
|
||||
#SET(CPACK_COMPONENT_EXAMPLES_DEPENDS lib)
|
||||
#SET(CPACK_COMPONENT_LIB_REQUIRED ON) # always install the libs
|
||||
|
||||
# point to readme and license files
|
||||
SET(CPACK_RESOURCE_FILE_README "${PROJECT_SOURCE_DIR}/README.md")
|
||||
SET(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE.txt")
|
||||
|
||||
# Windows specific settings
|
||||
IF(WIN32)
|
||||
IF (CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
SET(ARCH x64)
|
||||
SET(CPACK_PACKAGE_NAME "${CPACK_PACKAGE_NAME} x64")
|
||||
ELSE()
|
||||
SET(ARCH win32)
|
||||
SET(CPACK_PACKAGE_NAME "${CPACK_PACKAGE_NAME} Win32")
|
||||
ENDIF()
|
||||
|
||||
SET(CPACK_GENERATOR ZIP)
|
||||
SET(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_FILE_NAME}.${ARCH}.windows")
|
||||
SET(PACKAGE_BASE_NAME "${CPACK_PACKAGE_FILE_NAME}")
|
||||
SET(PACKAGE_EXT "zip")
|
||||
|
||||
# MacOSX specific settings
|
||||
ELSEIF(APPLE)
|
||||
|
||||
CONFIGURE_FILE(README.md README.txt)
|
||||
SET(CPACK_RESOURCE_FILE_README "${PROJECT_BINARY_DIR}/README.txt")
|
||||
|
||||
SET(CPACK_GENERATOR ZIP)
|
||||
IF (EMBREE_ARM)
|
||||
SET(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_FILE_NAME}.arm64.macosx")
|
||||
ELSE()
|
||||
SET(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_FILE_NAME}.x86_64.macosx")
|
||||
ENDIF()
|
||||
SET(PACKAGE_BASE_NAME "${CPACK_PACKAGE_FILE_NAME}")
|
||||
SET(PACKAGE_EXT "zip")
|
||||
|
||||
add_custom_target(
|
||||
post_package_notarize "${PROJECT_SOURCE_DIR}/scripts/package_post_build_notarize_macosx.sh" ${PACKAGE_BASE_NAME} ${EMBREE_SIGN_FILE}
|
||||
)
|
||||
|
||||
# Linux specific settings
|
||||
ELSE()
|
||||
SET(CPACK_GENERATOR TGZ)
|
||||
SET(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_FILE_NAME}.x86_64.linux")
|
||||
SET(PACKAGE_BASE_NAME "${CPACK_PACKAGE_FILE_NAME}")
|
||||
SET(PACKAGE_EXT "tar.gz")
|
||||
IF (EMBREE_SYCL_SUPPORT)
|
||||
SET(EMBREE_VERSION_SYCL_SUFFIX ".sycl")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
|
||||
add_custom_target(
|
||||
build ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE} --target package -j8
|
||||
COMMAND ${CMAKE_COMMAND} -DPACKAGE_BASENAME=${PACKAGE_BASE_NAME} -DPACKAGE_EXT=${PACKAGE_EXT} -P ${PROJECT_SOURCE_DIR}/scripts/package_build.cmake
|
||||
)
|
||||
|
||||
add_custom_target(
|
||||
test_package ${CMAKE_COMMAND} -DWHAT="UNPACK" -DPACKAGE_BASENAME=${PACKAGE_BASE_NAME} -DPACKAGE_EXT=${PACKAGE_EXT} -P ${PROJECT_SOURCE_DIR}/scripts/package_test.cmake
|
||||
COMMAND cd embree_install/testing && ${CMAKE_COMMAND} -B build -DEMBREE_TESTING_INTENSITY=${EMBREE_TESTING_INTENSITY}
|
||||
COMMAND ctest --test-dir ${CMAKE_CURRENT_BINARY_DIR}/embree_install/testing/build -VV -C ${CMAKE_BUILD_TYPE} --output-log ctest.output
|
||||
COMMAND ${CMAKE_COMMAND} -DWHAT="CHECK" -P ${PROJECT_SOURCE_DIR}/scripts/package_test.cmake
|
||||
)
|
||||
|
||||
|
||||
if(WIN32)
|
||||
set(INTEGRATE_BINARY "./build/Release/test.exe")
|
||||
else()
|
||||
set(INTEGRATE_BINARY "./build/test")
|
||||
endif()
|
||||
|
||||
add_custom_target(
|
||||
test_integration ${CMAKE_COMMAND} -DWHAT="UNPACK" -DPACKAGE_BASENAME=${PACKAGE_BASE_NAME} -DPACKAGE_EXT=${PACKAGE_EXT} -P ${PROJECT_SOURCE_DIR}/scripts/package_test.cmake
|
||||
COMMAND cd ${PROJECT_SOURCE_DIR}/tests/integration/test_embree_release && ${CMAKE_COMMAND} -B build --preset ${EMBREE_TESTING_INTEGRATION_PRESET} -Dembree_DIR="${CMAKE_CURRENT_BINARY_DIR}/embree_install/lib/cmake/embree-${EMBREE_VERSION}"
|
||||
COMMAND cd ${PROJECT_SOURCE_DIR}/tests/integration/test_embree_release && ${CMAKE_COMMAND} --build build --config Release
|
||||
COMMAND cd ${PROJECT_SOURCE_DIR}/tests/integration/test_embree_release && ${INTEGRATE_BINARY}
|
||||
)
|
||||
4
Framework/external/embree/common/cmake/rpm_ldconfig.sh
vendored
Normal file
4
Framework/external/embree/common/cmake/rpm_ldconfig.sh
vendored
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
## Copyright 2009-2021 Intel Corporation
|
||||
## SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
/sbin/ldconfig
|
||||
561
Framework/external/embree/common/cmake/test.cmake
vendored
Normal file
561
Framework/external/embree/common/cmake/test.cmake
vendored
Normal file
|
|
@ -0,0 +1,561 @@
|
|||
## Copyright 2009-2021 Intel Corporation
|
||||
## SPDX-License-Identifier: Apache-2.0
|
||||
if (BUILD_TESTING OR EMBREE_TESTING_INSTALL_TESTS)
|
||||
|
||||
INCLUDE(CTest)
|
||||
|
||||
if (EMBREE_TESTING_INSTALL_TESTS)
|
||||
SET(EMBREE_INSTALL_CTESTTESTFILE "${CMAKE_CURRENT_BINARY_DIR}/embree-addtests.cmake")
|
||||
file(WRITE "${EMBREE_INSTALL_CTESTTESTFILE}" "")
|
||||
endif()
|
||||
|
||||
if (NOT EMBREE_TESTING_PACKAGE_TEST_PROJECT)
|
||||
IF (WIN32)
|
||||
IF("${CMAKE_CXX_COMPILER_ID}" MATCHES "MSVC")
|
||||
SET(MY_PROJECT_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}")
|
||||
ELSE()
|
||||
SET(MY_PROJECT_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
ENDIF()
|
||||
ELSE()
|
||||
SET(MY_PROJECT_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
ENDIF()
|
||||
else()
|
||||
SET(MY_PROJECT_BINARY_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../${EMBREE_INSTALL_BINDIR}")
|
||||
endif()
|
||||
|
||||
if (NOT EMBREE_TESTING_PACKAGE_TEST_PROJECT)
|
||||
SET(EMBREE_TESTING_INTENSITY 1 CACHE STRING "Intensity of testing (0 = no testing, 1 = verify and tutorials, 2 = light testing, 3 = intensive testing, 4 = very intensive testing.")
|
||||
SET_PROPERTY(CACHE EMBREE_TESTING_INTENSITY PROPERTY STRINGS 0 1 2 3 4)
|
||||
SET(EMBREE_TESTING_ONLY_SYCL_TESTS OFF CACHE BOOL "Run only tests with the sycl support.")
|
||||
SET(EMBREE_TESTING_MEMCHECK OFF CACHE BOOL "Turns on memory checking for some tests.")
|
||||
SET(EMBREE_TESTING_BENCHMARK OFF CACHE BOOL "Turns benchmarking on.")
|
||||
SET(EMBREE_TESTING_BENCHMARK_DATABASE "${PROJECT_BINARY_DIR}" CACHE PATH "Path to database for benchmarking.")
|
||||
SET(EMBREE_TESTING_PACKAGE OFF CACHE BOOL "Packages release as test.")
|
||||
SET(EMBREE_TESTING_KLOCWORK OFF CACHE BOOL "Runs Kocwork as test.")
|
||||
SET(EMBREE_TESTING_SDE OFF CACHE STRING "Uses SDE to run tests for specified CPU.")
|
||||
SET_PROPERTY(CACHE EMBREE_TESTING_SDE PROPERTY STRINGS OFF pnr nhm wsm snb ivb hsw bdw knl skl skx cnl)
|
||||
endif()
|
||||
|
||||
FUNCTION (SET_EMBREE_TEST_PROPERTIES testname)
|
||||
SET(variants "_cpp;_ispc;_sycl")
|
||||
foreach(v ${variants})
|
||||
if (v STREQUAL "_cpp")
|
||||
SET(v "")
|
||||
endif()
|
||||
set(testnamedef "EMBREE_TEST_${testname}${v}_DEFINED")
|
||||
if(${testnamedef})
|
||||
SET_TESTS_PROPERTIES(${testname}${v} ${ARGN})
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
if (EMBREE_TESTING_INSTALL_TESTS)
|
||||
file(APPEND "${EMBREE_INSTALL_CTESTTESTFILE}" "SET_EMBREE_TEST_PROPERTIES(${testname} ${ARGN}) \n")
|
||||
endif()
|
||||
ENDFUNCTION()
|
||||
|
||||
MACRO (ADD_EMBREE_GENERIC_TEST testname executable)
|
||||
ADD_TEST(NAME ${testname}
|
||||
WORKING_DIRECTORY "${MY_PROJECT_BINARY_DIR}"
|
||||
COMMAND ${executable} ${ARGN})
|
||||
SET(testnamedef EMBREE_TEST_${testname}_DEFINED)
|
||||
SET(${testnamedef} "1" CACHE INTERNAL "")
|
||||
ENDMACRO()
|
||||
|
||||
MACRO (ADD_EMBREE_GENERIC_CPP_TEST testname executable)
|
||||
if((NOT ${EMBREE_SYCL_SUPPORT}) OR (NOT ${EMBREE_TESTING_ONLY_SYCL_TESTS}))
|
||||
ADD_TEST(NAME ${testname}
|
||||
WORKING_DIRECTORY "${MY_PROJECT_BINARY_DIR}"
|
||||
COMMAND ${executable} ${ARGN})
|
||||
SET(testnamedef EMBREE_TEST_${testname}_DEFINED)
|
||||
SET(${testnamedef} "1" CACHE INTERNAL "")
|
||||
endif()
|
||||
ENDMACRO()
|
||||
|
||||
MACRO (ADD_EMBREE_GENERIC_ISPC_TEST testname executable)
|
||||
if((NOT ${EMBREE_SYCL_SUPPORT}) OR (NOT ${EMBREE_TESTING_ONLY_SYCL_TESTS}))
|
||||
IF (EMBREE_ISPC_SUPPORT AND EMBREE_RAY_PACKETS)
|
||||
ADD_TEST(NAME ${testname}_ispc
|
||||
WORKING_DIRECTORY "${MY_PROJECT_BINARY_DIR}"
|
||||
COMMAND ${executable}_ispc ${ARGN})
|
||||
SET(testnamedef EMBREE_TEST_${testname}_ispc_DEFINED)
|
||||
SET(${testnamedef} "1" CACHE INTERNAL "")
|
||||
ENDIF()
|
||||
endif()
|
||||
ENDMACRO()
|
||||
|
||||
MACRO (ADD_EMBREE_GENERIC_SYCL_TEST testname executable)
|
||||
IF (EMBREE_SYCL_SUPPORT)
|
||||
ADD_TEST(NAME ${testname}_sycl
|
||||
WORKING_DIRECTORY ${MY_PROJECT_BINARY_DIR}
|
||||
COMMAND ${executable}_sycl ${ARGN})
|
||||
SET(testnamedef EMBREE_TEST_${testname}_sycl_DEFINED)
|
||||
SET(${testnamedef} 1 CACHE INTERNAL "")
|
||||
SET_TESTS_PROPERTIES(${testname}_sycl PROPERTIES TIMEOUT 50)
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# Checks if the current cmake configuration is compatible with <condition>
|
||||
# condition may be a triple of CMAKE_VARIABLE_NAME op VALUE
|
||||
# supported operators for op are: ==, !=, <, <=, >, >=
|
||||
FUNCTION (EMBREE_TESTING_CHECK_OPTION out condition)
|
||||
# parse condition into list
|
||||
string(REGEX MATCHALL "([^\ ]+\ |[^\ ]+$)" tokens "${condition}")
|
||||
LIST(LENGTH tokens token_count)
|
||||
IF (NOT ${token_count} EQUAL 3)
|
||||
message(FATAL_ERROR "illegal embree_opitons condition: ${condition}")
|
||||
ENDIF()
|
||||
|
||||
# we require every condition to follow the scheme "variable_name op value"
|
||||
LIST(GET tokens 0 option)
|
||||
LIST(GET tokens 1 comp)
|
||||
LIST(GET tokens 2 value)
|
||||
|
||||
STRING(STRIP ${option} option)
|
||||
STRING(STRIP ${comp} comp)
|
||||
STRING(STRIP ${value} value)
|
||||
|
||||
SET(${out} 0 PARENT_SCOPE)
|
||||
if ("${comp}" STREQUAL "==")
|
||||
if ("${${option}}" STREQUAL "${value}")
|
||||
SET(${out} 1 PARENT_SCOPE)
|
||||
endif()
|
||||
elseif ("${comp}" STREQUAL "!=")
|
||||
if (NOT ("${${option}}" STREQUAL "${value}"))
|
||||
SET(${out} 1 PARENT_SCOPE)
|
||||
endif()
|
||||
elseif ("${comp}" STREQUAL ">")
|
||||
if ("${${option}}" GREATER "${value}")
|
||||
SET(${out} 1 PARENT_SCOPE)
|
||||
endif()
|
||||
elseif ("${comp}" STREQUAL ">=")
|
||||
if ("${${option}}" GREATER_EQUAL "${value}")
|
||||
SET(${out} 1 PARENT_SCOPE)
|
||||
endif()
|
||||
elseif ("${comp}" STREQUAL "<")
|
||||
if ("${${option}}" LESS "${value}")
|
||||
SET(${out} 1 PARENT_SCOPE)
|
||||
endif()
|
||||
elseif ("${comp}" STREQUAL "<=")
|
||||
if ("${${option}}" LESS_EQUAL "${value}")
|
||||
SET(${out} 1 PARENT_SCOPE)
|
||||
endif()
|
||||
else()
|
||||
message(FATAL_ERROR "Could not parse embree_option condition: ${condition}")
|
||||
endif()
|
||||
|
||||
ENDFUNCTION()
|
||||
|
||||
# Checks multiple options from a list with EMBREE_TESTING_CHECK_OPTION
|
||||
FUNCTION (EMBREE_TESTING_CHECK_OPTIONS_LIST out conditions)
|
||||
SET(${out} 1 PARENT_SCOPE)
|
||||
FOREACH (c ${conditions})
|
||||
EMBREE_TESTING_CHECK_OPTION(myout ${c})
|
||||
|
||||
IF (myout EQUAL 0)
|
||||
SET(${out} 0 PARENT_SCOPE)
|
||||
BREAK()
|
||||
ENDIF()
|
||||
ENDFOREACH()
|
||||
ENDFUNCTION()
|
||||
|
||||
|
||||
# looks for ifile in multiple possible locations and outputs a file with absolute path in ofile
|
||||
FUNCTION (EMBREE_FIND_TEST_FILE ifile ofile errmsgflavor)
|
||||
if (EXISTS "${ifile}") # abs path, use get_filename_component because it could also be relative to cwd
|
||||
get_filename_component(absifile "${ifile}" ABSOLUTE)
|
||||
SET(${ofile} ${absifile} PARENT_SCOPE)
|
||||
elseif(EXISTS "${PROJECT_SOURCE_DIR}/tests/${ifile}") # testing dir
|
||||
set(${ofile} "${PROJECT_SOURCE_DIR}/tests/${ifile}" PARENT_SCOPE)
|
||||
elseif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${ifile}") # relative to source folder
|
||||
set(${ofile} "${CMAKE_CURRENT_SOURCE_DIR}/${ifile}" PARENT_SCOPE)
|
||||
else()
|
||||
set(${ofile} "" PARENT_SCOPE)
|
||||
if (errmsgflavor)
|
||||
message(FATAL_ERROR
|
||||
"Could not find ${errmsgflavor} \"${ifile}\"\n"
|
||||
"looked for:\n"
|
||||
" ${inputfile}\n"
|
||||
" ${PROJECT_SOURCE_DIR}/tests/${ifile}\n"
|
||||
" ${CMAKE_CURRENT_SOURCE_DIR}/${ifile}\n"
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
ENDFUNCTION()
|
||||
|
||||
|
||||
FUNCTION (EMBREE_ADD_TEST_PARSE_SUBLIST args keyword sublist)
|
||||
SET(myargs ${args})
|
||||
SET(mysublist "")
|
||||
SET(keywords "ECS;XML;NO_REFERENCE;REFERENCE;REFERENCE_SUFFIX;INTENSITY;CONDITION_FILE;CONDITION;ARGS;NO_CPP;NO_ISPC;NO_SYCL;GEN_REFERENCE;")
|
||||
|
||||
list(FIND nargs ${keyword} istart)
|
||||
if (NOT(istart EQUAL -1))
|
||||
list(LENGTH myargs iend)
|
||||
foreach(k ${keywords})
|
||||
list(FIND myargs ${k} i)
|
||||
if (NOT(i EQUAL -1) AND (i GREATER istart) AND (i LESS iend))
|
||||
SET(iend ${i})
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
MATH(EXPR i "${istart}+1")
|
||||
while (i LESS iend)
|
||||
list(GET myargs ${i} elem)
|
||||
list(APPEND mysublist ${elem})
|
||||
MATH(EXPR i "${i}+1")
|
||||
endwhile()
|
||||
endif()
|
||||
|
||||
SET(${sublist} ${mysublist} PARENT_SCOPE)
|
||||
ENDFUNCTION()
|
||||
|
||||
FUNCTION (EMBREE_ADD_TEST_PARSE_FLAG args keyword value)
|
||||
SET(myargs ${args})
|
||||
SET(${value} OFF PARENT_SCOPE)
|
||||
list(FIND nargs ${keyword} i)
|
||||
if (NOT(i EQUAL -1))
|
||||
SET(${value} ON PARENT_SCOPE)
|
||||
endif()
|
||||
ENDFUNCTION()
|
||||
|
||||
# ADD_EMBREE_TEST_ECS(testname exename [ECS <file> | XML <file>] [NO_REFERENCE | REFERENCE <path> | REFERENCE_SUFFIX <suffix>] [INTENSITY <i>] [CONDITION <conds>] [ARGS <args>] [GEN_REFERENCE])
|
||||
# [ECS <file> | XML <inputfile> | OPTIONS <inputfile>]
|
||||
# - looks for file and calls the test command with either "-c <inputfile>.ecs" or "-i <inputfile>.xml"
|
||||
#
|
||||
# [NO_REFERENCE | REFERENCE <path> | REFERENCE_SUFFIX <suffix>]
|
||||
# - if not found a reference is will be expected in the same folder as *.ecs with name *.ecs.exename.exr
|
||||
# - NO_REFERENCE: don't look for a reference (no --compare in test command)
|
||||
# - REFERENCE <path>: use the reference located in <path>. Same rules aplly as for finding ecs files: absolute or relative to CMAKE_CURRENT_SOURCE_DIR path, must not be located outside the embree root dir.
|
||||
# - REFERENCE_SUFFIX <suffix>: use the default reference location and name with a suffix before the last file extension, e.g. *.ecs.exename<suffix>.exr
|
||||
# - if this argument is not specified, looks for
|
||||
# 1. <inputfile>.exename.exr, or
|
||||
# 2. <testname>.exr, if no <inputfile> was given
|
||||
#
|
||||
# [INTENSITY <i>]
|
||||
# - default i = 1
|
||||
# - sets the intensity level for the test, test is only run if ${EMBREE_TESTING_INTENSITY} GREATER_EQUAL i
|
||||
# - could be done with an *.embree_options file, but this is more flexible, e.g. you can easier share reference images without specifying an absolute path
|
||||
# - DOES NOT overrite EMBREE_TESTING_INTENSITY, if specified in *.embree_options
|
||||
#
|
||||
# [CONDITION_FILE <file>]
|
||||
# - file containing additional conditions
|
||||
# - conditions are specified linewise in form of: EMBREE_OPTION op VALUE, where EMBREE_OPTION is a cmake variable used during embree configuration and op is one of ==, !=, <, <=, >, >=
|
||||
# - if this argument is not specified, looks for
|
||||
# 1. <inputfile>.embree_options, or
|
||||
# 2. <testname>.embree_options, if no <inputfile> was given
|
||||
#
|
||||
# [CONDITION <conds>]
|
||||
# - cmake list of additional conditions, specified the same way as in an embree_options file
|
||||
#
|
||||
# [ARGS <args>]
|
||||
# - additional arguments for the test command
|
||||
#
|
||||
# [GEN_REFERENCE]
|
||||
# - writes the reference to the expected location
|
||||
# - could also be done with the ARGS parameter, but this way we don't have to deal with paths
|
||||
#
|
||||
# EXAMPLES
|
||||
#
|
||||
# all optional arguments default,
|
||||
# - looks for points.ecs.embree_options to filter out test by configured options, if not found no restrictions
|
||||
# - runs for EMBREE_TESTING_INTENSITY >= 1
|
||||
# - reference will be expected in the same folder as points.ecs with name points.ecs.embree_viewer.exr
|
||||
#ADD_EMBREE_TEST_ECS(viewer_points embree_viewer "models/xxx/points.ecs") # 1)
|
||||
#ADD_EMBREE_TEST_ECS(viewer_points embree_viewer "${PROJECT_SOURCE_DIR}/models/xxx/points.ecs") # 2) same as 1) but with absolute path to ecs
|
||||
#ADD_EMBREE_TEST_ECS(viewer_points embree_viewer "points.ecs") # 3) same as 1) but looks for points.ecs in the ${CMAKE_CURRENT_SOURCE_DIR} i.e. <embree_root>/tutorials/viewer/points.ecs
|
||||
|
||||
#ADD_EMBREE_TEST_ECS(viewer_points embree_viewer "models/xxx/points.ecs" ARGS --coherent INTENSITY 2) # 4) same as 1) but runs only at EMBREE_TESTING_INTENSITY >= 2
|
||||
#ADD_EMBREE_TEST_ECS(viewer_points embree_viewer "models/xxx/points.ecs" REFERENCE_SUFFIX "_quads" ARGS
|
||||
# --coherent
|
||||
# --convert-triangles-to-quads INTENSITY 2) # 5) same as 4) but expects reference name points.ecr.embree_viewer_quads.ecs
|
||||
#ADD_EMBREE_TEST_ECS(viewer_points embree_viewer "models/xxx/points.ecs" REFERENCE "special.exr" ARGS
|
||||
# --coherent
|
||||
# --convert-triangles-to-quads INTENSITY 2) # 5) same as 4) but expects reference <embree-root>/tutorials/viewer/special.exr
|
||||
## 1) - 5) all share the same base input arguments defined in points.ecs as well as the points.ecs.embree_options
|
||||
|
||||
#ADD_EMBREE_TEST_ECS(point_geometry embree_point_geometry) # 6) no ecs file, uses point_geometry.embree_options if exists, expects reference ${CMAKE_CURRENT_SOURCE_DIR}/point_geometry.exr
|
||||
#ADD_EMBREE_TEST_ECS(verify verify NO_REFERENCE) # 7) no ecs file, uses verify.embree_options if exists, no reference
|
||||
#ADD_EMBREE_TEST_ECS(verify_memcheck verify NO_REFERENCE CONDITIONS "EMBREE_TESTING_MEMCHECK == ON") # 8) same as 7) but with extra condition
|
||||
|
||||
FUNCTION (ADD_EMBREE_TEST_ECS testname executable)
|
||||
if (EMBREE_TESTING_FILTER_TESTNAMES)
|
||||
list(FIND EMBREE_TESTING_FILTER_TESTNAMES "${testname}" i)
|
||||
if (${i} EQUAL -1)
|
||||
return()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
SET(nargs ${ARGN})
|
||||
|
||||
# disable everything
|
||||
SET(testnamedef EMBREE_TEST_${testname}_DEFINED)
|
||||
SET(${testnamedef} "0" CACHE INTERNAL "")
|
||||
SET(testnamedef EMBREE_TEST_${testname}_ispc_DEFINED)
|
||||
SET(${testnamedef} "0" CACHE INTERNAL "")
|
||||
SET(testnamedef EMBREE_TEST_${testname}_sycl_DEFINED)
|
||||
SET(${testnamedef} "0" CACHE INTERNAL "")
|
||||
|
||||
# parsing input file
|
||||
# ECS mode -> single parameter with filename after ECS keyword
|
||||
list(FIND nargs "ECS" i)
|
||||
if (NOT(i EQUAL -1))
|
||||
SET(inputtype "-c")
|
||||
MATH(EXPR i "${i}+1")
|
||||
list(GET nargs ${i} out)
|
||||
EMBREE_FIND_TEST_FILE("${out}" inputfile "test file")
|
||||
endif()
|
||||
# XML mode -> single parameter with filename after XML keyword
|
||||
list(FIND nargs "XML" i)
|
||||
if (NOT(i EQUAL -1))
|
||||
SET(inputtype "-i")
|
||||
MATH(EXPR i "${i}+1")
|
||||
list(GET nargs ${i} out)
|
||||
EMBREE_FIND_TEST_FILE("${out}" inputfile "test file")
|
||||
endif()
|
||||
# no filetype keyword -> look for <testname>.ecs/xml
|
||||
# does not need to be specified
|
||||
if (NOT inputtype)
|
||||
EMBREE_FIND_TEST_FILE("${testname}.ecs" inputfile "")
|
||||
if(inputfile)
|
||||
SET(inputtype "-c")
|
||||
endif()
|
||||
EMBREE_FIND_TEST_FILE("${testname}.ecs" inputfile "")
|
||||
if(inputfile)
|
||||
SET(inputtype "-i")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# parsing refernce image
|
||||
# no reference image mode -> no additional parameter to parse
|
||||
list(FIND nargs "NO_REFERENCE" i)
|
||||
if (NOT(i EQUAL -1))
|
||||
SET(no_reference ON)
|
||||
endif()
|
||||
# reference suffix mode -> singe parameter with suffix to default reference file name
|
||||
list(FIND nargs "REFERENCE_SUFFIX" i)
|
||||
if (NOT(i EQUAL -1))
|
||||
MATH(EXPR i "${i}+1")
|
||||
list(GET nargs ${i} out)
|
||||
EMBREE_FIND_TEST_FILE("${inputfile}.${executable}${out}.exr" referencefile "reference image")
|
||||
endif()
|
||||
# reference mode -> singe parameter with absolute path to reference image
|
||||
list(FIND nargs "REFERENCE" i)
|
||||
if (NOT(i EQUAL -1))
|
||||
MATH(EXPR i "${i}+1")
|
||||
list(GET nargs ${i} out)
|
||||
EMBREE_FIND_TEST_FILE("${out}" referencefile "reference image")
|
||||
endif()
|
||||
# no reference keyword -> look for <testname>.exr and <inputfile>.<executable>.exr respectively
|
||||
if ((NOT no_reference) AND (NOT referencefile))
|
||||
if (NOT inputfile)
|
||||
EMBREE_FIND_TEST_FILE("${testname}.exr" referencefile "reference image")
|
||||
else()
|
||||
EMBREE_FIND_TEST_FILE("${inputfile}.${executable}.exr" referencefile "reference image")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# parsing intensity
|
||||
# single integer parameter
|
||||
SET(intensity 1)
|
||||
list(FIND nargs "INTENSITY" i)
|
||||
if (NOT(i EQUAL -1))
|
||||
MATH(EXPR i "${i}+1")
|
||||
list(GET nargs ${i} intensity)
|
||||
endif()
|
||||
|
||||
# parsing condition
|
||||
SET(conditions "")
|
||||
SET(conditionsfile)
|
||||
list(FIND nargs "CONDITION_FILE" i)
|
||||
# condition file -> single parameter to absolute path of conditions file
|
||||
if (NOT(i EQUAL -1))
|
||||
list(GET nargs ${i} conditionsfile)
|
||||
EMBREE_FIND_TEST_FILE("${conditionsfile}" conditionsfile "")
|
||||
# no <inputfile> specified -> look for <testname>.embree_options
|
||||
elseif (NOT inputtype)
|
||||
EMBREE_FIND_TEST_FILE("${testname}.embree_options" conditionsfile "")
|
||||
# <inputfile> specified -> look for <inputfile>.embree_options
|
||||
else()
|
||||
EMBREE_FIND_TEST_FILE("${inputfile}.embree_options" conditionsfile "")
|
||||
endif()
|
||||
if (conditionsfile)
|
||||
file(READ "${conditionsfile}" lines)
|
||||
string(REGEX REPLACE "\n" ";" conditions "${lines}")
|
||||
endif()
|
||||
|
||||
# parsing additional conditions
|
||||
EMBREE_ADD_TEST_PARSE_SUBLIST("${nargs}" "CONDITION" extra_conditions)
|
||||
list(APPEND conditions ${extra_conditions})
|
||||
|
||||
# parsing extra args
|
||||
EMBREE_ADD_TEST_PARSE_SUBLIST("${nargs}" "ARGS" extraargs)
|
||||
|
||||
EMBREE_ADD_TEST_PARSE_FLAG("${nargs}" "MEMCHECK" memcheck)
|
||||
EMBREE_ADD_TEST_PARSE_FLAG("${nargs}" "NO_CPP" no_cpp)
|
||||
EMBREE_ADD_TEST_PARSE_FLAG("${nargs}" "NO_ISPC" no_ispc)
|
||||
EMBREE_ADD_TEST_PARSE_FLAG("${nargs}" "NO_SYCL" no_sycl)
|
||||
EMBREE_ADD_TEST_PARSE_FLAG("${nargs}" "NO_POSTFIX" no_postfix)
|
||||
EMBREE_ADD_TEST_PARSE_FLAG("${nargs}" "GEN_REFERENCE" gen_reference)
|
||||
|
||||
# add the test, if the conditions are met
|
||||
SET(matchconditions ON)
|
||||
if (conditions)
|
||||
EMBREE_TESTING_CHECK_OPTIONS_LIST(out "${conditions}")
|
||||
if (out EQUAL 0)
|
||||
SET(matchconditions OFF)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# LESS_EQUAL not supported on all CI runners
|
||||
if (matchconditions AND ((intensity LESS EMBREE_TESTING_INTENSITY) OR (intensity EQUAL EMBREE_TESTING_INTENSITY)))
|
||||
SET(args "")
|
||||
if (inputfile)
|
||||
list(APPEND args "${inputtype} ${inputfile}")
|
||||
endif()
|
||||
if (NOT no_reference)
|
||||
list(APPEND args "--compare ${referencefile}")
|
||||
endif()
|
||||
if (gen_reference)
|
||||
list(APPEND args "-o ${referencefile}")
|
||||
endif()
|
||||
foreach(a ${extraargs})
|
||||
list(APPEND args "${a}")
|
||||
endforeach()
|
||||
|
||||
|
||||
|
||||
if (memcheck)
|
||||
list(PREPEND args "${MY_PROJECT_BINARY_DIR}/${executable}")
|
||||
list(PREPEND args "${EMBREE_MEMORYCHECK_COMMAND_OPTIONS}")
|
||||
if (no_postfix)
|
||||
ADD_EMBREE_GENERIC_TEST(${testname} ${EMBREE_MEMORYCHECK_COMMAND} ${args})
|
||||
else()
|
||||
if((NOT ${EMBREE_SYCL_SUPPORT}) OR (NOT ${EMBREE_TESTING_ONLY_SYCL_TESTS}))
|
||||
if (NOT(no_cpp))
|
||||
ADD_EMBREE_GENERIC_CPP_TEST(${testname} ${EMBREE_MEMORYCHECK_COMMAND} ${args})
|
||||
endif()
|
||||
if (NOT(no_ispc))
|
||||
ADD_EMBREE_GENERIC_ISPC_TEST(${testname} ${EMBREE_MEMORYCHECK_COMMAND} ${args})
|
||||
endif()
|
||||
endif()
|
||||
if (NOT(no_sycl))
|
||||
ADD_EMBREE_GENERIC_SYCL_TEST(${testname} ${EMBREE_MEMORYCHECK_COMMAND} ${args})
|
||||
endif()
|
||||
endif()
|
||||
else()
|
||||
if (no_postfix)
|
||||
ADD_EMBREE_GENERIC_TEST(${testname} ${executable} ${args})
|
||||
else()
|
||||
if (NOT(no_cpp))
|
||||
ADD_EMBREE_GENERIC_CPP_TEST(${testname} ${executable} ${args})
|
||||
endif()
|
||||
if (NOT(no_ispc))
|
||||
ADD_EMBREE_GENERIC_ISPC_TEST(${testname} ${executable} ${args})
|
||||
endif()
|
||||
if (NOT(no_sycl))
|
||||
ADD_EMBREE_GENERIC_SYCL_TEST(${testname} ${executable} ${args})
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
if (EMBREE_TESTING_INSTALL_TESTS)
|
||||
if (inputfile)
|
||||
get_filename_component(inputpath ${inputfile} DIRECTORY)
|
||||
STRING(REPLACE "${PROJECT_SOURCE_DIR}/" "" inputpath "${inputpath}")
|
||||
INSTALL(FILES "${inputfile}"
|
||||
DESTINATION "${CMAKE_INSTALL_TESTDIR}/${inputpath}"
|
||||
COMPONENT testing)
|
||||
endif()
|
||||
|
||||
if (conditionsfile)
|
||||
get_filename_component(conditionspath ${conditionsfile} DIRECTORY)
|
||||
STRING(REPLACE "${PROJECT_SOURCE_DIR}/" "" conditionspath "${conditionspath}")
|
||||
INSTALL(FILES "${conditionsfile}"
|
||||
DESTINATION "${CMAKE_INSTALL_TESTDIR}/${conditionspath}"
|
||||
COMPONENT testing)
|
||||
endif()
|
||||
|
||||
if (referencefile)
|
||||
get_filename_component(referencepath ${referencefile} DIRECTORY)
|
||||
STRING(REPLACE "${PROJECT_SOURCE_DIR}/" "" referencepath "${referencepath}")
|
||||
INSTALL(FILES "${referencefile}"
|
||||
DESTINATION "${CMAKE_INSTALL_TESTDIR}/${referencepath}"
|
||||
COMPONENT testing)
|
||||
endif()
|
||||
|
||||
SET(testcall "ADD_EMBREE_TEST_ECS(${testname} ${executable}")
|
||||
if (inputfile)
|
||||
STRING(REPLACE "${PROJECT_SOURCE_DIR}/" "" inputfile "${inputfile}")
|
||||
if (inputtype STREQUAL "-c")
|
||||
SET(testcall "${testcall} \n ECS ${inputfile}")
|
||||
elseif (inputtype STREQUAL "-i")
|
||||
SET(testcall "${testcall} \n XML ${inputfile}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (no_reference)
|
||||
SET(testcall "${testcall} \n NO_REFERENCE")
|
||||
else()
|
||||
STRING(REPLACE "${PROJECT_SOURCE_DIR}/" "" referencefile "${referencefile}")
|
||||
SET(testcall "${testcall} \n REFERENCE ${referencefile}")
|
||||
endif()
|
||||
|
||||
SET(testcall "${testcall} \n INTENSITY ${intensity}")
|
||||
if (${memcheck})
|
||||
SET(testcall "${testcall} \n MEMCHECK")
|
||||
endif()
|
||||
if (${no_cpp})
|
||||
SET(testcall "${testcall} \n NO_CPP")
|
||||
endif()
|
||||
if (${no_ispc})
|
||||
SET(testcall "${testcall} \n NO_ISPC")
|
||||
endif()
|
||||
if (${no_sycl})
|
||||
SET(testcall "${testcall} \n NO_SYCL")
|
||||
endif()
|
||||
if (${no_postfix})
|
||||
SET(testcall "${testcall} \n NO_POSTFIX")
|
||||
endif()
|
||||
STRING(REPLACE "${PROJECT_SOURCE_DIR}/" "" conditionsfile "${conditionsfile}")
|
||||
SET(testcall "${testcall} \n CONDITION_FILE ${conditionsfile}")
|
||||
SET(testcall "${testcall} \n CONDITION ")
|
||||
foreach(c ${conditions})
|
||||
SET(testcall "${testcall} \"${c}\"")
|
||||
endforeach()
|
||||
SET(testcall "${testcall} \n ARGS ")
|
||||
foreach(a ${extraargs})
|
||||
SET(testcall "${testcall} ${a}")
|
||||
endforeach()
|
||||
|
||||
SET(testcall "${testcall})\n\n")
|
||||
file(APPEND "${EMBREE_INSTALL_CTESTTESTFILE}" "${testcall}")
|
||||
endif()
|
||||
ENDFUNCTION()
|
||||
|
||||
else()
|
||||
FUNCTION(ADD_EMBREE_TEST_ECS testname executable)
|
||||
ENDFUNCTION()
|
||||
FUNCTION(SET_EMBREE_TEST_PROPERTIES testname)
|
||||
ENDFUNCTION()
|
||||
endif()
|
||||
38
Framework/external/embree/common/cmake/tutorial.cmake
vendored
Normal file
38
Framework/external/embree/common/cmake/tutorial.cmake
vendored
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
## Copyright 2009-2021 Intel Corporation
|
||||
## SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
# additional parameters (beyond the name) are treated as additional dependencies
|
||||
# if ADDITIONAL_LIBRARIES is set these will be included during linking
|
||||
|
||||
MACRO (ADD_TUTORIAL TUTORIAL_NAME)
|
||||
ADD_EXECUTABLE(embree_${TUTORIAL_NAME} ../../kernels/embree.rc ${TUTORIAL_NAME}.cpp ${TUTORIAL_NAME}_device.cpp ${ARGN})
|
||||
TARGET_LINK_LIBRARIES(embree_${TUTORIAL_NAME} embree image tutorial noise ${ADDITIONAL_LIBRARIES})
|
||||
SET_PROPERTY(TARGET embree_${TUTORIAL_NAME} PROPERTY FOLDER tutorials/single)
|
||||
SET_PROPERTY(TARGET embree_${TUTORIAL_NAME} APPEND PROPERTY COMPILE_FLAGS " ${FLAGS_LOWEST}")
|
||||
INSTALL(TARGETS embree_${TUTORIAL_NAME} DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT examples)
|
||||
SIGN_TARGET(embree_${TUTORIAL_NAME})
|
||||
ENDMACRO ()
|
||||
|
||||
MACRO (ADD_TUTORIAL_SYCL TUTORIAL_NAME)
|
||||
IF (EMBREE_SYCL_SUPPORT)
|
||||
ADD_EXECUTABLE(embree_${TUTORIAL_NAME}_sycl ${TUTORIAL_NAME}.cpp ${TUTORIAL_NAME}_device.cpp ${ARGN})
|
||||
TARGET_LINK_LIBRARIES(embree_${TUTORIAL_NAME}_sycl embree image tutorial_sycl noise ${ADDITIONAL_LIBRARIES})
|
||||
TARGET_COMPILE_DEFINITIONS(embree_${TUTORIAL_NAME}_sycl PUBLIC EMBREE_SYCL_TUTORIAL)
|
||||
SET_PROPERTY(TARGET embree_${TUTORIAL_NAME}_sycl PROPERTY FOLDER tutorials/sycl)
|
||||
SET_PROPERTY(TARGET embree_${TUTORIAL_NAME}_sycl APPEND PROPERTY COMPILE_FLAGS " ${FLAGS_LOWEST} ${CMAKE_CXX_FLAGS_SYCL}")
|
||||
SET_PROPERTY(TARGET embree_${TUTORIAL_NAME}_sycl APPEND PROPERTY LINK_FLAGS "${CMAKE_LINK_FLAGS_SYCL}")
|
||||
INSTALL(TARGETS embree_${TUTORIAL_NAME}_sycl DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT examples)
|
||||
SIGN_TARGET(embree_${TUTORIAL_NAME}_sycl)
|
||||
ENDIF()
|
||||
ENDMACRO ()
|
||||
|
||||
MACRO (ADD_TUTORIAL_ISPC TUTORIAL_NAME)
|
||||
IF (EMBREE_ISPC_SUPPORT)
|
||||
ADD_EMBREE_ISPC_EXECUTABLE(embree_${TUTORIAL_NAME}_ispc ../../kernels/embree.rc ${TUTORIAL_NAME}.cpp ${TUTORIAL_NAME}_device.ispc ${ARGN})
|
||||
TARGET_LINK_LIBRARIES(embree_${TUTORIAL_NAME}_ispc embree image tutorial_ispc noise noise_ispc)
|
||||
SET_PROPERTY(TARGET embree_${TUTORIAL_NAME}_ispc PROPERTY FOLDER tutorials/ispc)
|
||||
SET_PROPERTY(TARGET embree_${TUTORIAL_NAME}_ispc APPEND PROPERTY COMPILE_FLAGS " ${FLAGS_LOWEST}")
|
||||
INSTALL(TARGETS embree_${TUTORIAL_NAME}_ispc DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT examples)
|
||||
SIGN_TARGET(embree_${TUTORIAL_NAME}_ispc)
|
||||
ENDIF()
|
||||
ENDMACRO ()
|
||||
24
Framework/external/embree/common/cmake/uninstall.cmake.in
vendored
Normal file
24
Framework/external/embree/common/cmake/uninstall.cmake.in
vendored
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
## Copyright 2009-2021 Intel Corporation
|
||||
## SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
|
||||
MESSAGE(FATAL_ERROR "Cannot find install manifest: @CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
|
||||
ENDIF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
|
||||
|
||||
FILE(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files)
|
||||
STRING(REGEX REPLACE "\n" ";" files "${files}")
|
||||
FOREACH(file ${files})
|
||||
MESSAGE(STATUS "Uninstalling $ENV{DESTDIR}${file}")
|
||||
IF(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
|
||||
EXEC_PROGRAM(
|
||||
"@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
|
||||
OUTPUT_VARIABLE rm_out
|
||||
RETURN_VALUE rm_retval
|
||||
)
|
||||
IF(NOT "${rm_retval}" STREQUAL 0)
|
||||
MESSAGE(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}")
|
||||
ENDIF(NOT "${rm_retval}" STREQUAL 0)
|
||||
ELSE(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
|
||||
MESSAGE(STATUS "File $ENV{DESTDIR}${file} does not exist.")
|
||||
ENDIF(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
|
||||
ENDFOREACH(file)
|
||||
Loading…
Add table
Add a link
Reference in a new issue