Skip to content

Commit

Permalink
Issues/0106 - fix windows compile errors (ampas#107)
Browse files Browse the repository at this point in the history
* add windows github workflows

* fixes windows compile errors, closes ampas#106

* use OpenVDB's FindIlmBase.cmake and FindOpenEXR.cmake

* fix for run-time check in \CTL\ctlrender\tiff_file.cc - Line 613, "The variable 'channel' is being used without being initialized"
  • Loading branch information
michaeldsmith authored Jan 2, 2023
1 parent 3fc4ae7 commit 0fb587b
Show file tree
Hide file tree
Showing 25 changed files with 1,430 additions and 232 deletions.
135 changes: 135 additions & 0 deletions .github/workflows/windows_debug.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
name: Windows-Debug

on:
push:
paths-ignore:
- 'README.md'
- 'doc/**'
pull_request:
paths-ignore:
- 'README.md'
- 'doc/**'

env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Debug

jobs:

build-openexr2:
# The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac.
# You can convert this to a matrix build if you need cross-platform coverage.
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
runs-on: windows-latest

steps:

- name: install dependencies - zlib
run: |
cd ..
git clone https://github.com/madler/zlib.git &&
cd zlib &&
mkdir build &&
mkdir install &&
cd build &&
cmake .. -D"CMAKE_INSTALL_PREFIX=../install" -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} &&
cmake --build . --config ${{env.BUILD_TYPE}} &&
cmake --build . --target install --config ${{env.BUILD_TYPE}}
- name: install dependencies - openexr
run: |
cd ..
git clone https://github.com/AcademySoftwareFoundation/openexr.git &&
cd openexr &&
git checkout RB-2.5 &&
mkdir build &&
mkdir install &&
cd build &&
cmake .. -D"CMAKE_INSTALL_PREFIX=../install" -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DBUILD_TESTING=OFF -DOPENEXR_BUILD_TOOLS=OFF -DOPENEXR_INSTALL_EXAMPLES=OFF -D "CMAKE_PREFIX_PATH=${{github.workspace}}/../zlib/install/" &&
cmake --build . --config ${{env.BUILD_TYPE}} &&
cmake --build . --target install --config ${{env.BUILD_TYPE}}
- uses: actions/checkout@v3

- name: Configure CMake
# # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -D "CMAKE_PREFIX_PATH=${{github.workspace}}/../openexr/install/;${{github.workspace}}/../zlib/install/"

- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}

- name: Install
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --target install --config ${{env.BUILD_TYPE}}
working-directory: ${{github.workspace}}

# - name: Test
# working-directory: ${{github.workspace}}/build
# run: ctest -V --output-on-failure -C ${{env.BUILD_TYPE}}

build-openexr3:
# The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac.
# You can convert this to a matrix build if you need cross-platform coverage.
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
runs-on: windows-latest

steps:

- name: install dependencies - Imath
run: |
cd ..
git clone https://github.com/AcademySoftwareFoundation/Imath.git &&
cd Imath &&
mkdir build &&
mkdir install &&
cd build &&
cmake .. -D"CMAKE_INSTALL_PREFIX=../install" -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} &&
cmake --build . --config ${{env.BUILD_TYPE}} &&
cmake --build . --target install --config ${{env.BUILD_TYPE}}
- name: install dependencies - zlib
run: |
cd ..
git clone https://github.com/madler/zlib.git &&
cd zlib &&
mkdir build &&
mkdir install &&
cd build &&
cmake .. -D"CMAKE_INSTALL_PREFIX=../install" -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} &&
cmake --build . --config ${{env.BUILD_TYPE}} &&
cmake --build . --target install --config ${{env.BUILD_TYPE}}
- name: install dependencies - openexr
run: |
cd ..
git clone https://github.com/AcademySoftwareFoundation/openexr.git &&
cd openexr &&
git checkout RB-3.1 &&
mkdir build &&
mkdir install &&
cd build &&
cmake .. -D"CMAKE_INSTALL_PREFIX=../install" -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DBUILD_TESTING=OFF -DOPENEXR_BUILD_TOOLS=OFF -DOPENEXR_INSTALL_EXAMPLES=OFF -D "CMAKE_PREFIX_PATH=${{github.workspace}}/../Imath/install/;${{github.workspace}}/../zlib/install/;${{github.workspace}}/../openexr/install/" &&
cmake --build . --config ${{env.BUILD_TYPE}} &&
cmake --build . --target install --config ${{env.BUILD_TYPE}}
- uses: actions/checkout@v3

- name: Configure CMake
# # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -D "CMAKE_PREFIX_PATH=${{github.workspace}}/../Imath/install/;${{github.workspace}}/../zlib/install/;${{github.workspace}}/../openexr/install/"

- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}

- name: Install
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --target install --config ${{env.BUILD_TYPE}}
working-directory: ${{github.workspace}}

# - name: Test
# working-directory: ${{github.workspace}}/build
# run: ctest -V --output-on-failure -C ${{env.BUILD_TYPE}}
135 changes: 135 additions & 0 deletions .github/workflows/windows_release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
name: Windows-Release

