Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/ci_workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -313,7 +313,7 @@ jobs:
-Dpystring_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dyaml-cpp_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dyaml-cpp_STATIC_LIBRARY=ON \
-Dyaml-cpp_VERSION=0.8.0 \
-Dyaml-cpp_VERSION=0.9.0 \
-DZLIB_ROOT=${{ env.ocio_build_path }}/ext/dist \
-DZLIB_STATIC_LIBRARY=ON \
-Dminizip-ng_ROOT=${{ env.ocio_build_path }}/ext/dist \
Expand Down Expand Up @@ -440,7 +440,7 @@ jobs:
-Dpystring_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dyaml-cpp_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dyaml-cpp_STATIC_LIBRARY=ON \
-Dyaml-cpp_VERSION=0.8.0 \
-Dyaml-cpp_VERSION=0.9.0 \
-DZLIB_ROOT=${{ env.ocio_build_path }}/ext/dist \
-DZLIB_STATIC_LIBRARY=ON \
-Dminizip-ng_ROOT=${{ env.ocio_build_path }}/ext/dist \
Expand Down Expand Up @@ -579,7 +579,7 @@ jobs:
-Dpystring_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dyaml-cpp_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dyaml-cpp_STATIC_LIBRARY=ON \
-Dyaml-cpp_VERSION=0.8.0 \
-Dyaml-cpp_VERSION=0.9.0 \
-DZLIB_ROOT=${{ env.ocio_build_path }}/ext/dist \
-DZLIB_STATIC_LIBRARY=ON \
-Dminizip-ng_ROOT=${{ env.ocio_build_path }}/ext/dist \
Expand Down Expand Up @@ -733,7 +733,7 @@ jobs:
-Dpystring_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dyaml-cpp_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dyaml-cpp_STATIC_LIBRARY=ON \
-Dyaml-cpp_VERSION=0.8.0 \
-Dyaml-cpp_VERSION=0.9.0 \
-DZLIB_ROOT=${{ env.ocio_build_path }}/ext/dist \
-DZLIB_STATIC_LIBRARY=ON \
-Dminizip-ng_ROOT=${{ env.ocio_build_path }}/ext/dist \
Expand Down
24 changes: 12 additions & 12 deletions .github/workflows/dependencies_latest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -100,13 +100,13 @@ jobs:
- name: Install fixed ext package versions
# Minizip-ng depends on ZLIB. ZLIB must be installed first.
run: |
share/ci/scripts/multi/install_expat.sh 2.7.2 $EXT_PATH
share/ci/scripts/multi/install_expat.sh 2.8.4 $EXT_PATH
share/ci/scripts/multi/install_lcms2.sh 2.17 $EXT_PATH
share/ci/scripts/multi/install_yaml-cpp.sh 0.8.0 $EXT_PATH
share/ci/scripts/multi/install_yaml-cpp.sh 0.9.0 $EXT_PATH
share/ci/scripts/multi/install_pystring.sh 1.1.4 $EXT_PATH
share/ci/scripts/multi/install_pybind11.sh 3.0.1 $EXT_PATH
share/ci/scripts/multi/install_zlib.sh 1.3.1 $EXT_PATH
share/ci/scripts/multi/install_minizip-ng.sh 4.0.10 $EXT_PATH
share/ci/scripts/multi/install_zlib.sh 1.3.2 $EXT_PATH
share/ci/scripts/multi/install_minizip-ng.sh 4.2.2 $EXT_PATH
- name: Install latest ext package versions
run: |
share/ci/scripts/multi/install_imath.sh latest $EXT_PATH
Expand Down Expand Up @@ -198,13 +198,13 @@ jobs:
- name: Install fixed ext package versions
# Minizip-ng depends on ZLIB. ZLIB must be installed first.
run: |
share/ci/scripts/multi/install_expat.sh 2.7.2 $EXT_PATH
share/ci/scripts/multi/install_expat.sh 2.8.4 $EXT_PATH
share/ci/scripts/multi/install_lcms2.sh 2.17 $EXT_PATH
share/ci/scripts/multi/install_yaml-cpp.sh 0.8.0 $EXT_PATH
share/ci/scripts/multi/install_yaml-cpp.sh 0.9.0 $EXT_PATH
share/ci/scripts/multi/install_pystring.sh 1.1.4 $EXT_PATH
share/ci/scripts/multi/install_pybind11.sh 3.0.1 $EXT_PATH
share/ci/scripts/multi/install_zlib.sh 1.3.1 $EXT_PATH
share/ci/scripts/multi/install_minizip-ng.sh 4.0.10 $EXT_PATH
share/ci/scripts/multi/install_zlib.sh 1.3.2 $EXT_PATH
share/ci/scripts/multi/install_minizip-ng.sh 4.2.2 $EXT_PATH
- name: Install latest ext package versions
run: |
share/ci/scripts/multi/install_imath.sh latest $EXT_PATH
Expand Down Expand Up @@ -314,12 +314,12 @@ jobs:
# Minizip-ng depends on ZLIB. ZLIB must be installed first.
run: |
share/ci/scripts/multi/install_lcms2.sh 2.17 $EXT_PATH
share/ci/scripts/multi/install_yaml-cpp.sh 0.8.0 $EXT_PATH
share/ci/scripts/multi/install_yaml-cpp.sh 0.9.0 $EXT_PATH
share/ci/scripts/multi/install_pystring.sh 1.1.4 $EXT_PATH
share/ci/scripts/multi/install_pybind11.sh 3.0.1 $EXT_PATH
share/ci/scripts/multi/install_expat.sh 2.7.2 $EXT_PATH
share/ci/scripts/multi/install_zlib.sh 1.3.1 $EXT_PATH
share/ci/scripts/multi/install_minizip-ng.sh 4.0.10 $EXT_PATH
share/ci/scripts/multi/install_expat.sh 2.8.4 $EXT_PATH
share/ci/scripts/multi/install_zlib.sh 1.3.2 $EXT_PATH
share/ci/scripts/multi/install_minizip-ng.sh 4.2.2 $EXT_PATH
shell: bash
# OSL not installed due to LLVM compilation time.
- name: Install latest ext package versions
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/platform_latest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ jobs:
-Dpystring_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dyaml-cpp_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dyaml-cpp_STATIC_LIBRARY=ON \
-Dyaml-cpp_VERSION=0.8.0 \
-Dyaml-cpp_VERSION=0.9.0 \
-DZLIB_ROOT=${{ env.ocio_build_path }}/ext/dist \
-DZLIB_STATIC_LIBRARY=ON \
-Dminizip-ng_ROOT=${{ env.ocio_build_path }}/ext/dist \
Expand Down Expand Up @@ -266,7 +266,7 @@ jobs:
-Dpystring_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dyaml-cpp_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dyaml-cpp_STATIC_LIBRARY=ON \
-Dyaml-cpp_VERSION=0.8.0 \
-Dyaml-cpp_VERSION=0.9.0 \
-DZLIB_ROOT=${{ env.ocio_build_path }}/ext/dist \
-DZLIB_STATIC_LIBRARY=ON \
-Dminizip-ng_ROOT=${{ env.ocio_build_path }}/ext/dist \
Expand Down Expand Up @@ -383,7 +383,7 @@ jobs:
-Dpystring_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dyaml-cpp_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dyaml-cpp_STATIC_LIBRARY=ON \
-Dyaml-cpp_VERSION=0.8.0 \
-Dyaml-cpp_VERSION=0.9.0 \
-DZLIB_ROOT=${{ env.ocio_build_path }}/ext/dist \
-DZLIB_STATIC_LIBRARY=ON \
-Dminizip-ng_ROOT=${{ env.ocio_build_path }}/ext/dist \
Expand Down
26 changes: 26 additions & 0 deletions .github/workflows/wheel_workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -84,45 +84,62 @@ jobs:
manylinux: manylinux_2_28
python: cp310-manylinux_x86_64
arch: x86_64
numpy: numpy
- build: CPython 3.11 64 bits manylinux_2_28
manylinux: manylinux_2_28
python: cp311-manylinux_x86_64
arch: x86_64
numpy: numpy
- build: CPython 3.12 64 bits manylinux_2_28
manylinux: manylinux_2_28
python: cp312-manylinux_x86_64
arch: x86_64
numpy: numpy
- build: CPython 3.13 64 bits manylinux_2_28
manylinux: manylinux_2_28
python: cp313-manylinux_x86_64
arch: x86_64
numpy: numpy
- build: CPython 3.14 64 bits manylinux_2_28
manylinux: manylinux_2_28
python: cp314-manylinux_x86_64
arch: x86_64
numpy: numpy
# -------------------------------------------------------------------
# CPython 64 bits manylinux2014
# -------------------------------------------------------------------
# NumPy dropped manylinux2014 wheels as of 2.3.0 (and manylinux2014's
# toolchain is too old to build newer NumPy from source), so the test
# environment here must be pinned to the last version that still
# published manylinux2014 wheels. No NumPy release supports both
# manylinux2014 and cp314, so that combination skips NumPy entirely;
# the Python test suite tolerates its absence and skips only the
# NumPy-dependent cases.
- build: CPython 3.10 64 bits manylinux2014
manylinux: manylinux2014
python: cp310-manylinux_x86_64
arch: x86_64
numpy: "numpy<2.3"
- build: CPython 3.11 64 bits manylinux2014
manylinux: manylinux2014
python: cp311-manylinux_x86_64
arch: x86_64
numpy: "numpy<2.3"
- build: CPython 3.12 64 bits manylinux2014
manylinux: manylinux2014
python: cp312-manylinux_x86_64
arch: x86_64
numpy: "numpy<2.3"
- build: CPython 3.13 64 bits manylinux2014
manylinux: manylinux2014
python: cp313-manylinux_x86_64
arch: x86_64
numpy: "numpy<2.3"
- build: CPython 3.14 64 bits manylinux2014
manylinux: manylinux2014
python: cp314-manylinux_x86_64
arch: x86_64
numpy: ""

steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
Expand All @@ -139,6 +156,7 @@ jobs:
CIBW_ARCHS: ${{ matrix.arch }}
CIBW_MANYLINUX_X86_64_IMAGE: ${{ matrix.manylinux }}
CIBW_BEFORE_BUILD: "pip install sphinx-press-theme"
CIBW_TEST_REQUIRES: ${{ matrix.numpy }}

- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
Expand All @@ -162,26 +180,33 @@ jobs:
# -------------------------------------------------------------------
# CPython ARM 64 bits manylinux2014
# -------------------------------------------------------------------
# See the x86_64 manylinux2014 rows above for why the NumPy test
# dependency is pinned (and dropped for cp314) here.
- build: CPython 3.10 ARM 64 bits manylinux2014
manylinux: manylinux2014
python: cp310-manylinux_aarch64
arch: aarch64
numpy: "numpy<2.3"
- build: CPython 3.11 ARM 64 bits manylinux2014
manylinux: manylinux2014
python: cp311-manylinux_aarch64
arch: aarch64
numpy: "numpy<2.3"
- build: CPython 3.12 ARM 64 bits manylinux2014
manylinux: manylinux2014
python: cp312-manylinux_aarch64
arch: aarch64
numpy: "numpy<2.3"
- build: CPython 3.13 ARM 64 bits manylinux2014
manylinux: manylinux2014
python: cp313-manylinux_aarch64
arch: aarch64
numpy: "numpy<2.3"
- build: CPython 3.14 ARM 64 bits manylinux2014
manylinux: manylinux2014
python: cp314-manylinux_aarch64
arch: aarch64
numpy: ""

steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
Expand All @@ -198,6 +223,7 @@ jobs:
CIBW_ARCHS: ${{ matrix.arch }}
CIBW_MANYLINUX_AARCH64_IMAGE: ${{ matrix.manylinux }}
CIBW_BEFORE_BUILD: "pip install sphinx-press-theme"
CIBW_TEST_REQUIRES: ${{ matrix.numpy }}

- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
Expand Down
1 change: 1 addition & 0 deletions share/ci/scripts/multi/install_minizip-ng.sh
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ cmake -DCMAKE_BUILD_TYPE=Release \
-DMZ_LZMA=OFF \
-DMZ_LIBCOMP=OFF \
-DMZ_ZSTD=OFF \
-DMZ_PPMD=OFF \
-DMZ_PKCRYPT=OFF \
-DMZ_WZAES=OFF \
-DMZ_SIGNING=OFF \
Expand Down
7 changes: 5 additions & 2 deletions share/ci/scripts/multi/install_yaml-cpp.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,12 @@ cd yaml-cpp
if [ "$YAMLCPP_VERSION" == "latest" ]; then
LATEST_TAG=$(git describe --abbrev=0 --tags)
git checkout tags/${LATEST_TAG} -b ${LATEST_TAG}
else
# From 0.8.0, tags are now simply the version number.
elif [ "$YAMLCPP_VERSION" == "0.8.0" ]; then
# 0.8.0 briefly used the bare version number as its tag; all other
# releases (including 0.9.0+) use the "yaml-cpp-" prefix.
git checkout tags/${YAMLCPP_VERSION} -b ${YAMLCPP_VERSION}
else
git checkout tags/yaml-cpp-${YAMLCPP_VERSION} -b ${YAMLCPP_VERSION}
fi

