mirror of
https://github.com/archlinux/aur.git
synced 2026-02-16 06:09:01 +01:00
309 lines
12 KiB
Diff
309 lines
12 KiB
Diff
--- AliceVision-2.4.0/src/cmake/openexr/FindOpenEXR.cmake 2021-05-30 08:32:20.810681100 +0200
|
|
+++ AliceVision-2.4.0.new/src/cmake/openexr/FindOpenEXR.cmake 2021-05-30 08:30:50.611355400 +0200
|
|
@@ -1,178 +1,138 @@
|
|
-# Module to find OpenEXR.
|
|
+# - Find OpenEXR library
|
|
+# Find the native OpenEXR includes and library
|
|
+# This module defines
|
|
+# OPENEXR_INCLUDE_DIRS, where to find ImfXdr.h, etc. Set when
|
|
+# OPENEXR_INCLUDE_DIR is found.
|
|
+# OPENEXR_LIBRARIES, libraries to link against to use OpenEXR.
|
|
+# OPENEXR_ROOT_DIR, The base directory to search for OpenEXR.
|
|
+# This can also be an environment variable.
|
|
+# OPENEXR_FOUND, If false, do not try to use OpenEXR.
|
|
#
|
|
-# This module will set
|
|
-# OPENEXR_FOUND true, if found
|
|
-# OPENEXR_INCLUDE_DIR directory where headers are found
|
|
-# OPENEXR_LIBRARIES libraries for OpenEXR + IlmBase
|
|
-# ILMBASE_LIBRARIES libraries just IlmBase
|
|
-# OPENEXR_VERSION OpenEXR version (accurate for >= 2.0.0,
|
|
-# otherwise will just guess 1.6.1)
|
|
+# For individual library access these advanced settings are available
|
|
+# OPENEXR_HALF_LIBRARY, Path to Half library
|
|
+# OPENEXR_IEX_LIBRARY, Path to Half library
|
|
+# OPENEXR_ILMIMF_LIBRARY, Path to Ilmimf library
|
|
+# OPENEXR_ILMTHREAD_LIBRARY, Path to IlmThread library
|
|
+# OPENEXR_IMATH_LIBRARY, Path to Imath library
|
|
#
|
|
-# Special inputs:
|
|
-# OPENEXR_CUSTOM_INCLUDE_DIR - custom location of headers
|
|
-# OPENEXR_CUSTOM_LIB_DIR - custom location of libraries
|
|
-# OPENEXR_CUSTOM_LIB_PREFIX - special snowflake library prefix
|
|
-# OPENEXR_CUSTOM_LIB_SUFFIX - special snowflake library suffix
|
|
+# also defined, but not for general use are
|
|
+# OPENEXR_LIBRARY, where to find the OpenEXR library.
|
|
+
|
|
+#=============================================================================
|
|
+# Copyright 2011 Blender Foundation.
|
|
#
|
|
+# Distributed under the OSI-approved BSD 3-Clause License,
|
|
+# see accompanying file BSD-3-Clause-license.txt for details.
|
|
+#=============================================================================
|
|
+
|
|
+# If OPENEXR_ROOT_DIR was defined in the environment, use it.
|
|
+IF(NOT OPENEXR_ROOT_DIR AND NOT $ENV{OPENEXR_ROOT_DIR} STREQUAL "")
|
|
+ SET(OPENEXR_ROOT_DIR $ENV{OPENEXR_ROOT_DIR})
|
|
+ENDIF()
|
|
+
|
|
+# Old versions (before 2.0?) do not have any version string, just assuming this should be fine though.
|
|
+SET(_openexr_libs_ver_init "2.0")
|
|
+
|
|
+SET(_openexr_FIND_COMPONENTS
|
|
+ Iex
|
|
+ Imath
|
|
+ OpenEXR
|
|
+ IlmThread
|
|
+)
|
|
|
|
-# Other standard issue macros
|
|
-include (FindPackageHandleStandardArgs)
|
|
-include (SelectLibraryConfigurations)
|
|
-
|
|
-find_package (ZLIB REQUIRED)
|
|
-
|
|
-# Link with pthreads if required
|
|
-find_package (Threads)
|
|
-if (CMAKE_USE_PTHREADS_INIT)
|
|
- set (ILMBASE_PTHREADS ${CMAKE_THREAD_LIBS_INIT})
|
|
-endif ()
|
|
-
|
|
-# List of likely places to find the headers -- note priority override of
|
|
-# OPENEXR_CUSTOM_INCLUDE_DIR and ${OPENEXR_HOME}/include.
|
|
-# ILMBASE is needed in case ilmbase an openexr are installed in separate
|
|
-# directories, like NixOS does
|
|
-set (GENERIC_INCLUDE_PATHS
|
|
- ${OPENEXR_CUSTOM_INCLUDE_DIR}
|
|
- ${OPENEXR_HOME}/include
|
|
- ${ILMBASE_HOME}/include
|
|
-# /usr/local/include
|
|
-# /usr/include
|
|
-# /usr/include/${CMAKE_LIBRARY_ARCHITECTURE}
|
|
-# /sw/include
|
|
-# /opt/local/include
|
|
+SET(_openexr_SEARCH_DIRS
|
|
+ ${OPENEXR_ROOT_DIR}
|
|
+ /opt/lib/openexr
|
|
)
|
|
|
|
-# Find the include file locations. We call find_path twice -- first using
|
|
-# only the custom paths, then if that fails, try the default paths only.
|
|
-# This seems to be the most robust way I can find to not get confused when
|
|
-# both system and custom libraries are present.
|
|
-find_path (ILMBASE_INCLUDE_PATH OpenEXR/IlmBaseConfig.h
|
|
- PATHS ${GENERIC_INCLUDE_PATHS})
|
|
-#find_path (ILMBASE_INCLUDE_PATH OpenEXR/IlmBaseConfig.h)
|
|
-find_path (OPENEXR_INCLUDE_PATH OpenEXR/OpenEXRConfig.h
|
|
- PATHS ${GENERIC_INCLUDE_PATHS})
|
|
-#find_path (OPENEXR_INCLUDE_PATH OpenEXR/OpenEXRConfig.h)
|
|
-
|
|
-# message(WARNING "GENERIC_INCLUDE_PATHS: ${GENERIC_INCLUDE_PATHS}")
|
|
-# message(WARNING "Test if file exist: ${OPENEXR_INCLUDE_PATH}/OpenEXR/ImfMultiPartInputFile.h")
|
|
-
|
|
-
|
|
-# Try to figure out version number
|
|
-if (EXISTS "${OPENEXR_INCLUDE_PATH}/OpenEXR/ImfMultiPartInputFile.h")
|
|
- # message(WARNING "Yes, file exist")
|
|
-
|
|
- # Must be at least 2.0
|
|
- file(STRINGS "${OPENEXR_INCLUDE_PATH}/OpenEXR/OpenEXRConfig.h" TMP REGEX "^#define OPENEXR_VERSION_STRING .*$")
|
|
- string (REGEX MATCHALL "[0-9]+[.0-9]+" OPENEXR_VERSION ${TMP})
|
|
- file(STRINGS "${OPENEXR_INCLUDE_PATH}/OpenEXR/OpenEXRConfig.h" TMP REGEX "^#define OPENEXR_VERSION_MAJOR .*$")
|
|
- string (REGEX MATCHALL "[0-9]+" OPENEXR_VERSION_MAJOR ${TMP})
|
|
- file(STRINGS "${OPENEXR_INCLUDE_PATH}/OpenEXR/OpenEXRConfig.h" TMP REGEX "^#define OPENEXR_VERSION_MINOR .*$")
|
|
- string (REGEX MATCHALL "[0-9]+" OPENEXR_VERSION_MINOR ${TMP})
|
|
-else ()
|
|
- message(STATUS "File ${OPENEXR_INCLUDE_PATH}/OpenEXR/ImfMultiPartInputFile.h does not exist. Default to 1.6.1")
|
|
- # Assume an old one, predates 2.x that had versions
|
|
- set (OPENEXR_VERSION 1.6.1)
|
|
- set (OPENEXR_MAJOR 1)
|
|
- set (OPENEXR_MINOR 6)
|
|
-endif ()
|
|
-
|
|
-
|
|
-# List of likely places to find the libraries -- note priority override of
|
|
-# OPENEXR_CUSTOM_LIB_DIR and ${OPENEXR_HOME}/lib.
|
|
-
|
|
-# If there's no OPENEXR_HOME or ILMBASE_HOME, then the path will point to
|
|
-# "/lib", which may not always be wanted/expected.
|
|
-if (OPENEXR_CUSTOM_LIB_DIR)
|
|
- set (GENERIC_LIBRARY_PATHS ${GENERIC_LIBRARY_PATHS} ${OPENEXR_CUSTOM_LIB_DIR})
|
|
-endif()
|
|
-
|
|
-if (OPENEXR_HOME)
|
|
- set (GENERIC_LIBRARY_PATHS ${GENERIC_LIBRARY_PATHS} ${OPENEXR_HOME})
|
|
-endif()
|
|
-
|
|
-if (ILMBASE_HOME)
|
|
- set (GENERIC_LIBRARY_PATHS ${GENERIC_LIBRARY_PATHS} ${ILMBASE_HOME})
|
|
-endif()
|
|
-
|
|
-set (GENERIC_LIBRARY_PATHS
|
|
- ${GENERIC_LIBRARY_PATHS}
|
|
- ${OPENEXR_INCLUDE_PATH}/../lib
|
|
- ${ILMBASE_INCLUDE_PATH}/../lib
|
|
- /usr/local/lib
|
|
- /usr/local/lib/${CMAKE_LIBRARY_ARCHITECTURE}
|
|
- /usr/lib
|
|
- /usr/lib/${CMAKE_LIBRARY_ARCHITECTURE}
|
|
- /sw/lib
|
|
- /opt/local/lib
|
|
- $ENV{PROGRAM_FILES}/OpenEXR/lib/static )
|
|
-
|
|
-# Handle request for static libs by altering CMAKE_FIND_LIBRARY_SUFFIXES.
|
|
-# We will restore it at the end of this file.
|
|
-set (_openexr_orig_suffixes ${CMAKE_FIND_LIBRARY_SUFFIXES})
|
|
-if (OpenEXR_USE_STATIC_LIBS)
|
|
- if (WIN32)
|
|
- set (CMAKE_FIND_LIBRARY_SUFFIXES .lib .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
|
|
- else ()
|
|
- set (CMAKE_FIND_LIBRARY_SUFFIXES .a)
|
|
- endif ()
|
|
-endif ()
|
|
-
|
|
-# Look for the libraries themselves, for all the components. Like with the
|
|
-# headers, we do two finds -- first for custom locations, then for default.
|
|
-# This is complicated because the OpenEXR libraries may or may not be
|
|
-# built with version numbers embedded.
|
|
-set (_openexr_components IlmThread IlmImf Imath Iex Half)
|
|
-foreach (COMPONENT ${_openexr_components})
|
|
- string (TOUPPER ${COMPONENT} UPPERCOMPONENT)
|
|
- # First try with the version embedded
|
|
- set (FULL_COMPONENT_NAME ${OPENEXR_CUSTOM_LIB_PREFIX}${COMPONENT}-${OPENEXR_VERSION_MAJOR}_${OPENEXR_VERSION_MINOR}${OPENEXR_CUSTOM_LIB_SUFFIX})
|
|
- find_library (OPENEXR_${UPPERCOMPONENT}_LIBRARY ${FULL_COMPONENT_NAME}
|
|
- PATHS ${GENERIC_LIBRARY_PATHS} NO_DEFAULT_PATH)
|
|
- # Again, with no directory restrictions
|
|
- find_library (OPENEXR_${UPPERCOMPONENT}_LIBRARY ${FULL_COMPONENT_NAME})
|
|
- # Try again without the version
|
|
- set (FULL_COMPONENT_NAME ${OPENEXR_CUSTOM_LIB_PREFIX}${COMPONENT}${OPENEXR_CUSTOM_LIB_SUFFIX})
|
|
- find_library (OPENEXR_${UPPERCOMPONENT}_LIBRARY ${FULL_COMPONENT_NAME}
|
|
- PATHS ${GENERIC_LIBRARY_PATHS} NO_DEFAULT_PATH)
|
|
- # One more time, with no restrictions
|
|
- find_library (OPENEXR_${UPPERCOMPONENT}_LIBRARY ${FULL_COMPONENT_NAME})
|
|
-endforeach ()
|
|
-#Half usually has no suffix
|
|
-find_library (OPENEXR_HALF_LIBRARY ${OPENEXR_CUSTOM_LIB_PREFIX}Half
|
|
- PATHS ${GENERIC_LIBRARY_PATHS} NO_DEFAULT_PATH)
|
|
-find_library (OPENEXR_HALF_LIBRARY ${OPENEXR_CUSTOM_LIB_PREFIX}Half)
|
|
-
|
|
-# Set the FOUND, INCLUDE_DIR, and LIBRARIES variables.
|
|
-if (ILMBASE_INCLUDE_PATH AND OPENEXR_INCLUDE_PATH AND
|
|
- OPENEXR_IMATH_LIBRARY AND OPENEXR_ILMIMF_LIBRARY AND
|
|
- OPENEXR_IEX_LIBRARY AND OPENEXR_HALF_LIBRARY)
|
|
- set (OPENEXR_FOUND TRUE)
|
|
- set (ILMBASE_FOUND TRUE)
|
|
- set (ILMBASE_INCLUDE_DIR ${ILMBASE_INCLUDE_PATH};${ILMBASE_INCLUDE_PATH}/OpenEXR CACHE STRING "The include paths needed to use IlmBase")
|
|
- set (OPENEXR_INCLUDE_DIR ${OPENEXR_INCLUDE_PATH} CACHE STRING "The include paths needed to use OpenEXR")
|
|
- set (ILMBASE_LIBRARIES ${OPENEXR_IMATH_LIBRARY} ${OPENEXR_IEX_LIBRARY} ${OPENEXR_HALF_LIBRARY} ${OPENEXR_ILMTHREAD_LIBRARY} ${ILMBASE_PTHREADS} CACHE STRING "The libraries needed to use IlmBase")
|
|
- set (OPENEXR_LIBRARIES ${OPENEXR_ILMIMF_LIBRARY} ${ILMBASE_LIBRARIES} ${ZLIB_LIBRARIES} CACHE STRING "The libraries needed to use OpenEXR")
|
|
-endif ()
|
|
-
|
|
-find_package_handle_standard_args (OpenEXR
|
|
- REQUIRED_VARS ILMBASE_INCLUDE_PATH OPENEXR_INCLUDE_PATH
|
|
- OPENEXR_IMATH_LIBRARY OPENEXR_ILMIMF_LIBRARY
|
|
- OPENEXR_IEX_LIBRARY OPENEXR_HALF_LIBRARY
|
|
- VERSION_VAR OPENEXR_VERSION
|
|
+FIND_PATH(OPENEXR_INCLUDE_DIR
|
|
+ NAMES
|
|
+ OpenEXR/ImfXdr.h
|
|
+ HINTS
|
|
+ ${_openexr_SEARCH_DIRS}
|
|
+ PATH_SUFFIXES
|
|
+ include
|
|
+)
|
|
+
|
|
+# If the headers were found, get the version from config file, if not already set.
|
|
+IF(OPENEXR_INCLUDE_DIR)
|
|
+ IF(NOT OPENEXR_VERSION)
|
|
+
|
|
+ FIND_FILE(_openexr_CONFIG
|
|
+ NAMES
|
|
+ OpenEXRConfig.h
|
|
+ PATHS
|
|
+ "${OPENEXR_INCLUDE_DIR}"
|
|
+ "${OPENEXR_INCLUDE_DIR}/OpenEXR"
|
|
+ NO_DEFAULT_PATH
|
|
)
|
|
|
|
-message(WARNING "ILMBASE_INCLUDE_DIR: ${ILMBASE_INCLUDE_DIR}")
|
|
+ IF(_openexr_CONFIG)
|
|
+ FILE(STRINGS "${_openexr_CONFIG}" OPENEXR_BUILD_SPECIFICATION
|
|
+ REGEX "^[ \t]*#define[ \t]+OPENEXR_VERSION_STRING[ \t]+\"[.0-9]+\".*$")
|
|
+ ELSE()
|
|
+ MESSAGE(WARNING "Could not find \"OpenEXRConfig.h\" in \"${OPENEXR_INCLUDE_DIR}\"")
|
|
+ ENDIF()
|
|
+
|
|
+ IF(OPENEXR_BUILD_SPECIFICATION)
|
|
+ MESSAGE(STATUS "${OPENEXR_BUILD_SPECIFICATION}")
|
|
+ STRING(REGEX REPLACE ".*#define[ \t]+OPENEXR_VERSION_STRING[ \t]+\"([.0-9]+)\".*"
|
|
+ "\\1" _openexr_libs_ver_init ${OPENEXR_BUILD_SPECIFICATION})
|
|
+ ELSE()
|
|
+ MESSAGE(WARNING "Could not determine ILMBase library version, assuming ${_openexr_libs_ver_init}.")
|
|
+ ENDIF()
|
|
+
|
|
+ UNSET(_openexr_CONFIG CACHE)
|
|
+
|
|
+ ENDIF()
|
|
+ENDIF()
|
|
+
|
|
+SET("OPENEXR_VERSION" ${_openexr_libs_ver_init} CACHE STRING "Version of OpenEXR lib")
|
|
+UNSET(_openexr_libs_ver_init)
|
|
+
|
|
+STRING(REGEX REPLACE "([0-9]+)[.]([0-9]+).*" "\\1_\\2" _openexr_libs_ver ${OPENEXR_VERSION})
|
|
+
|
|
+SET(_openexr_LIBRARIES)
|
|
+FOREACH(COMPONENT ${_openexr_FIND_COMPONENTS})
|
|
+ STRING(TOUPPER ${COMPONENT} UPPERCOMPONENT)
|
|
+
|
|
+ FIND_LIBRARY(OPENEXR_${UPPERCOMPONENT}_LIBRARY
|
|
+ NAMES
|
|
+ ${COMPONENT}-${_openexr_libs_ver} ${COMPONENT}
|
|
+ NAMES_PER_DIR
|
|
+ HINTS
|
|
+ ${_openexr_SEARCH_DIRS}
|
|
+ PATH_SUFFIXES
|
|
+ lib64 lib
|
|
+ )
|
|
+ LIST(APPEND _openexr_LIBRARIES "${OPENEXR_${UPPERCOMPONENT}_LIBRARY}")
|
|
+ENDFOREACH()
|
|
|
|
-MARK_AS_ADVANCED(
|
|
- ILMBASE_INCLUDE_DIR
|
|
- OPENEXR_INCLUDE_DIR
|
|
- ILMBASE_LIBRARIES
|
|
- OPENEXR_LIBRARIES
|
|
- OPENEXR_ILMIMF_LIBRARY
|
|
- OPENEXR_IMATH_LIBRARY
|
|
- OPENEXR_IEX_LIBRARY
|
|
- OPENEXR_HALF_LIBRARY
|
|
- OPENEXR_VERSION)
|
|
+UNSET(_openexr_libs_ver)
|
|
+
|
|
+# handle the QUIETLY and REQUIRED arguments and set OPENEXR_FOUND to TRUE if
|
|
+# all listed variables are TRUE
|
|
+INCLUDE(FindPackageHandleStandardArgs)
|
|
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenEXR DEFAULT_MSG
|
|
+ _openexr_LIBRARIES OPENEXR_INCLUDE_DIR)
|
|
+
|
|
+IF(OPENEXR_FOUND)
|
|
+ SET(OPENEXR_LIBRARIES ${_openexr_LIBRARIES})
|
|
+ # Both include paths are needed because of dummy OSL headers mixing #include <OpenEXR/foo.h> and #include <foo.h> :(
|
|
+ SET(OPENEXR_INCLUDE_DIRS ${OPENEXR_INCLUDE_DIR} ${OPENEXR_INCLUDE_DIR}/OpenEXR ${OPENEXR_INCLUDE_DIR}/Imath)
|
|
+ENDIF()
|
|
|
|
-# Restore the original CMAKE_FIND_LIBRARY_SUFFIXES
|
|
-set (CMAKE_FIND_LIBRARY_SUFFIXES ${_openexr_orig_suffixes})
|
|
+MARK_AS_ADVANCED(
|
|
+ OPENEXR_INCLUDE_DIR
|
|
+ OPENEXR_VERSION
|
|
+)
|
|
+FOREACH(COMPONENT ${_openexr_FIND_COMPONENTS})
|
|
+ STRING(TOUPPER ${COMPONENT} UPPERCOMPONENT)
|
|
+ MARK_AS_ADVANCED(OPENEXR_${UPPERCOMPONENT}_LIBRARY)
|
|
+ENDFOREACH()
|
|
+
|
|
+UNSET(COMPONENT)
|
|
+UNSET(UPPERCOMPONENT)
|
|
+UNSET(_openexr_FIND_COMPONENTS)
|
|
+UNSET(_openexr_LIBRARIES)
|
|
+UNSET(_openexr_SEARCH_DIRS)
|