Skip to content

Commit a3379db

Browse files
authored
Merge branch 'AcademySoftwareFoundation:main' into CUDA
2 parents f377f59 + 144143d commit a3379db

19 files changed

Lines changed: 227 additions & 122 deletions

File tree

.github/workflows/build-steps.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,18 @@ on:
3737
type: string
3838
fmt_commit:
3939
type: string
40+
gcc_action_ver:
41+
type: string
42+
llvm_action_ver:
43+
type: string
4044
opencolorio_ver:
4145
type: string
4246
openexr_ver:
4347
type: string
4448
pybind11_ver:
4549
type: string
50+
python_action_ver:
51+
type: string
4652
python_ver:
4753
type: string
4854
setenvs:
@@ -80,6 +86,8 @@ on:
8086
type: string
8187
optional_deps:
8288
type: string
89+
build_local_deps:
90+
type: string
8391
secrets:
8492
PASSED_GITHUB_TOKEN:
8593
required: false
@@ -125,6 +133,7 @@ jobs:
125133
# against and testing an optional dependency, but in fact are not.
126134
OpenImageIO_REQUIRED_DEPS: ${{inputs.required_deps}}
127135
OpenImageIO_OPTIONAL_DEPS: ${{inputs.optional_deps}}
136+
OpenImageIO_BUILD_LOCAL_DEPS: ${{inputs.build_local_deps}}
128137
SETENVS: ${{inputs.setenvs}}
129138
DEPCMDS: ${{inputs.depcmds}}
130139

@@ -167,6 +176,22 @@ jobs:
167176
# path: ./ccache
168177
key: ${{inputs.nametag}}-${{steps.ccache_cache_keys.outputs.date}}
169178
restore-keys: ${{inputs.nametag}}
179+
- name: Install gcc
180+
if: inputs.gcc_action_ver != ''
181+
run: |
182+
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
183+
sudo apt-get update -y
184+
sudo apt-get install -y g++-${{inputs.gcc_action_ver}}
185+
- name: Install python
186+
if: inputs.python_action_ver != ''
187+
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
188+
with:
189+
python-version: ${{ inputs.python_action_ver }}
190+
- name: Install LLVM and Clang
191+
if: inputs.llvm_action_ver != ''
192+
uses: KyleMayes/install-llvm-action@ebc0426251bc40c7cd31162802432c68818ab8f0 # v2.0.9
193+
with:
194+
version: ${{ inputs.llvm_action_ver }}
170195
- name: Dependencies
171196
shell: bash
172197
run: |

.github/workflows/ci.yml

