From f0175349e60e0dbd6d6e6727028a6eded80e2dd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Achard?= Date: Sun, 19 Feb 2023 20:31:09 +0000 Subject: [PATCH 1/5] Update CI workflows MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Rémi Achard --- .github/workflows/analysis_workflow.yml | 375 ---------------- .github/workflows/ci_workflow.yml | 200 +++------ .github/workflows/dependencies_latest.yml | 396 +++++++++++++++++ .github/workflows/platform_latest.yml | 404 ++++++++++++++++++ .github/workflows/wheel_workflow.yml | 6 +- CMakeLists.txt | 14 +- pyproject.toml | 2 +- setup.cfg | 4 +- share/cmake/modules/FindExtPackages.cmake | 2 +- share/cmake/projects/Buildlcms2.cmake | 5 +- share/cmake/projects/Buildpystring.cmake | 5 +- share/cmake/utils/CompilerFlags.cmake | 41 +- src/OpenColorIO/CMakeLists.txt | 25 +- src/apps/ocioarchive/CMakeLists.txt | 4 +- src/apps/ociobakelut/CMakeLists.txt | 5 +- src/apps/ociocheck/CMakeLists.txt | 6 +- src/apps/ociochecklut/CMakeLists.txt | 6 +- src/apps/ocioconvert/CMakeLists.txt | 3 +- src/apps/ociodisplay/CMakeLists.txt | 7 +- src/apps/ociolutimage/CMakeLists.txt | 4 +- src/apps/ociomakeclf/CMakeLists.txt | 6 +- src/apps/ocioperf/CMakeLists.txt | 4 +- src/apps/ociowrite/CMakeLists.txt | 4 +- src/apputils/CMakeLists.txt | 3 +- src/bindings/python/CMakeLists.txt | 26 +- src/libutils/imageioapphelpers/CMakeLists.txt | 3 +- src/libutils/oglapphelpers/CMakeLists.txt | 7 +- src/libutils/oglapphelpers/msl.mm | 2 +- tests/cmake-consumer/CMakeLists.txt.in | 10 +- tests/cpu/CMakeLists.txt | 16 +- tests/cpu/Platform_tests.cpp | 4 +- tests/cpu/UnitTestUtils.cpp | 5 +- .../xmlutils/XMLReaderUtils_tests.cpp | 7 +- tests/gpu/CMakeLists.txt | 4 +- tests/osl/CMakeLists.txt | 4 +- tests/testutils/CMakeLists.txt | 5 +- tests/utils/CMakeLists.txt | 4 +- vendor/openfx/CMakeLists.txt | 7 +- 38 files changed, 1008 insertions(+), 627 deletions(-) create mode 100644 .github/workflows/dependencies_latest.yml create mode 100644 .github/workflows/platform_latest.yml diff --git a/.github/workflows/analysis_workflow.yml b/.github/workflows/analysis_workflow.yml index 6c9c32cf8c..56a243bcd0 100644 --- a/.github/workflows/analysis_workflow.yml +++ b/.github/workflows/analysis_workflow.yml @@ -22,381 +22,6 @@ on: - cron: "0 0 * * *" jobs: - # --------------------------------------------------------------------------- - # Linux latest ext packages - # --------------------------------------------------------------------------- - - linux_latest: - name: 'Linux CentOS 7 VFX CY${{ matrix.vfx-cy }} latest - <${{ matrix.compiler-desc }} - cxx=${{ matrix.cxx-standard }}, - docs=${{ matrix.build-docs }}>' - # Don't run on OCIO forks - if: github.repository == 'AcademySoftwareFoundation/OpenColorIO' - # GH-hosted VM. The build runs in CentOS 7 'container' defined below. - runs-on: ubuntu-latest - container: - # DockerHub: https://hub.docker.com/u/aswf - # Source: https://github.com/AcademySoftwareFoundation/aswf-docker - image: aswf/ci-base:${{ matrix.vfx-cy }} - strategy: - matrix: - build: [1, 2, 3, 4] - include: - # ------------------------------------------------------------------- - # GCC - # ------------------------------------------------------------------- - # VFX CY2022, C++17, docs, OpenFX - - build: 1 - build-docs: 'ON' - build-openfx: 'ON' - cxx-standard: 17 - cxx-compiler: g++ - cc-compiler: gcc - compiler-desc: GCC 9.3.1 - vfx-cy: 2022 - # VFX CY2021, C++14 - - build: 2 - build-docs: 'OFF' - build-openfx: 'OFF' - cxx-standard: 14 - cxx-compiler: g++ - cc-compiler: gcc - compiler-desc: GCC 9.3.1 - vfx-cy: 2021 - # ------------------------------------------------------------------- - # Clang - # ------------------------------------------------------------------- - # VFX CY2022, C++17 - - build: 3 - build-docs: 'OFF' - build-openfx: 'OFF' - cxx-standard: 17 - cxx-compiler: clang++ - cc-compiler: clang - compiler-desc: Clang 9 - vfx-cy: 2022 - # VFX CY2021, C++14, docs, OpenFX - - build: 4 - build-docs: 'ON' - build-openfx: 'ON' - cxx-standard: 14 - cxx-compiler: clang++ - cc-compiler: clang - compiler-desc: Clang 9 - vfx-cy: 2021 - env: - CXX: ${{ matrix.cxx-compiler }} - CC: ${{ matrix.cc-compiler }} - steps: - - name: Checkout - uses: actions/checkout@v3 - - name: Install docs env - run: share/ci/scripts/linux/yum/install_docs_env.sh - if: matrix.build-docs == 'ON' - - name: Install tests env - run: share/ci/scripts/linux/yum/install_tests_env.sh - - name: Setup ext environment - run: | - EXT_PATH=/usr/local - echo "EXT_PATH=$EXT_PATH" >> $GITHUB_ENV - - name: Install indirect dependencies - run: | - share/ci/scripts/multi/install_pugixml.sh latest - - 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.4.1 $EXT_PATH - share/ci/scripts/multi/install_lcms2.sh 2.2 $EXT_PATH - share/ci/scripts/multi/install_yaml-cpp.sh 0.7.0 $EXT_PATH - share/ci/scripts/multi/install_pystring.sh 1.1.3 $EXT_PATH - share/ci/scripts/multi/install_pybind11.sh 2.9.2 $EXT_PATH - share/ci/scripts/multi/install_zlib.sh 1.2.12 $EXT_PATH - share/ci/scripts/multi/install_minizip-ng.sh 3.0.6 $EXT_PATH - - name: Install latest ext package versions - run: | - share/ci/scripts/multi/install_imath.sh latest $EXT_PATH - share/ci/scripts/multi/install_openexr.sh latest $EXT_PATH - share/ci/scripts/multi/install_oiio.sh latest $EXT_PATH - share/ci/scripts/multi/install_osl.sh latest $EXT_PATH - share/ci/scripts/multi/install_openfx.sh latest $EXT_PATH - - name: Create build directories - run: | - mkdir _install - mkdir _build - - name: Configure - run: | - cmake ../. \ - -DCMAKE_INSTALL_PREFIX=../_install \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_CXX_STANDARD=${{ matrix.cxx-standard }} \ - -DOCIO_BUILD_DOCS=${{ matrix.build-docs }} \ - -DOCIO_BUILD_OPENFX=${{ matrix.build-openfx }} \ - -DOCIO_BUILD_GPU_TESTS=OFF \ - -DOCIO_INSTALL_EXT_PACKAGES=NONE \ - -DOCIO_WARNING_AS_ERROR=OFF \ - -DPython_EXECUTABLE=$(which python) \ - -DOCIO_USE_OIIO_CMAKE_CONFIG=ON - working-directory: _build - - name: Build - run: | - cmake --build . \ - --target install \ - --config Release \ - -- -j$(nproc) - working-directory: _build - - name: Test - run: ctest -V -C Release - working-directory: _build - - name: Test CMake Consumer - run: | - cmake . \ - -DCMAKE_PREFIX_PATH=../../../_install \ - -DCMAKE_BUILD_TYPE=Release - cmake --build . \ - --config Release - ./consumer - working-directory: _build/tests/cmake-consumer-dist - - # --------------------------------------------------------------------------- - # MacOS latest ext packages - # --------------------------------------------------------------------------- - - macos-latest: - name: 'macOS latest - ' - # Don't run on OCIO forks - if: github.repository == 'AcademySoftwareFoundation/OpenColorIO' - runs-on: macos-latest - strategy: - matrix: - build: [1, 2] - include: - # C++17 - - build: 1 - build-docs: 'ON' - build-openfx: 'ON' - cxx-standard: 17 - python-version: 3.9 - # C++14 - - build: 2 - build-docs: 'ON' - build-openfx: 'ON' - cxx-standard: 14 - python-version: 3.9 - steps: - - name: Setup Python - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python-version }} - - name: Checkout - uses: actions/checkout@v3 - - name: Install docs env - run: share/ci/scripts/macos/install_docs_env.sh - if: matrix.build-docs == 'ON' - - name: Install tests env - run: share/ci/scripts/macos/install_tests_env.sh - - name: Setup ext environment - run: | - EXT_PATH=/usr/local - echo "EXT_PATH=$EXT_PATH" >> $GITHUB_ENV - - name: Install indirect dependencies - run: | - share/ci/scripts/macos/install_bison.sh latest - share/ci/scripts/macos/install_boost.sh latest - share/ci/scripts/multi/install_pugixml.sh latest $EXT_PATH - - 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.4.1 $EXT_PATH - share/ci/scripts/multi/install_lcms2.sh 2.2 $EXT_PATH - share/ci/scripts/multi/install_yaml-cpp.sh 0.7.0 $EXT_PATH - share/ci/scripts/multi/install_pystring.sh 1.1.3 $EXT_PATH - share/ci/scripts/multi/install_pybind11.sh 2.9.2 $EXT_PATH - share/ci/scripts/multi/install_zlib.sh 1.2.12 $EXT_PATH - share/ci/scripts/multi/install_minizip-ng.sh 3.0.6 $EXT_PATH - - name: Install latest ext package versions - run: | - share/ci/scripts/multi/install_imath.sh latest $EXT_PATH - share/ci/scripts/multi/install_openexr.sh latest $EXT_PATH - share/ci/scripts/multi/install_oiio.sh latest $EXT_PATH - share/ci/scripts/multi/install_osl.sh latest $EXT_PATH - share/ci/scripts/multi/install_openfx.sh latest $EXT_PATH - - name: Create build directories - run: | - mkdir _install - mkdir _build - - name: Configure - run: | - cmake ../. \ - -DCMAKE_INSTALL_PREFIX=../_install \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_CXX_STANDARD=${{ matrix.cxx-standard }} \ - -DOCIO_BUILD_DOCS=${{ matrix.build-docs }} \ - -DOCIO_BUILD_OPENFX=${{ matrix.build-openfx }} \ - -DOCIO_BUILD_GPU_TESTS=OFF \ - -DOCIO_INSTALL_EXT_PACKAGES=NONE \ - -DOCIO_WARNING_AS_ERROR=OFF \ - -DPython_EXECUTABLE=$(which python) \ - -DOCIO_USE_OIIO_CMAKE_CONFIG=ON - working-directory: _build - - name: Build - run: | - cmake --build . \ - --target install \ - --config Release \ - -- -j$(sysctl -n hw.ncpu) - working-directory: _build - - name: Test - run: ctest -V -C Release - working-directory: _build - - name: Test CMake Consumer - run: | - cmake . \ - -DCMAKE_PREFIX_PATH=../../../_install \ - -DCMAKE_BUILD_TYPE=Release - cmake --build . \ - --config Release - ./consumer - working-directory: _build/tests/cmake-consumer-dist - - - # --------------------------------------------------------------------------- - # Windows latest ext packages - # --------------------------------------------------------------------------- - - windows-latest: - name: 'Windows latest - ' - # Don't run on OCIO forks - if: github.repository == 'AcademySoftwareFoundation/OpenColorIO' - runs-on: windows-latest - strategy: - matrix: - build: [1, 2] - include: - # C++17 - - build: 1 - build-docs: 'ON' - build-openfx: 'ON' - cxx-standard: 17 - python-version: 3.9 - # C++14 - - build: 2 - build-docs: 'ON' - build-openfx: 'ON' - cxx-standard: 14 - python-version: 3.9 - steps: - - name: Setup Python - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python-version }} - - name: Checkout - uses: actions/checkout@v3 - - name: Install docs env - run: share/ci/scripts/windows/install_docs_env.sh - shell: bash - if: matrix.build-docs == 'ON' - - name: Install tests env - run: share/ci/scripts/windows/install_tests_env.sh - shell: bash - - name: Setup ext environment - run: | - EXT_PATH=$GITHUB_WORKSPACE/_ext - VCPKG_ROOT=$VCPKG_INSTALLATION_ROOT/installed/x64-windows - echo "EXT_PATH=$EXT_PATH" >> $GITHUB_ENV - echo "CMAKE_PREFIX_PATH=$VCPKG_ROOT;$EXT_PATH" >> $GITHUB_ENV - echo "$VCPKG_ROOT/bin" >> $GITHUB_PATH - echo "$EXT_PATH/bin" >> $GITHUB_PATH - mkdir $EXT_PATH - shell: bash - - name: Install indirect dependencies - run: | - vcpkg install zlib:x64-windows - vcpkg install tiff:x64-windows - vcpkg install boost-asio:x64-windows - vcpkg install boost-container:x64-windows - vcpkg install boost-filesystem:x64-windows - vcpkg install boost-math:x64-windows - vcpkg install boost-stacktrace:x64-windows - vcpkg install boost-system:x64-windows - vcpkg install boost-thread:x64-windows - share/ci/scripts/multi/install_pugixml.sh latest $EXT_PATH - shell: bash - - name: Install fixed ext package versions - # Minizip-ng depends on ZLIB. ZLIB must be installed first. - run: | - share/ci/scripts/multi/install_lcms2.sh 2.2 $EXT_PATH - share/ci/scripts/multi/install_yaml-cpp.sh 0.7.0 $EXT_PATH - share/ci/scripts/multi/install_pystring.sh 1.1.3 $EXT_PATH - share/ci/scripts/multi/install_pybind11.sh 2.9.2 $EXT_PATH - share/ci/scripts/multi/install_expat.sh 2.4.1 $EXT_PATH - share/ci/scripts/multi/install_zlib.sh 1.2.12 $EXT_PATH - share/ci/scripts/multi/install_minizip-ng.sh 3.0.6 $EXT_PATH - shell: bash - # OSL not installed due to LLVM compilation time. - - name: Install latest ext package versions - run: | - share/ci/scripts/multi/install_imath.sh latest $EXT_PATH - share/ci/scripts/multi/install_openexr.sh latest $EXT_PATH - share/ci/scripts/multi/install_oiio.sh latest $EXT_PATH - share/ci/scripts/multi/install_openfx.sh latest $EXT_PATH - shell: bash - - name: Create build directories - run: | - mkdir _install - mkdir _build - shell: bash - - name: Configure - run: | - cmake ../. \ - -DCMAKE_INSTALL_PREFIX=../_install \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_CXX_STANDARD=${{ matrix.cxx-standard }} \ - -DCMAKE_GENERATOR_PLATFORM=x64 \ - -DOCIO_BUILD_DOCS=OFF \ - -DOCIO_BUILD_OPENFX=${{ matrix.build-openfx }} \ - -DOCIO_BUILD_GPU_TESTS=OFF \ - -DOCIO_INSTALL_EXT_PACKAGES=NONE \ - -DOCIO_WARNING_AS_ERROR=OFF \ - -DPython_EXECUTABLE=$(which python) \ - -DOCIO_BUILD_PYTHON=OFF \ - -DOCIO_USE_OIIO_CMAKE_CONFIG=ON - shell: bash - working-directory: _build - - name: Build - run: | - cmake --build . \ - --target install \ - --config Release \ - --parallel - shell: bash - working-directory: _build - - name: Test - run: | - ctest -V -C Release - shell: bash - working-directory: _build - - name: Test CMake Consumer - run: | - cmake . \ - -DCMAKE_PREFIX_PATH=../../../_install \ - -DCMAKE_BUILD_TYPE=Release - cmake --build . \ - --config Release - export PATH=../../../_install/bin:$PATH - ./Release/consumer - shell: bash - working-directory: _build/tests/cmake-consumer-dist - - # --------------------------------------------------------------------------- # SonarCloud static analysis # --------------------------------------------------------------------------- diff --git a/.github/workflows/ci_workflow.yml b/.github/workflows/ci_workflow.yml index ff87ed3c47..d3f54276b7 100644 --- a/.github/workflows/ci_workflow.yml +++ b/.github/workflows/ci_workflow.yml @@ -60,13 +60,13 @@ jobs: image: aswf/ci-ocio:${{ matrix.vfx-cy }} strategy: matrix: - build: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] + build: [1, 2, 3, 4, 5, 6, 7, 8, 9] include: # ------------------------------------------------------------------- # VFX CY2022 (Python 3.9) # ------------------------------------------------------------------- # C++17, Clang, Debug, OpenFX - - build: 13 + - build: 9 build-type: Debug build-shared: 'ON' build-docs: 'OFF' @@ -76,36 +76,23 @@ jobs: cxx-standard: 17 cxx-compiler: clang++ cc-compiler: clang - compiler-desc: Clang 9 + compiler-desc: Clang vfx-cy: 2022 # C++17, GCC, no SSE, OpenFX - - build: 12 + - build: 8 build-type: Release build-shared: 'ON' - build-docs: 'OFF' + build-docs: 'ON' build-openfx: 'ON' use-sse: 'OFF' use-oiio: 'OFF' cxx-standard: 17 cxx-compiler: g++ cc-compiler: gcc - compiler-desc: GCC 9.3.1 - vfx-cy: 2022 - # C++14, GCC, static, docs - - build: 11 - build-type: Release - build-shared: 'OFF' - build-docs: 'ON' - build-openfx: 'OFF' - use-sse: 'ON' - use-oiio: 'OFF' - cxx-standard: 14 - cxx-compiler: g++ - cc-compiler: gcc - compiler-desc: GCC 9.3.1 + compiler-desc: GCC vfx-cy: 2022 # C++11, GCC, static - - build: 10 + - build: 7 build-type: Release build-shared: 'OFF' build-docs: 'OFF' @@ -115,13 +102,13 @@ jobs: cxx-standard: 11 cxx-compiler: g++ cc-compiler: gcc - compiler-desc: GCC 9.3.1 + compiler-desc: GCC vfx-cy: 2022 # ------------------------------------------------------------------- # VFX CY2021 (Python 3.7) # ------------------------------------------------------------------- # C++17, Clang - - build: 9 + - build: 6 build-type: Release build-shared: 'ON' build-docs: 'OFF' @@ -131,10 +118,10 @@ jobs: cxx-standard: 17 cxx-compiler: clang++ cc-compiler: clang - compiler-desc: Clang 9 + compiler-desc: Clang vfx-cy: 2021 # C++14, Clang, static, no SSE, OpenFX - - build: 8 + - build: 5 build-type: Release build-shared: 'OFF' build-docs: 'OFF' @@ -144,10 +131,10 @@ jobs: cxx-standard: 14 cxx-compiler: clang++ cc-compiler: clang - compiler-desc: Clang 9 + compiler-desc: Clang vfx-cy: 2021 # C++11, GCC, Debug - - build: 7 + - build: 4 build-type: Debug build-shared: 'ON' build-docs: 'OFF' @@ -157,13 +144,13 @@ jobs: cxx-standard: 11 cxx-compiler: g++ cc-compiler: gcc - compiler-desc: GCC 9.3.1 + compiler-desc: GCC vfx-cy: 2021 # ------------------------------------------------------------------- # VFX CY2020 (Python 3.7) # ------------------------------------------------------------------- # C++14, Clang, OpenFX - - build: 6 + - build: 3 build-type: Release build-shared: 'ON' build-docs: 'OFF' @@ -173,10 +160,10 @@ jobs: cxx-standard: 14 cxx-compiler: clang++ cc-compiler: clang - compiler-desc: Clang 7 + compiler-desc: Clang vfx-cy: 2020 # C++14, GCC, static, Debug, OpenFX - - build: 5 + - build: 2 build-type: Debug build-shared: 'OFF' build-docs: 'OFF' @@ -186,10 +173,10 @@ jobs: cxx-standard: 14 cxx-compiler: g++ cc-compiler: gcc - compiler-desc: GCC 6.3.1 + compiler-desc: GCC vfx-cy: 2020 # C++11, GCC, no SSE - - build: 4 + - build: 1 build-type: Release build-shared: 'ON' build-docs: 'OFF' @@ -199,63 +186,14 @@ jobs: cxx-standard: 11 cxx-compiler: g++ cc-compiler: gcc - compiler-desc: GCC 6.3.1 + compiler-desc: GCC vfx-cy: 2020 - # ------------------------------------------------------------------- - # VFX CY2019 (Python 2.7) - # ------------------------------------------------------------------- - # C++11, Clang, static - - build: 3 - build-type: Release - build-shared: 'OFF' - # Doc build requires Python 3 - build-docs: 'OFF' - build-openfx: 'OFF' - use-sse: 'ON' - use-oiio: 'ON' - cxx-standard: 11 - cxx-compiler: clang++ - cc-compiler: clang - compiler-desc: Clang 7 - vfx-cy: 2019 - # C++11, Clang, Debug, no SSE - - build: 2 - build-type: Debug - build-shared: 'ON' - # Doc build requires Python 3 - build-docs: 'OFF' - build-openfx: 'OFF' - use-sse: 'OFF' - use-oiio: 'OFF' - cxx-standard: 11 - cxx-compiler: clang++ - cc-compiler: clang - compiler-desc: Clang 7 - vfx-cy: 2019 - # C++11, GCC, OpenFX - - build: 1 - build-type: Release - build-shared: 'ON' - # Doc build requires Python 3 - build-docs: 'OFF' - build-openfx: 'ON' - use-sse: 'ON' - use-oiio: 'OFF' - cxx-standard: 11 - cxx-compiler: g++ - cc-compiler: gcc - compiler-desc: GCC 6.3.1 - vfx-cy: 2019 env: CXX: ${{ matrix.cxx-compiler }} CC: ${{ matrix.cc-compiler }} steps: - name: Checkout uses: actions/checkout@v3 - # minizip-ng requires CMake 3.13+ but VFX2019 image ships with 3.12 - - name: Upgrade VFX2019 CMake - run: pip install cmake==3.13.3 - if: matrix.vfx-cy == '2019' - name: Install docs env run: share/ci/scripts/linux/yum/install_docs_env.sh if: matrix.build-docs == 'ON' @@ -337,7 +275,7 @@ jobs: macos: name: 'macOS 11 - ' + # Don't run on OCIO forks + if: github.repository == 'AcademySoftwareFoundation/OpenColorIO' + # GH-hosted VM. The build runs in CentOS 7 'container' defined below. + runs-on: ubuntu-latest + container: + # DockerHub: https://hub.docker.com/u/aswf + # Source: https://github.com/AcademySoftwareFoundation/aswf-docker + image: aswf/ci-base:${{ matrix.vfx-cy }} + strategy: + matrix: + build: [1, 2, 3, 4] + include: + # ------------------------------------------------------------------- + # GCC + # ------------------------------------------------------------------- + # VFX CY2022, C++17, docs, OpenFX + - build: 1 + build-docs: 'ON' + build-openfx: 'ON' + cxx-standard: 17 + cxx-compiler: g++ + cc-compiler: gcc + compiler-desc: GCC + vfx-cy: 2022 + # VFX CY2021, C++14 + - build: 2 + build-docs: 'OFF' + build-openfx: 'OFF' + cxx-standard: 14 + cxx-compiler: g++ + cc-compiler: gcc + compiler-desc: GCC + vfx-cy: 2021 + # ------------------------------------------------------------------- + # Clang + # ------------------------------------------------------------------- + # VFX CY2022, C++17 + - build: 3 + build-docs: 'OFF' + build-openfx: 'OFF' + cxx-standard: 17 + cxx-compiler: clang++ + cc-compiler: clang + compiler-desc: Clang + vfx-cy: 2022 + # VFX CY2021, C++14, docs, OpenFX + - build: 4 + build-docs: 'ON' + build-openfx: 'ON' + cxx-standard: 14 + cxx-compiler: clang++ + cc-compiler: clang + compiler-desc: Clang + vfx-cy: 2021 + env: + CXX: ${{ matrix.cxx-compiler }} + CC: ${{ matrix.cc-compiler }} + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Install docs env + run: share/ci/scripts/linux/yum/install_docs_env.sh + if: matrix.build-docs == 'ON' + - name: Install tests env + run: share/ci/scripts/linux/yum/install_tests_env.sh + - name: Setup ext environment + run: | + EXT_PATH=/usr/local + echo "EXT_PATH=$EXT_PATH" >> $GITHUB_ENV + - name: Install indirect dependencies + run: | + share/ci/scripts/multi/install_pugixml.sh latest + - 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.4.1 $EXT_PATH + share/ci/scripts/multi/install_lcms2.sh 2.2 $EXT_PATH + share/ci/scripts/multi/install_yaml-cpp.sh 0.7.0 $EXT_PATH + share/ci/scripts/multi/install_pystring.sh 1.1.3 $EXT_PATH + share/ci/scripts/multi/install_pybind11.sh 2.9.2 $EXT_PATH + share/ci/scripts/multi/install_zlib.sh 1.2.12 $EXT_PATH + share/ci/scripts/multi/install_minizip-ng.sh 3.0.6 $EXT_PATH + - name: Install latest ext package versions + run: | + share/ci/scripts/multi/install_imath.sh latest $EXT_PATH + share/ci/scripts/multi/install_openexr.sh latest $EXT_PATH + share/ci/scripts/multi/install_oiio.sh latest $EXT_PATH + share/ci/scripts/multi/install_osl.sh latest $EXT_PATH + share/ci/scripts/multi/install_openfx.sh latest $EXT_PATH + - name: Create build directories + run: | + mkdir _install + mkdir _build + - name: Configure + run: | + cmake ../. \ + -DCMAKE_INSTALL_PREFIX=../_install \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_CXX_STANDARD=${{ matrix.cxx-standard }} \ + -DOCIO_BUILD_DOCS=${{ matrix.build-docs }} \ + -DOCIO_BUILD_OPENFX=${{ matrix.build-openfx }} \ + -DOCIO_BUILD_GPU_TESTS=OFF \ + -DOCIO_INSTALL_EXT_PACKAGES=NONE \ + -DOCIO_WARNING_AS_ERROR=OFF \ + -DPython_EXECUTABLE=$(which python) \ + -DOCIO_USE_OIIO_CMAKE_CONFIG=ON + working-directory: _build + - name: Build + run: | + cmake --build . \ + --target install \ + --config Release \ + -- -j$(nproc) + working-directory: _build + - name: Test + run: ctest -V -C Release + working-directory: _build + - name: Test CMake Consumer + run: | + cmake . \ + -DCMAKE_PREFIX_PATH=../../../_install \ + -DCMAKE_BUILD_TYPE=Release + cmake --build . \ + --config Release + ./consumer + working-directory: _build/tests/cmake-consumer-dist + + # --------------------------------------------------------------------------- + # MacOS latest ext packages + # --------------------------------------------------------------------------- + + macos-latest: + name: 'macOS latest + ' + # Don't run on OCIO forks + if: github.repository == 'AcademySoftwareFoundation/OpenColorIO' + runs-on: macos-latest + strategy: + matrix: + build: [1, 2] + include: + # C++17 + - build: 1 + build-docs: 'ON' + build-openfx: 'ON' + cxx-standard: 17 + python-version: '3.11' + # C++14 + - build: 2 + build-docs: 'ON' + build-openfx: 'ON' + cxx-standard: 14 + python-version: '3.9' + steps: + - name: Setup Python + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + - name: Checkout + uses: actions/checkout@v3 + - name: Install docs env + run: share/ci/scripts/macos/install_docs_env.sh + if: matrix.build-docs == 'ON' + - name: Install tests env + run: share/ci/scripts/macos/install_tests_env.sh + - name: Setup ext environment + run: | + EXT_PATH=/usr/local + echo "EXT_PATH=$EXT_PATH" >> $GITHUB_ENV + - name: Install indirect dependencies + run: | + share/ci/scripts/macos/install_bison.sh latest + share/ci/scripts/macos/install_boost.sh latest + share/ci/scripts/multi/install_pugixml.sh latest $EXT_PATH + - 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.4.1 $EXT_PATH + share/ci/scripts/multi/install_lcms2.sh 2.2 $EXT_PATH + share/ci/scripts/multi/install_yaml-cpp.sh 0.7.0 $EXT_PATH + share/ci/scripts/multi/install_pystring.sh 1.1.3 $EXT_PATH + share/ci/scripts/multi/install_pybind11.sh 2.9.2 $EXT_PATH + share/ci/scripts/multi/install_zlib.sh 1.2.12 $EXT_PATH + share/ci/scripts/multi/install_minizip-ng.sh 3.0.6 $EXT_PATH + - name: Install latest ext package versions + run: | + share/ci/scripts/multi/install_imath.sh latest $EXT_PATH + share/ci/scripts/multi/install_openexr.sh latest $EXT_PATH + share/ci/scripts/multi/install_oiio.sh latest $EXT_PATH + share/ci/scripts/multi/install_osl.sh latest $EXT_PATH + share/ci/scripts/multi/install_openfx.sh latest $EXT_PATH + - name: Create build directories + run: | + mkdir _install + mkdir _build + - name: Configure + run: | + cmake ../. \ + -DCMAKE_INSTALL_PREFIX=../_install \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_CXX_STANDARD=${{ matrix.cxx-standard }} \ + -DOCIO_BUILD_DOCS=${{ matrix.build-docs }} \ + -DOCIO_BUILD_OPENFX=${{ matrix.build-openfx }} \ + -DOCIO_BUILD_GPU_TESTS=OFF \ + -DOCIO_INSTALL_EXT_PACKAGES=NONE \ + -DOCIO_WARNING_AS_ERROR=OFF \ + -DPython_EXECUTABLE=$(which python) \ + -DOCIO_USE_OIIO_CMAKE_CONFIG=ON + working-directory: _build + - name: Build + run: | + cmake --build . \ + --target install \ + --config Release \ + -- -j$(sysctl -n hw.ncpu) + working-directory: _build + - name: Test + run: ctest -V -C Release + working-directory: _build + - name: Test CMake Consumer + run: | + cmake . \ + -DCMAKE_PREFIX_PATH=../../../_install \ + -DCMAKE_BUILD_TYPE=Release + cmake --build . \ + --config Release + ./consumer + working-directory: _build/tests/cmake-consumer-dist + + # --------------------------------------------------------------------------- + # Windows latest ext packages + # --------------------------------------------------------------------------- + + windows-latest: + name: 'Windows latest + ' + # Don't run on OCIO forks + if: github.repository == 'AcademySoftwareFoundation/OpenColorIO' + runs-on: windows-latest + strategy: + matrix: + build: [1, 2] + include: + # C++17 + - build: 1 + build-docs: 'ON' + build-openfx: 'ON' + cxx-standard: 17 + python-version: '3.11' + # C++14 + - build: 2 + build-docs: 'ON' + build-openfx: 'ON' + cxx-standard: 14 + python-version: '3.9' + steps: + - name: Setup Python + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + - name: Checkout + uses: actions/checkout@v3 + - name: Install docs env + run: share/ci/scripts/windows/install_docs_env.sh + shell: bash + if: matrix.build-docs == 'ON' + - name: Install tests env + run: share/ci/scripts/windows/install_tests_env.sh + shell: bash + - name: Setup ext environment + run: | + EXT_PATH=$GITHUB_WORKSPACE/_ext + VCPKG_ROOT=$VCPKG_INSTALLATION_ROOT/installed/x64-windows + echo "EXT_PATH=$EXT_PATH" >> $GITHUB_ENV + echo "CMAKE_PREFIX_PATH=$VCPKG_ROOT;$EXT_PATH" >> $GITHUB_ENV + echo "$VCPKG_ROOT/bin" >> $GITHUB_PATH + echo "$EXT_PATH/bin" >> $GITHUB_PATH + mkdir $EXT_PATH + shell: bash + - name: Install indirect dependencies + run: | + vcpkg install zlib:x64-windows + vcpkg install tiff:x64-windows + vcpkg install boost-asio:x64-windows + vcpkg install boost-container:x64-windows + vcpkg install boost-filesystem:x64-windows + vcpkg install boost-math:x64-windows + vcpkg install boost-stacktrace:x64-windows + vcpkg install boost-system:x64-windows + vcpkg install boost-thread:x64-windows + share/ci/scripts/multi/install_pugixml.sh latest $EXT_PATH + shell: bash + - name: Install fixed ext package versions + # Minizip-ng depends on ZLIB. ZLIB must be installed first. + run: | + share/ci/scripts/multi/install_lcms2.sh 2.2 $EXT_PATH + share/ci/scripts/multi/install_yaml-cpp.sh 0.7.0 $EXT_PATH + share/ci/scripts/multi/install_pystring.sh 1.1.3 $EXT_PATH + share/ci/scripts/multi/install_pybind11.sh 2.9.2 $EXT_PATH + share/ci/scripts/multi/install_expat.sh 2.4.1 $EXT_PATH + share/ci/scripts/multi/install_zlib.sh 1.2.12 $EXT_PATH + share/ci/scripts/multi/install_minizip-ng.sh 3.0.6 $EXT_PATH + shell: bash + # OSL not installed due to LLVM compilation time. + - name: Install latest ext package versions + run: | + share/ci/scripts/multi/install_imath.sh latest $EXT_PATH + share/ci/scripts/multi/install_openexr.sh latest $EXT_PATH + share/ci/scripts/multi/install_oiio.sh latest $EXT_PATH + share/ci/scripts/multi/install_openfx.sh latest $EXT_PATH + shell: bash + - name: Create build directories + run: | + mkdir _install + mkdir _build + shell: bash + - name: Configure + run: | + cmake ../. \ + -DCMAKE_INSTALL_PREFIX=../_install \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_CXX_STANDARD=${{ matrix.cxx-standard }} \ + -DCMAKE_GENERATOR_PLATFORM=x64 \ + -DOCIO_BUILD_DOCS=OFF \ + -DOCIO_BUILD_OPENFX=${{ matrix.build-openfx }} \ + -DOCIO_BUILD_GPU_TESTS=OFF \ + -DOCIO_INSTALL_EXT_PACKAGES=NONE \ + -DOCIO_WARNING_AS_ERROR=OFF \ + -DPython_EXECUTABLE=$(which python) \ + -DOCIO_BUILD_PYTHON=OFF \ + -DOCIO_USE_OIIO_CMAKE_CONFIG=ON + shell: bash + working-directory: _build + - name: Build + run: | + cmake --build . \ + --target install \ + --config Release \ + --parallel + shell: bash + working-directory: _build + - name: Test + run: | + ctest -V -C Release + shell: bash + working-directory: _build + - name: Test CMake Consumer + run: | + cmake . \ + -DCMAKE_PREFIX_PATH=../../../_install \ + -DCMAKE_BUILD_TYPE=Release + cmake --build . \ + --config Release + export PATH=../../../_install/bin:$PATH + ./Release/consumer + shell: bash + working-directory: _build/tests/cmake-consumer-dist diff --git a/.github/workflows/platform_latest.yml b/.github/workflows/platform_latest.yml new file mode 100644 index 0000000000..4364d01ba5 --- /dev/null +++ b/.github/workflows/platform_latest.yml @@ -0,0 +1,404 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright Contributors to the OpenColorIO Project. +# +# GitHub Actions workflow file +# https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions + +name: Platform latest + +on: + pull_request: + branches-ignore: + - RB-0.* + - RB-1.* + - gh-pages + tags-ignore: + - v0.* + - v1.* + paths: + - .github/workflows/platform_latest.yml + schedule: + # Nightly build + - cron: "0 0 * * *" + +jobs: + # --------------------------------------------------------------------------- + # Linux latest ext packages + # --------------------------------------------------------------------------- + + linux_latest: + name: 'Linux Ubuntu latest + <${{ matrix.compiler-desc }} + config=${{ matrix.build-type }}, + shared=${{ matrix.build-shared }}, + cxx=${{ matrix.cxx-standard }}>' + # Don't run on OCIO forks + if: github.repository == 'AcademySoftwareFoundation/OpenColorIO' + runs-on: ubuntu-latest + strategy: + matrix: + build: [1, 2, 3, 4] + include: + # ------------------------------------------------------------------- + # GCC + # ------------------------------------------------------------------- + # Release + - build: 1 + build-python: ON + build-type: Release + build-shared: ON + cxx-standard: 20 + cxx-compiler: g++ + cc-compiler: gcc + compiler-desc: GCC + enable-sanitizer: OFF + # Debug sanitizer + - build: 2 + build-python: OFF + build-type: Debug + build-shared: ON + cxx-standard: 20 + cxx-compiler: g++ + cc-compiler: gcc + compiler-desc: GCC + enable-sanitizer: ON + # ------------------------------------------------------------------- + # Clang + # ------------------------------------------------------------------- + # Release + - build: 3 + build-python: ON + build-type: Release + build-shared: ON + cxx-standard: 20 + cxx-compiler: clang++ + cc-compiler: clang + compiler-desc: Clang + enable-sanitizer: OFF + # Debug sanitizer + - build: 4 + build-python: OFF + build-type: Debug + build-shared: ON + cxx-standard: 20 + cxx-compiler: clang++ + cc-compiler: clang + compiler-desc: Clang + enable-sanitizer: ON + env: + CXX: ${{ matrix.cxx-compiler }} + CC: ${{ matrix.cc-compiler }} + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Install tests env + run: share/ci/scripts/linux/yum/install_tests_env.sh + - name: Create build directories + run: | + mkdir _install + mkdir _build + - name: Configure + run: | + cmake ../. \ + -DCMAKE_INSTALL_PREFIX=../_install \ + -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \ + -DCMAKE_CXX_STANDARD=${{ matrix.cxx-standard }} \ + -DBUILD_SHARED_LIBS=${{ matrix.build-shared }} \ + -DOCIO_BUILD_DOCS=OFF \ + -DOCIO_BUILD_OPENFX=ON \ + -DOCIO_BUILD_GPU_TESTS=OFF \ + -DOCIO_BUILD_PYTHON=${{ matrix.build-python}} \ + -DOCIO_USE_SSE=ON \ + -DOCIO_USE_OIIO_FOR_APPS=OFF \ + -DOCIO_INSTALL_EXT_PACKAGES=ALL \ + -DOCIO_WARNING_AS_ERROR=ON \ + -DOCIO_ENABLE_SANITIZER=${{ matrix.enable-sanitizer }} \ + -DPython_EXECUTABLE=$(which python) + working-directory: _build + - name: Build + run: | + cmake --build . \ + --target install \ + --config ${{ matrix.build-type }} \ + -v \ + -- -j$(nproc) + echo "ocio_build_path=$(pwd)" >> $GITHUB_ENV + working-directory: _build + - name: Test + run: ctest -V -C ${{ matrix.build-type }} + working-directory: _build + - name: Test CMake Consumer with shared OCIO + if: matrix.build-shared == 'ON' + run: | + cmake . \ + -DCMAKE_PREFIX_PATH=../../../_install \ + -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \ + -DOCIO_ENABLE_SANITIZER=${{ matrix.enable-sanitizer }} + cmake --build . \ + --config ${{ matrix.build-type }} + ./consumer + working-directory: _build/tests/cmake-consumer-dist + - name: Test CMake Consumer with static OCIO + if: matrix.build-shared == 'OFF' + # The yaml-cpp_VERSION is set below because Findyaml-cpp.cmake needs it but is unable to + # extract it from the headers, like the other modules. + # + # Prefer the static version of each dependencies by using _STATIC_LIBRARY. + # Alternatively, this can be done by setting _LIBRARY and _INCLUDE_DIR to + # the static version of the package. + run: | + cmake . \ + -DCMAKE_PREFIX_PATH=../../../_install \ + -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \ + -Dexpat_ROOT=${{ env.ocio_build_path }}/ext/dist \ + -Dexpat_STATIC_LIBRARY=ON \ + -DImath_ROOT=${{ env.ocio_build_path }}/ext/dist \ + -DImath_STATIC_LIBRARY=ON \ + -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.7.0 \ + -DZLIB_ROOT=${{ env.ocio_build_path }}/ext/dist \ + -DZLIB_STATIC_LIBRARY=ON \ + -Dminizip-ng_ROOT=${{ env.ocio_build_path }}/ext/dist \ + -Dminizip-ng_STATIC_LIBRARY=ON + cmake --build . \ + --config ${{ matrix.build-type }} + ./consumer + working-directory: _build/tests/cmake-consumer-dist + + # --------------------------------------------------------------------------- + # MacOS latest ext packages + # --------------------------------------------------------------------------- + + macos-latest: + name: 'macOS latest + ' + # Don't run on OCIO forks + if: github.repository == 'AcademySoftwareFoundation/OpenColorIO' + runs-on: macos-latest + strategy: + matrix: + build: [1, 2] + include: + # Release + - build: 1 + build-python: ON + build-type: Release + build-shared: ON + cxx-standard: 20 + enable-sanitizer: OFF + python-version: '3.11' + # Debug sanitizer + - build: 2 + build-python: OFF + build-type: Debug + build-shared: ON + cxx-standard: 20 + enable-sanitizer: ON + python-version: '3.11' + steps: + - name: Setup Python + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + - name: Checkout + uses: actions/checkout@v3 + - name: Install tests env + run: share/ci/scripts/macos/install_tests_env.sh + - name: Create build directories + run: | + mkdir _install + mkdir _build + - name: Configure + run: | + cmake ../. \ + -DCMAKE_INSTALL_PREFIX=../_install \ + -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \ + -DCMAKE_CXX_STANDARD=${{ matrix.cxx-standard }} \ + -DBUILD_SHARED_LIBS=${{ matrix.build-shared }} \ + -DOCIO_BUILD_DOCS=OFF \ + -DOCIO_BUILD_OPENFX=ON \ + -DOCIO_BUILD_GPU_TESTS=OFF \ + -DOCIO_BUILD_PYTHON=${{ matrix.build-python}} \ + -DOCIO_USE_SSE=ON \ + -DOCIO_USE_OIIO_FOR_APPS=OFF \ + -DOCIO_INSTALL_EXT_PACKAGES=ALL \ + -DOCIO_WARNING_AS_ERROR=ON \ + -DOCIO_ENABLE_SANITIZER=${{ matrix.enable-sanitizer }} \ + -DPython_EXECUTABLE=$(which python) + working-directory: _build + - name: Build + run: | + cmake --build . \ + --target install \ + --config ${{ matrix.build-type }} \ + -- -j$(sysctl -n hw.ncpu) + echo "ocio_build_path=$(pwd)" >> $GITHUB_ENV + working-directory: _build + - name: Test + run: ctest -V -C ${{ matrix.build-type }} + working-directory: _build + - name: Test CMake Consumer with shared OCIO + if: matrix.build-shared == 'ON' + run: | + cmake . \ + -DCMAKE_PREFIX_PATH=../../../_install \ + -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} + cmake --build . \ + --config ${{ matrix.build-type }} + ./consumer + working-directory: _build/tests/cmake-consumer-dist + - name: Test CMake Consumer with static OCIO + if: matrix.build-shared == 'OFF' + # The yaml-cpp_VERSION is set below because Findyaml-cpp.cmake needs it but is unable to + # extract it from the headers, like the other modules. + # + # Prefer the static version of each dependencies by using _STATIC_LIBRARY. + # Alternatively, this can be done by setting _LIBRARY and _INCLUDE_DIR to + # the static version of the package. + run: | + cmake . \ + -DCMAKE_PREFIX_PATH=../../../_install \ + -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \ + -Dexpat_ROOT=${{ env.ocio_build_path }}/ext/dist \ + -Dexpat_STATIC_LIBRARY=ON \ + -DImath_ROOT=${{ env.ocio_build_path }}/ext/dist \ + -DImath_STATIC_LIBRARY=ON \ + -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.7.0 \ + -DZLIB_ROOT=${{ env.ocio_build_path }}/ext/dist \ + -DZLIB_STATIC_LIBRARY=ON \ + -Dminizip-ng_ROOT=${{ env.ocio_build_path }}/ext/dist \ + -Dminizip-ng_STATIC_LIBRARY=ON + cmake --build . \ + --config ${{ matrix.build-type }} + ./consumer + working-directory: _build/tests/cmake-consumer-dist + + # --------------------------------------------------------------------------- + # Windows latest ext packages + # --------------------------------------------------------------------------- + + windows-latest: + name: 'Windows latest + ' + # Don't run on OCIO forks + if: github.repository == 'AcademySoftwareFoundation/OpenColorIO' + runs-on: windows-latest + strategy: + matrix: + build: [1, 2] + include: + # Release + - build: 1 + build-python: ON + build-type: Release + build-shared: ON + cxx-standard: 20 + python-version: '3.11' + # Debug + - build: 2 + build-python: ON + build-type: Debug + build-shared: ON + cxx-standard: 20 + python-version: '3.11' + steps: + - name: Setup Python + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + - name: Checkout + uses: actions/checkout@v3 + - name: Install tests env + run: share/ci/scripts/windows/install_tests_env.sh + shell: bash + - name: Create build directories + run: | + mkdir _install + mkdir _build + shell: bash + - name: Configure + run: | + cmake ../. \ + -DCMAKE_INSTALL_PREFIX=../_install \ + -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \ + -DCMAKE_CXX_STANDARD=${{ matrix.cxx-standard }} \ + -DCMAKE_GENERATOR_PLATFORM=x64 \ + -DBUILD_SHARED_LIBS=${{ matrix.build-shared }} \ + -DOCIO_BUILD_DOCS=OFF \ + -DOCIO_BUILD_OPENFX=ON \ + -DOCIO_BUILD_GPU_TESTS=OFF \ + -DOCIO_BUILD_PYTHON=${{ matrix.build-python}} \ + -DOCIO_USE_SSE=ON \ + -DOCIO_USE_OIIO_FOR_APPS=OFF \ + -DOCIO_INSTALL_EXT_PACKAGES=ALL \ + -DOCIO_WARNING_AS_ERROR=ON \ + -DPython_EXECUTABLE=$(which python) + shell: bash + working-directory: _build + - name: Build + run: | + cmake --build . \ + --target install \ + --config ${{ matrix.build-type }} + echo "ocio_build_path=$(pwd)" >> $GITHUB_ENV + shell: bash + working-directory: _build + - name: Test + run: ctest -V -C ${{ matrix.build-type }} + shell: bash + working-directory: _build + - name: Test CMake Consumer with shared OCIO + if: matrix.build-shared == 'ON' + run: | + cmake . \ + -DCMAKE_PREFIX_PATH=../../../_install \ + -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} + cmake --build . \ + --config ${{ matrix.build-type }} + export PATH=../../../_install/bin:$PATH + ./${{ matrix.build-type }}/consumer + shell: bash + working-directory: _build/tests/cmake-consumer-dist + - name: Test CMake Consumer with static OCIO + if: matrix.build-shared == 'OFF' + # The yaml-cpp_VERSION is set below because Findyaml-cpp.cmake needs it but is unable to + # extract it from the headers, like the other modules. + # + # Prefer the static version of each dependencies by using _STATIC_LIBRARY. + # Alternatively, this can be done by setting _LIBRARY and _INCLUDE_DIR to + # the static version of the package. + run: | + cmake . \ + -DCMAKE_PREFIX_PATH=../../../_install \ + -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \ + -Dexpat_ROOT=${{ env.ocio_build_path }}/ext/dist \ + -Dexpat_STATIC_LIBRARY=ON \ + -DImath_ROOT=${{ env.ocio_build_path }}/ext/dist \ + -DImath_STATIC_LIBRARY=ON \ + -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.7.0 \ + -DZLIB_ROOT=${{ env.ocio_build_path }}/ext/dist \ + -DZLIB_STATIC_LIBRARY=ON \ + -Dminizip-ng_ROOT=${{ env.ocio_build_path }}/ext/dist \ + -Dminizip-ng_STATIC_LIBRARY=ON + cmake --build . \ + --config ${{ matrix.build-type }} + export PATH=../../../_install/bin:$PATH + ./${{ matrix.build-type }}/consumer + shell: bash + working-directory: _build/tests/cmake-consumer-dist diff --git a/.github/workflows/wheel_workflow.yml b/.github/workflows/wheel_workflow.yml index 737a736019..187ecb330b 100644 --- a/.github/workflows/wheel_workflow.yml +++ b/.github/workflows/wheel_workflow.yml @@ -128,7 +128,7 @@ jobs: platforms: all - name: Build wheels - uses: pypa/cibuildwheel@v2.11.2 + uses: pypa/cibuildwheel@v2.12.0 env: CIBW_BUILD: ${{ matrix.python }} CIBW_ARCHS: ${{ matrix.arch }} @@ -194,7 +194,7 @@ jobs: python-version: '3.8' - name: Build wheels - uses: pypa/cibuildwheel@v2.11.2 + uses: pypa/cibuildwheel@v2.12.0 env: CIBW_BUILD: ${{ matrix.python }} CIBW_ARCHS: ${{ matrix.arch }} @@ -245,7 +245,7 @@ jobs: python-version: '3.8' - name: Build wheels - uses: pypa/cibuildwheel@v2.11.2 + uses: pypa/cibuildwheel@v2.12.0 env: CIBW_BUILD: ${{ matrix.python }} CIBW_ARCHS: ${{ matrix.arch }} diff --git a/CMakeLists.txt b/CMakeLists.txt index 3911a154ce..e927ed47db 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,7 @@ ############################################################################### # CMake definition. -cmake_minimum_required(VERSION 3.12) +cmake_minimum_required(VERSION 3.13) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} @@ -137,13 +137,21 @@ set (OCIO_PYTHON_VERSION "" CACHE STRING option(OCIO_BUILD_JAVA "Specify whether to build java bindings" OFF) -option(OCIO_WARNING_AS_ERROR "Set build error level for CI testing" OFF) - if (WIN32) option(OCIO_USE_WINDOWS_UNICODE "Compile with Windows Unicode support" ON) endif() +############################################################################### +# Warnings / debugging settings + +option(OCIO_WARNING_AS_ERROR "Set build error level for CI testing" OFF) + +if (NOT WIN32) + option(OCIO_ENABLE_SANITIZER "Specify whether to enable compiler sanitizers (address)" OFF) +endif() + + ############################################################################### # Optimization / internal linking preferences diff --git a/pyproject.toml b/pyproject.toml index 69672a6df7..ff83ac1a0d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,7 +2,7 @@ requires = [ "setuptools>=42", "wheel", - "cmake>=3.12", + "cmake>=3.13", "ninja; sys_platform != 'win32' and platform_machine != 'arm64'", # Documentation requirements "six", diff --git a/setup.cfg b/setup.cfg index 4dc522be8a..50c0b746ac 100644 --- a/setup.cfg +++ b/setup.cfg @@ -6,8 +6,6 @@ classifiers = Intended Audience :: Developers Topic :: Software Development :: Libraries :: Python Modules Programming Language :: C++ - Programming Language :: Python :: 2 - Programming Language :: Python :: 2.7 Programming Language :: Python :: 3 Programming Language :: Python :: 3.7 Programming Language :: Python :: 3.8 @@ -22,7 +20,7 @@ license_files = LICENSE long_description = file: README.md, LICENSE long_description_content_type = text/markdown name = opencolorio -python_requires = '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*' +python_requires = '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*' url = https://opencolorio.org/ [options] diff --git a/share/cmake/modules/FindExtPackages.cmake b/share/cmake/modules/FindExtPackages.cmake index 5455a08ce6..25cfacb497 100644 --- a/share/cmake/modules/FindExtPackages.cmake +++ b/share/cmake/modules/FindExtPackages.cmake @@ -49,7 +49,7 @@ find_package(pystring 1.1.3 REQUIRED) # Imath (>=3.1) # https://github.com/AcademySoftwareFoundation/Imath -set(_Imath_ExternalProject_VERSION "3.1.5") +set(_Imath_ExternalProject_VERSION "3.1.6") find_package(Imath 3.0 REQUIRED) ############################################################################### diff --git a/share/cmake/projects/Buildlcms2.cmake b/share/cmake/projects/Buildlcms2.cmake index ba3c7d0958..7292eeef48 100644 --- a/share/cmake/projects/Buildlcms2.cmake +++ b/share/cmake/projects/Buildlcms2.cmake @@ -15,12 +15,13 @@ file(GLOB SOURCES "src/*.c" "src/*.h") add_library(${PROJECT_NAME} STATIC ${HEADERS} ${SOURCES}) if(UNIX) - set(lcms2_C_FLAGS "${lcms2_C_FLAGS} -fPIC") + set(lcms2_C_FLAGS "${lcms2_C_FLAGS};-fPIC") endif() set_target_properties(${PROJECT_NAME} PROPERTIES LIBRARY_OUTPUT_NAME "${PROJECT_NAME}" - COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} ${lcms2_C_FLAGS}" + COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS};${lcms2_C_FLAGS}" + LINK_OPTIONS "${PLATFORM_LINK_OPTIONS}" PUBLIC_HEADER "${HEADERS}" ) diff --git a/share/cmake/projects/Buildpystring.cmake b/share/cmake/projects/Buildpystring.cmake index e580aa08e3..85dbb48675 100644 --- a/share/cmake/projects/Buildpystring.cmake +++ b/share/cmake/projects/Buildpystring.cmake @@ -18,11 +18,12 @@ set(SOURCES add_library(${PROJECT_NAME} STATIC ${HEADERS} ${SOURCES}) if(UNIX) - set(pystring_CXX_FLAGS "${pystring_CXX_FLAGS} -fPIC") + set(pystring_CXX_FLAGS "${pystring_CXX_FLAGS};-fPIC") endif() set_target_properties(${PROJECT_NAME} PROPERTIES - COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} ${pystring_CXX_FLAGS}" + COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS};${pystring_CXX_FLAGS}" + LINK_OPTIONS "${PLATFORM_LINK_OPTIONS}" PUBLIC_HEADER "${HEADERS}" ) diff --git a/share/cmake/utils/CompilerFlags.cmake b/share/cmake/utils/CompilerFlags.cmake index 9e56d55ae8..41d96838f7 100644 --- a/share/cmake/utils/CompilerFlags.cmake +++ b/share/cmake/utils/CompilerFlags.cmake @@ -5,72 +5,79 @@ ############################################################################### # Define the global compilation and link flags. -set(PLATFORM_COMPILE_FLAGS "") +set(PLATFORM_COMPILE_OPTIONS "") +set(PLATFORM_LINK_OPTIONS "") if(USE_MSVC) - set(PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} /DUSE_MSVC") + set(PLATFORM_COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS};/DUSE_MSVC") # /we4062 Enables warning in switch when an enumeration value is not explicitly handled. - set(PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} /EHsc /DWIN32 /we4062") + set(PLATFORM_COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS};/EHsc;/DWIN32;/we4062") if(${CMAKE_CXX_STANDARD} GREATER_EQUAL 17) # Inheriting from std::iterator is deprecated starting with C++17 and Yaml 0.6.3 does that. - set(PLATFORM_COMPILE_FLAGS - "${PLATFORM_COMPILE_FLAGS} /D_SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING" + set(PLATFORM_COMPILE_OPTIONS + "${PLATFORM_COMPILE_OPTIONS};/D_SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING" ) endif() # Explicitely specify the default warning level i.e. /W3. # Note: Do not use /Wall (i.e. /W4) which adds 'informational' warnings. - set(PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} /W3") + set(PLATFORM_COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS};/W3") # Do enable C4701 (Potentially uninitialized local variable 'name' used), which is level 4. # This is because strtoX-based from_chars leave the value variable unmodified. - set(PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} /we4701") + set(PLATFORM_COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS};/we4701") if(OCIO_WARNING_AS_ERROR) - set(PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} /WX") + set(PLATFORM_COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS};/WX") endif() elseif(USE_CLANG) - set(PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} -DUSE_CLANG") + set(PLATFORM_COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS};-DUSE_CLANG") # Use of 'register' specifier must be removed for C++17 support. - set(PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} -Wno-deprecated-register") + set(PLATFORM_COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS};-Wno-deprecated-register") elseif(USE_GCC) - set(PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} -DUSE_GCC") + set(PLATFORM_COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS};-DUSE_GCC") endif() if(USE_GCC OR USE_CLANG) - set(PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} -Wall") + set(PLATFORM_COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS};-Wall") # Add more warning detection. - set(PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} -Wextra") + set(PLATFORM_COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS};-Wextra") # -Wswitch-enum Enables warning in switch when an enumeration value is not explicitly handled. - set(PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} -Wswitch-enum") + set(PLATFORM_COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS};-Wswitch-enum") if(OCIO_WARNING_AS_ERROR) - set(PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} -Werror") + set(PLATFORM_COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS};-Werror") endif() if(APPLE) # TODO: There are still some deprecated methods. - set(PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} -Wno-deprecated-declarations") + set(PLATFORM_COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS};-Wno-deprecated-declarations") + endif() + + if(OCIO_ENABLE_SANITIZER) + set(PLATFORM_COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS};-fno-omit-frame-pointer;-fsanitize=address") + set(PLATFORM_LINK_OPTIONS "${PLATFORM_LINK_OPTIONS};-fsanitize=address") endif() endif() # An advanced variable will not be displayed in any of the cmake GUIs -mark_as_advanced(PLATFORM_COMPILE_FLAGS) +mark_as_advanced(PLATFORM_COMPILE_OPTIONS) +mark_as_advanced(PLATFORM_LINK_OPTIONS) ############################################################################### diff --git a/src/OpenColorIO/CMakeLists.txt b/src/OpenColorIO/CMakeLists.txt index 1c4d774ddb..6c2693db2f 100755 --- a/src/OpenColorIO/CMakeLists.txt +++ b/src/OpenColorIO/CMakeLists.txt @@ -353,20 +353,13 @@ if(WIN32) endif() endif() -set_target_properties(OpenColorIO PROPERTIES - OUTPUT_NAME ${PROJECT_NAME}${OCIO_LIBNAME_SUFFIX} - COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS}" - VERSION ${OpenColorIO_VERSION} - SOVERSION ${SOVERSION} - PUBLIC_HEADER "${INSTALL_HEADERS}" -) +set(CUSTOM_LINK_FLAGS ${PLATFORM_LINK_OPTIONS}) if(UNIX AND NOT APPLE) # Also hide all the symbols of dependent libraries to prevent clashes if # an app using this project is linked against other versions of our # dependencies. - set_property (TARGET OpenColorIO - APPEND PROPERTY LINK_FLAGS "-Wl,--exclude-libs,ALL") + set(CUSTOM_LINK_FLAGS "${CUSTOM_LINK_FLAGS};-Wl,--exclude-libs,ALL") elseif(APPLE) if (expat_LIBRARY) get_filename_component(_expat_LIBDIR "${expat_LIBRARY}" DIRECTORY) @@ -394,12 +387,20 @@ elseif(APPLE) endif() if (_OCIO_LINK_FLAGS_LIST_) - list(JOIN _OCIO_LINK_FLAGS_LIST_ " " _OCIO_LINK_FLAGS_LIST_) - set_property (TARGET OpenColorIO - APPEND PROPERTY LINK_FLAGS "${_OCIO_LINK_FLAGS_LIST_}") + list(JOIN _OCIO_LINK_FLAGS_LIST_ ";" _OCIO_LINK_FLAGS_LIST_) + set(CUSTOM_LINK_FLAGS "${CUSTOM_LINK_FLAGS};${_OCIO_LINK_FLAGS_LIST_}") endif() endif() +set_target_properties(OpenColorIO PROPERTIES + OUTPUT_NAME ${PROJECT_NAME}${OCIO_LIBNAME_SUFFIX} + COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS}" + LINK_OPTIONS "${CUSTOM_LINK_FLAGS}" + VERSION ${OpenColorIO_VERSION} + SOVERSION ${SOVERSION} + PUBLIC_HEADER "${INSTALL_HEADERS}" +) + if(MSVC AND BUILD_SHARED_LIBS) # Install the pdb file if any. install(FILES $ DESTINATION ${CMAKE_INSTALL_BINDIR} OPTIONAL) diff --git a/src/apps/ocioarchive/CMakeLists.txt b/src/apps/ocioarchive/CMakeLists.txt index 6b868d1979..f39e428349 100644 --- a/src/apps/ocioarchive/CMakeLists.txt +++ b/src/apps/ocioarchive/CMakeLists.txt @@ -8,7 +8,9 @@ set(SOURCES add_executable(ocioarchive ${SOURCES}) set_target_properties(ocioarchive PROPERTIES - COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS}") + COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS}" + LINK_OPTIONS "${PLATFORM_LINK_OPTIONS}" +) target_include_directories(ocioarchive PUBLIC diff --git a/src/apps/ociobakelut/CMakeLists.txt b/src/apps/ociobakelut/CMakeLists.txt index a50e87e48a..70cc43937e 100755 --- a/src/apps/ociobakelut/CMakeLists.txt +++ b/src/apps/ociobakelut/CMakeLists.txt @@ -9,7 +9,7 @@ set(SOURCES add_executable(ociobakelut ${SOURCES}) if(MSVC) - set(PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} /wd4996") + set(PLATFORM_COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS};/wd4996") endif() # NOTE: Depending of the compiler version lcm2 2.2 does not compile with C++17 so revert to c++11 @@ -21,7 +21,8 @@ endif() set_target_properties(ociobakelut PROPERTIES - COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS}" + COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS}" + LINK_OPTIONS "${PLATFORM_LINK_OPTIONS}" CXX_STANDARD ${APP_CXX_STANDARD} ) diff --git a/src/apps/ociocheck/CMakeLists.txt b/src/apps/ociocheck/CMakeLists.txt index 0307849c17..cd6cf787e3 100755 --- a/src/apps/ociocheck/CMakeLists.txt +++ b/src/apps/ociocheck/CMakeLists.txt @@ -8,11 +8,13 @@ set(SOURCES add_executable(ociocheck ${SOURCES}) if(MSVC) - set(PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} /wd4996") + set(PLATFORM_COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS};/wd4996") endif() set_target_properties(ociocheck PROPERTIES - COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS}") + COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS}" + LINK_OPTIONS "${PLATFORM_LINK_OPTIONS}" +) target_link_libraries(ociocheck PRIVATE diff --git a/src/apps/ociochecklut/CMakeLists.txt b/src/apps/ociochecklut/CMakeLists.txt index e676d3707a..59dc5daeac 100644 --- a/src/apps/ociochecklut/CMakeLists.txt +++ b/src/apps/ociochecklut/CMakeLists.txt @@ -15,11 +15,13 @@ set(SOURCES add_executable(ociochecklut ${SOURCES}) if(MSVC) - set(PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} /wd4996") + set(PLATFORM_COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS};/wd4996") endif() set_target_properties(ociochecklut PROPERTIES - COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS}") + COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS}" + LINK_OPTIONS "${PLATFORM_LINK_OPTIONS}" +) target_link_libraries(ociochecklut PRIVATE diff --git a/src/apps/ocioconvert/CMakeLists.txt b/src/apps/ocioconvert/CMakeLists.txt index c8f117bcdd..5748450775 100755 --- a/src/apps/ocioconvert/CMakeLists.txt +++ b/src/apps/ocioconvert/CMakeLists.txt @@ -15,7 +15,8 @@ set(SOURCES add_executable(ocioconvert ${SOURCES}) set_target_properties(ocioconvert PROPERTIES - COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS}" + COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS}" + LINK_OPTIONS "${PLATFORM_LINK_OPTIONS}" ) if (USE_MSVC) diff --git a/src/apps/ociodisplay/CMakeLists.txt b/src/apps/ociodisplay/CMakeLists.txt index cb54ad9af9..8cd63d893c 100755 --- a/src/apps/ociodisplay/CMakeLists.txt +++ b/src/apps/ociodisplay/CMakeLists.txt @@ -10,14 +10,15 @@ set(SOURCES main.cpp) add_executable(ociodisplay ${SOURCES}) -set(CUSTOM_COMPILE_FLAGS ${PLATFORM_COMPILE_FLAGS}) +set(CUSTOM_COMPILE_FLAGS ${PLATFORM_COMPILE_OPTIONS}) if(APPLE) # Mute the deprecated warning for some GLUT methods. - set(CUSTOM_COMPILE_FLAGS "${CUSTOM_COMPILE_FLAGS} -DGL_SILENCE_DEPRECATION") + set(CUSTOM_COMPILE_FLAGS "${CUSTOM_COMPILE_FLAGS};-DGL_SILENCE_DEPRECATION") endif() set_target_properties(ociodisplay PROPERTIES - COMPILE_FLAGS "${CUSTOM_COMPILE_FLAGS}" + COMPILE_OPTIONS "${CUSTOM_COMPILE_FLAGS}" + LINK_OPTIONS "${PLATFORM_LINK_OPTIONS}" ) if (USE_MSVC) diff --git a/src/apps/ociolutimage/CMakeLists.txt b/src/apps/ociolutimage/CMakeLists.txt index eceeb62154..9ee234603e 100755 --- a/src/apps/ociolutimage/CMakeLists.txt +++ b/src/apps/ociolutimage/CMakeLists.txt @@ -8,7 +8,9 @@ set(SOURCES add_executable(ociolutimage ${SOURCES}) set_target_properties(ociolutimage PROPERTIES - COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS}") + COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS}" + LINK_OPTIONS "${PLATFORM_LINK_OPTIONS}" +) if (USE_MSVC) # Temporary until fixed in OpenImageIO: Mute some warnings from OpenImageIO farmhash.h diff --git a/src/apps/ociomakeclf/CMakeLists.txt b/src/apps/ociomakeclf/CMakeLists.txt index e69036b053..0179d20558 100644 --- a/src/apps/ociomakeclf/CMakeLists.txt +++ b/src/apps/ociomakeclf/CMakeLists.txt @@ -8,11 +8,13 @@ set(SOURCES add_executable(ociomakeclf ${SOURCES}) if(MSVC) - set(PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} /wd4996") + set(PLATFORM_COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS};/wd4996") endif() set_target_properties(ociomakeclf PROPERTIES - COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS}") + COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS}" + LINK_OPTIONS "${PLATFORM_LINK_OPTIONS}" +) target_link_libraries(ociomakeclf PRIVATE diff --git a/src/apps/ocioperf/CMakeLists.txt b/src/apps/ocioperf/CMakeLists.txt index a374f5d785..efe1f0555b 100644 --- a/src/apps/ocioperf/CMakeLists.txt +++ b/src/apps/ocioperf/CMakeLists.txt @@ -8,7 +8,9 @@ set(SOURCES add_executable(ocioperf ${SOURCES}) set_target_properties(ocioperf PROPERTIES - COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS}") + COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS}" + LINK_OPTIONS "${PLATFORM_LINK_OPTIONS}" +) target_link_libraries(ocioperf PRIVATE diff --git a/src/apps/ociowrite/CMakeLists.txt b/src/apps/ociowrite/CMakeLists.txt index 8c9c1729c9..b17bee62c2 100644 --- a/src/apps/ociowrite/CMakeLists.txt +++ b/src/apps/ociowrite/CMakeLists.txt @@ -8,7 +8,9 @@ set(SOURCES add_executable(ociowrite ${SOURCES}) set_target_properties(ociowrite PROPERTIES - COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS}") + COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS}" + LINK_OPTIONS "${PLATFORM_LINK_OPTIONS}" +) target_link_libraries(ociowrite PRIVATE diff --git a/src/apputils/CMakeLists.txt b/src/apputils/CMakeLists.txt index 6f6c3be31a..e57941aed1 100644 --- a/src/apputils/CMakeLists.txt +++ b/src/apputils/CMakeLists.txt @@ -21,5 +21,6 @@ target_link_libraries(apputils ) set_target_properties(apputils PROPERTIES - COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS}" + COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS}" + LINK_OPTIONS "${PLATFORM_LINK_OPTIONS}" ) diff --git a/src/bindings/python/CMakeLists.txt b/src/bindings/python/CMakeLists.txt index f674139934..d3c79db98a 100644 --- a/src/bindings/python/CMakeLists.txt +++ b/src/bindings/python/CMakeLists.txt @@ -138,20 +138,28 @@ if(${CMAKE_CXX_STANDARD} GREATER_EQUAL 17) set(APP_CXX_STANDARD 11) endif() -set(CUSTOM_COMPILE_FLAGS ${PLATFORM_COMPILE_FLAGS}) +set(CUSTOM_COMPILE_FLAGS ${PLATFORM_COMPILE_OPTIONS}) +set(CUSTOM_LINK_FLAGS ${PLATFORM_LINK_OPTIONS}) # The Python binding contains deprecated methods for backward compatibility reason, # so disable the warning. if(USE_GCC OR USE_CLANG) - set(CUSTOM_COMPILE_FLAGS "${CUSTOM_COMPILE_FLAGS} -Wno-deprecated-declarations") + set(CUSTOM_COMPILE_FLAGS "${CUSTOM_COMPILE_FLAGS};-Wno-deprecated-declarations") elseif(USE_MSVC) - set(CUSTOM_COMPILE_FLAGS "${CUSTOM_COMPILE_FLAGS} /wd4996") + set(CUSTOM_COMPILE_FLAGS "${CUSTOM_COMPILE_FLAGS};/wd4996") +endif() + +# OSX demands that the linker resolve all symbols at build time +# we pass this flag to allow dynamic linking +if(APPLE) + set(CUSTOM_LINK_FLAGS "${CUSTOM_LINK_FLAGS};-undefined;dynamic_lookup") endif() set_target_properties(PyOpenColorIO PROPERTIES - COMPILE_FLAGS ${CUSTOM_COMPILE_FLAGS} - CXX_STANDARD ${APP_CXX_STANDARD} + COMPILE_OPTIONS "${CUSTOM_COMPILE_FLAGS}" + LINK_OPTIONS "${CUSTOM_LINK_FLAGS}" + CXX_STANDARD ${APP_CXX_STANDARD} ) if(NOT BUILD_SHARED_LIBS) @@ -182,14 +190,6 @@ if (UNIX AND NOT CMAKE_SKIP_RPATH) endif() endif() -# OSX demands that the linker resolve all symbols at build time -# we pass this flag to allow dynamic linking -if(APPLE) - set_target_properties(PyOpenColorIO PROPERTIES - LINK_FLAGS "-undefined dynamic_lookup" - ) -endif() - target_include_directories(PyOpenColorIO PRIVATE PyOpenColorIO diff --git a/src/libutils/imageioapphelpers/CMakeLists.txt b/src/libutils/imageioapphelpers/CMakeLists.txt index 3f2bcb1f86..6b32f2824e 100644 --- a/src/libutils/imageioapphelpers/CMakeLists.txt +++ b/src/libutils/imageioapphelpers/CMakeLists.txt @@ -17,7 +17,8 @@ if(NOT BUILD_SHARED_LIBS) endif() set_target_properties(imageioapphelpers PROPERTIES - COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS}" + COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS}" + LINK_OPTIONS "${PLATFORM_LINK_OPTIONS}" ) target_compile_definitions(imageioapphelpers diff --git a/src/libutils/oglapphelpers/CMakeLists.txt b/src/libutils/oglapphelpers/CMakeLists.txt index d5eeb4d6bb..39a20ecb3a 100644 --- a/src/libutils/oglapphelpers/CMakeLists.txt +++ b/src/libutils/oglapphelpers/CMakeLists.txt @@ -42,14 +42,15 @@ if(NOT BUILD_SHARED_LIBS) ) endif() -set(CUSTOM_COMPILE_FLAGS ${PLATFORM_COMPILE_FLAGS}) +set(CUSTOM_COMPILE_FLAGS ${PLATFORM_COMPILE_OPTIONS}) if(APPLE) # Mute the deprecated warning for some GLUT methods. - set(CUSTOM_COMPILE_FLAGS "${CUSTOM_COMPILE_FLAGS} -DGL_SILENCE_DEPRECATION") + set(CUSTOM_COMPILE_FLAGS "${CUSTOM_COMPILE_FLAGS};-DGL_SILENCE_DEPRECATION") endif() set_target_properties(oglapphelpers PROPERTIES - COMPILE_FLAGS "${CUSTOM_COMPILE_FLAGS}" + COMPILE_OPTIONS "${CUSTOM_COMPILE_FLAGS}" + LINK_OPTIONS "${PLATFORM_LINK_OPTIONS}" ) target_include_directories(oglapphelpers diff --git a/src/libutils/oglapphelpers/msl.mm b/src/libutils/oglapphelpers/msl.mm index 2ddb545f0e..88ab273550 100644 --- a/src/libutils/oglapphelpers/msl.mm +++ b/src/libutils/oglapphelpers/msl.mm @@ -396,7 +396,7 @@ void RGB_to_RGBA(const float* lutValues, int valueCount, std::vector& flo const int dummyInt = 123456789; const int* v = size == 0 ? &dummyInt : data.m_vectorInt.m_getVector(); size = size == 0 ? sizeof(int) : size * sizeof(int); - [renderCmdEncoder setFragmentBytes:v length:size * sizeof(int) atIndex:uniformId++]; + [renderCmdEncoder setFragmentBytes:v length:size atIndex:uniformId++]; } break; diff --git a/tests/cmake-consumer/CMakeLists.txt.in b/tests/cmake-consumer/CMakeLists.txt.in index e7ba2a48d8..f965980bd3 100644 --- a/tests/cmake-consumer/CMakeLists.txt.in +++ b/tests/cmake-consumer/CMakeLists.txt.in @@ -3,7 +3,7 @@ # Check the OCIO CMake config find module -cmake_minimum_required(VERSION 3.12) +cmake_minimum_required(VERSION 3.13) project(consumer LANGUAGES CXX) if(NOT CMAKE_BUILD_TYPE) @@ -17,9 +17,15 @@ find_package(OpenColorIO CONFIG REQUIRED) add_executable(consumer consumer.cpp) +if(OCIO_ENABLE_SANITIZER) + set(PLATFORM_COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS};-fno-omit-frame-pointer;-fsanitize=address") + set(PLATFORM_LINK_OPTIONS "${PLATFORM_LINK_OPTIONS};-fsanitize=address") +endif() + set_target_properties(consumer PROPERTIES - COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS}" + COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS}" + LINK_OPTIONS "${PLATFORM_LINK_OPTIONS}" CXX_STANDARD 11 CXX_STANDARD_REQUIRED ON CXX_EXTENSIONS OFF diff --git a/tests/cpu/CMakeLists.txt b/tests/cpu/CMakeLists.txt index e78a86bede..431d570f4e 100755 --- a/tests/cpu/CMakeLists.txt +++ b/tests/cpu/CMakeLists.txt @@ -14,7 +14,6 @@ function(add_ocio_test NAME SOURCES PRIVATE_INCLUDES) ) target_link_libraries(${TEST_BINARY} PRIVATE - OpenColorIO expat::expat Imath::Imath pystring::pystring @@ -39,6 +38,7 @@ function(add_ocio_test NAME SOURCES PRIVATE_INCLUDES) if(PRIVATE_INCLUDES) target_include_directories(${TEST_BINARY} PRIVATE + "$" "${CMAKE_SOURCE_DIR}/tests/cpu" "${CMAKE_BINARY_DIR}/generated_include" ) @@ -67,9 +67,21 @@ function(add_ocio_test NAME SOURCES PRIVATE_INCLUDES) endif() endif(WIN32) set_target_properties(${TEST_BINARY} PROPERTIES - COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS}") + COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS}" + LINK_OPTIONS "${PLATFORM_LINK_OPTIONS}" + ) add_test(NAME ${TEST_NAME} COMMAND ${TEST_BINARY}) + + if(OCIO_ENABLE_SANITIZER) + # Ignore odr-violation warning coming supposeddly from compiling OCIO + # sources within the test target as well as linking to the library. + # Provide better stack traces for malloc related leaks. + set_tests_properties(${TEST_NAME} PROPERTIES + ENVIRONMENT + "ASAN_OPTIONS=detect_odr_violation=0:fast_unwind_on_malloc=0" + ) + endif() endfunction(add_ocio_test) # Eventually we will factor out each test into it's own executable diff --git a/tests/cpu/Platform_tests.cpp b/tests/cpu/Platform_tests.cpp index a610e02826..dc3caab795 100644 --- a/tests/cpu/Platform_tests.cpp +++ b/tests/cpu/Platform_tests.cpp @@ -84,7 +84,7 @@ OCIO_ADD_TEST(Platform, getenv) OCIO_CHECK_NE(GetEnvironmentVariable(TEXT("PATH"), NULL, 0), 0); // Create a variable and test that it's retrievable through the Windows API. - OCIO::Platform::Setenv(u8"MY_WINDOWS_DUMMY_ENV", u8"SomeValue"); + OCIO::Platform::Setenv(U8("MY_WINDOWS_DUMMY_ENV"), U8("SomeValue")); uint32_t win_env_sz = GetEnvironmentVariable(TEXT("MY_WINDOWS_DUMMY_ENV"), NULL, 0); OCIO_CHECK_NE(win_env_sz, 0); @@ -93,7 +93,7 @@ OCIO_ADD_TEST(Platform, getenv) win_env_value.pop_back(); // Remove null terminator that interferes with comparison OCIO_CHECK_ASSERT(win_env_value == TEXT("SomeValue")); - OCIO::Platform::Unsetenv(u8"MY_WINDOWS_DUMMY_ENV"); + OCIO::Platform::Unsetenv(U8("MY_WINDOWS_DUMMY_ENV")); OCIO_CHECK_EQUAL(GetEnvironmentVariable(TEXT("MY_WINDOWS_DUMMY_ENV"), NULL, 0), 0); OCIO_CHECK_EQUAL(GetLastError(), ERROR_ENVVAR_NOT_FOUND); #endif diff --git a/tests/cpu/UnitTestUtils.cpp b/tests/cpu/UnitTestUtils.cpp index 9456e882d1..f298db0f3e 100644 --- a/tests/cpu/UnitTestUtils.cpp +++ b/tests/cpu/UnitTestUtils.cpp @@ -159,8 +159,9 @@ void removeDirectory(const char * directoryPath) } } } - } + } remove(directoryPath); + closedir(dir); } #endif @@ -174,5 +175,3 @@ void RemoveTemporaryDirectory(const std::string & directoryPath) } } // namespace OCIO_NAMESPACE - - diff --git a/tests/cpu/fileformats/xmlutils/XMLReaderUtils_tests.cpp b/tests/cpu/fileformats/xmlutils/XMLReaderUtils_tests.cpp index 06c92ddebc..ad33e496ef 100644 --- a/tests/cpu/fileformats/xmlutils/XMLReaderUtils_tests.cpp +++ b/tests/cpu/fileformats/xmlutils/XMLReaderUtils_tests.cpp @@ -76,10 +76,10 @@ OCIO_ADD_TEST(XMLReaderHelper, get_numbers) // Same test without a null terminated string: // Copy the string into a buffer that will not be null terminated. // Add a delimiter at the end of the buffer. - char * buffer = new char[len+1]; - std::memcpy(buffer, str, len * sizeof(char)); + std::vector buffer(len+1); + std::memcpy(buffer.data(), str, len * sizeof(char)); buffer[len] = '\n'; - OCIO_CHECK_NO_THROW(values = OCIO::GetNumbers(buffer, len)); + OCIO_CHECK_NO_THROW(values = OCIO::GetNumbers(buffer.data(), len)); OCIO_REQUIRE_EQUAL(values.size(), 4); OCIO_CHECK_EQUAL(values[0], 1.0f); OCIO_CHECK_EQUAL(values[1], 2.0f); @@ -498,4 +498,3 @@ OCIO_ADD_TEST(XMLReaderHelper, find_sub_string) OCIO_CHECK_EQUAL(end, 0); } } - diff --git a/tests/gpu/CMakeLists.txt b/tests/gpu/CMakeLists.txt index 051abe72eb..2245fbf1d5 100644 --- a/tests/gpu/CMakeLists.txt +++ b/tests/gpu/CMakeLists.txt @@ -34,7 +34,9 @@ if(OCIO_USE_SSE) endif(OCIO_USE_SSE) set_target_properties(test_gpu_exec PROPERTIES - COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS}") + COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS}" + LINK_OPTIONS "${PLATFORM_LINK_OPTIONS}" +) target_link_libraries(test_gpu_exec PRIVATE diff --git a/tests/osl/CMakeLists.txt b/tests/osl/CMakeLists.txt index 6e2c107a89..3316720d47 100644 --- a/tests/osl/CMakeLists.txt +++ b/tests/osl/CMakeLists.txt @@ -26,7 +26,9 @@ if(OCIO_USE_SSE) endif(OCIO_USE_SSE) set_target_properties(test_osl_exec PROPERTIES - COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS}") + COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS}" + LINK_OPTIONS "${PLATFORM_LINK_OPTIONS}" +) # Because some OpenImageIO types are present in the OSL public API that dependency is mandatory; # however, the unit test framework itself does not have any OpenImageIO dependency. diff --git a/tests/testutils/CMakeLists.txt b/tests/testutils/CMakeLists.txt index ecf15498e9..91e9ca1989 100644 --- a/tests/testutils/CMakeLists.txt +++ b/tests/testutils/CMakeLists.txt @@ -8,7 +8,9 @@ set(SOURCES add_library(testutils STATIC ${SOURCES}) set_target_properties(testutils PROPERTIES - COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS}") + COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS}" + LINK_OPTIONS "${PLATFORM_LINK_OPTIONS}" +) target_include_directories(testutils PUBLIC @@ -20,4 +22,3 @@ target_link_libraries(testutils apputils utils::strings ) - diff --git a/tests/utils/CMakeLists.txt b/tests/utils/CMakeLists.txt index 9fc1e6b474..242cad4f0d 100644 --- a/tests/utils/CMakeLists.txt +++ b/tests/utils/CMakeLists.txt @@ -17,6 +17,8 @@ target_link_libraries(test_utils_exec ) set_target_properties(test_utils_exec PROPERTIES - COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS}") + COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS}" + LINK_OPTIONS "${PLATFORM_LINK_OPTIONS}" +) add_test(NAME test_utils_exec COMMAND test_utils_exec) diff --git a/vendor/openfx/CMakeLists.txt b/vendor/openfx/CMakeLists.txt index 57e26253a1..d734cdf164 100644 --- a/vendor/openfx/CMakeLists.txt +++ b/vendor/openfx/CMakeLists.txt @@ -32,18 +32,19 @@ add_library(ofxplugin MODULE ${SOURCES} ${OFXS_SOURCES}) # Disable known compiler warnings from OpenFX Support Library if(MSVC) - set(PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} /wd4996 /wd4101") + set(PLATFORM_COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS};/wd4996;/wd4101") else() # Some reported unused parameters in openfx are used when DEBUG macro is # defined - set(PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} -Wno-unused-parameter") + set(PLATFORM_COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS};-Wno-unused-parameter") endif() set_target_properties(ofxplugin PROPERTIES PREFIX "" OUTPUT_NAME "OpenColorIO" SUFFIX ".ofx" - COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS}" + COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS}" + LINK_OPTIONS "${PLATFORM_LINK_OPTIONS}" ) target_include_directories(ofxplugin From 51bb573731df809bde8a65f1f45d45b45368d1c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Achard?= Date: Tue, 21 Feb 2023 15:54:48 +0000 Subject: [PATCH 2/5] Test building OpenEXR single threaded MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Rémi Achard --- share/cmake/modules/FindOpenEXR.cmake | 1 - 1 file changed, 1 deletion(-) diff --git a/share/cmake/modules/FindOpenEXR.cmake b/share/cmake/modules/FindOpenEXR.cmake index a8b8448fd6..7fad5c6d8e 100644 --- a/share/cmake/modules/FindOpenEXR.cmake +++ b/share/cmake/modules/FindOpenEXR.cmake @@ -203,7 +203,6 @@ if(NOT OpenEXR_FOUND AND OCIO_INSTALL_EXT_PACKAGES AND NOT OCIO_INSTALL_EXT_PACK ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE} --target install - --parallel ) # Additional targets. ALIAS to UNKNOWN imported target is only possible From c6267073e2beda94bf6629ca9636fac4eaea7d1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Achard?= Date: Tue, 21 Feb 2023 16:34:18 +0000 Subject: [PATCH 3/5] Add comment on disabling parallel build MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Rémi Achard --- share/cmake/modules/FindOpenEXR.cmake | 2 ++ 1 file changed, 2 insertions(+) diff --git a/share/cmake/modules/FindOpenEXR.cmake b/share/cmake/modules/FindOpenEXR.cmake index 7fad5c6d8e..426305dab4 100644 --- a/share/cmake/modules/FindOpenEXR.cmake +++ b/share/cmake/modules/FindOpenEXR.cmake @@ -203,6 +203,8 @@ if(NOT OpenEXR_FOUND AND OCIO_INSTALL_EXT_PACKAGES AND NOT OCIO_INSTALL_EXT_PACK ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE} --target install + # Prevent some CI jobs to fail when building. + # --parallel ) # Additional targets. ALIAS to UNKNOWN imported target is only possible From a6832fd8f358db8614109ef9bc7faf6842cca4f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Achard?= Date: Thu, 23 Feb 2023 10:14:01 +0000 Subject: [PATCH 4/5] Update python_requires MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Rémi Achard --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 50c0b746ac..16f06e6d16 100644 --- a/setup.cfg +++ b/setup.cfg @@ -20,7 +20,7 @@ license_files = LICENSE long_description = file: README.md, LICENSE long_description_content_type = text/markdown name = opencolorio -python_requires = '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*' +python_requires = '>=3.7' url = https://opencolorio.org/ [options] From 24eb89337816dda0b0153fbe65040974fe40eeb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Achard?= Date: Tue, 7 Mar 2023 20:56:42 +0000 Subject: [PATCH 5/5] Remove comments around CI jobs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Rémi Achard --- .github/workflows/ci_workflow.yml | 16 ---------------- .github/workflows/dependencies_latest.yml | 8 -------- .github/workflows/platform_latest.yml | 8 -------- 3 files changed, 32 deletions(-) diff --git a/.github/workflows/ci_workflow.yml b/.github/workflows/ci_workflow.yml index d3f54276b7..bf98506e1a 100644 --- a/.github/workflows/ci_workflow.yml +++ b/.github/workflows/ci_workflow.yml @@ -65,7 +65,6 @@ jobs: # ------------------------------------------------------------------- # VFX CY2022 (Python 3.9) # ------------------------------------------------------------------- - # C++17, Clang, Debug, OpenFX - build: 9 build-type: Debug build-shared: 'ON' @@ -78,7 +77,6 @@ jobs: cc-compiler: clang compiler-desc: Clang vfx-cy: 2022 - # C++17, GCC, no SSE, OpenFX - build: 8 build-type: Release build-shared: 'ON' @@ -91,7 +89,6 @@ jobs: cc-compiler: gcc compiler-desc: GCC vfx-cy: 2022 - # C++11, GCC, static - build: 7 build-type: Release build-shared: 'OFF' @@ -107,7 +104,6 @@ jobs: # ------------------------------------------------------------------- # VFX CY2021 (Python 3.7) # ------------------------------------------------------------------- - # C++17, Clang - build: 6 build-type: Release build-shared: 'ON' @@ -120,7 +116,6 @@ jobs: cc-compiler: clang compiler-desc: Clang vfx-cy: 2021 - # C++14, Clang, static, no SSE, OpenFX - build: 5 build-type: Release build-shared: 'OFF' @@ -133,7 +128,6 @@ jobs: cc-compiler: clang compiler-desc: Clang vfx-cy: 2021 - # C++11, GCC, Debug - build: 4 build-type: Debug build-shared: 'ON' @@ -149,7 +143,6 @@ jobs: # ------------------------------------------------------------------- # VFX CY2020 (Python 3.7) # ------------------------------------------------------------------- - # C++14, Clang, OpenFX - build: 3 build-type: Release build-shared: 'ON' @@ -162,7 +155,6 @@ jobs: cc-compiler: clang compiler-desc: Clang vfx-cy: 2020 - # C++14, GCC, static, Debug, OpenFX - build: 2 build-type: Debug build-shared: 'OFF' @@ -175,7 +167,6 @@ jobs: cc-compiler: gcc compiler-desc: GCC vfx-cy: 2020 - # C++11, GCC, no SSE - build: 1 build-type: Release build-shared: 'ON' @@ -292,7 +283,6 @@ jobs: matrix: build: [1, 2, 3, 4] include: - # C++17, OpenFX - build: 4 build-type: Release build-shared: 'ON' @@ -302,7 +292,6 @@ jobs: use-oiio: 'ON' cxx-standard: 17 python-version: '3.11' - # C++11, no SSE - build: 3 build-type: Release build-shared: 'ON' @@ -312,7 +301,6 @@ jobs: use-oiio: 'OFF' cxx-standard: 11 python-version: '3.10' - # Debug, OpenFX - build: 2 build-type: Debug build-shared: 'ON' @@ -322,7 +310,6 @@ jobs: use-oiio: 'OFF' cxx-standard: 11 python-version: '3.9' - # Static, C++14, OpenEXR, OpenFX - build: 1 build-type: Release build-shared: 'OFF' @@ -439,7 +426,6 @@ jobs: matrix: build: [1, 2, 3, 4] include: - # C++17, OpenFX, no SSE - build: 4 build-type: Release build-shared: 'ON' @@ -449,7 +435,6 @@ jobs: use-oiio: 'ON' cxx-standard: 17 python-version: '3.11' - # Static, C++11 - build: 3 build-type: Release build-shared: 'OFF' @@ -459,7 +444,6 @@ jobs: use-oiio: 'OFF' cxx-standard: 11 python-version: '3.9' - # Debug - build: 2 build-type: Debug build-shared: 'ON' diff --git a/.github/workflows/dependencies_latest.yml b/.github/workflows/dependencies_latest.yml index 12598633fa..fe729a4fec 100644 --- a/.github/workflows/dependencies_latest.yml +++ b/.github/workflows/dependencies_latest.yml @@ -46,7 +46,6 @@ jobs: # ------------------------------------------------------------------- # GCC # ------------------------------------------------------------------- - # VFX CY2022, C++17, docs, OpenFX - build: 1 build-docs: 'ON' build-openfx: 'ON' @@ -55,7 +54,6 @@ jobs: cc-compiler: gcc compiler-desc: GCC vfx-cy: 2022 - # VFX CY2021, C++14 - build: 2 build-docs: 'OFF' build-openfx: 'OFF' @@ -67,7 +65,6 @@ jobs: # ------------------------------------------------------------------- # Clang # ------------------------------------------------------------------- - # VFX CY2022, C++17 - build: 3 build-docs: 'OFF' build-openfx: 'OFF' @@ -76,7 +73,6 @@ jobs: cc-compiler: clang compiler-desc: Clang vfx-cy: 2022 - # VFX CY2021, C++14, docs, OpenFX - build: 4 build-docs: 'ON' build-openfx: 'ON' @@ -175,13 +171,11 @@ jobs: matrix: build: [1, 2] include: - # C++17 - build: 1 build-docs: 'ON' build-openfx: 'ON' cxx-standard: 17 python-version: '3.11' - # C++14 - build: 2 build-docs: 'ON' build-openfx: 'ON' @@ -280,13 +274,11 @@ jobs: matrix: build: [1, 2] include: - # C++17 - build: 1 build-docs: 'ON' build-openfx: 'ON' cxx-standard: 17 python-version: '3.11' - # C++14 - build: 2 build-docs: 'ON' build-openfx: 'ON' diff --git a/.github/workflows/platform_latest.yml b/.github/workflows/platform_latest.yml index 4364d01ba5..9d4d04183b 100644 --- a/.github/workflows/platform_latest.yml +++ b/.github/workflows/platform_latest.yml @@ -42,7 +42,6 @@ jobs: # ------------------------------------------------------------------- # GCC # ------------------------------------------------------------------- - # Release - build: 1 build-python: ON build-type: Release @@ -52,7 +51,6 @@ jobs: cc-compiler: gcc compiler-desc: GCC enable-sanitizer: OFF - # Debug sanitizer - build: 2 build-python: OFF build-type: Debug @@ -65,7 +63,6 @@ jobs: # ------------------------------------------------------------------- # Clang # ------------------------------------------------------------------- - # Release - build: 3 build-python: ON build-type: Release @@ -75,7 +72,6 @@ jobs: cc-compiler: clang compiler-desc: Clang enable-sanitizer: OFF - # Debug sanitizer - build: 4 build-python: OFF build-type: Debug @@ -185,7 +181,6 @@ jobs: matrix: build: [1, 2] include: - # Release - build: 1 build-python: ON build-type: Release @@ -193,7 +188,6 @@ jobs: cxx-standard: 20 enable-sanitizer: OFF python-version: '3.11' - # Debug sanitizer - build: 2 build-python: OFF build-type: Debug @@ -300,14 +294,12 @@ jobs: matrix: build: [1, 2] include: - # Release - build: 1 build-python: ON build-type: Release build-shared: ON cxx-standard: 20 python-version: '3.11' - # Debug - build: 2 build-python: ON build-type: Debug