archrelease: copy trunk to community-any
[ArchLinux/community.git] / alice-vision / repos / community-x86_64 / openexr3.patch
blob01db8801bf10450033c6fa2aaf8f3a8cd47b6c3f
1 --- AliceVision-2.4.0/src/cmake/openexr/FindOpenEXR.cmake 2021-05-30 08:32:20.810681100 +0200
2 +++ AliceVision-2.4.0.new/src/cmake/openexr/FindOpenEXR.cmake 2021-05-30 08:30:50.611355400 +0200
3 @@ -1,178 +1,138 @@
4 -# Module to find OpenEXR.
5 +# - Find OpenEXR library
6 +# Find the native OpenEXR includes and library
7 +# This module defines
8 +# OPENEXR_INCLUDE_DIRS, where to find ImfXdr.h, etc. Set when
9 +# OPENEXR_INCLUDE_DIR is found.
10 +# OPENEXR_LIBRARIES, libraries to link against to use OpenEXR.
11 +# OPENEXR_ROOT_DIR, The base directory to search for OpenEXR.
12 +# This can also be an environment variable.
13 +# OPENEXR_FOUND, If false, do not try to use OpenEXR.
15 -# This module will set
16 -# OPENEXR_FOUND true, if found
17 -# OPENEXR_INCLUDE_DIR directory where headers are found
18 -# OPENEXR_LIBRARIES libraries for OpenEXR + IlmBase
19 -# ILMBASE_LIBRARIES libraries just IlmBase
20 -# OPENEXR_VERSION OpenEXR version (accurate for >= 2.0.0,
21 -# otherwise will just guess 1.6.1)
22 +# For individual library access these advanced settings are available
23 +# OPENEXR_HALF_LIBRARY, Path to Half library
24 +# OPENEXR_IEX_LIBRARY, Path to Half library
25 +# OPENEXR_ILMIMF_LIBRARY, Path to Ilmimf library
26 +# OPENEXR_ILMTHREAD_LIBRARY, Path to IlmThread library
27 +# OPENEXR_IMATH_LIBRARY, Path to Imath library
29 -# Special inputs:
30 -# OPENEXR_CUSTOM_INCLUDE_DIR - custom location of headers
31 -# OPENEXR_CUSTOM_LIB_DIR - custom location of libraries
32 -# OPENEXR_CUSTOM_LIB_PREFIX - special snowflake library prefix
33 -# OPENEXR_CUSTOM_LIB_SUFFIX - special snowflake library suffix
34 +# also defined, but not for general use are
35 +# OPENEXR_LIBRARY, where to find the OpenEXR library.
37 +#=============================================================================
38 +# Copyright 2011 Blender Foundation.
40 +# Distributed under the OSI-approved BSD 3-Clause License,
41 +# see accompanying file BSD-3-Clause-license.txt for details.
42 +#=============================================================================
44 +# If OPENEXR_ROOT_DIR was defined in the environment, use it.
45 +IF(NOT OPENEXR_ROOT_DIR AND NOT $ENV{OPENEXR_ROOT_DIR} STREQUAL "")
46 + SET(OPENEXR_ROOT_DIR $ENV{OPENEXR_ROOT_DIR})
47 +ENDIF()
49 +# Old versions (before 2.0?) do not have any version string, just assuming this should be fine though.
50 +SET(_openexr_libs_ver_init "2.0")
52 +SET(_openexr_FIND_COMPONENTS
53 + Iex
54 + Imath
55 + OpenEXR
56 + IlmThread
59 -# Other standard issue macros
60 -include (FindPackageHandleStandardArgs)
61 -include (SelectLibraryConfigurations)
63 -find_package (ZLIB REQUIRED)
65 -# Link with pthreads if required
66 -find_package (Threads)
67 -if (CMAKE_USE_PTHREADS_INIT)
68 - set (ILMBASE_PTHREADS ${CMAKE_THREAD_LIBS_INIT})
69 -endif ()
71 -# List of likely places to find the headers -- note priority override of
72 -# OPENEXR_CUSTOM_INCLUDE_DIR and ${OPENEXR_HOME}/include.
73 -# ILMBASE is needed in case ilmbase an openexr are installed in separate
74 -# directories, like NixOS does
75 -set (GENERIC_INCLUDE_PATHS
76 - ${OPENEXR_CUSTOM_INCLUDE_DIR}
77 - ${OPENEXR_HOME}/include
78 - ${ILMBASE_HOME}/include
79 -# /usr/local/include
80 -# /usr/include
81 -# /usr/include/${CMAKE_LIBRARY_ARCHITECTURE}
82 -# /sw/include
83 -# /opt/local/include
84 +SET(_openexr_SEARCH_DIRS
85 + ${OPENEXR_ROOT_DIR}
86 + /opt/lib/openexr
89 -# Find the include file locations. We call find_path twice -- first using
90 -# only the custom paths, then if that fails, try the default paths only.
91 -# This seems to be the most robust way I can find to not get confused when
92 -# both system and custom libraries are present.
93 -find_path (ILMBASE_INCLUDE_PATH OpenEXR/IlmBaseConfig.h
94 - PATHS ${GENERIC_INCLUDE_PATHS})
95 -#find_path (ILMBASE_INCLUDE_PATH OpenEXR/IlmBaseConfig.h)
96 -find_path (OPENEXR_INCLUDE_PATH OpenEXR/OpenEXRConfig.h
97 - PATHS ${GENERIC_INCLUDE_PATHS})
98 -#find_path (OPENEXR_INCLUDE_PATH OpenEXR/OpenEXRConfig.h)
100 -# message(WARNING "GENERIC_INCLUDE_PATHS: ${GENERIC_INCLUDE_PATHS}")
101 -# message(WARNING "Test if file exist: ${OPENEXR_INCLUDE_PATH}/OpenEXR/ImfMultiPartInputFile.h")
104 -# Try to figure out version number
105 -if (EXISTS "${OPENEXR_INCLUDE_PATH}/OpenEXR/ImfMultiPartInputFile.h")
106 - # message(WARNING "Yes, file exist")
108 - # Must be at least 2.0
109 - file(STRINGS "${OPENEXR_INCLUDE_PATH}/OpenEXR/OpenEXRConfig.h" TMP REGEX "^#define OPENEXR_VERSION_STRING .*$")
110 - string (REGEX MATCHALL "[0-9]+[.0-9]+" OPENEXR_VERSION ${TMP})
111 - file(STRINGS "${OPENEXR_INCLUDE_PATH}/OpenEXR/OpenEXRConfig.h" TMP REGEX "^#define OPENEXR_VERSION_MAJOR .*$")
112 - string (REGEX MATCHALL "[0-9]+" OPENEXR_VERSION_MAJOR ${TMP})
113 - file(STRINGS "${OPENEXR_INCLUDE_PATH}/OpenEXR/OpenEXRConfig.h" TMP REGEX "^#define OPENEXR_VERSION_MINOR .*$")
114 - string (REGEX MATCHALL "[0-9]+" OPENEXR_VERSION_MINOR ${TMP})
115 -else ()
116 - message(STATUS "File ${OPENEXR_INCLUDE_PATH}/OpenEXR/ImfMultiPartInputFile.h does not exist. Default to 1.6.1")
117 - # Assume an old one, predates 2.x that had versions
118 - set (OPENEXR_VERSION 1.6.1)
119 - set (OPENEXR_MAJOR 1)
120 - set (OPENEXR_MINOR 6)
121 -endif ()
124 -# List of likely places to find the libraries -- note priority override of
125 -# OPENEXR_CUSTOM_LIB_DIR and ${OPENEXR_HOME}/lib.
127 -# If there's no OPENEXR_HOME or ILMBASE_HOME, then the path will point to
128 -# "/lib", which may not always be wanted/expected.
129 -if (OPENEXR_CUSTOM_LIB_DIR)
130 - set (GENERIC_LIBRARY_PATHS ${GENERIC_LIBRARY_PATHS} ${OPENEXR_CUSTOM_LIB_DIR})
131 -endif()
133 -if (OPENEXR_HOME)
134 - set (GENERIC_LIBRARY_PATHS ${GENERIC_LIBRARY_PATHS} ${OPENEXR_HOME})
135 -endif()
137 -if (ILMBASE_HOME)
138 - set (GENERIC_LIBRARY_PATHS ${GENERIC_LIBRARY_PATHS} ${ILMBASE_HOME})
139 -endif()
141 -set (GENERIC_LIBRARY_PATHS
142 - ${GENERIC_LIBRARY_PATHS}
143 - ${OPENEXR_INCLUDE_PATH}/../lib
144 - ${ILMBASE_INCLUDE_PATH}/../lib
145 - /usr/local/lib
146 - /usr/local/lib/${CMAKE_LIBRARY_ARCHITECTURE}
147 - /usr/lib
148 - /usr/lib/${CMAKE_LIBRARY_ARCHITECTURE}
149 - /sw/lib
150 - /opt/local/lib
151 - $ENV{PROGRAM_FILES}/OpenEXR/lib/static )
153 -# Handle request for static libs by altering CMAKE_FIND_LIBRARY_SUFFIXES.
154 -# We will restore it at the end of this file.
155 -set (_openexr_orig_suffixes ${CMAKE_FIND_LIBRARY_SUFFIXES})
156 -if (OpenEXR_USE_STATIC_LIBS)
157 - if (WIN32)
158 - set (CMAKE_FIND_LIBRARY_SUFFIXES .lib .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
159 - else ()
160 - set (CMAKE_FIND_LIBRARY_SUFFIXES .a)
161 - endif ()
162 -endif ()
164 -# Look for the libraries themselves, for all the components. Like with the
165 -# headers, we do two finds -- first for custom locations, then for default.
166 -# This is complicated because the OpenEXR libraries may or may not be
167 -# built with version numbers embedded.
168 -set (_openexr_components IlmThread IlmImf Imath Iex Half)
169 -foreach (COMPONENT ${_openexr_components})
170 - string (TOUPPER ${COMPONENT} UPPERCOMPONENT)
171 - # First try with the version embedded
172 - set (FULL_COMPONENT_NAME ${OPENEXR_CUSTOM_LIB_PREFIX}${COMPONENT}-${OPENEXR_VERSION_MAJOR}_${OPENEXR_VERSION_MINOR}${OPENEXR_CUSTOM_LIB_SUFFIX})
173 - find_library (OPENEXR_${UPPERCOMPONENT}_LIBRARY ${FULL_COMPONENT_NAME}
174 - PATHS ${GENERIC_LIBRARY_PATHS} NO_DEFAULT_PATH)
175 - # Again, with no directory restrictions
176 - find_library (OPENEXR_${UPPERCOMPONENT}_LIBRARY ${FULL_COMPONENT_NAME})
177 - # Try again without the version
178 - set (FULL_COMPONENT_NAME ${OPENEXR_CUSTOM_LIB_PREFIX}${COMPONENT}${OPENEXR_CUSTOM_LIB_SUFFIX})
179 - find_library (OPENEXR_${UPPERCOMPONENT}_LIBRARY ${FULL_COMPONENT_NAME}
180 - PATHS ${GENERIC_LIBRARY_PATHS} NO_DEFAULT_PATH)
181 - # One more time, with no restrictions
182 - find_library (OPENEXR_${UPPERCOMPONENT}_LIBRARY ${FULL_COMPONENT_NAME})
183 -endforeach ()
184 -#Half usually has no suffix
185 -find_library (OPENEXR_HALF_LIBRARY ${OPENEXR_CUSTOM_LIB_PREFIX}Half
186 - PATHS ${GENERIC_LIBRARY_PATHS} NO_DEFAULT_PATH)
187 -find_library (OPENEXR_HALF_LIBRARY ${OPENEXR_CUSTOM_LIB_PREFIX}Half)
189 -# Set the FOUND, INCLUDE_DIR, and LIBRARIES variables.
190 -if (ILMBASE_INCLUDE_PATH AND OPENEXR_INCLUDE_PATH AND
191 - OPENEXR_IMATH_LIBRARY AND OPENEXR_ILMIMF_LIBRARY AND
192 - OPENEXR_IEX_LIBRARY AND OPENEXR_HALF_LIBRARY)
193 - set (OPENEXR_FOUND TRUE)
194 - set (ILMBASE_FOUND TRUE)
195 - set (ILMBASE_INCLUDE_DIR ${ILMBASE_INCLUDE_PATH};${ILMBASE_INCLUDE_PATH}/OpenEXR CACHE STRING "The include paths needed to use IlmBase")
196 - set (OPENEXR_INCLUDE_DIR ${OPENEXR_INCLUDE_PATH} CACHE STRING "The include paths needed to use OpenEXR")
197 - 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")
198 - set (OPENEXR_LIBRARIES ${OPENEXR_ILMIMF_LIBRARY} ${ILMBASE_LIBRARIES} ${ZLIB_LIBRARIES} CACHE STRING "The libraries needed to use OpenEXR")
199 -endif ()
201 -find_package_handle_standard_args (OpenEXR
202 - REQUIRED_VARS ILMBASE_INCLUDE_PATH OPENEXR_INCLUDE_PATH
203 - OPENEXR_IMATH_LIBRARY OPENEXR_ILMIMF_LIBRARY
204 - OPENEXR_IEX_LIBRARY OPENEXR_HALF_LIBRARY
205 - VERSION_VAR OPENEXR_VERSION
206 +FIND_PATH(OPENEXR_INCLUDE_DIR
207 + NAMES
208 + OpenEXR/ImfXdr.h
209 + HINTS
210 + ${_openexr_SEARCH_DIRS}
211 + PATH_SUFFIXES
212 + include
215 +# If the headers were found, get the version from config file, if not already set.
216 +IF(OPENEXR_INCLUDE_DIR)
217 + IF(NOT OPENEXR_VERSION)
219 + FIND_FILE(_openexr_CONFIG
220 + NAMES
221 + OpenEXRConfig.h
222 + PATHS
223 + "${OPENEXR_INCLUDE_DIR}"
224 + "${OPENEXR_INCLUDE_DIR}/OpenEXR"
225 + NO_DEFAULT_PATH
228 -message(WARNING "ILMBASE_INCLUDE_DIR: ${ILMBASE_INCLUDE_DIR}")
229 + IF(_openexr_CONFIG)
230 + FILE(STRINGS "${_openexr_CONFIG}" OPENEXR_BUILD_SPECIFICATION
231 + REGEX "^[ \t]*#define[ \t]+OPENEXR_VERSION_STRING[ \t]+\"[.0-9]+\".*$")
232 + ELSE()
233 + MESSAGE(WARNING "Could not find \"OpenEXRConfig.h\" in \"${OPENEXR_INCLUDE_DIR}\"")
234 + ENDIF()
236 + IF(OPENEXR_BUILD_SPECIFICATION)
237 + MESSAGE(STATUS "${OPENEXR_BUILD_SPECIFICATION}")
238 + STRING(REGEX REPLACE ".*#define[ \t]+OPENEXR_VERSION_STRING[ \t]+\"([.0-9]+)\".*"
239 + "\\1" _openexr_libs_ver_init ${OPENEXR_BUILD_SPECIFICATION})
240 + ELSE()
241 + MESSAGE(WARNING "Could not determine ILMBase library version, assuming ${_openexr_libs_ver_init}.")
242 + ENDIF()
244 + UNSET(_openexr_CONFIG CACHE)
246 + ENDIF()
247 +ENDIF()
249 +SET("OPENEXR_VERSION" ${_openexr_libs_ver_init} CACHE STRING "Version of OpenEXR lib")
250 +UNSET(_openexr_libs_ver_init)
252 +STRING(REGEX REPLACE "([0-9]+)[.]([0-9]+).*" "\\1_\\2" _openexr_libs_ver ${OPENEXR_VERSION})
254 +SET(_openexr_LIBRARIES)
255 +FOREACH(COMPONENT ${_openexr_FIND_COMPONENTS})
256 + STRING(TOUPPER ${COMPONENT} UPPERCOMPONENT)
258 + FIND_LIBRARY(OPENEXR_${UPPERCOMPONENT}_LIBRARY
259 + NAMES
260 + ${COMPONENT}-${_openexr_libs_ver} ${COMPONENT}
261 + NAMES_PER_DIR
262 + HINTS
263 + ${_openexr_SEARCH_DIRS}
264 + PATH_SUFFIXES
265 + lib64 lib
267 + LIST(APPEND _openexr_LIBRARIES "${OPENEXR_${UPPERCOMPONENT}_LIBRARY}")
268 +ENDFOREACH()
270 -MARK_AS_ADVANCED(
271 - ILMBASE_INCLUDE_DIR
272 - OPENEXR_INCLUDE_DIR
273 - ILMBASE_LIBRARIES
274 - OPENEXR_LIBRARIES
275 - OPENEXR_ILMIMF_LIBRARY
276 - OPENEXR_IMATH_LIBRARY
277 - OPENEXR_IEX_LIBRARY
278 - OPENEXR_HALF_LIBRARY
279 - OPENEXR_VERSION)
280 +UNSET(_openexr_libs_ver)
282 +# handle the QUIETLY and REQUIRED arguments and set OPENEXR_FOUND to TRUE if
283 +# all listed variables are TRUE
284 +INCLUDE(FindPackageHandleStandardArgs)
285 +FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenEXR DEFAULT_MSG
286 + _openexr_LIBRARIES OPENEXR_INCLUDE_DIR)
288 +IF(OPENEXR_FOUND)
289 + SET(OPENEXR_LIBRARIES ${_openexr_LIBRARIES})
290 + # Both include paths are needed because of dummy OSL headers mixing #include <OpenEXR/foo.h> and #include <foo.h> :(
291 + SET(OPENEXR_INCLUDE_DIRS ${OPENEXR_INCLUDE_DIR} ${OPENEXR_INCLUDE_DIR}/OpenEXR ${OPENEXR_INCLUDE_DIR}/Imath)
292 +ENDIF()
294 -# Restore the original CMAKE_FIND_LIBRARY_SUFFIXES
295 -set (CMAKE_FIND_LIBRARY_SUFFIXES ${_openexr_orig_suffixes})
296 +MARK_AS_ADVANCED(
297 + OPENEXR_INCLUDE_DIR
298 + OPENEXR_VERSION
300 +FOREACH(COMPONENT ${_openexr_FIND_COMPONENTS})
301 + STRING(TOUPPER ${COMPONENT} UPPERCOMPONENT)
302 + MARK_AS_ADVANCED(OPENEXR_${UPPERCOMPONENT}_LIBRARY)
303 +ENDFOREACH()
305 +UNSET(COMPONENT)
306 +UNSET(UPPERCOMPONENT)
307 +UNSET(_openexr_FIND_COMPONENTS)
308 +UNSET(_openexr_LIBRARIES)
309 +UNSET(_openexr_SEARCH_DIRS)