Lines changed: 119 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ jobs:
7979
# only the ones we are intentionally not testing for those jobs.
8080
required_deps: ${{ matrix.required_deps || 'all' }}
8181
optional_deps: ${{ matrix.optional_deps || 'DCMTK;JXL;Libheif;Nuke;OpenCV;openjph;OpenVDB;Qt5;R3DSDK;'}}${{matrix.optional_deps_append}}
82+
build_local_deps: ${{ matrix.build_local_deps }}
8283
strategy:
8384
fail-fast: false
8485
matrix:
@@ -119,78 +120,6 @@ jobs:
119120
setenvs: export FREETYPE_VERSION=VER-2-12-0
120121
BUILD_PNG_VERSION=1.6.30
121122
optional_deps_append: 'FFmpeg;LibRaw;Ptex;Qt6'
122-
- desc: oldest gcc9.3/C++17 py3.9 exr3.1 ocio2.3
123-
# Oldest gcc and versions of the dependencies that we support.
124-
nametag: linux-oldest
125-
runner: ubuntu-latest
126-
container: aswf/ci-osl:2022
127-
vfxyear: 2022
128-
old_node: 1
129-
cxx_std: 17
130-
fmt_ver: 9.0.0
131-
fmt_commit: c4ee726532178e556d923372f29163bd206d7732
132-
opencolorio_ver: v2.3.0
133-
openexr_ver: v3.1.0
134-
pybind11_ver: v2.7.0
135-
python_ver: 3.9
136-
setenvs: export CMAKE_VERSION=3.18.2
137-
PTEX_VERSION=v2.3.2
138-
WEBP_VERSION=v1.1.0
139-
PUGIXML_VERSION=v1.8
140-
BUILD_PNG_VERSION=1.6.0
141-
depcmds: sudo rm -rf /usr/local/include/OpenEXR
142-
optional_deps_append: 'FFmpeg;LibRaw;Ptex;Qt6'
143-
- desc: oldest clang10/C++17 py3.9 exr3.1 ocio2.3
144-
# Oldest clang and versions of the dependencies that we support.
145-
nametag: linux-oldest-clang
146-
runner: ubuntu-latest
147-
container: aswf/ci-osl:2022-clang10
148-
vfxyear: 2021
149-
old_node: 1
150-
cc_compiler: clang
151-
cxx_compiler: clang++
152-
cxx_std: 17
153-
fmt_ver: 9.0.0
154-
fmt_commit: c4ee726532178e556d923372f29163bd206d7732
155-
opencolorio_ver: v2.3.0
156-
openexr_ver: v3.1.0
157-
pybind11_ver: v2.7.0
158-
python_ver: 3.9
159-
setenvs: export CMAKE_VERSION=3.18.2
160-
PTEX_VERSION=v2.3.2
161-
WEBP_VERSION=v1.1.0
162-
PUGIXML_VERSION=v1.8
163-
BUILD_PNG_VERSION=1.6.0
164-
depcmds: sudo rm -rf /usr/local/include/OpenEXR
165-
optional_deps_append: 'FFmpeg;LibRaw;Ptex;Qt6'
166-
- desc: hobbled gcc9.3/C++17 py3.9 exr-3.1 no-sse
167-
# Use the oldest supported versions of required dependencies, and
168-
# disable most optional dependencies and features (no SSE or
169-
# OpenCV, don't embed plugins).
170-
nametag: linux-disabled
171-
runner: ubuntu-latest
172-
container: aswf/ci-osl:2022
173-
vfxyear: 2022
174-
old_node: 1
175-
cxx_std: 17
176-
fmt_ver: 9.0.0
177-
fmt_commit: c4ee726532178e556d923372f29163bd206d7732
178-
opencolorio_ver: v2.3.0
179-
openexr_ver: v3.1.0
180-
pybind11_ver: v2.7.0
181-
python_ver: 3.9
182-
simd: 0
183-
setenvs: export EMBEDPLUGINS=0
184-
CMAKE_VERSION=3.18.2
185-
PTEX_VERSION=v2.3.2
186-
WEBP_VERSION=v1.1.0
187-
USE_JPEGTURBO=0
188-
USE_OPENCV=0
189-
FREETYPE_VERSION=VER-2-10-0
190-
PUGIXML_VERSION=v1.8
191-
BUILD_PNG_VERSION=1.6.0
192-
depcmds: sudo rm -rf /usr/local/include/OpenEXR
193-
required_deps: none
194123

195124