on:
push:
paths-ignore:
- 'README.md'
- 'doc/**'
pull_request:
paths-ignore:
- 'README.md'
- 'doc/**'

env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Release

jobs:

build-openexr2:
# The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac.
# You can convert this to a matrix build if you need cross-platform coverage.
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
runs-on: windows-latest

steps:

- name: install dependencies - zlib
run: |
cd ..
git clone https://github.com/madler/zlib.git &&
cd zlib &&
mkdir build &&
mkdir install &&
cd build &&
cmake .. -D"CMAKE_INSTALL_PREFIX=../install" -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} &&
cmake --build . --config ${{env.BUILD_TYPE}} &&
cmake --build . --target install --config ${{env.BUILD_TYPE}}
- name: install dependencies - openexr
run: |
cd ..
git clone https://github.com/AcademySoftwareFoundation/openexr.git &&
cd openexr &&
git checkout RB-2.5 &&
mkdir build &&
mkdir install &&
cd build &&
cmake .. -D"CMAKE_INSTALL_PREFIX=../install" -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DBUILD_TESTING=OFF -DOPENEXR_BUILD_TOOLS=OFF -DOPENEXR_INSTALL_EXAMPLES=OFF -D "CMAKE_PREFIX_PATH=${{github.workspace}}/../zlib/install/" &&
cmake --build . --config ${{env.BUILD_TYPE}} &&
cmake --build . --target install --config ${{env.BUILD_TYPE}}
- uses: actions/checkout@v3

- name: Configure CMake
# # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -D "CMAKE_PREFIX_PATH=${{github.workspace}}/../openexr/install/;${{github.workspace}}/../zlib/install/"

- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}

- name: Install
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --target install --config ${{env.BUILD_TYPE}}
working-directory: ${{github.workspace}}

# - name: Test
# working-directory: ${{github.workspace}}/build
# run: ctest -V --output-on-failure -C ${{env.BUILD_TYPE}}

build-openexr3:
# The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac.
# You can convert this to a matrix build if you need cross-platform coverage.
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
runs-on: windows-latest

steps:

- name: install dependencies - Imath
run: |
cd ..
git clone https://github.com/AcademySoftwareFoundation/Imath.git &&
cd Imath &&
mkdir build &&
mkdir install &&
cd build &&
cmake .. -D"CMAKE_INSTALL_PREFIX=../install" -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} &&
cmake --build . --config ${{env.BUILD_TYPE}} &&
cmake --build . --target install --config ${{env.BUILD_TYPE}}
- name: install dependencies - zlib
run: |
cd ..
git clone https://github.com/madler/zlib.git &&
cd zlib &&
mkdir build &&
mkdir install &&
cd build &&
cmake .. -D"CMAKE_INSTALL_PREFIX=../install" -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} &&
cmake --build . --config ${{env.BUILD_TYPE}} &&
cmake --build . --target install --config ${{env.BUILD_TYPE}}
- name: install dependencies - openexr
run: |
cd ..
git clone https://github.com/AcademySoftwareFoundation/openexr.git &&
cd openexr &&
git checkout RB-3.1 &&
mkdir build &&
mkdir install &&
cd build &&
cmake .. -D"CMAKE_INSTALL_PREFIX=../install" -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DBUILD_TESTING=OFF -DOPENEXR_BUILD_TOOLS=OFF -DOPENEXR_INSTALL_EXAMPLES=OFF -D "CMAKE_PREFIX_PATH=${{github.workspace}}/../Imath/install/;${{github.workspace}}/../zlib/install/;${{github.workspace}}/../openexr/install/" &&
cmake --build . --config ${{env.BUILD_TYPE}} &&
cmake --build . --target install --config ${{env.BUILD_TYPE}}
- uses: actions/checkout@v3

- name: Configure CMake
# # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -D "CMAKE_PREFIX_PATH=${{github.workspace}}/../Imath/install/;${{github.workspace}}/../zlib/install/;${{github.workspace}}/../openexr/install/"

- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}

- name: Install
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --target install --config ${{env.BUILD_TYPE}}
working-directory: ${{github.workspace}}

# - name: Test
# working-directory: ${{github.workspace}}/build
# run: ctest -V --output-on-failure -C ${{env.BUILD_TYPE}}
53 changes: 53 additions & 0 deletions .github/workflows/windows_vcpkg_debug.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: Windows-vcpkg-Debug

on:
push:
paths-ignore:
- 'README.md'
- 'doc/**'
pull_request:
paths-ignore:
- 'README.md'
- 'doc/**'

env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Debug

jobs:

build:
# The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac.
# You can convert this to a matrix build if you need cross-platform coverage.
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
runs-on: windows-latest

steps:

- name: install dependencies - imath
run: vcpkg install imath

- name: install dependencies - openexr
run: vcpkg install openexr

- name: install dependencies - tiff
run: vcpkg install tiff

- name: check vcpkg install status
run: vcpkg list

- uses: actions/checkout@v3

- name: Configure CMake
# # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -D "CMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake"

- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}

- name: Install
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --target install --config ${{env.BUILD_TYPE}}
working-directory: ${{github.workspace}}
Loading

0 comments on commit 0fb587b

Please sign in to comment.