Skip to content

Commit f74783b

Browse files
committed
Bump OpenImageIO to 3.0.8.1
1 parent 4b67744 commit f74783b

File tree

5 files changed

+352
-3
lines changed

5 files changed

+352
-3
lines changed

oiio_python/recipes/openimageio/conandata.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
sources:
2+
"3.0.8.1":
3+
url: "https://github.com/AcademySoftwareFoundation/OpenImageIO/archive/refs/tags/v3.0.8.1.tar.gz"
4+
sha256: "1b9b0d27e802243c1aa490b951580d10e8be645459f8080bfa0ed6f213e1082a"
25
"3.0.7.0":
36
url: "https://github.com/AcademySoftwareFoundation/OpenImageIO/archive/refs/tags/v3.0.7.0.tar.gz"
47
sha256: "2798e398b6ffd836ba7810e8ea510902a4aabc4a373ca0523a3f0d830c5eb103"
@@ -16,6 +19,10 @@ sources:
1619
sha256: "7f84c2b9c13be74c4a187fefe3844b391374ba329aa63fbbca21fa232e43c87b"
1720

1821
patches:
22+
"3.0.8.1":
23+
- patch_file: "patches/3.0.8.1-001-fix-conan-build.patch"
24+
patch_description: "Fix build with Conan"
25+
patch_type: "conan"
1926
"3.0.7.0":
2027
- patch_file: "patches/3.0.7.0-001-fix-conan-build.patch"
2128
patch_description: "Fix build with Conan"
Lines changed: 340 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,340 @@
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})

publish_on_pypi.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,9 @@ def publish_to_pypi(repository_url, static):
109109
if not dist_empty:
110110
run_command(f"twine upload --verbose --repository {repository_url} dist/*")
111111
if not wheel_empty:
112-
run_command(f"twine upload --verbose --repository {repository_url} {wheelhouse}/*")
112+
run_command(
113+
f"twine upload --verbose --repository {repository_url} {wheelhouse}/*"
114+
)
113115

114116

115117
def main():

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ def has_ext_modules(self):
123123

124124
setup(
125125
name=package_name,
126-
version="3.0.7.0.1",
126+
version="3.0.8.1.1",
127127
license_files=tuple(license_files),
128128
package_dir={"": "oiio_python"},
129129
packages=find_packages(where="oiio_python"),

setuputils/build_packages.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ def build_packages(build_static_version: bool = False) -> None:
4949

5050
# OpenImageIO
5151
oiio_dir = project / "oiio_python" / "recipes" / "openimageio"
52-
oiio_version = "3.0.7.0"
52+
oiio_version = "3.0.8.1"
5353
conan_install_package(oiio_dir, oiio_version, profile=profile_name)
5454
build_cleanup(oiio_dir)
5555

0 commit comments

Comments
 (0)