196125
#
@@ -234,6 +163,7 @@ jobs:
234163
# only the ones we are intentionally not testing for those jobs.
235164
required_deps: ${{ matrix.required_deps || 'all' }}
236165
optional_deps: ${{ matrix.optional_deps || 'DCMTK;FFmpeg;JXL;Libheif;Nuke;OpenCV;openjph;OpenVDB;Qt5;R3DSDK;'}}${{matrix.optional_deps_append}}
166+
build_local_deps: ${{ matrix.build_local_deps }}
237167
strategy:
238168
fail-fast: false
239169
matrix:
@@ -253,7 +183,7 @@ jobs:
253183
- desc: VFX2024 gcc11/C++17 py3.11 exr3.2 ocio2.3
254184
nametag: linux-vfx2024
255185
runner: ubuntu-latest
256-
container: aswf/ci-oiio:2024.2
186+
container: aswf/ci-oiio:2024.6
257187
opencolorio_ver: v2.3.2
258188
python_ver: "3.11"
259189
simd: "avx2,f16c"
@@ -265,7 +195,7 @@ jobs:
265195
- desc: VFX2024 clang/C++17 py3.11 exr3.2 ocio2.3
266196
nametag: linux-vfx2024.clang
267197
runner: ubuntu-latest
268-
container: aswf/ci-oiio:2024.2
198+
container: aswf/ci-oiio:2024.6
269199
cc_compiler: clang
270200
cxx_compiler: clang++
271201
opencolorio_ver: v2.3.2
@@ -279,7 +209,7 @@ jobs:
279209
- desc: VFX2025 gcc11/C++17 py3.11 exr3.3 ocio2.4
280210
nametag: linux-vfx2025
281211
runner: ubuntu-latest
282-
container: aswf/ci-oiio:2025
212+
container: aswf/ci-oiio:2025.5
283213
cxx_std: 17
284214
python_ver: "3.11"
285215
simd: "avx2,f16c"
@@ -292,7 +222,7 @@ jobs:
292222
- desc: VFX2025 Debug gcc11/C++17 py3.11 exr3.3 ocio2.4
293223
nametag: linux-vfx2025-debug
294224
runner: ubuntu-latest
295-
container: aswf/ci-oiio:2025
225+
container: aswf/ci-oiio:2025.5
296226
cxx_std: 17
297227
build_type: Debug
298228
ctest_test_timeout: "240"
@@ -306,7 +236,7 @@ jobs:
306236
# - desc: VFX2025 Static gcc11/C++17 py3.11 exr3.3 ocio2.4
307237
# nametag: linux-vfx2025-static
308238
# runner: ubuntu-latest
309-
# container: aswf/ci-oiio:2025
239+
# container: aswf/ci-oiio:2025.5
310240
# cxx_std: 17
311241
# python_ver: "3.11"
312242
# simd: "avx2,f16c"
@@ -319,7 +249,7 @@ jobs:
319249
- desc: VFX2025 icx/C++17 py3.11 exr3.3 ocio2.4 qt5.15
320250
nametag: linux-vfx2025.icx
321251
runner: ubuntu-latest
322-
container: aswf/ci-oiio:2025
252+
container: aswf/ci-oiio:2025.5
323253
cc_compiler: icx
324254
cxx_compiler: icpx
325255
fmt_ver: 11.2.0
@@ -333,10 +263,10 @@ jobs:
333263
UHDR_CMAKE_CXX_COMPILER=g++
334264
# Building libuhdr with icx results in test failures
335265
optional_deps_append: "LibRaw;Ptex;openjph;Qt6"
336-
- desc: VFX2026 gcc14/C++20 py3.13 exr3.4 ocio2.4
266+
- desc: VFX2026 gcc14/C++20 py3.13 exr3.4 ocio2.5
337267
nametag: linux-vfx2026
338268
runner: ubuntu-latest
339-
container: aswf/ci-oiio:2026
269+
container: aswf/ci-oiio:2026.3
340270
cxx_std: 20
341271
python_ver: "3.13"
342272
simd: "avx2,f16c"
@@ -347,12 +277,11 @@ jobs:
347277
- desc: Sanitizers
348278
nametag: sanitizer
349279
runner: ubuntu-latest
350-
container: aswf/ci-oiio:2024.2
280+
container: aswf/ci-oiio:2026.3
351281
cc_compiler: clang
352282
cxx_compiler: clang++
353283
build_type: Debug
354-
opencolorio_ver: v2.4.2
355-
python_ver: "3.11"
284+
python_ver: "3.13"
356285
ctest_test_timeout: "1200"
357286
setenvs: export SANITIZE=address,undefined
358287
OIIO_CMAKE_FLAGS="-DSANITIZE=address,undefined -DOIIO_HARDENING=3 -DUSE_PYTHON=0"
@@ -367,7 +296,7 @@ jobs:
367296
- desc: ABI check
368297
nametag: abi-check
369298
runner: ubuntu-latest
370-
container: aswf/ci-oiio:2025
299+
container: aswf/ci-oiio:2025.5
371300
build_type: RelWithDebInfo
372301
fmt_ver: 11.1.4
373302
fmt_commit: 123913715afeb8a437e6388b4473fcc4753e1c9a
@@ -418,10 +347,14 @@ jobs:
418347
ctest_test_timeout: ${{ matrix.ctest_test_timeout }}
419348
coverage: ${{ matrix.coverage || 0 }}
420349
sonar: ${{ matrix.sonar || 0 }}
350+
gcc_action_ver: ${{ matrix.gcc_action_ver }}
351+
llvm_action_ver: ${{ matrix.llvm_action_ver }}
352+
python_action_ver: ${{ matrix.python_action_ver }}
421353
# Override required_deps to be 'all' and explicitly list as optional
422354
# only the ones we are intentionally not testing for those jobs.
423355
required_deps: ${{ matrix.required_deps || 'all' }}
424356
optional_deps: ${{ matrix.optional_deps || 'CUDAToolkit;DCMTK;JXL;Nuke;OpenGL;openjph;OpenVDB;Ptex;pystring;Qt5;R3DSDK;' }}${{matrix.optional_deps_append}}
357+
build_local_deps: ${{ matrix.build_local_deps }}
425358
strategy:
426359
fail-fast: false
427360
matrix:
@@ -512,8 +445,8 @@ jobs:
512445
cxx_std: 17
513446
python_ver: "3.10"
514447
simd: avx2,f16c
515-
setenvs: export OpenImageIO_BUILD_LOCAL_DEPS=all
516-
OpenImageIO_DEPENDENCY_BUILD_VERBOSE=ON
448+
build_local_deps: all
449+
setenvs: export OpenImageIO_DEPENDENCY_BUILD_VERBOSE=ON
517450
LIBRAW_VERSION=0.22.0
518451
PTEX_VERSION=v2.4.2
519452
PUGIXML_VERSION=v1.14
@@ -578,6 +511,104 @@ jobs:
578511
FREETYPE_VERSION=VER-2-14-1
579512
USE_OPENVDB=0
580513

