1+ --- CMakeLists.txt
2+ +++ CMakeLists.txt
3+ @@ -42,7 +42,6 @@
4+
5+ # Set up module path for our own cmake modules and add some esential ones
6+ list (APPEND CMAKE_MODULE_PATH
7+ - "${PROJECT_SOURCE_DIR}/src/cmake/modules"
8+ "${PROJECT_SOURCE_DIR}/src/cmake")
9+
10+ # Utilities
11+ @@ -274,7 +273,6 @@
12+ add_subdirectory (src/iinfo)
13+ add_subdirectory (src/maketx)
14+ add_subdirectory (src/oiiotool)
15+ - add_subdirectory (src/testtex)
16+ add_subdirectory (src/iv)
17+ endif ()
18+
19+ --- src/cmake/externalpackages.cmake
20+ +++ src/cmake/externalpackages.cmake
21+ @@ -50,16 +50,26 @@
22+ endif ()
23+
24+ # IlmBase & OpenEXR
25+ - checked_find_package (Imath REQUIRED
26+ + checked_find_package (Imath CONFIG REQUIRED
27+ VERSION_MIN 3.1
28+ PRINT IMATH_INCLUDES OPENEXR_INCLUDES Imath_VERSION
29+ )
30+
31+ - checked_find_package (OpenEXR REQUIRED
32+ + checked_find_package (OpenEXR CONFIG REQUIRED
33+ VERSION_MIN 3.1
34+ NO_FP_RANGE_CHECK
35+ PRINT IMATH_INCLUDES OPENEXR_INCLUDES Imath_VERSION
36+ )
37+ +
38+ + set (OPENEXR_VERSION ${OpenEXR_VERSION})
39+ + get_target_property(IMATH_INCLUDES Imath::Imath INTERFACE_INCLUDE_DIRECTORIES)
40+ + get_target_property(IMATH_LIBRARY Imath::Imath INTERFACE_LINK_LIBRARIES)
41+ + get_target_property(OPENEXR_IEX_LIBRARY OpenEXR::Iex INTERFACE_LINK_LIBRARIES)
42+ + get_target_property(OPENEXR_ILMTHREAD_LIBRARY OpenEXR::IlmThread INTERFACE_LINK_LIBRARIES)
43+ + get_target_property(OPENEXR_INCLUDES OpenEXR::OpenEXR INTERFACE_INCLUDE_DIRECTORIES)
44+ + get_target_property(OPENEXR_ILMIMF_LIBRARY OpenEXR::OpenEXR INTERFACE_LINK_LIBRARIES)
45+ + set (OPENEXR_LIBRARIES ${OPENEXR_ILMIMF_LIBRARY} ${OPENEXR_IEX_LIBRARY} ${OPENEXR_ILMTHREAD_LIBRARY})
46+ + set (OPENEXR_FOUND true)
47+
48+ # Force Imath includes to be before everything else to ensure that we have
49+ # the right Imath/OpenEXR version, not some older version in the system
50+ @@ -87,8 +97,7 @@
51+
52+
53+ # Ultra HDR
54+ - checked_find_package (libuhdr
55+ - VERSION_MIN 1.3)
56+ + checked_find_package (libuhdr CONFIG REQUIRED)
57+
58+ checked_find_package (TIFF REQUIRED
59+ VERSION_MIN 4.0)
60+ @@ -96,7 +105,7 @@
61+
62+ # JPEG XL
63+ option (USE_JXL "Enable JPEG XL support" ON)
64+ - checked_find_package (JXL
65+ + checked_find_package (libjxl
66+ VERSION_MIN 0.10.1
67+ DEFINITIONS USE_JXL=1)
68+
69+ @@ -150,7 +159,7 @@
70+
71+ # Intel TBB
72+ set (TBB_USE_DEBUG_BUILD OFF)
73+ - checked_find_package (TBB 2017
74+ + checked_find_package (TBB
75+ SETVARIABLES OIIO_TBB
76+ PREFER_CONFIG)
77+
78+ @@ -166,7 +175,7 @@
79+ RECOMMEND_MIN 1.16
80+ RECOMMEND_MIN_REASON "for orientation support")
81+
82+ - checked_find_package (LibRaw
83+ + checked_find_package (LibRaw REQUIRED
84+ VERSION_MIN 0.20.0
85+ PRINT LibRaw_r_LIBRARIES)
86+
87+ @@ -223,18 +232,19 @@
88+
89+
90+ # Tessil/robin-map
91+ - checked_find_package (Robinmap REQUIRED
92+ + checked_find_package (tsl-robin-map REQUIRED
93+ VERSION_MIN 1.2.0
94+ BUILD_LOCAL missing
95+ )
96+ + set (ROBINMAP_INCLUDES ${tsl-robin-map_INCLUDE_DIRS})
97+
98+ # fmtlib
99+ - option (OIIO_INTERNALIZE_FMT "Copy fmt headers into <install>/include/OpenImageIO/detail/fmt" ON)
100+ + option (OIIO_INTERNALIZE_FMT "Copy fmt headers into <install>/include/OpenImageIO/detail/fmt" OFF)
101+ checked_find_package (fmt REQUIRED
102+ VERSION_MIN 7.0
103+ BUILD_LOCAL missing
104+ )
105+ - get_target_property(FMT_INCLUDE_DIR fmt::fmt-header-only INTERFACE_INCLUDE_DIRECTORIES)
106+ + get_target_property(FMT_INCLUDE_DIR fmt::fmt INTERFACE_INCLUDE_DIRECTORIES)
107+
108+
109+ ###########################################################################
110+ --- src/cmake/pythonutils.cmake
111+ +++ src/cmake/pythonutils.cmake
112+ @@ -10,8 +10,10 @@
113+ set (PYMODULE_SUFFIX "" CACHE STRING "Suffix to add to Python module init namespace")
114+ if (WIN32)
115+ set (PYLIB_LIB_TYPE SHARED CACHE STRING "Type of library to build for python module (MODULE or SHARED)")
116+ + set (PY_DEV_REQUIRED Development)
117+ else ()
118+ set (PYLIB_LIB_TYPE MODULE CACHE STRING "Type of library to build for python module (MODULE or SHARED)")
119+ + set (PY_DEV_REQUIRED Development.Module)
120+ endif ()
121+
122+
123+ @@ -33,23 +35,12 @@
124+ endif ()
125+ endif ()
126+
127+ - # Support building on manylinux docker images, which do not contain
128+ - # the Development.Embedded component.
129+ - # https://pybind11.readthedocs.io/en/stable/compiling.html#findpython-mode
130+ - if (WIN32)
131+ - set (_py_components Interpreter Development)
132+ - else ()
133+ - set (_py_components Interpreter Development.Module)
134+ - endif ()
135+ -
136+ checked_find_package (Python3 ${PYTHON_VERSION}
137+ ${_req}
138+ VERSION_MIN 3.7
139+ - COMPONENTS ${_py_components}
140+ + COMPONENTS Interpreter ${PY_DEV_REQUIRED}
141+ PRINT Python3_VERSION Python3_EXECUTABLE
142+ Python3_LIBRARIES
143+ - Python3_Development_FOUND
144+ - Python3_Development.Module_FOUND
145+ Python3_Interpreter_FOUND )
146+
147+ # The version that was found may not be the default or user
148+ @@ -61,9 +52,8 @@
149+ set (PythonInterp3_FIND_VERSION PYTHON_VERSION_FOUND)
150+ set (PythonInterp3_FIND_VERSION_MAJOR ${Python3_VERSION_MAJOR})
151+
152+ - if (NOT DEFINED PYTHON_SITE_DIR)
153+ - set (PYTHON_SITE_DIR "${CMAKE_INSTALL_LIBDIR}/python${PYTHON_VERSION_FOUND}/site-packages/OpenImageIO")
154+ - endif ()
155+ + set (PYTHON_SITE_DIR "${CMAKE_INSTALL_LIBDIR}/python${PYTHON_VERSION_FOUND}/site-packages/OpenImageIO")
156+ +
157+ message (VERBOSE " Python site packages dir ${PYTHON_SITE_DIR}")
158+ message (VERBOSE " Python to include 'lib' prefix: ${PYLIB_LIB_PREFIX}")
159+ message (VERBOSE " Python to include SO version: ${PYLIB_INCLUDE_SONAME}")
160+ @@ -160,4 +150,3 @@
161+ DESTINATION ${PYTHON_SITE_DIR} COMPONENT user)
162+
163+ endmacro ()
164+ -
165+ --- src/heif.imageio/CMakeLists.txt
166+ +++ src/heif.imageio/CMakeLists.txt
167+ @@ -3,31 +3,10 @@
168+ # https://github.com/AcademySoftwareFoundation/OpenImageIO
169+
170+ if (Libheif_FOUND)
171+ - if (LINKSTATIC)
172+ - set (_static_suffixes .lib .a)
173+ - set (_static_libraries_found 0)
174+ -
175+ - foreach (_libeheif_library IN LISTS LIBHEIF_LIBRARIES)
176+ - get_filename_component (_ext ${_libeheif_library} LAST_EXT)
177+ - list (FIND _static_suffixes ${_ext} _index)
178+ - if (${_index} GREATER -1)
179+ - MATH (EXPR _static_libraries_found "${static_libraries_found}+1")
180+ - endif()
181+ - endforeach()
182+ -
183+ - if (${_static_libraries_found} GREATER 0)
184+ - message (STATUS "${ColorYellow}")
185+ - message (STATUS "You are linking OpenImageIO against a static version of libheif, which is LGPL")
186+ - message (STATUS "licensed. If you intend to redistribute this build of OpenImageIO, we recommend")
187+ - message (STATUS "that you review the libheif license terms, or you may wish to switch to using a")
188+ - message (STATUS "dynamically-linked libheif.")
189+ - message ("${ColorReset}")
190+ - endif()
191+ - endif()
192+ -
193+ add_oiio_plugin (heifinput.cpp heifoutput.cpp
194+ INCLUDE_DIRS ${LIBHEIF_INCLUDES}
195+ LINK_LIBRARIES ${LIBHEIF_LIBRARIES}
196+ + LINK_LIBRARIES libheif::heif
197+ DEFINITIONS "USE_HEIF=1")
198+ else ()
199+ message (WARNING "heif plugin will not be built")
200+ --- src/include/CMakeLists.txt
201+ +++ src/include/CMakeLists.txt
202+ @@ -49,7 +49,7 @@
203+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/detail
204+ COMPONENT developer)
205+
206+ - if (OIIO_INTERNALIZE_FMT OR fmt_LOCAL_BUILD)
207+ + if (0)
208+ set (fmt_headers_base_names)
209+ foreach (header_name core.h format-inl.h format.h ostream.h printf.h
210+ std.h base.h chrono.h)
211+ --- src/jpeg.imageio/CMakeLists.txt
212+ +++ src/jpeg.imageio/CMakeLists.txt
213+ @@ -14,6 +14,6 @@
214+ LINK_LIBRARIES
215+ $<TARGET_NAME_IF_EXISTS:libjpeg-turbo::jpeg>
216+ $<TARGET_NAME_IF_EXISTS:JPEG::JPEG>
217+ - $<TARGET_NAME_IF_EXISTS:libuhdr::libuhdr>
218+ + libuhdr::libuhdr
219+ DEFINITIONS "${UHDR_DEFS}"
220+ )
221+ --- src/jpeg2000.imageio/CMakeLists.txt
222+ +++ src/jpeg2000.imageio/CMakeLists.txt
223+ @@ -5,7 +5,7 @@
224+ if (OPENJPEG_FOUND)
225+ add_oiio_plugin (jpeg2000input.cpp jpeg2000output.cpp
226+ INCLUDE_DIRS ${OPENJPEG_INCLUDES}
227+ - LINK_LIBRARIES ${OPENJPEG_LIBRARIES}
228+ + LINK_LIBRARIES openjp2
229+ DEFINITIONS "USE_OPENJPEG")
230+ else()
231+ message (WARNING "Jpeg-2000 plugin will not be built")
232+ --- src/jpegxl.imageio/CMakeLists.txt
233+ +++ src/jpegxl.imageio/CMakeLists.txt
234+ @@ -2,11 +2,7 @@
235+ # SPDX-License-Identifier: Apache-2.0
236+ # https://github.com/AcademySoftwareFoundation/OpenImageIO
237+
238+ - if (JXL_FOUND)
239+ - add_oiio_plugin (jxlinput.cpp jxloutput.cpp
240+ - INCLUDE_DIRS ${JXL_INCLUDES}
241+ - LINK_LIBRARIES ${JXL_LIBRARIES}
242+ - DEFINITIONS "USE_JXL")
243+ - else()
244+ - message (WARNING "JPEG XL plugin will not be built")
245+ - endif()
246+ + add_oiio_plugin (jxlinput.cpp jxloutput.cpp
247+ + INCLUDE_DIRS ${libjxl_INCLUDE_DIRS}
248+ + LINK_LIBRARIES libjxl::libjxl
249+ + DEFINITIONS "USE_JXL")
250+ --- src/libOpenImageIO/CMakeLists.txt
251+ +++ src/libOpenImageIO/CMakeLists.txt
252+ @@ -165,12 +165,23 @@
253+ OpenColorIO::OpenColorIO
254+ $<TARGET_NAME_IF_EXISTS:OpenColorIO::OpenColorIOHeaders>
255+ $<TARGET_NAME_IF_EXISTS:pugixml::pugixml>
256+ - $<TARGET_NAME_IF_EXISTS:TBB::tbb>
257+ + $<TARGET_NAME_IF_EXISTS:onetbb::onetbb>
258+ $<TARGET_NAME_IF_EXISTS:Freetype::Freetype>
259+ ${BZIP2_LIBRARIES}
260+ ZLIB::ZLIB
261+ + tsl::robin_map
262+ ${CMAKE_DL_LIBS}
263+ )
264+ +
265+ + if (USE_OPENCV)
266+ + target_link_libraries (OpenImageIO PRIVATE opencv::opencv_core
267+ + opencv::opencv_imgproc
268+ + opencv::opencv_videoio)
269+ + endif()
270+ +
271+ + if (USE_FREETYPE)
272+ + target_link_libraries (OpenImageIO PRIVATE Freetype::Freetype)
273+ + endif()
274+
275+ if (WIN32)
276+ target_link_libraries (OpenImageIO PRIVATE psapi)
277+ --- src/libutil/CMakeLists.txt
278+ +++ src/libutil/CMakeLists.txt
279+ @@ -64,8 +64,9 @@
280+ ${GCC_ATOMIC_LIBRARIES}
281+ ${OPENIMAGEIO_IMATH_DEPENDENCY_VISIBILITY}
282+ ${OPENIMAGEIO_IMATH_TARGETS}
283+ + fmt::fmt
284+ PRIVATE
285+ - $<TARGET_NAME_IF_EXISTS:TBB::tbb>
286+ + $<TARGET_NAME_IF_EXISTS:onetbb::onetbb>
287+ ${CMAKE_DL_LIBS}
288+ )
289+
290+ @@ -75,12 +76,7 @@
291+ PRIVATE stdc++_libbacktrace)
292+ endif ()
293+
294+ - if (OIIO_INTERNALIZE_FMT OR fmt_LOCAL_BUILD)
295+ - add_dependencies(${targetname} fmt_internal_target)
296+ - else ()
297+ - target_link_libraries (${targetname}
298+ - PUBLIC fmt::fmt-header-only)
299+ - endif ()
300+ + target_link_libraries (${targetname} PUBLIC fmt::fmt)
301+
302+ if (WIN32)
303+ target_compile_definitions(${targetname} PRIVATE
304+ --- src/openvdb.imageio/CMakeLists.txt
305+ +++ src/openvdb.imageio/CMakeLists.txt
306+ @@ -6,5 +6,5 @@
307+ add_oiio_plugin (openvdbinput.cpp
308+ INCLUDE_DIRS ${OPENVDB_INCLUDES} ${TBB_INCLUDE_DIRS}
309+ LINK_LIBRARIES ${OPENVDB_LIBRARIES}
310+ - $<TARGET_NAME_IF_EXISTS:TBB::tbb>)
311+ + $<TARGET_NAME_IF_EXISTS:onetbb::onetbb>)
312+ endif()
313+ --- src/ptex.imageio/CMakeLists.txt
314+ +++ src/ptex.imageio/CMakeLists.txt
315+ @@ -9,5 +9,6 @@
316+ endif()
317+ add_oiio_plugin (ptexinput.cpp
318+ LINK_LIBRARIES ${ptex_target} ZLIB::ZLIB
319+ + INCLUDE_DIRS ${ptex_INCLUDE_DIRS}
320+ DEFINITIONS "USE_PTEX")
321+ endif ()
322+ --- src/raw.imageio/CMakeLists.txt
323+ +++ src/raw.imageio/CMakeLists.txt
324+ @@ -2,12 +2,7 @@
325+ # SPDX-License-Identifier: Apache-2.0
326+ # https://github.com/AcademySoftwareFoundation/OpenImageIO
327+
328+ - if (LIBRAW_FOUND)
329+ - add_oiio_plugin (rawinput.cpp
330+ - INCLUDE_DIRS ${LibRaw_INCLUDE_DIR}
331+ - LINK_LIBRARIES ${LibRaw_r_LIBRARIES}
332+ - COMPILE_OPTIONS ${LibRaw_r_DEFINITIONS}
333+ - DEFINITIONS "USE_LIBRAW=1")
334+ - else ()
335+ - message (WARNING "Raw plugin will not be built")
336+ - endif ()
337+ + add_oiio_plugin (rawinput.cpp
338+ + INCLUDE_DIRS ${libraw_INCLUDE_DIR}
339+ + LINK_LIBRARIES libraw::libraw
340+ + DEFINITIONS "USE_LIBRAW=1" ${LibRaw_r_DEFINITIONS})
0 commit comments