Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
b72b375
fix: discard generated pystubs when in GHA environment
zachlewis Aug 11, 2025
0650871
Revert "fix: discard generated pystubs when in GHA environment"
zachlewis Aug 22, 2025
90e1500
ci(wheels): Create separate step for uploading typestubs
zachlewis Aug 22, 2025
f915b47
ci(wheels): build wheels for CPython 3.14
zachlewis Aug 22, 2025
245fb81
testing(wheels): mac-x86 -- cmake disable sys path
zachlewis Aug 22, 2025
0561ead
Revert "ci(wheels): build wheels for CPython 3.14"
zachlewis Aug 22, 2025
45e1b1e
python: Uptick min required python to 3.9
zachlewis Sep 1, 2025
3203f60
testing: _never_ find MacOS Framework include paths during CI
zachlewis Sep 12, 2025
225d83c
fix: Revert last commit; move "...FRAMEWORK NEVER" to dependency_utils
zachlewis Sep 12, 2025
68d2495
ci(wheels-macos-x86): Go back to using the Ninja generator
zachlewis Sep 12, 2025
5907d5e
ci(wheels-macos-x86): force CIBW to find clang etc.
zachlewis Sep 12, 2025
76fb651
ci(wheels-macos-x86): set MACOSX_DEPLOYMENT_TARGET to "10.13", not "11"
zachlewis Sep 12, 2025
f6cff04
ci(wheels-macos-x86): set cmake min policy to 3.5 globally
zachlewis Sep 12, 2025
99f4974
ci(wheels-macos-x86): hack -- try to force cmake-3 in pyproj reqs
zachlewis Sep 13, 2025
5e108a9
Revert "ci(wheels-macos-x86): hack -- try to force cmake-3 in pyproj …
zachlewis Sep 13, 2025
02d9fe6
build(yaml-cpp): fix for cmake-4
zachlewis Sep 14, 2025
473efad
ci(wheels-macos-x86): update CMAKE_OSX_DEPLOYMENT_TARGET = 10.15
zachlewis Sep 14, 2025
00e19fb
ci(wheels-macos-x86): try setting $MACOS_DEPLOYMENT_TARGET = 10.15
zachlewis Sep 14, 2025
38a1853
ci(wheels-macos-x86): try removing possibly conflicting ignore-homebrew
zachlewis Sep 14, 2025
94c32b4
ci(wheels-macos-x86): try unsetting $CMAKE_ARGS env var
zachlewis Sep 14, 2025
d5c7deb
ci(wheels-macos-x86): try unsetting entire CIBW_ENV var
zachlewis Sep 14, 2025
1e8ccfb
build hack: update OpenEXR default autobuild ver to 3.4.0
zachlewis Sep 14, 2025
7834a5c
ci(wheels-macosx-x86): try turning off CMAKE_USE_SYSTEM_PATH
zachlewis Sep 14, 2025
a7ea69f
Revert "build hack: update OpenEXR default autobuild ver to 3.4.0"
zachlewis Sep 14, 2025
a1b540a
ci(wheels-macos-x86): debug -- list brew-installed OpenEXRs
zachlewis Sep 14, 2025
b98b88a
ci(wheels-macos-x86): try re-enabling CMAKE_FIND_FRAMEWORK=NEVER
zachlewis Sep 16, 2025
72b23d9
ci: Add a VFX Platform 2026 CI job (#4856)
lgritz Aug 14, 2025
d88f055
build: fix build on NetBSD (#4857)
0-wiz-0 Aug 15, 2025
052f1f8
ci: Lock down to ci-oiio container with correct llvm components (#4859)
lgritz Aug 15, 2025
689b719
ci: Bump webp and openexr for "latest versions" test (#4861)
lgritz Aug 18, 2025
eae73da
feat: color space renaming to adhere to CIF conventions (#4860)
lgritz Aug 19, 2025
482a394
deps: Raise OpenColorIO minimum to 2.3 (#4865)
lgritz Aug 20, 2025
cb58367
admin: Prepare main for 3.2 development (#4864)
lgritz Aug 22, 2025
eaeb03a
ci: Update ABI standard after bumping 3.2 version number (#4868)
lgritz Aug 22, 2025
cb0388f
build: Some more minor wheel workflow changes after the py 3.9 bump (…
lgritz Aug 22, 2025
2f4db3b
build: clean up obsolete logic for old compilers (#4849)
lgritz Aug 23, 2025
4c182e0
exr: OpenEXR 3.4 supports two compression types for HTJ2K (#4871)
TodicaIonut Aug 29, 2025
d38ab1f
build: ffmpeg 8 support (#4870)
lgritz Aug 31, 2025
8330a8a
build: Look for boost headers for OpenVDBs older than 12 (#4873)
boberfly Sep 6, 2025
1fceaa1
feat(oiiotool): allow easy splitting of subimages by name (#4874)
lgritz Sep 9, 2025
5300edf
build: several OpenEXR and OpenJPH build related fixes (#4875)
lgritz Sep 9, 2025
4405685
ci: Test freetype 2.14 and document that it works (#4876)
lgritz Sep 11, 2025
db809dd
feat: CICP metadata support for PNG (#4746)
zachlewis Sep 13, 2025
6ef30fb
feat(webp): Support reading/writing the ICCProfile attribute (#4878)
jessey-git Sep 13, 2025
f24fa3c
feat(ffmpeg): Read CICP metadata, and add test (#4882)
brechtvl Sep 13, 2025
1c82b52
ci: fix analysis workflow configuration (#4881)
lgritz Sep 13, 2025
497436d
api: Versioned namespace to preserve ABI compatibility between minor …
lgritz Sep 14, 2025
3497fa1
feat(heif): Read and write of CICP and bit depth 10 and 12 (#4880)
brechtvl Sep 14, 2025
04f3cc0
ci: better spread of libpng versions we test against (#4883)
lgritz Sep 14, 2025
bc2bde0
ci: disable macos-x86 wheels. (#4886)
zachlewis Sep 15, 2025
1554c3a
fix(ffmpeg): FFmpeg sets zero oiio:BitsPerSample (#4885)
brechtvl Sep 15, 2025
3080595
admin: Adjust license notices of A2-only source (#4884)
lgritz Sep 15, 2025
25ab34e
fix: Switch to compile-commands (#4879)
vvalderrv Sep 15, 2025
82ab2a1
ci(wheels-macos-x86): re-enable CMAKE_GENERATOR="Unix Makefiles" bit
zachlewis Sep 16, 2025
9489385
ci(wheels): solo macos-x86 builds
zachlewis Sep 16, 2025
a705f7c
ci(wheels-macos-x86): try turning macos deployment target up to 11
zachlewis Sep 16, 2025
e320367
ci(wheels-macos-x86): use CIBW_ENVIRONMENT to force xcrun to find clang
zachlewis Sep 16, 2025
f246135
build: set CMAKE_FIND_FRAMEWORK = NEVER in compiler.cmake
zachlewis Sep 16, 2025
a6e9fff
build(openexr): uptick default autobuild ver to 3.4.0
zachlewis Sep 16, 2025
c5ddd15
ci(wheels-macos_x86): brew uninstall openexr 3.4
zachlewis Sep 16, 2025
79d1e3c
build: add `$HOMEBREW_PREFIX/Cellar` to IGNORE_HOMEBREWED_DEPS excludes
zachlewis Sep 16, 2025
93d158d
Revert "build(openexr): uptick default autobuild ver to 3.4.0"
zachlewis Sep 16, 2025
a8ff8bf
Revert "build: set CMAKE_FIND_FRAMEWORK = NEVER in compiler.cmake"
zachlewis Sep 16, 2025
aa92f6b
ci(wheels-macos-intel): get rid of unnecessary changes
zachlewis Sep 16, 2025
46e6daa
Revert "ci(wheels): solo macos-x86 builds"
zachlewis Sep 16, 2025
50064a4
ci(wheels-macos-x86): remove brew uninstall openexr step
zachlewis Sep 16, 2025
6095f0a
Merge branch 'main' into fix_python_wheels_pypi_release
zachlewis Sep 16, 2025
346c6c6
Update pybind11 version in pyproject.toml
zachlewis Sep 16, 2025
a7427dd
ci(wheels-macos-x86): brew-uninstall openexr/imath
zachlewis Sep 16, 2025
2f04800
cleanup: revert CMAKE_FIND_FRAMEWORK behavior from NEVER to LAST
zachlewis Sep 16, 2025
1957a9d
ci(wheels-macos-x86): re-require macos wheel for pypi-upload step
zachlewis Sep 16, 2025
52f7373
cleanup: revert unnecessary changes
zachlewis Sep 16, 2025
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
133 changes: 76 additions & 57 deletions .github/workflows/wheel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -157,9 +157,16 @@ jobs:
name: cibw-wheels-${{ matrix.python }}-${{ matrix.manylinux }}
path: |
./wheelhouse/*.whl

- uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0
with:
name: stubs-${{ matrix.python }}-${{ matrix.manylinux }}
path: |
./wheelhouse/OpenImageIO/__init__.pyi
# if stub validation fails we want to upload the stubs for users to review
if: success() || failure()
# if stub validation fails we want to upload the stubs for users to review.
# keep the python build in sync with the version specified in tool.cibuildwheel.overrides
# section of pyproject.toml
if: always() && contains(matrix.python, 'cp311-manylinux')

# ---------------------------------------------------------------------------
# Linux ARM Wheels
Expand Down Expand Up @@ -219,65 +226,78 @@ jobs:
name: cibw-wheels-${{ matrix.python }}-${{ matrix.manylinux }}
path: |
./wheelhouse/*.whl

- uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0
with:
name: stubs-${{ matrix.python }}-${{ matrix.manylinux }}
path: |
./wheelhouse/OpenImageIO/__init__.pyi
# if stub validation fails we want to upload the stubs for users to review
if: success() || failure()
# if stub validation fails we want to upload the stubs for users to review.
# keep the python build in sync with the version specified in tool.cibuildwheel.overrides
# section of pyproject.toml
if: always() && contains(matrix.python, 'cp311-manylinux')

# ---------------------------------------------------------------------------
# macOS Wheels
# ---------------------------------------------------------------------------

# macos:
# name: Build wheels on macOS
# runs-on: macos-13
# if: |
# github.event_name != 'schedule' ||
# github.repository == 'AcademySoftwareFoundation/OpenImageIO'
# strategy:
# matrix:
# include:
# # -------------------------------------------------------------------
# # CPython 64 bits
# # -------------------------------------------------------------------
# - build: CPython 3.9 64 bits
# python: cp39-macosx_x86_64
# arch: x86_64
# - build: CPython 3.10 64 bits
# python: cp310-macosx_x86_64
# arch: x86_64
# - build: CPython 3.11 64 bits
# python: cp311-macosx_x86_64
# arch: x86_64
# - build: CPython 3.12 64 bits
# python: cp312-macosx_x86_64
# arch: x86_64
# - build: CPython 3.13 64 bits
# python: cp313-macosx_x86_64
# arch: x86_64

# steps:
# - name: Checkout repo
# uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

# - name: Install Python
# uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5.2.0
# with:
# python-version: '3.9'

# - name: Build wheels
# uses: pypa/cibuildwheel@d4a2945fcc8d13f20a1b99d461b8e844d5fc6e23 # v2.21.1
# env:
# CIBW_BUILD: ${{ matrix.python }}
# CIBW_ARCHS: ${{ matrix.arch }}
# CMAKE_GENERATOR: "Unix Makefiles"
# # TODO: Re-enable HEIF when we provide a build recipe that does
# # not include GPL-licensed dynamic libraries.
# USE_Libheif: 'OFF'

# - uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0
# with:
# name: cibw-wheels-${{ matrix.python }}
# path: ./wheelhouse/*.whl
macos:
name: Build wheels on macOS
runs-on: macos-13
if: |
github.event_name != 'schedule' ||
github.repository == 'AcademySoftwareFoundation/OpenImageIO'
strategy:
matrix:
include:
# -------------------------------------------------------------------
# CPython 64 bits
# -------------------------------------------------------------------
- build: CPython 3.9 64 bits
python: cp39-macosx_x86_64
arch: x86_64
- build: CPython 3.10 64 bits
python: cp310-macosx_x86_64
arch: x86_64
- build: CPython 3.11 64 bits
python: cp311-macosx_x86_64
arch: x86_64
- build: CPython 3.12 64 bits
python: cp312-macosx_x86_64
arch: x86_64
- build: CPython 3.13 64 bits
python: cp313-macosx_x86_64
arch: x86_64

steps:
- name: Checkout repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- name: Install Python
uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5.2.0
with:
python-version: '3.9'

- name: Remove brew OpenEXR/Imath
run: |
brew uninstall --ignore-dependencies openexr imath || true

- name: Build wheels
uses: pypa/cibuildwheel@d4a2945fcc8d13f20a1b99d461b8e844d5fc6e23 # v2.21.1
env:
CIBW_BUILD: ${{ matrix.python }}
CIBW_ARCHS: ${{ matrix.arch }}
MACOSX_DEPLOYMENT_TARGET: 10.15
CMAKE_GENERATOR: "Unix Makefiles"
# TODO: Re-enable HEIF when we provide a build recipe that does
# not include GPL-licensed dynamic libraries.
USE_Libheif: 'OFF'

- uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0
with:
name: cibw-wheels-${{ matrix.python }}
path: ./wheelhouse/*.whl


# ---------------------------------------------------------------------------
# macOS ARM Wheels
Expand Down Expand Up @@ -317,7 +337,6 @@ jobs:

- name: Install Python
uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5.2.0
# https://cibuildwheel.pypa.io/en/stable/faq/#macos-building-cpython-38-wheels-on-arm64
with:
python-version: '3.9'

Expand Down Expand Up @@ -389,7 +408,7 @@ jobs:


upload_pypi:
needs: [sdist, linux, linux-arm, macos-arm, windows]
needs: [sdist, linux, linux-arm, macos, macos-arm, windows]
runs-on: ubuntu-latest
permissions:
id-token: write
Expand Down
2 changes: 2 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,9 @@ if (IGNORE_HOMEBREWED_DEPS)
# Define the list of prefixes to ignore
set (HOMEBREW_PREFIXES
/opt/homebrew
/opt/homebrew/Cellar
/usr/local
/usr/local/Cellar
/usr/X11
/usr/X11R6
/opt/X11
Expand Down
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -88,12 +88,14 @@ if.platform-system = "darwin"
if.platform-machine = "arm64"
inherit.cmake.define = "append"
cmake.define.CMAKE_OSX_ARCHITECTURES = "arm64"
cmake.define.CMAKE_OSX_DEPLOYMENT_TARGET = "11"

[[tool.scikit-build.overrides]]
if.platform-system = "darwin"
if.platform-machine = "x86_64"
inherit.cmake.define = "append"
cmake.define.CMAKE_OSX_ARCHITECTURES = "x86_64"
cmake.define.CMAKE_OSX_DEPLOYMENT_TARGET = "10.15"

[tool.cibuildwheel]
build-verbosity = 1
Expand All @@ -109,8 +111,6 @@ test-command = "oiiotool --buildinfo"

[tool.cibuildwheel.macos.environment]
SKBUILD_CMAKE_ARGS = "-DLINKSTATIC=1; -DIGNORE_HOMEBREWED_DEPS=1"
# C++17 - std::filesystem is only available in macOS 10.15 and later; ARM compatibility introduced in 11.
MACOSX_DEPLOYMENT_TARGET = "11"
# Optimize for size (not speed).
SKBUILD_CMAKE_BUILD_TYPE = "MinSizeRel"

Expand Down
1 change: 1 addition & 0 deletions src/cmake/build_yaml-cpp.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ build_dependency_with_cmake(yaml-cpp
-D YAML_CPP_BUILD_CONTRIB=OFF
-D YAML_BUILD_SHARED_LIBS=${yaml-cpp_BUILD_SHARED_LIBS}
-D CMAKE_INSTALL_LIBDIR=lib
-D CMAKE_POLICY_VERSION_MINIMUM=3.5
)

set (yaml-cpp_ROOT ${yaml-cpp_LOCAL_INSTALL_DIR})
Expand Down
Loading