514+
- desc: oldest gcc9/C++17 py3.9 exr3.1 ocio2.3
515+
# Oldest gcc and versions of the dependencies that we support.
516+
nametag: linux-oldest-ubuntu
517+
runner: ubuntu-22.04
518+
cc_compiler: gcc-9
519+
cxx_compiler: g++-9
520+
cxx_std: 17
521+
fmt_ver: 9.0.0
522+
fmt_commit: c4ee726532178e556d923372f29163bd206d7732
523+
opencolorio_ver: v2.3.0
524+
openexr_ver: v3.1.0
525+
pybind11_ver: v2.7.0
526+
python_ver: "3.9"
527+
python_action_ver: "3.9"
528+
gcc_action_ver: 9
529+
setenvs: export CMAKE_VERSION=3.18.2
530+
PTEX_VERSION=v2.3.2
531+
WEBP_VERSION=v1.1.0
532+
PUGIXML_VERSION=v1.8
533+
BUILD_PNG_VERSION=1.6.0
534+
PIP_SUFFIX=.9
535+
PIP_INSTALLS=numpy
536+
Robinmap_BUILD_VERSION=1.2.0
537+
Robinmap_GIT_COMMIT=68ff7325b3898fca267a103bad5c509e8861144d
538+
TIFF_BUILD_VERSION=4.0.0
539+
TIFF_GIT_COMMIT=f7b79dc7dc86ccbaabe9882e2b9ffa5ee8dac917
540+
# OpenJPEG_BUILD_VERSION=2.2.0
541+
# OpenJPEG_GIT_COMMIT=3d7cde5fc9fbc5618d02160900d32e02ed12a00e
542+
optional_deps_append: 'FFmpeg;LibRaw;Ptex;Qt6'
543+
build_local_deps: 'TIFF'
544+
- desc: oldest clang11/C++17 py3.9 exr3.1 ocio2.3
545+
# Oldest clang and versions of the dependencies that we support.
546+
nametag: linux-oldest-clang-ubuntu
547+
runner: ubuntu-22.04
548+
cxx_std: 17
549+
fmt_ver: 9.0.0
550+
fmt_commit: c4ee726532178e556d923372f29163bd206d7732
551+
opencolorio_ver: v2.3.0
552+
openexr_ver: v3.1.0
553+
pybind11_ver: v2.7.0
554+
python_ver: "3.9"
555+
python_action_ver: "3.9"
556+
llvm_action_ver: "11"
557+
setenvs: export CMAKE_VERSION=3.18.2
558+
PTEX_VERSION=v2.3.2
559+
WEBP_VERSION=v1.1.0
560+
PUGIXML_VERSION=v1.8
561+
BUILD_PNG_VERSION=1.6.0
562+
PIP_SUFFIX=.9
563+
PIP_INSTALLS=numpy
564+
OIIO_CC=clang
565+
OIIO_CXX=clang++
566+
Robinmap_BUILD_VERSION=1.2.0
567+
Robinmap_GIT_COMMIT=68ff7325b3898fca267a103bad5c509e8861144d
568+
TIFF_BUILD_VERSION=4.0.0
569+
TIFF_GIT_COMMIT=f7b79dc7dc86ccbaabe9882e2b9ffa5ee8dac917
570+
# OpenJPEG_BUILD_VERSION=2.2.0
571+
# OpenJPEG_GIT_COMMIT=3d7cde5fc9fbc5618d02160900d32e02ed12a00e
572+
optional_deps_append: 'FFmpeg;LibRaw;Ptex;Qt6'
573+
build_local_deps: 'TIFF'
574+
575+
- desc: hobbled gcc9/C++17 py3.9 exr-3.1 no-sse
576+
# Use the oldest supported versions of required dependencies, and
577+
# disable most optional dependencies and features (no SSE or
578+
# OpenCV, don't embed plugins).
579+
nametag: linux-disabled-ubuntu
580+
runner: ubuntu-22.04
581+
cc_compiler: gcc-9
582+
cxx_compiler: g++-9
583+
cxx_std: 17
584+
fmt_ver: 9.0.0
585+
fmt_commit: c4ee726532178e556d923372f29163bd206d7732
586+
opencolorio_ver: v2.3.0
587+
openexr_ver: v3.1.0
588+
pybind11_ver: v2.7.0
589+
python_ver: "3.9"
590+
python_action_ver: "3.9"
591+
gcc_action_ver: 9
592+
simd: 0
593+
setenvs: export EMBEDPLUGINS=0
594+
CMAKE_VERSION=3.18.2
595+
PTEX_VERSION=v2.3.2
596+
WEBP_VERSION=v1.1.0
597+
USE_JPEGTURBO=0
598+
USE_OPENCV=0
599+
USE_LIBUHDR=0
600+
FREETYPE_VERSION=VER-2-10-0
601+
PUGIXML_VERSION=v1.8
602+
BUILD_PNG_VERSION=1.6.0
603+
PIP_SUFFIX=.9
604+
PIP_INSTALLS=numpy
605+
Robinmap_BUILD_VERSION=1.2.0
606+
Robinmap_GIT_COMMIT=68ff7325b3898fca267a103bad5c509e8861144d
607+
TIFF_BUILD_VERSION=4.0.0
608+
TIFF_GIT_COMMIT=f7b79dc7dc86ccbaabe9882e2b9ffa5ee8dac917
609+
required_deps: none
610+
build_local_deps: 'TIFF'
611+
581612

582613
#
583614
# MacOS Tests
@@ -619,6 +650,7 @@ jobs:
619650
# test in GHA CI.
620651
required_deps: ${{ matrix.required_deps || 'all' }}
621652
optional_deps: ${{ matrix.optional_deps || 'Nuke;R3DSDK;' }}${{matrix.optional_deps_append}}
653+
build_local_deps: ${{ matrix.build_local_deps }}
622654
strategy:
623655
fail-fast: false
624656
matrix:
@@ -701,6 +733,7 @@ jobs:
701733
# of exceptions in the future.
702734
required_deps: ${{ matrix.required_deps || 'all' }}
703735
optional_deps: ${{ matrix.optional_deps || 'BZip2;CUDAToolkit;DCMTK;FFmpeg;GIF;JXL;Libheif;LibRaw;Nuke;OpenCV;OpenGL;OpenJPEG;openjph;OpenCV;OpenVDB;Ptex;pystring;Qt5;Qt6;TBB;R3DSDK;${{matrix.optional_deps_append}}' }}
736+
build_local_deps: ${{ matrix.build_local_deps }}
704737
strategy:
705738
fail-fast: false
706739
matrix:

0 commit comments

Comments
 (0)