vcpkg/ports/openvdb/0002-fix-cmake-modules.patch

1126 lines
37 KiB
Diff
Raw Normal View History

diff --git a/cmake/FindBlosc.cmake b/cmake/FindBlosc.cmake
index e8b57a2..61ba83b 100644
--- a/cmake/FindBlosc.cmake
+++ b/cmake/FindBlosc.cmake
@@ -1,4 +1,4 @@
-# Copyright (c) 2012-2019 DreamWorks Animation LLC
+# Copyright (c) 2012-2016 DreamWorks Animation LLC
#
# All rights reserved. This software is distributed under the
# Mozilla Public License 2.0 ( http://www.mozilla.org/MPL/2.0/ )
@@ -24,190 +24,51 @@
# IN NO EVENT SHALL THE COPYRIGHT HOLDERS' AND CONTRIBUTORS' AGGREGATE
# LIABILITY FOR ALL CLAIMS REGARDLESS OF THEIR BASIS EXCEED US$250.00.
#
-#[=======================================================================[.rst:
-FindBlosc
----------
-
-Find Blosc include dirs and libraries
-
-Use this module by invoking find_package with the form::
-
- find_package(Blosc
- [version] [EXACT] # Minimum or EXACT version e.g. 1.5.0
- [REQUIRED] # Fail with error if Blosc is not found
- )
-
-IMPORTED Targets
-^^^^^^^^^^^^^^^^
-
-``Blosc::blosc``
- This module defines IMPORTED target Blosc::Blosc, if Blosc has been found.
-
-Result Variables
-^^^^^^^^^^^^^^^^
-
-This will define the following variables:
-
-``Blosc_FOUND``
- True if the system has the Blosc library.
-``Blosc_VERSION``
- The version of the Blosc library which was found.
-``Blosc_INCLUDE_DIRS``
- Include directories needed to use Blosc.
-``Blosc_LIBRARIES``
- Libraries needed to link to Blosc.
-``Blosc_LIBRARY_DIRS``
- Blosc library directories.
-
-Cache Variables
-^^^^^^^^^^^^^^^
-
-The following cache variables may also be set:
-
-``Blosc_INCLUDE_DIR``
- The directory containing ``blosc.h``.
-``Blosc_LIBRARY``
- The path to the Blosc library.
-
-Hints
-^^^^^
-
-Instead of explicitly setting the cache variables, the following variables
-may be provided to tell this module where to look.
-
-``BLOSC_ROOT``
- Preferred installation prefix.
-``BLOSC_INCLUDEDIR``
- Preferred include directory e.g. <prefix>/include
-``BLOSC_LIBRARYDIR``
- Preferred library directory e.g. <prefix>/lib
-``SYSTEM_LIBRARY_PATHS``
- Paths appended to all include and lib searches.
-
-#]=======================================================================]
-
-mark_as_advanced(
- Blosc_INCLUDE_DIR
- Blosc_LIBRARY
-)
-
-# Append BLOSC_ROOT or $ENV{BLOSC_ROOT} if set (prioritize the direct cmake var)
-set(_BLOSC_ROOT_SEARCH_DIR "")
-
-if(BLOSC_ROOT)
- list(APPEND _BLOSC_ROOT_SEARCH_DIR ${BLOSC_ROOT})
-else()
- set(_ENV_BLOSC_ROOT $ENV{BLOSC_ROOT})
- if(_ENV_BLOSC_ROOT)
- list(APPEND _BLOSC_ROOT_SEARCH_DIR ${_ENV_BLOSC_ROOT})
- endif()
-endif()
-
-# ------------------------------------------------------------------------
-# Search for blosc include DIR
-# ------------------------------------------------------------------------
-
-set(_BLOSC_INCLUDE_SEARCH_DIRS "")
-list(APPEND _BLOSC_INCLUDE_SEARCH_DIRS
- ${BLOSC_INCLUDEDIR}
- ${_BLOSC_ROOT_SEARCH_DIR}
- ${PC_Blosc_INCLUDE_DIRS}
- ${SYSTEM_LIBRARY_PATHS}
-)
+# -*- cmake -*-
+# - Find Blosc
+#
+# Author : Nicholas Yue yue.nicholas@gmail.com
+#
+# BLOSC_FOUND set if Blosc is found.
+# BLOSC_INCLUDE_DIR Blosc's include directory
+# BLOSC_LIBRARYDIR Blosc's library directory
+# BLOSC_LIBRARIES all Blosc libraries
-# Look for a standard blosc header file.
-find_path(Blosc_INCLUDE_DIR blosc.h
- NO_DEFAULT_PATH
- PATHS ${_BLOSC_INCLUDE_SEARCH_DIRS}
- PATH_SUFFIXES include
-)
+FIND_PACKAGE ( PackageHandleStandardArgs )
-if(EXISTS "${Blosc_INCLUDE_DIR}/blosc.h")
- file(STRINGS "${Blosc_INCLUDE_DIR}/blosc.h"
- _blosc_version_major_string REGEX "#define BLOSC_VERSION_MAJOR +[0-9]+ "
- )
- string(REGEX REPLACE "#define BLOSC_VERSION_MAJOR +([0-9]+).*$" "\\1"
- _blosc_version_major_string "${_blosc_version_major_string}"
- )
- string(STRIP "${_blosc_version_major_string}" Blosc_VERSION_MAJOR)
+FIND_PATH( BLOSC_LOCATION include/blosc.h)
- file(STRINGS "${Blosc_INCLUDE_DIR}/blosc.h"
- _blosc_version_minor_string REGEX "#define BLOSC_VERSION_MINOR +[0-9]+ "
+FIND_PACKAGE_HANDLE_STANDARD_ARGS ( Blosc
+ REQUIRED_VARS BLOSC_LOCATION
)
- string(REGEX REPLACE "#define BLOSC_VERSION_MINOR +([0-9]+).*$" "\\1"
- _blosc_version_minor_string "${_blosc_version_minor_string}"
- )
- string(STRIP "${_blosc_version_minor_string}" Blosc_VERSION_MINOR)
-
- unset(_blosc_version_major_string)
- unset(_blosc_version_minor_string)
-
- set(Blosc_VERSION ${Blosc_VERSION_MAJOR}.${Blosc_VERSION_MINOR})
-endif()
-
-# ------------------------------------------------------------------------
-# Search for blosc lib DIR
-# ------------------------------------------------------------------------
-set(_BLOSC_LIBRARYDIR_SEARCH_DIRS "")
-list(APPEND _BLOSC_LIBRARYDIR_SEARCH_DIRS
- ${BLOSC_LIBRARYDIR}
- ${_BLOSC_ROOT_SEARCH_DIR}
- ${PC_Blosc_LIBRARY_DIRS}
- ${SYSTEM_LIBRARY_PATHS}
-)
+IF ( BLOSC_FOUND )
-# Static library setup
-if(UNIX AND BLOSC_USE_STATIC_LIBS)
- set(_BLOSC_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
- set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
-endif()
+# SET ( BLOSC_LIBRARYDIR ${BLOSC_LOCATION}/lib
+# CACHE STRING "Blosc library directories")
-set(BLOSC_PATH_SUFFIXES
- lib64
- lib
-)
+ SET ( _blosc_library_name "blosc" )
-find_library(Blosc_LIBRARY blosc
- NO_DEFAULT_PATH
- PATHS ${_BLOSC_LIBRARYDIR_SEARCH_DIRS}
- PATH_SUFFIXES ${BLOSC_PATH_SUFFIXES}
-)
+ # Static library setup
+ IF (Blosc_USE_STATIC_LIBS)
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES_BACKUP ${CMAKE_FIND_LIBRARY_SUFFIXES})
+ IF (WIN32)
+ SET ( _blosc_library_name "libblosc" )
+ ELSE ()
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
+ ENDIF ()
+ ENDIF()
-if(UNIX AND BLOSC_USE_STATIC_LIBS)
- set(CMAKE_FIND_LIBRARY_SUFFIXES ${_BLOSC_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
- unset(_BLOSC_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES)
-endif()
-
-# ------------------------------------------------------------------------
-# Cache and set Blosc_FOUND
-# ------------------------------------------------------------------------
-
-include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(Blosc
- FOUND_VAR Blosc_FOUND
- REQUIRED_VARS
- Blosc_LIBRARY
- Blosc_INCLUDE_DIR
- VERSION_VAR Blosc_VERSION
-)
+ FIND_LIBRARY ( BLOSC_blosc_LIBRARY ${_blosc_library_name}
+ NO_SYSTEM_ENVIRONMENT_PATH
+ )
-if(Blosc_FOUND)
- set(Blosc_LIBRARIES ${Blosc_LIBRARY})
- set(Blosc_INCLUDE_DIRS ${Blosc_INCLUDE_DIR})
- set(Blosc_DEFINITIONS ${PC_Blosc_CFLAGS_OTHER})
+ # Static library tear down
+ IF (Blosc_USE_STATIC_LIBS)
+ SET( CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_BACKUP} )
+ ENDIF()
- get_filename_component(Blosc_LIBRARY_DIRS ${Blosc_LIBRARY} DIRECTORY)
+ SET( BLOSC_INCLUDE_DIR "${BLOSC_LOCATION}/include" CACHE STRING "Blosc include directory" )
- if(NOT TARGET Blosc::blosc)
- add_library(Blosc::blosc UNKNOWN IMPORTED)
- set_target_properties(Blosc::blosc PROPERTIES
- IMPORTED_LOCATION "${Blosc_LIBRARIES}"
- INTERFACE_COMPILE_DEFINITIONS "${Blosc_DEFINITIONS}"
- INTERFACE_INCLUDE_DIRECTORIES "${Blosc_INCLUDE_DIRS}"
- )
- endif()
-elseif(Blosc_FIND_REQUIRED)
- message(FATAL_ERROR "Unable to find Blosc")
-endif()
+ENDIF ( BLOSC_FOUND )
diff --git a/cmake/FindIlmBase.cmake b/cmake/FindIlmBase.cmake
index 7f71a72..bb14fb4 100644
--- a/cmake/FindIlmBase.cmake
+++ b/cmake/FindIlmBase.cmake
@@ -1,4 +1,4 @@
-# Copyright (c) 2012-2019 DreamWorks Animation LLC
+# Copyright (c) 2012-2016 DreamWorks Animation LLC
#
# All rights reserved. This software is distributed under the
# Mozilla Public License 2.0 ( http://www.mozilla.org/MPL/2.0/ )
@@ -24,309 +24,162 @@
# IN NO EVENT SHALL THE COPYRIGHT HOLDERS' AND CONTRIBUTORS' AGGREGATE
# LIABILITY FOR ALL CLAIMS REGARDLESS OF THEIR BASIS EXCEED US$250.00.
#
-#[=======================================================================[.rst:
-FindIlmBase
------------
-
-Find IlmBase include dirs and libraries
-
-Use this module by invoking find_package with the form::
-
- find_package(IlmBase
- [version] [EXACT] # Minimum or EXACT version
- [REQUIRED] # Fail with error if IlmBase is not found
- [COMPONENTS <libs>...] # IlmBase libraries by their canonical name
- # e.g. "Half" for "libHalf"
- )
-
-IMPORTED Targets
-^^^^^^^^^^^^^^^^
-
-``IlmBase::Half``
- The Half library target.
-``IlmBase::Iex``
- The Iex library target.
-``IlmBase::IexMath``
- The IexMath library target.
-``IlmBase::IlmThread``
- The IlmThread library target.
-``IlmBase::Imath``
- The Imath library target.
-
-Result Variables
-^^^^^^^^^^^^^^^^
-
-This will define the following variables:
-
-``IlmBase_FOUND``
- True if the system has the IlmBase library.
-``IlmBase_VERSION``
- The version of the IlmBase library which was found.
-``IlmBase_INCLUDE_DIRS``
- Include directories needed to use IlmBase.
-``IlmBase_LIBRARIES``
- Libraries needed to link to IlmBase.
-``IlmBase_LIBRARY_DIRS``
- IlmBase library directories.
-``IlmBase_{COMPONENT}_FOUND``
- True if the system has the named IlmBase component.
-
-Cache Variables
-^^^^^^^^^^^^^^^
-
-The following cache variables may also be set:
-
-``IlmBase_INCLUDE_DIR``
- The directory containing ``IlmBase/config-auto.h``.
-``IlmBase_{COMPONENT}_LIBRARY``
- Individual component libraries for IlmBase
-``IlmBase_{COMPONENT}_DLL``
- Individual component dlls for IlmBase on Windows.
-
-Hints
-^^^^^
-
-Instead of explicitly setting the cache variables, the following variables
-may be provided to tell this module where to look.
-
-``ILMBASE_ROOT``
- Preferred installation prefix.
-``ILMBASE_INCLUDEDIR``
- Preferred include directory e.g. <prefix>/include
-``ILMBASE_LIBRARYDIR``
- Preferred library directory e.g. <prefix>/lib
-``SYSTEM_LIBRARY_PATHS``
- Paths appended to all include and lib searches.
-
-#]=======================================================================]
-
-# Support new if() IN_LIST operator
-if(POLICY CMP0057)
- cmake_policy(SET CMP0057 NEW)
-endif()
-
-mark_as_advanced(
- IlmBase_INCLUDE_DIR
- IlmBase_LIBRARY
-)
-
-set(_ILMBASE_COMPONENT_LIST
- Half
- Iex
- IexMath
- IlmThread
- Imath
-)
-
-if(IlmBase_FIND_COMPONENTS)
- set(ILMBASE_COMPONENTS_PROVIDED TRUE)
- set(_IGNORED_COMPONENTS "")
- foreach(COMPONENT ${IlmBase_FIND_COMPONENTS})
- if(NOT ${COMPONENT} IN_LIST _ILMBASE_COMPONENT_LIST)
- list(APPEND _IGNORED_COMPONENTS ${COMPONENT})
- endif()
- endforeach()
-
- if(_IGNORED_COMPONENTS)
- message(STATUS "Ignoring unknown components of IlmBase:")
- foreach(COMPONENT ${_IGNORED_COMPONENTS})
- message(STATUS " ${COMPONENT}")
- endforeach()
- list(REMOVE_ITEM IlmBase_FIND_COMPONENTS ${_IGNORED_COMPONENTS})
- endif()
-else()
- set(ILMBASE_COMPONENTS_PROVIDED FALSE)
- set(IlmBase_FIND_COMPONENTS ${_ILMBASE_COMPONENT_LIST})
-endif()
-
-# Append ILMBASE_ROOT or $ENV{ILMBASE_ROOT} if set (prioritize the direct cmake var)
-set(_ILMBASE_ROOT_SEARCH_DIR "")
-
-if(ILMBASE_ROOT)
- list(APPEND _ILMBASE_ROOT_SEARCH_DIR ${ILMBASE_ROOT})
-else()
- set(_ENV_ILMBASE_ROOT $ENV{ILMBASE_ROOT})
- if(_ENV_ILMBASE_ROOT)
- list(APPEND _ILMBASE_ROOT_SEARCH_DIR ${_ENV_ILMBASE_ROOT})
- endif()
-endif()
-
-# ------------------------------------------------------------------------
-# Search for IlmBase include DIR
-# ------------------------------------------------------------------------
-
-set(_ILMBASE_INCLUDE_SEARCH_DIRS "")
-list(APPEND _ILMBASE_INCLUDE_SEARCH_DIRS
- ${ILMBASE_INCLUDEDIR}
- ${_ILMBASE_ROOT_SEARCH_DIR}
- ${PC_IlmBase_INCLUDEDIR}
- ${SYSTEM_LIBRARY_PATHS}
-)
-
-# Look for a standard IlmBase header file.
-find_path(IlmBase_INCLUDE_DIR IlmBaseConfig.h
- NO_DEFAULT_PATH
- PATHS ${_ILMBASE_INCLUDE_SEARCH_DIRS}
- PATH_SUFFIXES include/OpenEXR OpenEXR
-)
-
-if(EXISTS "${IlmBase_INCLUDE_DIR}/IlmBaseConfig.h")
- # Get the ILMBASE version information from the config header
- file(STRINGS "${IlmBase_INCLUDE_DIR}/IlmBaseConfig.h"
- _ilmbase_version_major_string REGEX "#define ILMBASE_VERSION_MAJOR "
- )
- string(REGEX REPLACE "#define ILMBASE_VERSION_MAJOR" ""
- _ilmbase_version_major_string "${_ilmbase_version_major_string}"
- )
- string(STRIP "${_ilmbase_version_major_string}" IlmBase_VERSION_MAJOR)
-
- file(STRINGS "${IlmBase_INCLUDE_DIR}/IlmBaseConfig.h"
- _ilmbase_version_minor_string REGEX "#define ILMBASE_VERSION_MINOR "
- )
- string(REGEX REPLACE "#define ILMBASE_VERSION_MINOR" ""
- _ilmbase_version_minor_string "${_ilmbase_version_minor_string}"
- )
- string(STRIP "${_ilmbase_version_minor_string}" IlmBase_VERSION_MINOR)
-
- unset(_ilmbase_version_major_string)
- unset(_ilmbase_version_minor_string)
-
- set(IlmBase_VERSION ${IlmBase_VERSION_MAJOR}.${IlmBase_VERSION_MINOR})
-endif()
-
-# ------------------------------------------------------------------------
-# Search for ILMBASE lib DIR
-# ------------------------------------------------------------------------
-
-set(_ILMBASE_LIBRARYDIR_SEARCH_DIRS "")
-
-# Append to _ILMBASE_LIBRARYDIR_SEARCH_DIRS in priority order
-
-list(APPEND _ILMBASE_LIBRARYDIR_SEARCH_DIRS
- ${ILMBASE_LIBRARYDIR}
- ${_ILMBASE_ROOT_SEARCH_DIR}
- ${PC_IlmBase_LIBDIR}
- ${SYSTEM_LIBRARY_PATHS}
-)
-
-# Build suffix directories
-
-set(ILMBASE_PATH_SUFFIXES
- lib64
- lib
-)
-
-if(UNIX)
- list(INSERT ILMBASE_PATH_SUFFIXES 0 lib/x86_64-linux-gnu)
-endif()
-
-set(_ILMBASE_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
-
-# library suffix handling
-if(WIN32)
- list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
- "-${IlmBase_VERSION_MAJOR}_${IlmBase_VERSION_MINOR}.lib"
- )
-else()
- if(ILMBASE_USE_STATIC_LIBS)
- list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
- "-${IlmBase_VERSION_MAJOR}_${IlmBase_VERSION_MINOR}.a"
- )
- else()
- if(APPLE)
- list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
- "-${IlmBase_VERSION_MAJOR}_${IlmBase_VERSION_MINOR}.dylib"
- )
- else()
- list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
- "-${IlmBase_VERSION_MAJOR}_${IlmBase_VERSION_MINOR}.so"
- )
- endif()
- endif()
-endif()
-
-set(IlmBase_LIB_COMPONENTS "")
-
-foreach(COMPONENT ${IlmBase_FIND_COMPONENTS})
- find_library(IlmBase_${COMPONENT}_LIBRARY ${COMPONENT}
- NO_DEFAULT_PATH
- PATHS ${_ILMBASE_LIBRARYDIR_SEARCH_DIRS}
- PATH_SUFFIXES ${ILMBASE_PATH_SUFFIXES}
- )
- list(APPEND IlmBase_LIB_COMPONENTS ${IlmBase_${COMPONENT}_LIBRARY})
-
- if(WIN32 AND NOT ILMBASE_USE_STATIC_LIBS)
- set(_ILMBASE_TMP ${CMAKE_FIND_LIBRARY_SUFFIXES})
- set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll")
- find_library(IlmBase_${COMPONENT}_DLL ${COMPONENT}
- NO_DEFAULT_PATH
- PATHS ${_ILMBASE_LIBRARYDIR_SEARCH_DIRS}
- PATH_SUFFIXES bin
- )
- set(CMAKE_FIND_LIBRARY_SUFFIXES ${_ILMBASE_TMP})
- unset(_ILMBASE_TMP)
- endif()
-
- if(IlmBase_${COMPONENT}_LIBRARY)
- set(IlmBase_${COMPONENT}_FOUND TRUE)
- else()
- set(IlmBase_${COMPONENT}_FOUND FALSE)
- endif()
-endforeach()
-
-# reset lib suffix
-
-set(CMAKE_FIND_LIBRARY_SUFFIXES ${_ILMBASE_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
-unset(_ILMBASE_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES)
-
-# ------------------------------------------------------------------------
-# Cache and set ILMBASE_FOUND
-# ------------------------------------------------------------------------
-
-include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(IlmBase
- FOUND_VAR IlmBase_FOUND
- REQUIRED_VARS
- IlmBase_INCLUDE_DIR
- IlmBase_LIB_COMPONENTS
- VERSION_VAR IlmBase_VERSION
- HANDLE_COMPONENTS
-)
+#-*-cmake-*-
+# - Find ILMBase
+#
+# Author : Nicholas Yue yue.nicholas@gmail.com
+#
+# This auxiliary CMake file helps in find the ILMBASE headers and libraries
+#
+# ILMBASE_FOUND set if ILMBASE is found.
+# ILMBASE_INCLUDE_DIR ILMBASE's include directory
+# ILMBASE_LIBRARYDIR ILMBASE's include directory
+# Ilmbase_HALF_LIBRARY ILMBASE's Half libraries
+# Ilmbase_IEX_LIBRARY ILMBASE's Iex libraries
+# Ilmbase_IEXMATH_LIBRARY ILMBASE's IexMath libraries
+# Ilmbase_ILMTHREAD_LIBRARY ILMBASE's IlmThread libraries
+# Ilmbase_IMATH_LIBRARY ILMBASE's Imath libraries
-if(IlmBase_FOUND)
- set(IlmBase_LIBRARIES ${IlmBase_LIB_COMPONENTS})
+FIND_PACKAGE ( PackageHandleStandardArgs )
- # We have to add both include and include/OpenEXR to the include
- # path in case OpenEXR and IlmBase are installed separately
+FIND_PATH ( ILMBASE_LOCATION include/OpenEXR/IlmBaseConfig.h)
- set(IlmBase_INCLUDE_DIRS)
- list(APPEND IlmBase_INCLUDE_DIRS
- ${IlmBase_INCLUDE_DIR}/../
- ${IlmBase_INCLUDE_DIR}
+FIND_PACKAGE_HANDLE_STANDARD_ARGS ( ILMBase
+ REQUIRED_VARS ILMBASE_LOCATION
)
- set(IlmBase_DEFINITIONS ${PC_IlmBase_CFLAGS_OTHER})
-
- set(IlmBase_LIBRARY_DIRS "")
- foreach(LIB ${IlmBase_LIB_COMPONENTS})
- get_filename_component(_ILMBASE_LIBDIR ${LIB} DIRECTORY)
- list(APPEND IlmBase_LIBRARY_DIRS ${_ILMBASE_LIBDIR})
- endforeach()
- list(REMOVE_DUPLICATES IlmBase_LIBRARY_DIRS)
-
- # Configure imported targets
-
- foreach(COMPONENT ${IlmBase_FIND_COMPONENTS})
- if(NOT TARGET IlmBase::${COMPONENT})
- add_library(IlmBase::${COMPONENT} UNKNOWN IMPORTED)
- set_target_properties(IlmBase::${COMPONENT} PROPERTIES
- IMPORTED_LOCATION "${IlmBase_${COMPONENT}_LIBRARY}"
- INTERFACE_COMPILE_OPTIONS "${IlmBase_DEFINITIONS}"
- INTERFACE_INCLUDE_DIRECTORIES "${IlmBase_INCLUDE_DIRS}"
- )
- endif()
- endforeach()
-elseif(IlmBase_FIND_REQUIRED)
- message(FATAL_ERROR "Unable to find IlmBase")
-endif()
+OPTION ( ILMBASE_NAMESPACE_VERSIONING "Namespace versioning of libraries" ON )
+
+IF ( ILMBASE_FOUND )
+
+ FILE ( STRINGS "${ILMBASE_LOCATION}/include/OpenEXR/IlmBaseConfig.h" _ilmbase_version_major_string REGEX "#define ILMBASE_VERSION_MAJOR ")
+ STRING ( REGEX REPLACE "#define ILMBASE_VERSION_MAJOR" "" _ilmbase_version_major_unstrip "${_ilmbase_version_major_string}")
+ STRING ( STRIP "${_ilmbase_version_major_unstrip}" ILMBASE_VERSION_MAJOR )
+
+ FILE ( STRINGS "${ILMBASE_LOCATION}/include/OpenEXR/IlmBaseConfig.h" _ilmbase_version_minor_string REGEX "#define ILMBASE_VERSION_MINOR ")
+ STRING ( REGEX REPLACE "#define ILMBASE_VERSION_MINOR" "" _ilmbase_version_minor_unstrip "${_ilmbase_version_minor_string}")
+ STRING ( STRIP "${_ilmbase_version_minor_unstrip}" ILMBASE_VERSION_MINOR )
+
+ IF ( ILMBASE_NAMESPACE_VERSIONING )
+ SET ( IEX_LIBRARY_NAME Iex-${ILMBASE_VERSION_MAJOR}_${ILMBASE_VERSION_MINOR} )
+ SET ( IEXMATH_LIBRARY_NAME IexMath-${ILMBASE_VERSION_MAJOR}_${ILMBASE_VERSION_MINOR} )
+ SET ( ILMTHREAD_LIBRARY_NAME IlmThread-${ILMBASE_VERSION_MAJOR}_${ILMBASE_VERSION_MINOR} )
+ SET ( IMATH_LIBRARY_NAME Imath-${ILMBASE_VERSION_MAJOR}_${ILMBASE_VERSION_MINOR} )
+ SET ( HALF_LIBRARY_NAME Half-${ILMBASE_VERSION_MAJOR}_${ILMBASE_VERSION_MINOR} )
+ ELSE ( ILMBASE_NAMESPACE_VERSIONING )
+ SET ( IEX_LIBRARY_NAME Iex )
+ SET ( IEXMATH_LIBRARY_NAME IexMath )
+ SET ( ILMTHREAD_LIBRARY_NAME IlmThread )
+ SET ( IMATH_LIBRARY_NAME Imath )
+ SET ( HALF_LIBRARY_NAME Half )
+ ENDIF ( ILMBASE_NAMESPACE_VERSIONING )
+
+ SET ( ILMBASE_INCLUDE_DIRS
+ ${ILMBASE_LOCATION}/include
+ ${ILMBASE_LOCATION}/include/OpenEXR
+ CACHE STRING "ILMBase include directories")
+ SET ( ILMBASE_LIBRARYDIR ${ILMBASE_LOCATION}/lib
+ CACHE STRING "ILMBase library directories")
+ SET ( ILMBASE_FOUND TRUE )
+
+ SET ( ORIGINAL_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
+ IF (Ilmbase_USE_STATIC_LIBS)
+ IF (APPLE)
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
+ FIND_LIBRARY ( Ilmbase_HALF_LIBRARY Half PATHS ${ILMBASE_LIBRARYDIR} )
+ FIND_LIBRARY ( Ilmbase_IEX_LIBRARY Iex PATHS ${ILMBASE_LIBRARYDIR} )
+ FIND_LIBRARY ( Ilmbase_ILMTHREAD_LIBRARY IlmThread PATHS ${ILMBASE_LIBRARYDIR} )
+ FIND_LIBRARY ( Ilmbase_IMATH_LIBRARY Imath PATHS ${ILMBASE_LIBRARYDIR} )
+ ELSEIF (WIN32)
+ # Link library
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib")
+ FIND_LIBRARY ( Ilmbase_HALF_LIBRARY Half_static PATHS ${ILMBASE_LIBRARYDIR} )
+ FIND_LIBRARY ( Ilmbase_IEX_LIBRARY Iex_static PATHS ${ILMBASE_LIBRARYDIR} )
+ FIND_LIBRARY ( Ilmbase_ILMTHREAD_LIBRARY IlmThread_static PATHS ${ILMBASE_LIBRARYDIR} )
+ FIND_LIBRARY ( Ilmbase_IMATH_LIBRARY Imath_static PATHS ${ILMBASE_LIBRARYDIR} )
+ ELSE (APPLE)
+ SET ( CMAKE_FIND_LIBRARY_SUFFIXES ".a")
+ FIND_LIBRARY ( Ilmbase_HALF_LIBRARY Half PATHS ${ILMBASE_LIBRARYDIR}
+ NO_DEFAULT_PATH
+ NO_SYSTEM_ENVIRONMENT_PATH
+ )
+ FIND_LIBRARY ( Ilmbase_IEX_LIBRARY Iex PATHS ${ILMBASE_LIBRARYDIR}
+ NO_DEFAULT_PATH
+ NO_SYSTEM_ENVIRONMENT_PATH
+ )
+ FIND_LIBRARY ( Ilmbase_ILMTHREAD_LIBRARY IlmThread PATHS ${ILMBASE_LIBRARYDIR}
+ NO_DEFAULT_PATH
+ NO_SYSTEM_ENVIRONMENT_PATH
+ )
+ FIND_LIBRARY ( Ilmbase_IMATH_LIBRARY Imath PATHS ${ILMBASE_LIBRARYDIR}
+ NO_DEFAULT_PATH
+ NO_SYSTEM_ENVIRONMENT_PATH
+ )
+ ENDIF (APPLE)
+ ELSE (Ilmbase_USE_STATIC_LIBS)
+ IF (APPLE)
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".dylib")
+ FIND_LIBRARY ( Ilmbase_HALF_LIBRARY Half PATHS ${ILMBASE_LIBRARYDIR} )
+ FIND_LIBRARY ( Ilmbase_IEX_LIBRARY Iex PATHS ${ILMBASE_LIBRARYDIR} )
+ FIND_LIBRARY ( Ilmbase_ILMTHREAD_LIBRARY IlmThread PATHS ${ILMBASE_LIBRARYDIR} )
+ FIND_LIBRARY ( Ilmbase_IMATH_LIBRARY Imath PATHS ${ILMBASE_LIBRARYDIR} )
+ ELSEIF (WIN32)
+ # Link library
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib")
+ FIND_LIBRARY ( Ilmbase_HALF_LIBRARY ${HALF_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR} )
+ FIND_LIBRARY ( Ilmbase_IEX_LIBRARY ${IEX_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR} )
+ FIND_LIBRARY ( Ilmbase_IEXMATH_LIBRARY ${IEXMATH_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR} )
+ FIND_LIBRARY ( Ilmbase_ILMTHREAD_LIBRARY ${ILMTHREAD_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR} )
+ FIND_LIBRARY ( Ilmbase_IMATH_LIBRARY ${IMATH_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR} )
+ # Load library
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".dll")
+ FIND_LIBRARY ( Ilmbase_HALF_DLL ${HALF_LIBRARY_NAME} PATHS ${ILMBASE_LOCATION}/bin
+ NO_DEFAULT_PATH
+ NO_SYSTEM_ENVIRONMENT_PATH
+ )
+ FIND_LIBRARY ( Ilmbase_IEX_DLL ${IEX_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR}
+ NO_DEFAULT_PATH
+ NO_SYSTEM_ENVIRONMENT_PATH
+ )
+ FIND_LIBRARY ( Ilmbase_IEXMATH_DLL ${IEXMATH_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR}
+ NO_DEFAULT_PATH
+ NO_SYSTEM_ENVIRONMENT_PATH
+ )
+ FIND_LIBRARY ( Ilmbase_ILMTHREAD_DLL ${ILMTHREAD_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR}
+ NO_DEFAULT_PATH
+ NO_SYSTEM_ENVIRONMENT_PATH
+ )
+ FIND_LIBRARY ( Ilmbase_IMATH_DLL ${IMATH_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR}
+ NO_DEFAULT_PATH
+ NO_SYSTEM_ENVIRONMENT_PATH
+ )
+ ELSE (APPLE)
+ FIND_LIBRARY ( Ilmbase_HALF_LIBRARY ${HALF_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR}
+ NO_DEFAULT_PATH
+ NO_SYSTEM_ENVIRONMENT_PATH
+ )
+ FIND_LIBRARY ( Ilmbase_IEX_LIBRARY ${IEX_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR}
+ NO_DEFAULT_PATH
+ NO_SYSTEM_ENVIRONMENT_PATH
+ )
+ FIND_LIBRARY ( Ilmbase_IEXMATH_LIBRARY ${IEXMATH_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR}
+ NO_DEFAULT_PATH
+ NO_SYSTEM_ENVIRONMENT_PATH
+ )
+ FIND_LIBRARY ( Ilmbase_ILMTHREAD_LIBRARY ${ILMTHREAD_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR}
+ NO_DEFAULT_PATH
+ NO_SYSTEM_ENVIRONMENT_PATH
+ )
+ FIND_LIBRARY ( Ilmbase_IMATH_LIBRARY ${IMATH_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR}
+ NO_DEFAULT_PATH
+ NO_SYSTEM_ENVIRONMENT_PATH
+ )
+ ENDIF (APPLE)
+ ENDIF ()
+ # MUST reset
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ${ORIGINAL_CMAKE_FIND_LIBRARY_SUFFIXES})
+
+ELSE ( ILMBASE_FOUND )
+ MESSAGE ( FATAL_ERROR "Unable to find ILMBase, ILMBASE_ROOT = $ENV{ILMBASE_ROOT}")
+ENDIF ( ILMBASE_FOUND )
diff --git a/cmake/FindOpenEXR.cmake b/cmake/FindOpenEXR.cmake
index 2f771ad..a381c6d 100644
--- a/cmake/FindOpenEXR.cmake
+++ b/cmake/FindOpenEXR.cmake
@@ -1,324 +1,87 @@
-# Copyright (c) 2012-2019 DreamWorks Animation LLC
-#
-# All rights reserved. This software is distributed under the
-# Mozilla Public License 2.0 ( http://www.mozilla.org/MPL/2.0/ )
-#
-# Redistributions of source code must retain the above copyright
-# and license notice and the following restrictions and disclaimer.
-#
-# * Neither the name of DreamWorks Animation nor the names of
-# its contributors may be used to endorse or promote products derived
-# from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# IN NO EVENT SHALL THE COPYRIGHT HOLDERS' AND CONTRIBUTORS' AGGREGATE
-# LIABILITY FOR ALL CLAIMS REGARDLESS OF THEIR BASIS EXCEED US$250.00.
-#
-#[=======================================================================[.rst:
-
-FindOpenEXR
------------
-
-Find OpenEXR include dirs and libraries
-
-Use this module by invoking find_package with the form::
-
- find_package(OpenEXR
- [version] [EXACT] # Minimum or EXACT version
- [REQUIRED] # Fail with error if OpenEXR is not found
- [COMPONENTS <libs>...] # OpenEXR libraries by their canonical name
- # e.g. "IlmImf" for "libIlmImf"
- )
-
-IMPORTED Targets
-^^^^^^^^^^^^^^^^
-
-``OpenEXR::IlmImf``
- The IlmImf library target.
-``OpenEXR::IlmImfUtil``
- The IlmImfUtil library target.
-
-Result Variables
-^^^^^^^^^^^^^^^^
-
-This will define the following variables:
-
-``OpenEXR_FOUND``
- True if the system has the OpenEXR library.
-``OpenEXR_VERSION``
- The version of the OpenEXR library which was found.
-``OpenEXR_INCLUDE_DIRS``
- Include directories needed to use OpenEXR.
-``OpenEXR_LIBRARIES``
- Libraries needed to link to OpenEXR.
-``OpenEXR_LIBRARY_DIRS``
- OpenEXR library directories.
-``OpenEXR_DEFINITIONS``
- Definitions to use when compiling code that uses OpenEXR.
-``OpenEXR_{COMPONENT}_FOUND``
- True if the system has the named OpenEXR component.
-
-Cache Variables
-^^^^^^^^^^^^^^^
-
-The following cache variables may also be set:
-
-``OpenEXR_INCLUDE_DIR``
- The directory containing ``OpenEXR/config-auto.h``.
-``OpenEXR_{COMPONENT}_LIBRARY``
- Individual component libraries for OpenEXR
-``OpenEXR_{COMPONENT}_DLL``
- Individual component dlls for OpenEXR on Windows.
-
-Hints
-^^^^^
-
-Instead of explicitly setting the cache variables, the following variables
-may be provided to tell this module where to look.
-
-``OPENEXR_ROOT``
- Preferred installation prefix.
-``OPENEXR_INCLUDEDIR``
- Preferred include directory e.g. <prefix>/include
-``OPENEXR_LIBRARYDIR``
- Preferred library directory e.g. <prefix>/lib
-``SYSTEM_LIBRARY_PATHS``
- Paths appended to all include and lib searches.
-
-#]=======================================================================]
-
-# Support new if() IN_LIST operator
-if(POLICY CMP0057)
- cmake_policy(SET CMP0057 NEW)
-endif()
-
-mark_as_advanced(
- OpenEXR_INCLUDE_DIR
- OpenEXR_LIBRARY
-)
-
-set(_OPENEXR_COMPONENT_LIST
- IlmImf
- IlmImfUtil
-)
-
-if(OpenEXR_FIND_COMPONENTS)
- set(OPENEXR_COMPONENTS_PROVIDED TRUE)
- set(_IGNORED_COMPONENTS "")
- foreach(COMPONENT ${OpenEXR_FIND_COMPONENTS})
- if(NOT ${COMPONENT} IN_LIST _OPENEXR_COMPONENT_LIST)
- list(APPEND _IGNORED_COMPONENTS ${COMPONENT})
- endif()
- endforeach()
-
- if(_IGNORED_COMPONENTS)
- message(STATUS "Ignoring unknown components of OpenEXR:")
- foreach(COMPONENT ${_IGNORED_COMPONENTS})
- message(STATUS " ${COMPONENT}")
- endforeach()
- list(REMOVE_ITEM OpenEXR_FIND_COMPONENTS ${_IGNORED_COMPONENTS})
- endif()
-else()
- set(OPENEXR_COMPONENTS_PROVIDED FALSE)
- set(OpenEXR_FIND_COMPONENTS ${_OPENEXR_COMPONENT_LIST})
-endif()
-
-# Append OPENEXR_ROOT or $ENV{OPENEXR_ROOT} if set (prioritize the direct cmake var)
-set(_OPENEXR_ROOT_SEARCH_DIR "")
-
-if(OPENEXR_ROOT)
- list(APPEND _OPENEXR_ROOT_SEARCH_DIR ${OPENEXR_ROOT})
-else()
- set(_ENV_OPENEXR_ROOT $ENV{OPENEXR_ROOT})
- if(_ENV_OPENEXR_ROOT)
- list(APPEND _OPENEXR_ROOT_SEARCH_DIR ${_ENV_OPENEXR_ROOT})
- endif()
-endif()
-
-# ------------------------------------------------------------------------
-# Search for OpenEXR include DIR
-# ------------------------------------------------------------------------
-
-set(_OPENEXR_INCLUDE_SEARCH_DIRS "")
-list(APPEND _OPENEXR_INCLUDE_SEARCH_DIRS
- ${OPENEXR_INCLUDEDIR}
- ${_OPENEXR_ROOT_SEARCH_DIR}
- ${PC_OpenEXR_INCLUDEDIR}
- ${SYSTEM_LIBRARY_PATHS}
-)
-
-# Look for a standard OpenEXR header file.
-find_path(OpenEXR_INCLUDE_DIR OpenEXRConfig.h
- NO_DEFAULT_PATH
- PATHS ${_OPENEXR_INCLUDE_SEARCH_DIRS}
- PATH_SUFFIXES include/OpenEXR OpenEXR
-)
-
-if(EXISTS "${OpenEXR_INCLUDE_DIR}/OpenEXRConfig.h")
- # Get the EXR version information from the config header
- file(STRINGS "${OpenEXR_INCLUDE_DIR}/OpenEXRConfig.h"
- _openexr_version_major_string REGEX "#define OPENEXR_VERSION_MAJOR "
- )
- string(REGEX REPLACE "#define OPENEXR_VERSION_MAJOR" ""
- _openexr_version_major_string "${_openexr_version_major_string}"
- )
- string(STRIP "${_openexr_version_major_string}" OpenEXR_VERSION_MAJOR)
-
- file(STRINGS "${OpenEXR_INCLUDE_DIR}/OpenEXRConfig.h"
- _openexr_version_minor_string REGEX "#define OPENEXR_VERSION_MINOR "
- )
- string(REGEX REPLACE "#define OPENEXR_VERSION_MINOR" ""
- _openexr_version_minor_string "${_openexr_version_minor_string}"
- )
- string(STRIP "${_openexr_version_minor_string}" OpenEXR_VERSION_MINOR)
-
- unset(_openexr_version_major_string)
- unset(_openexr_version_minor_string)
-
- set(OpenEXR_VERSION ${OpenEXR_VERSION_MAJOR}.${OpenEXR_VERSION_MINOR})
-endif()
-
-# ------------------------------------------------------------------------
-# Search for OPENEXR lib DIR
-# ------------------------------------------------------------------------
-
-set(_OPENEXR_LIBRARYDIR_SEARCH_DIRS "")
-
-# Append to _OPENEXR_LIBRARYDIR_SEARCH_DIRS in priority order
-
-list(APPEND _OPENEXR_LIBRARYDIR_SEARCH_DIRS
- ${OPENEXR_LIBRARYDIR}
- ${_OPENEXR_ROOT_SEARCH_DIR}
- ${PC_OpenEXR_LIBDIR}
- ${SYSTEM_LIBRARY_PATHS}
-)
-
-# Build suffix directories
-
-set(OPENEXR_PATH_SUFFIXES
- lib64
- lib
-)
-
-if(UNIX )
- list(INSERT OPENEXR_PATH_SUFFIXES 0 lib/x86_64-linux-gnu)
-endif()
-
-set(_OPENEXR_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
-
-# library suffix handling
-if(WIN32)
- list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
- "-${OpenEXR_VERSION_MAJOR}_${OpenEXR_VERSION_MINOR}.lib"
- )
-else()
- if(OPENEXR_USE_STATIC_LIBS)
- list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
- "-${OpenEXR_VERSION_MAJOR}_${OpenEXR_VERSION_MINOR}.a"
- )
- else()
- if(APPLE)
- list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
- "-${OpenEXR_VERSION_MAJOR}_${OpenEXR_VERSION_MINOR}.dylib"
- )
- else()
- list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
- "-${OpenEXR_VERSION_MAJOR}_${OpenEXR_VERSION_MINOR}.so"
- )
- endif()
- endif()
-endif()
-
-set(OpenEXR_LIB_COMPONENTS "")
-
-foreach(COMPONENT ${OpenEXR_FIND_COMPONENTS})
- find_library(OpenEXR_${COMPONENT}_LIBRARY ${COMPONENT}
- NO_DEFAULT_PATH
- PATHS ${_OPENEXR_LIBRARYDIR_SEARCH_DIRS}
- PATH_SUFFIXES ${OPENEXR_PATH_SUFFIXES}
- )
- list(APPEND OpenEXR_LIB_COMPONENTS ${OpenEXR_${COMPONENT}_LIBRARY})
-
- if(WIN32 AND NOT OPENEXR_USE_STATIC_LIBS)
- set(_OPENEXR_TMP ${CMAKE_FIND_LIBRARY_SUFFIXES})
- set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll")
- find_library(OpenEXR_${COMPONENT}_DLL ${COMPONENT}
- NO_DEFAULT_PATH
- PATHS ${_OPENEXR_LIBRARYDIR_SEARCH_DIRS}
- PATH_SUFFIXES bin
- )
- set(CMAKE_FIND_LIBRARY_SUFFIXES ${_OPENEXR_TMP})
- unset(_OPENEXR_TMP)
- endif()
-
- if(OpenEXR_${COMPONENT}_LIBRARY)
- set(OpenEXR_${COMPONENT}_FOUND TRUE)
- else()
- set(OpenEXR_${COMPONENT}_FOUND FALSE)
- endif()
-endforeach()
-
-# reset lib suffix
-
-set(CMAKE_FIND_LIBRARY_SUFFIXES ${_OPENEXR_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
-unset(_OPENEXR_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES)
-
-# ------------------------------------------------------------------------
-# Cache and set OPENEXR_FOUND
-# ------------------------------------------------------------------------
-
-include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(OpenEXR
- FOUND_VAR OpenEXR_FOUND
- REQUIRED_VARS
- OpenEXR_INCLUDE_DIR
- OpenEXR_LIB_COMPONENTS
- VERSION_VAR OpenEXR_VERSION
- HANDLE_COMPONENTS
-)
-
-if(OpenEXR_FOUND)
- set(OpenEXR_LIBRARIES ${OpenEXR_LIB_COMPONENTS})
-
- # We have to add both include and include/OpenEXR to the include
- # path in case OpenEXR and IlmBase are installed separately
-
- set(OpenEXR_INCLUDE_DIRS)
- list(APPEND OpenEXR_INCLUDE_DIRS
- ${OpenEXR_INCLUDE_DIR}/../
- ${OpenEXR_INCLUDE_DIR}
- )
- set(OpenEXR_DEFINITIONS ${PC_OpenEXR_CFLAGS_OTHER})
-
- set(OpenEXR_LIBRARY_DIRS "")
- foreach(LIB ${OpenEXR_LIB_COMPONENTS})
- get_filename_component(_OPENEXR_LIBDIR ${LIB} DIRECTORY)
- list(APPEND OpenEXR_LIBRARY_DIRS ${_OPENEXR_LIBDIR})
- endforeach()
- list(REMOVE_DUPLICATES OpenEXR_LIBRARY_DIRS)
-
- # Configure imported target
-
- foreach(COMPONENT ${OpenEXR_FIND_COMPONENTS})
- if(NOT TARGET OpenEXR::${COMPONENT})
- add_library(OpenEXR::${COMPONENT} UNKNOWN IMPORTED)
- set_target_properties(OpenEXR::${COMPONENT} PROPERTIES
- IMPORTED_LOCATION "${OpenEXR_${COMPONENT}_LIBRARY}"
- INTERFACE_COMPILE_OPTIONS "${OpenEXR_DEFINITIONS}"
- INTERFACE_INCLUDE_DIRECTORIES "${OpenEXR_INCLUDE_DIRS}"
- )
- endif()
- endforeach()
-elseif(OpenEXR_FIND_REQUIRED)
- message(FATAL_ERROR "Unable to find OpenEXR")
-endif()
+include(FindPackageHandleStandardArgs)
+
+find_path(OpenEXR_INCLUDE_DIRS OpenEXR/OpenEXRConfig.h)
+find_path(OPENEXR_INCLUDE_PATHS NAMES ImfRgbaFile.h PATH_SUFFIXES OpenEXR)
+
+file(STRINGS "${OpenEXR_INCLUDE_DIRS}/OpenEXR/OpenEXRConfig.h" OPENEXR_CONFIG_H)
+
+string(REGEX REPLACE "^.*define OPENEXR_VERSION_MAJOR ([0-9]+).*$" "\\1" OpenEXR_VERSION_MAJOR "${OPENEXR_CONFIG_H}")
+string(REGEX REPLACE "^.*define OPENEXR_VERSION_MINOR ([0-9]+).*$" "\\1" OpenEXR_VERSION_MINOR "${OPENEXR_CONFIG_H}")
+set(OpenEXR_LIB_SUFFIX "${OpenEXR_VERSION_MAJOR}_${OpenEXR_VERSION_MINOR}")
+
+include(SelectLibraryConfigurations)
+
+if(NOT OpenEXR_BASE_LIBRARY)
+ find_library(OpenEXR_BASE_LIBRARY_RELEASE NAMES IlmImf-${OpenEXR_LIB_SUFFIX})
+ find_library(OpenEXR_BASE_LIBRARY_DEBUG NAMES IlmImf-${OpenEXR_LIB_SUFFIX}_d)
+ select_library_configurations(OpenEXR_BASE)
+endif()
+
+if(NOT OpenEXR_UTIL_LIBRARY)
+ find_library(OpenEXR_UTIL_LIBRARY_RELEASE NAMES IlmImfUtil-${OpenEXR_LIB_SUFFIX})
+ find_library(OpenEXR_UTIL_LIBRARY_DEBUG NAMES IlmImfUtil-${OpenEXR_LIB_SUFFIX}_d)
+ select_library_configurations(OpenEXR_UTIL)
+endif()
+
+if(NOT OpenEXR_HALF_LIBRARY)
+ find_library(OpenEXR_HALF_LIBRARY_RELEASE NAMES Half-${OpenEXR_LIB_SUFFIX})
+ find_library(OpenEXR_HALF_LIBRARY_DEBUG NAMES Half-${OpenEXR_LIB_SUFFIX}_d)
+ select_library_configurations(OpenEXR_HALF)
+endif()
+
+if(NOT OpenEXR_IEX_LIBRARY)
+ find_library(OpenEXR_IEX_LIBRARY_RELEASE NAMES Iex-${OpenEXR_LIB_SUFFIX})
+ find_library(OpenEXR_IEX_LIBRARY_DEBUG NAMES Iex-${OpenEXR_LIB_SUFFIX}_d)
+ select_library_configurations(OpenEXR_IEX)
+endif()
+
+if(NOT OpenEXR_MATH_LIBRARY)
+ find_library(OpenEXR_MATH_LIBRARY_RELEASE NAMES Imath-${OpenEXR_LIB_SUFFIX})
+ find_library(OpenEXR_MATH_LIBRARY_DEBUG NAMES Imath-${OpenEXR_LIB_SUFFIX}_d)
+ select_library_configurations(OpenEXR_MATH)
+endif()
+
+if(NOT OpenEXR_THREAD_LIBRARY)
+ find_library(OpenEXR_THREAD_LIBRARY_RELEASE NAMES IlmThread-${OpenEXR_LIB_SUFFIX})
+ find_library(OpenEXR_THREAD_LIBRARY_DEBUG NAMES IlmThread-${OpenEXR_LIB_SUFFIX}_d)
+ select_library_configurations(OpenEXR_THREAD)
+endif()
+
+if(NOT OpenEXR_IEXMATH_LIBRARY)
+ find_library(OpenEXR_IEXMATH_LIBRARY_RELEASE NAMES IexMath-${OpenEXR_LIB_SUFFIX})
+ find_library(OpenEXR_IEXMATH_LIBRARY_DEBUG NAMES IexMath-${OpenEXR_LIB_SUFFIX}d)
+ select_library_configurations(OpenEXR_IEXMATH)
+endif()
+
+set(OPENEXR_HALF_LIBRARY "${OpenEXR_HALF_LIBRARY}")
+set(OPENEXR_IEX_LIBRARY "${OpenEXR_IEX_LIBRARY}")
+set(OPENEXR_IMATH_LIBRARY "${OpenEXR_MATH_LIBRARY}")
+set(OPENEXR_ILMIMF_LIBRARY "${OpenEXR_BASE_LIBRARY}")
+set(OPENEXR_ILMIMFUTIL_LIBRARY "${OpenEXR_UTIL_LIBRARY}")
+set(OPENEXR_ILMTHREAD_LIBRARY "${OpenEXR_THREAD_LIBRARY}")
+
+set(OpenEXR_LIBRARY "${OpenEXR_BASE_LIBRARY}")
+
+set(OpenEXR_LIBRARIES
+ ${OpenEXR_LIBRARY}
+ ${OpenEXR_MATH_LIBRARY}
+ ${OpenEXR_IEXMATH_LIBRARY}
+ ${OpenEXR_UTIL_LIBRARY}
+ ${OpenEXR_HALF_LIBRARY}
+ ${OpenEXR_IEX_LIBRARY}
+ ${OpenEXR_THREAD_LIBRARY}
+)
+
+set(OPENEXR_LIBRARIES
+ ${OPENEXR_HALF_LIBRARY}
+ ${OPENEXR_IEX_LIBRARY}
+ ${OPENEXR_IMATH_LIBRARY}
+ ${OPENEXR_ILMIMF_LIBRARY}
+ ${OPENEXR_ILMTHREAD_LIBRARY}
+)
+
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenEXR REQUIRED_VARS OpenEXR_LIBRARIES OpenEXR_INCLUDE_DIRS)
+
+if(OpenEXR_FOUND)
+ set(OPENEXR_FOUND 1)
+endif()