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

241 lines
7 KiB
CMake

## Copyright 2009-2021 Intel Corporation
## SPDX-License-Identifier: Apache-2.0
## Global settings ##
cmake_minimum_required(VERSION 3.1)
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/dependencies)
if(NOT CMAKE_INSTALL_PREFIX)
set(CMAKE_INSTALL_PREFIX
"${CMAKE_BINARY_DIR}/install"
CACHE STRING "Final install location." FORCE)
endif()
if (NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif()
## Establish project ##
project(OSPRay_superbuild)
include(ExternalProject)
include(GNUInstallDirs)
include(ProcessorCount)
## Superbuild options ##
set(BUILD_RKCOMMON_VERSION "v1.6.0" CACHE STRING "Which version of rkcommon to build?")
set(TBB_VERSION "2021.2.0" CACHE STRING "Which version of TBB to download?")
set(BUILD_OPENVKL_VERSION "v0.12.1" CACHE STRING "Which version of OpenVKL to build?")
set(installDir ${CMAKE_INSTALL_PREFIX})
get_filename_component(INSTALL_DIR_ABSOLUTE ${installDir} ABSOLUTE BASE_DIR ${CMAKE_CURRENT_BINARY_DIR})
ProcessorCount(PROCESSOR_COUNT)
if(NOT PROCESSOR_COUNT EQUAL 0)
SET(PROCESSOR_COUNT 1)
endif()
if (${CMAKE_VERSION} VERSION_GREATER 3.11.4)
set(PARALLEL_JOBS_OPTS -j ${BUILD_JOBS})
endif()
set(DEFAULT_BUILD_COMMAND cmake --build . --config release ${PARALLEL_JOBS_OPTS})
set(COMPONENT_PATH ${INSTALL_DIR_ABSOLUTE}) # install all components in one directory
list(APPEND CMAKE_PREFIX_PATH ${COMPONENT_PATH})
string(REPLACE ";" "|" CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH}")
set(ISPC_VERSION "v1.15.0")
set(ISPC_BASE_URL "https://github.com/ispc/ispc/releases/download")
if (APPLE)
set(ISPC_URL ${ISPC_BASE_URL}/${ISPC_VERSION}/ispc-${ISPC_VERSION}-macOS.tar.gz)
elseif(WIN32)
set(ISPC_URL ${ISPC_BASE_URL}/${ISPC_VERSION}/ispc-${ISPC_VERSION}-windows.zip)
else()
set(ISPC_URL ${ISPC_BASE_URL}/${ISPC_VERSION}/ispc-${ISPC_VERSION}-linux.tar.gz)
endif()
ExternalProject_Add(ispc
PREFIX ispc
STAMP_DIR ispc/stamp
SOURCE_DIR ispc/src
BINARY_DIR ispc
URL ${ISPC_URL}
DOWNLOAD_NO_PROGRESS ON
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND "${CMAKE_COMMAND}" -E copy_if_different
<SOURCE_DIR>/bin/ispc${CMAKE_EXECUTABLE_SUFFIX}
${COMPONENT_PATH}/bin/ispc${CMAKE_EXECUTABLE_SUFFIX}
BUILD_ALWAYS OFF
)
set(ISPC_PATH "${COMPONENT_PATH}/bin/ispc${CMAKE_EXECUTABLE_SUFFIX}")
if (APPLE)
set(TBB_URL "http://github.com/intel/tbb/releases/download/v${TBB_VERSION}/oneapi-tbb-${TBB_VERSION}-mac.tgz")
elseif (WIN32)
set(TBB_URL "http://github.com/intel/tbb/releases/download/v${TBB_VERSION}/oneapi-tbb-${TBB_VERSION}-win.zip")
else()
set(TBB_URL "http://github.com/intel/tbb/releases/download/v${TBB_VERSION}/oneapi-tbb-${TBB_VERSION}-lin.tgz")
endif()
ExternalProject_Add(tbb
PREFIX tbb
DOWNLOAD_DIR tbb
STAMP_DIR tbb/stamp
SOURCE_DIR tbb/src
BINARY_DIR tbb
URL ${TBB_URL}
DOWNLOAD_NO_PROGRESS ON
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND "${CMAKE_COMMAND}" -E copy_directory
<SOURCE_DIR>
${COMPONENT_PATH}
BUILD_ALWAYS OFF
)
set(TBB_PATH "${COMPONENT_PATH}")
ExternalProject_Add(rkcommon
PREFIX rkcommon
DOWNLOAD_DIR rkcommon
STAMP_DIR rkcommon/stamp
SOURCE_DIR rkcommon/src
BINARY_DIR rkcommon/build
URL "http://github.com/ospray/rkcommon/archive/${BUILD_RKCOMMON_VERSION}.zip"
DOWNLOAD_NO_PROGRESS ON
CMAKE_ARGS
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_INSTALL_PREFIX:PATH=${COMPONENT_PATH}
-DCMAKE_INSTALL_INCLUDEDIR=${CMAKE_INSTALL_INCLUDEDIR}
-DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR}
-DCMAKE_INSTALL_DOCDIR=${CMAKE_INSTALL_DOCDIR}
-DCMAKE_INSTALL_BINDIR=${CMAKE_INSTALL_BINDIR}
-DCMAKE_BUILD_TYPE=Release
-DINSTALL_DEPS=OFF
-DBUILD_TESTING=OFF
-DRKCOMMON_TBB_ROOT=${TBB_PATH}
BUILD_COMMAND ${DEFAULT_BUILD_COMMAND}
BUILD_ALWAYS ${ALWAYS_REBUILD}
)
ExternalProject_Add_StepDependencies(rkcommon configure tbb)
ExternalProject_Add(embree
PREFIX embree
SOURCE_DIR ${INSTALL_DIR_ABSOLUTE}/../../embree
STAMP_DIR embree/stamp
BINARY_DIR embree
URL ${EMBREE_URL}
DOWNLOAD_NO_PROGRESS ON
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND "${CMAKE_COMMAND}" -E copy_directory
<SOURCE_DIR>/
${COMPONENT_PATH}
BUILD_ALWAYS OFF
)
ExternalProject_Add(openvkl
PREFIX openvkl
DOWNLOAD_DIR openvkl
STAMP_DIR openvkl/stamp
SOURCE_DIR openvkl/src
BINARY_DIR openvkl/build
LIST_SEPARATOR | # Use the alternate list separator
URL "http://github.com/openvkl/openvkl/archive/${BUILD_OPENVKL_VERSION}.zip"
DOWNLOAD_NO_PROGRESS ON
CMAKE_ARGS
-DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_INSTALL_PREFIX:PATH=${COMPONENT_PATH}
-DCMAKE_INSTALL_INCLUDEDIR=${CMAKE_INSTALL_INCLUDEDIR}
-DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR}
-DCMAKE_INSTALL_DOCDIR=${CMAKE_INSTALL_DOCDIR}
-DCMAKE_INSTALL_BINDIR=${CMAKE_INSTALL_BINDIR}
-DCMAKE_BUILD_TYPE=Release
-DRKCOMMON_TBB_ROOT=${TBB_PATH}
-DISPC_EXECUTABLE=${ISPC_PATH}
-DBUILD_BENCHMARKS=OFF
-DBUILD_EXAMPLES=OFF
-DBUILD_TESTING=OFF
BUILD_COMMAND ${DEFAULT_BUILD_COMMAND}
BUILD_ALWAYS ${ALWAYS_REBUILD}
)
ExternalProject_Add_StepDependencies(openvkl
configure
rkcommon
embree
ispc
)
ExternalProject_Add(glfw
PREFIX glfw
DOWNLOAD_DIR glfw
STAMP_DIR glfw/stamp
SOURCE_DIR glfw/src
BINARY_DIR glfw/build
URL "http://github.com/glfw/glfw/releases/download/3.2.1/glfw-3.2.1.zip"
DOWNLOAD_NO_PROGRESS ON
CMAKE_ARGS
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_INSTALL_PREFIX:PATH=${COMPONENT_PATH}
-DCMAKE_INSTALL_INCLUDEDIR=${CMAKE_INSTALL_INCLUDEDIR}
-DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR}
-DCMAKE_INSTALL_DOCDIR=${CMAKE_INSTALL_DOCDIR}
-DCMAKE_INSTALL_BINDIR=${CMAKE_INSTALL_BINDIR}
-DCMAKE_BUILD_TYPE=Release
-DGLFW_BUILD_DOCS=OFF
-DGLFW_BUILD_EXAMPLES=OFF
-DGLFW_BUILD_TESTS=OFF
BUILD_COMMAND ${DEFAULT_BUILD_COMMAND}
BUILD_ALWAYS ${ALWAYS_REBUILD}
)
ExternalProject_Add(ospray
PREFIX ospray
URL "https://github.com/ospray/ospray/archive/v2.5.0.tar.gz"
DOWNLOAD_NO_PROGRESS ON
GIT_SUBMODULES ""
STAMP_DIR ospray/stamp
BINARY_DIR ospray/build
LIST_SEPARATOR | # Use the alternate list separator
CMAKE_ARGS
-DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_INSTALL_PREFIX:PATH=${COMPONENT_PATH}
-DCMAKE_INSTALL_INCLUDEDIR=${CMAKE_INSTALL_INCLUDEDIR}
-DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR}
-DCMAKE_INSTALL_DOCDIR=${CMAKE_INSTALL_DOCDIR}
-DCMAKE_INSTALL_BINDIR=${CMAKE_INSTALL_BINDIR}
-DOSPRAY_BUILD_ISA=ALL
-DOSPRAY_ENABLE_TESTING=ON
-DOSPRAY_MODULE_MULTIHIT=OFF
-DOSPRAY_MODULE_BILINEAR_PATCH=ON
-DOSPRAY_MODULE_DENOISER=OFF
-DOSPRAY_STRICT_BUILD=ON
-DOSPRAY_WARN_AS_ERRORS=OFF
-DISPC_EXECUTABLE=${ISPC_PATH}
-DRKCOMMON_TBB_ROOT=${TBB_PATH}
BUILD_COMMAND ${DEFAULT_BUILD_COMMAND}
BUILD_ALWAYS OFF
)
ExternalProject_Add_StepDependencies(ospray
configure
rkcommon
embree
openvkl
glfw
ispc
)