mkdir build
Expand Down
16 changes: 8 additions & 8 deletions share/cmake/modules/FindExtPackages.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -56,14 +56,14 @@ message(STATUS "Checking for mandatory dependencies...")
# https://github.com/libexpat/libexpat
ocio_handle_dependency( expat REQUIRED ALLOW_INSTALL
MIN_VERSION 2.6.0
RECOMMENDED_VERSION 2.7.2
RECOMMENDED_VERSION_REASON "CVE fixes and Latest version tested with OCIO")
RECOMMENDED_VERSION 2.8.4
RECOMMENDED_VERSION_REASON "CVE fixes and latest version tested with OCIO")

# yaml-cpp
# https://github.com/jbeder/yaml-cpp
ocio_handle_dependency( yaml-cpp REQUIRED ALLOW_INSTALL
MIN_VERSION 0.8.0
RECOMMENDED_VERSION 0.8.0
RECOMMENDED_VERSION 0.9.0
RECOMMENDED_VERSION_REASON "Latest version tested with OCIO")

# pystring
Expand All @@ -77,7 +77,7 @@ ocio_handle_dependency( pystring REQUIRED ALLOW_INSTALL
# https://github.com/AcademySoftwareFoundation/Imath
ocio_handle_dependency( Imath REQUIRED ALLOW_INSTALL
MIN_VERSION 3.1.1
RECOMMENDED_VERSION 3.2.1
RECOMMENDED_VERSION 3.2.3
RECOMMENDED_VERSION_REASON "Latest version tested with OCIO")

###############################################################################
Expand All @@ -102,17 +102,17 @@ ocio_handle_dependency( Imath REQUIRED ALLOW_INSTALL
# See https://github.com/madler/zlib/releases/tag/v1.2.13
ocio_handle_dependency( ZLIB REQUIRED ALLOW_INSTALL
MIN_VERSION 1.2.13 # CVE fixes
RECOMMENDED_VERSION 1.3.1
RECOMMENDED_VERSION_REASON "Latest version tested with OCIO"
RECOMMENDED_VERSION 1.3.2
RECOMMENDED_VERSION_REASON "CVE fixes and latest version tested with OCIO"
VERSION_VARS ZLIB_VERSION_STRING ZLIB_VERSION )

###############################################################################

# minizip-ng
# https://github.com/zlib-ng/minizip-ng
ocio_handle_dependency( minizip-ng REQUIRED ALLOW_INSTALL
MIN_VERSION 4.0.0
RECOMMENDED_VERSION 4.0.10
MIN_VERSION 4.0.5
RECOMMENDED_VERSION 4.2.2
RECOMMENDED_VERSION_REASON "Latest version tested with OCIO")

###############################################################################
Expand Down
47 changes: 37 additions & 10 deletions share/cmake/modules/install/InstallZLIB.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -35,14 +35,6 @@ if(NOT ZLIB_FOUND AND OCIO_INSTALL_EXT_PACKAGES AND NOT OCIO_INSTALL_EXT_PACKAGE
set(_EXT_DIST_ROOT "${PROJECT_BINARY_DIR}/ext/dist")
set(_EXT_BUILD_ROOT "${PROJECT_BINARY_DIR}/ext/build")

if(WIN32)
set(_ZLIB_LIB_NAME "zlib")
set(_ZLIB_STATIC_LIB_NAME "zlibstatic")
else()
set(_ZLIB_LIB_NAME "z")
set(_ZLIB_STATIC_LIB_NAME "z")
endif()

# Set find_package standard args
set(ZLIB_FOUND TRUE)
if(OCIO_ZLIB_RECOMMENDED_VERSION)
Expand All @@ -51,6 +43,22 @@ if(NOT ZLIB_FOUND AND OCIO_INSTALL_EXT_PACKAGES AND NOT OCIO_INSTALL_EXT_PACKAGE
set(ZLIB_VERSION ${ZLIB_FIND_VERSION})
endif()

if(WIN32)
# zlib 1.3.2 rewrote its CMakeLists.txt and renamed the Windows shared and
# static library outputs from "zlib"/"zlibstatic" to "z"/"zs".
# Keep the old names for versions prior to that so older pins still work.
if(ZLIB_VERSION VERSION_LESS "1.3.2")
set(_ZLIB_LIB_NAME "zlib")
set(_ZLIB_STATIC_LIB_NAME "zlibstatic")
else()
set(_ZLIB_LIB_NAME "z")
set(_ZLIB_STATIC_LIB_NAME "zs")
endif()
else()
set(_ZLIB_LIB_NAME "z")
set(_ZLIB_STATIC_LIB_NAME "z")
endif()

set(ZLIB_INCLUDE_DIRS "${_EXT_DIST_ROOT}/${CMAKE_INSTALL_INCLUDEDIR}")

# Windows need the "d" suffix at the end (only for MSVC).
Expand Down Expand Up @@ -82,6 +90,11 @@ if(NOT ZLIB_FOUND AND OCIO_INSTALL_EXT_PACKAGES AND NOT OCIO_INSTALL_EXT_PACKAGE
-DCMAKE_INSTALL_MESSAGE=${CMAKE_INSTALL_MESSAGE}
-DCMAKE_INSTALL_PREFIX=${_EXT_DIST_ROOT}
-DCMAKE_OBJECT_PATH_MAX=${CMAKE_OBJECT_PATH_MAX}
# ZLIB versions <=1.3.1 always install to ${CMAKE_INSTALL_PREFIX}/lib and ignore
# CMAKE_INSTALL_LIBDIR. Starting with 1.3.2, ZLIB uses GNUInstallDirs, which without
# this pre-seeded value would default to a platform-specific dir (e.g. lib64),
# breaking the hardcoded "${_ZLIB_INSTALL_LIBDIR}" path used below.
-DCMAKE_INSTALL_LIBDIR=${_ZLIB_INSTALL_LIBDIR}
)

if(CMAKE_TOOLCHAIN_FILE)
Expand Down Expand Up @@ -131,11 +144,25 @@ if(NOT ZLIB_FOUND AND OCIO_INSTALL_EXT_PACKAGES AND NOT OCIO_INSTALL_EXT_PACKAGE

ExternalProject_Add_Step(
ZLIB_install zlib_remove_dll
COMMENT "Remove zlib.lib and zlib.dll, leaves only zlibstatic.lib"
COMMENT "Remove ${_ZLIB_LIB_NAME}.lib and ${_ZLIB_LIB_NAME}.dll, leaves only ${_ZLIB_STATIC_LIB_NAME}.lib"
DEPENDEES install
COMMAND ${CMAKE_COMMAND} -E remove -f ${_EXT_DIST_ROOT}/${_ZLIB_INSTALL_LIBDIR}/zlib.lib ${_EXT_DIST_ROOT}/bin/zlib.dll
COMMAND ${CMAKE_COMMAND} -E remove -f ${_EXT_DIST_ROOT}/${_ZLIB_INSTALL_LIBDIR}/${_ZLIB_LIB_NAME}.lib ${_EXT_DIST_ROOT}/bin/${_ZLIB_LIB_NAME}.dll
)

if(WIN32 AND NOT _ZLIB_STATIC_LIB_NAME STREQUAL "zlibstatic")
# CMake's own FindZLIB.cmake (used by downstream consumers of OpenColorIOConfig.cmake)
# only ever looks for the static library under the name "zlibstatic", so alias the
# renamed 1.3.2+ output ("zs") to that name too.
ExternalProject_Add_Step(
ZLIB_install zlib_alias_static_lib
COMMENT "Alias ${_ZLIB_STATIC_LIB_NAME}.lib as zlibstatic.lib for downstream find_package(ZLIB)"
DEPENDEES zlib_remove_dll
COMMAND ${CMAKE_COMMAND} -E copy
${_EXT_DIST_ROOT}/${_ZLIB_INSTALL_LIBDIR}/${_ZLIB_STATIC_LIB_NAME}${_ZLIB_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
${_EXT_DIST_ROOT}/${_ZLIB_INSTALL_LIBDIR}/zlibstatic${_ZLIB_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
)
endif()

add_dependencies(ZLIB::ZLIB ZLIB_install)

# FindZLIB from CMake needs ZLIB_LIBRARY and ZLIB_INCLUDE_DIR.
Expand Down
1 change: 1 addition & 0 deletions share/cmake/modules/install/Installminizip-ng.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ if(NOT minizip-ng_FOUND AND OCIO_INSTALL_EXT_PACKAGES AND NOT OCIO_INSTALL_EXT_P
-DMZ_LZMA=OFF
-DMZ_LIBCOMP=OFF
-DMZ_ZSTD=OFF
-DMZ_PPMD=OFF
-DMZ_PKCRYPT=OFF
-DMZ_WZAES=OFF
-DMZ_SIGNING=OFF
Expand Down
Loading
Loading