129 lines
3.6 KiB
CMake
129 lines
3.6 KiB
CMake
# SPDX-FileCopyrightText: 2019 Blender Authors
|
|
#
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
# - Find OpenImageDenoise library
|
|
# Find the native OpenImageDenoise includes and library
|
|
# This module defines
|
|
# OPENIMAGEDENOISE_INCLUDE_DIRS, where to find oidn.h, Set when
|
|
# OPENIMAGEDENOISE is found.
|
|
# OPENIMAGEDENOISE_LIBRARIES, libraries to link against to use OpenImageDenoise.
|
|
# OPENIMAGEDENOISE_ROOT_DIR, The base directory to search for OpenImageDenoise.
|
|
# This can also be an environment variable.
|
|
# OPENIMAGEDENOISE_FOUND, If false, do not try to use OpenImageDenoise.
|
|
#
|
|
# also defined, but not for general use are
|
|
# OPENIMAGEDENOISE_LIBRARY, where to find the OpenImageDenoise library.
|
|
|
|
# If `OPENIMAGEDENOISE_ROOT_DIR` was defined in the environment, use it.
|
|
if(DEFINED OPENIMAGEDENOISE_ROOT_DIR)
|
|
# Pass.
|
|
elseif(DEFINED ENV{OPENIMAGEDENOISE_ROOT_DIR})
|
|
set(OPENIMAGEDENOISE_ROOT_DIR $ENV{OPENIMAGEDENOISE_ROOT_DIR})
|
|
else()
|
|
set(OPENIMAGEDENOISE_ROOT_DIR "")
|
|
endif()
|
|
|
|
set(_openimagedenoise_SEARCH_DIRS
|
|
${OPENIMAGEDENOISE_ROOT_DIR}
|
|
/opt/lib/openimagedenoise
|
|
)
|
|
|
|
find_path(OPENIMAGEDENOISE_INCLUDE_DIR
|
|
NAMES
|
|
OpenImageDenoise/oidn.h
|
|
HINTS
|
|
${_openimagedenoise_SEARCH_DIRS}
|
|
PATH_SUFFIXES
|
|
include
|
|
)
|
|
|
|
set(_openimagedenoise_FIND_COMPONENTS
|
|
OpenImageDenoise
|
|
)
|
|
|
|
# These are needed when building statically
|
|
set(_openimagedenoise_FIND_STATIC_COMPONENTS
|
|
common
|
|
|
|
# These additional library names change between versions, we list all of them
|
|
# so builds work with multiple versions. Missing libraries are skipped.
|
|
dnnl_cpu
|
|
dnnl_common
|
|
dnnl_cpu # Second time because of circular dependency
|
|
mkldnn
|
|
dnnl
|
|
)
|
|
|
|
set(_openimagedenoise_LIBRARIES)
|
|
foreach(COMPONENT ${_openimagedenoise_FIND_COMPONENTS})
|
|
string(TOUPPER ${COMPONENT} UPPERCOMPONENT)
|
|
|
|
find_library(OPENIMAGEDENOISE_${UPPERCOMPONENT}_LIBRARY
|
|
NAMES
|
|
${COMPONENT}
|
|
HINTS
|
|
${_openimagedenoise_SEARCH_DIRS}
|
|
PATH_SUFFIXES
|
|
lib64 lib
|
|
)
|
|
list(APPEND _openimagedenoise_LIBRARIES "${OPENIMAGEDENOISE_${UPPERCOMPONENT}_LIBRARY}")
|
|
endforeach()
|
|
|
|
foreach(COMPONENT ${_openimagedenoise_FIND_STATIC_COMPONENTS})
|
|
string(TOUPPER ${COMPONENT} UPPERCOMPONENT)
|
|
|
|
find_library(OPENIMAGEDENOISE_${UPPERCOMPONENT}_LIBRARY
|
|
NAMES
|
|
${COMPONENT}
|
|
HINTS
|
|
${_openimagedenoise_SEARCH_DIRS}
|
|
PATH_SUFFIXES
|
|
lib64 lib
|
|
)
|
|
mark_as_advanced(OPENIMAGEDENOISE_${UPPERCOMPONENT}_LIBRARY)
|
|
if(OPENIMAGEDENOISE_${UPPERCOMPONENT}_LIBRARY)
|
|
list(APPEND _openimagedenoise_LIBRARIES "${OPENIMAGEDENOISE_${UPPERCOMPONENT}_LIBRARY}")
|
|
endif()
|
|
endforeach()
|
|
|
|
find_library(OPENIMAGEDENOISE_LIBRARY
|
|
NAMES
|
|
OpenImageDenoise
|
|
HINTS
|
|
${_openimagedenoise_SEARCH_DIRS}
|
|
PATH_SUFFIXES
|
|
lib64 lib
|
|
)
|
|
|
|
# handle the QUIETLY and REQUIRED arguments and set OPENIMAGEDENOISE_FOUND to TRUE if
|
|
# all listed variables are TRUE
|
|
include(FindPackageHandleStandardArgs)
|
|
find_package_handle_standard_args(OpenImageDenoise DEFAULT_MSG
|
|
OPENIMAGEDENOISE_LIBRARY OPENIMAGEDENOISE_INCLUDE_DIR)
|
|
|
|
if(OPENIMAGEDENOISE_FOUND)
|
|
set(OPENIMAGEDENOISE_LIBRARIES ${_openimagedenoise_LIBRARIES})
|
|
set(OPENIMAGEDENOISE_INCLUDE_DIRS ${OPENIMAGEDENOISE_INCLUDE_DIR})
|
|
else()
|
|
set(OPENIMAGEDENOISE_FOUND FALSE)
|
|
endif()
|
|
|
|
mark_as_advanced(
|
|
OPENIMAGEDENOISE_INCLUDE_DIR
|
|
OPENIMAGEDENOISE_LIBRARY
|
|
)
|
|
|
|
foreach(COMPONENT ${_openimagedenoise_FIND_COMPONENTS})
|
|
string(TOUPPER ${COMPONENT} UPPERCOMPONENT)
|
|
mark_as_advanced(OPENIMAGEDENOISE_${UPPERCOMPONENT}_LIBRARY)
|
|
endforeach()
|
|
|
|
unset(COMPONENT)
|
|
unset(UPPERCOMPONENT)
|
|
|
|
unset(_openimagedenoise_FIND_COMPONENTS)
|
|
unset(_openimagedenoise_FIND_STATIC_COMPONENTS)
|
|
unset(_openimagedenoise_LIBRARIES)
|
|
unset(_openimagedenoise_SEARCH_DIRS)
|