1## Copyright 2009-2021 Intel Corporation
2## SPDX-License-Identifier: Apache-2.0
3
4set(COMPONENT_NAME oidn)
5
6set(COMPONENT_PATH ${INSTALL_DIR_ABSOLUTE})
7if (INSTALL_IN_SEPARATE_DIRECTORIES)
8  set(COMPONENT_PATH ${INSTALL_DIR_ABSOLUTE}/${COMPONENT_NAME})
9endif()
10
11if (BUILD_OIDN_FROM_SOURCE)
12  string(REGEX REPLACE "(^[0-9]+\.[0-9]+\.[0-9]+$)" "v\\1" OIDN_BRANCH ${OIDN_VERSION})
13  ExternalProject_Add(${COMPONENT_NAME}
14    PREFIX ${COMPONENT_NAME}
15    DOWNLOAD_DIR ${COMPONENT_NAME}
16    STAMP_DIR ${COMPONENT_NAME}/stamp
17    SOURCE_DIR ${COMPONENT_NAME}/src
18    BINARY_DIR ${COMPONENT_NAME}/build
19    LIST_SEPARATOR | # Use the alternate list separator
20    GIT_REPOSITORY "https://www.github.com/OpenImageDenoise/oidn.git" # need git to get submodules
21    GIT_TAG ${OIDN_BRANCH}
22    GIT_SHALLOW ON
23    CMAKE_ARGS
24      -DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}
25      -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
26      -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
27      -DCMAKE_INSTALL_PREFIX:PATH=${COMPONENT_PATH}
28      -DCMAKE_INSTALL_INCLUDEDIR=${CMAKE_INSTALL_INCLUDEDIR}
29      -DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR}
30      -DCMAKE_INSTALL_DOCDIR=${CMAKE_INSTALL_DOCDIR}
31      -DCMAKE_INSTALL_BINDIR=${CMAKE_INSTALL_BINDIR}
32      $<$<BOOL:${DOWNLOAD_TBB}>:-DTBB_ROOT=${TBB_PATH}>
33      $<$<BOOL:${DOWNLOAD_ISPC}>:-DISPC_EXECUTABLE=${ISPC_PATH}>
34      -DCMAKE_BUILD_TYPE=${DEPENDENCIES_BUILD_TYPE}
35      -DOIDN_APPS=OFF
36      -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
37      -DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}
38    BUILD_COMMAND ${DEFAULT_BUILD_COMMAND}
39    BUILD_ALWAYS ${ALWAYS_REBUILD}
40  )
41
42  if (DOWNLOAD_TBB)
43    ExternalProject_Add_StepDependencies(${COMPONENT_NAME} configure tbb)
44  endif()
45  if (DOWNLOAD_ISPC)
46    ExternalProject_Add_StepDependencies(${COMPONENT_NAME} configure ispc)
47  endif()
48
49else()
50
51  if (OIDN_HASH)
52    set(OIDN_URL_HASH URL_HASH SHA256=${OIDN_HASH})
53  endif()
54
55  if (APPLE)
56    set(OIDN_OSSUFFIX "x86_64.macos.tar.gz")
57  elseif (WIN32)
58    set(OIDN_OSSUFFIX "x64.vc14.windows.zip")
59  else()
60    set(OIDN_OSSUFFIX "x86_64.linux.tar.gz")
61  endif()
62  set(OIDN_URL "https://github.com/OpenImageDenoise/oidn/releases/download/v${OIDN_VERSION}/oidn-${OIDN_VERSION}.${OIDN_OSSUFFIX}")
63
64  ExternalProject_Add(${COMPONENT_NAME}
65    PREFIX ${COMPONENT_NAME}
66    DOWNLOAD_DIR ${COMPONENT_NAME}
67    STAMP_DIR ${COMPONENT_NAME}/stamp
68    SOURCE_DIR ${COMPONENT_NAME}/src
69    BINARY_DIR ${COMPONENT_NAME}
70    URL ${OIDN_URL}
71    ${OIDN_URL_HASH}
72    CONFIGURE_COMMAND ""
73    BUILD_COMMAND ""
74    INSTALL_COMMAND "${CMAKE_COMMAND}" -E copy_directory
75      <SOURCE_DIR>/
76      ${COMPONENT_PATH}
77    BUILD_ALWAYS OFF
78  )
79endif()
80
81list(APPEND CMAKE_PREFIX_PATH ${COMPONENT_PATH})
82string(REPLACE ";" "|" CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH}")
83
84