Skip to content

Commit

Permalink
Infrastructure changes for VDB 11
Browse files Browse the repository at this point in the history
Signed-off-by: Nick Avramoussis <[email protected]>
  • Loading branch information
Idclip committed Oct 14, 2023
1 parent 53044dc commit 9876cdf
Show file tree
Hide file tree
Showing 42 changed files with 233 additions and 988 deletions.
20 changes: 11 additions & 9 deletions .github/workflows/ax.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,10 @@ concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

defaults:
run:
shell: bash

jobs:
linux-ax:
if: |
Expand All @@ -63,7 +67,7 @@ jobs:
config:
- { image: '2023-clang15', cxx: 'clang++', build: 'Release', cmake: '' }
- { image: '2023-clang15', cxx: 'g++', build: 'Release', cmake: '' }
- { image: '2022-clang11', cxx: 'clang++', build: 'Debug', cmake: '' }
- { image: '2023-clang15', cxx: 'clang++', build: 'Debug', cmake: '' }
- { image: '2022-clang11', cxx: 'clang++', build: 'Release', cmake: '' }
- { image: '2022-clang11', cxx: 'g++', build: 'Release', cmake: '' }
- { image: '2021-clang10', cxx: 'clang++', build: 'Release', cmake: '-DDISABLE_DEPENDENCY_VERSION_CHECKS=ON' }
Expand All @@ -76,13 +80,12 @@ jobs:
run: ./ci/install_pybind11.sh 2.10.0
- name: timestamp
id: timestamp
shell: bash
run: echo "::set-output name=timestamp::`date -u +'%Y-%m-%dT%H:%M:%SZ'`"
run: echo "timestamp=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_OUTPUT
- name: ccache
# don't use ccache for debug builds
if: matrix.config.build == 'Release'
id: ccache
uses: actions/cache@v2
uses: actions/cache@v3
with:
path: /tmp/ccache
key: linux-ax${{ matrix.config.image }}-${{ matrix.config.cxx }}-${{ steps.timestamp.outputs.timestamp }}
Expand All @@ -105,7 +108,6 @@ jobs:
# Keep ccache light by stripping out any caches not accessed in the last day
- name: ccache_clean
if: matrix.config.build == 'Release'
shell: bash
run: ccache --evict-older-than 1d

macos-ax:
Expand All @@ -121,14 +123,14 @@ jobs:
matrix:
config:
#@note llvm10 never got its own brew formula...
- { runner: 'macos-11', cxx: 'clang++', build: 'Release', llvm: '11' }
- { runner: 'macos-11', cxx: 'clang++', build: 'Release', llvm: '12' }
- { runner: 'macos-11', cxx: 'clang++', build: 'Release', llvm: '13' }
- { runner: 'macos-latest', cxx: 'clang++', build: 'Release', llvm: '11' }
- { runner: 'macos-latest', cxx: 'clang++', build: 'Release', llvm: '12' }
- { runner: 'macos-latest', cxx: 'clang++', build: 'Release', llvm: '13' }
fail-fast: false
steps:
- uses: actions/checkout@v3
- name: install_deps
run: ./ci/install_macos_ax.sh ${{ matrix.config.llvm }}
run: ./ci/install_macos.sh ${{ matrix.config.llvm }}
- name: build
run: >
./ci/build.sh -v
Expand Down
25 changes: 8 additions & 17 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -77,15 +77,13 @@ jobs:
# @note we specifically use clang15.0 (not clang15) here as the newest
# versions of the clang15.X containers have some issues with the GLFW
# installation
- { cxx: clang++, image: '2023-clang15.0', abi: '10', build: 'Release', cmake: '' }
- { cxx: g++, image: '2023-clang15.0', abi: '10', build: 'Release', cmake: '' }
- { cxx: clang++, image: '2023-clang15.0', abi: '11', build: 'Release', cmake: '' }
- { cxx: g++, image: '2023-clang15.0', abi: '11', build: 'Release', cmake: '' }
- { cxx: clang++, image: '2022-clang11', abi: '11', build: 'Debug', cmake: '' }
- { cxx: clang++, image: '2022-clang11', abi: '10', build: 'Release', cmake: '' }
- { cxx: clang++, image: '2022-clang11', abi: '10', build: 'Debug' , cmake: '' }
- { cxx: g++, image: '2022-clang11', abi: '10', build: 'Release', cmake: '' }
- { cxx: clang++, image: '2022-clang11', abi: '9', build: 'Release', cmake: '' }
- { cxx: g++, image: '2022-clang11', abi: '9', build: 'Release', cmake: '' }
- { cxx: clang++, image: '2021', abi: '8', build: 'Release', cmake: '-DDISABLE_DEPENDENCY_VERSION_CHECKS=ON' }
- { cxx: g++, image: '2021', abi: '8', build: 'Release', cmake: '-DDISABLE_DEPENDENCY_VERSION_CHECKS=ON' }
- { cxx: clang++, image: '2022-clang11', abi: '9', build: 'Release', cmake: '-DDISABLE_DEPENDENCY_VERSION_CHECKS=ON' }
- { cxx: g++, image: '2022-clang11', abi: '9', build: 'Release', cmake: '-DDISABLE_DEPENDENCY_VERSION_CHECKS=ON' }
fail-fast: false
steps:
- uses: actions/checkout@v3
Expand All @@ -94,12 +92,12 @@ jobs:
run: ./ci/install_pybind11.sh 2.10.0
- name: timestamp
id: timestamp
run: echo "::set-output name=timestamp::`date -u +'%Y-%m-%dT%H:%M:%SZ'`"
run: echo "timestamp=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_OUTPUT
- name: ccache
# don't use ccache for debug builds
if: matrix.config.build == 'Release'
id: ccache
uses: actions/cache@v2
uses: actions/cache@v3
with:
path: /tmp/ccache
key: linux-vfx${{ matrix.config.image }}-abi${{ matrix.config.abi }}-${{ matrix.config.cxx }}-${{ steps.timestamp.outputs.timestamp }}
Expand Down Expand Up @@ -188,24 +186,17 @@ jobs:
github.event_name != 'workflow_dispatch' ||
github.event.inputs.type == 'all' ||
github.event.inputs.type == 'mac'
runs-on: macos-11
runs-on: macos-latest
env:
CXX: clang++
steps:
- uses: actions/checkout@v3
- name: install
# brew boost-python3 installs a "Keg-only" version of python which is
# not installed to PATH. We must manually provide the location of the
# required python installation to CMake through a hint variable which
# is exported in install_macos.sh
run: ./ci/install_macos.sh
- name: build
# Also need to disable compiler warnings for ABI 6 and above due to
# the version of clang installed
run: >
./ci/build.sh -v
--build-type=Release
--components=\"core,python,bin,view,render,test\"
--cargs=\"-DOPENVDB_CXX_STRICT=OFF -DOPENVDB_ABI_VERSION_NUMBER=10 -DOPENVDB_SIMD=SSE42\"
- name: test
run: cd build && ctest -V
4 changes: 1 addition & 3 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -105,13 +105,11 @@ jobs:
github.event.inputs.deploy == 'coverage'
runs-on: ubuntu-latest
container:
image: aswf/ci-openvdb:2022
image: aswf/ci-openvdb:2023
env:
CXX: g++
steps:
- uses: actions/checkout@v3
- name: install_gtest
run: ./ci/install_gtest.sh 1.10.0
- name: install_gcovr
run: pip install gcovr
- name: build
Expand Down
24 changes: 12 additions & 12 deletions .github/workflows/houdini.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,10 @@ concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

defaults:
run:
shell: bash

jobs:
checksecret:
# Check that valid github secrets have been set. This isn't needed to retrieve
Expand All @@ -49,7 +53,7 @@ jobs:
env:
HOUDINI_CLIENT_ID: ${{ secrets.HOUDINI_CLIENT_ID }}
HOUDINI_SECRET_KEY: ${{ secrets.HOUDINI_SECRET_KEY }}
run: echo "::set-output name=HOUDINI_SECRETS::${{ env.HOUDINI_CLIENT_ID != '' && env.HOUDINI_SECRET_KEY != '' }}"
run: echo "HOUDINI_SECRETS=${{ env.HOUDINI_CLIENT_ID != '' && env.HOUDINI_SECRET_KEY != '' }}" >> $GITHUB_OUTPUT
- name: Skip Next Jobs
if: steps.check.outputs.HOUDINI_SECRETS != 'true'
run: echo "HOUDINI_CLIENT_ID and HOUDINI_SECRET_KEY GitHub Action Secrets needs to be set to install Houdini builds"
Expand All @@ -69,11 +73,10 @@ jobs:
strategy:
matrix:
config:
- { cxx: clang++, image: '2021', hou: '19_5', j: '8', build: 'Release', components: 'core,hou,bin,view,render,python,test,axcore,axbin,axtest', disable_checks: 'OFF' }
# Houdini 19 is technically on VFX 2020, but we need 2021 dependencies for VDB 10
- { cxx: clang++, image: '2021', hou: '19_0', j: '8', build: 'Release', components: 'core,hou,bin,view,render,python,test,axcore,axbin,axtest', disable_checks: 'ON' }
- { cxx: clang++, image: '2021', hou: '19_5', j: '8', build: 'Debug', components: 'core,hou', disable_checks: 'OFF' }
- { cxx: g++, image: '2021', hou: '19_5', j: '8', build: 'Release', components: 'core,hou', disable_checks: 'OFF' }
#- { cxx: clang++, image: '2022', hou: '20_0', build: 'Release', components: 'core,hou,bin,view,render,python,test,axcore,axbin,axtest' }
- { cxx: clang++, image: '2021', hou: '19_5', build: 'Release', components: 'core,hou,bin,view,render,python,test,axcore,axbin,axtest' }
#- { cxx: clang++, image: '2022', hou: '20_0', build: 'Debug', components: 'core,hou' }
#- { cxx: g++, image: '2022', hou: '20_0', build: 'Release', components: 'core,hou' }
fail-fast: false
steps:
- uses: actions/checkout@v3
Expand All @@ -82,19 +85,18 @@ jobs:
run: ./ci/install_pybind11.sh 2.10.0
- name: timestamp
id: timestamp
shell: bash
run: echo "::set-output name=timestamp::`date -u +'%Y-%m-%dT%H:%M:%SZ'`"
run: echo "timestamp=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_OUTPUT
- name: ccache
# don't use ccache for debug builds
if: matrix.config.build == 'Release'
id: ccache
uses: actions/cache@v2
uses: actions/cache@v3
with:
path: /tmp/ccache
key: linux-vfx-hou${{ matrix.config.hou }}-${{ matrix.config.image }}-${{ matrix.config.cxx }}-${{ steps.timestamp.outputs.timestamp }}
restore-keys: linux-vfx-hou${{ matrix.config.hou }}-${{ matrix.config.image }}-${{ matrix.config.cxx }}-
- name: fetch_houdini
uses: actions/cache@v2
uses: actions/cache@v3
with:
path: hou
key: dummy-houdini${{ matrix.config.hou }}-${{ steps.timestamp.outputs.timestamp }}
Expand All @@ -110,7 +112,6 @@ jobs:
cp hou/hou.tar.gz $HOME/houdini_install/hou.tar.gz
cd $HOME/houdini_install && tar -xzf hou.tar.gz && cd -
- name: build
shell: bash
run: |
export HFS="$HOME/houdini_install/hou"
export HDSO="${HFS}/dsolib"
Expand All @@ -121,7 +122,6 @@ jobs:
# Keep ccache light by stripping out any caches not accessed in the last day
- name: ccache_clean
if: matrix.config.build == 'Release'
shell: bash
run: ccache --evict-older-than 1d
# Delete the houdini tarball so that this dummy cache occupies no space
- name: delete_hou
Expand Down
17 changes: 8 additions & 9 deletions .github/workflows/weekly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ jobs:
env:
HOUDINI_CLIENT_ID: ${{ secrets.HOUDINI_CLIENT_ID }}
HOUDINI_SECRET_KEY: ${{ secrets.HOUDINI_SECRET_KEY }}
run: echo "::set-output name=HOUDINI_SECRETS::${{ env.HOUDINI_CLIENT_ID != '' && env.HOUDINI_SECRET_KEY != '' }}"
run: echo "HOUDINI_SECRETS=${{ env.HOUDINI_CLIENT_ID != '' && env.HOUDINI_SECRET_KEY != '' }}" >> $GITHUB_OUTPUT
- name: Skip Next Jobs
if: steps.check.outputs.HOUDINI_SECRETS != 'true'
run: echo "HOUDINI_CLIENT_ID and HOUDINI_SECRET_KEY GitHub Action Secrets needs to be set to install Houdini builds"
Expand All @@ -67,16 +67,16 @@ jobs:
strategy:
matrix:
config:
- { houdini_version: '19.0', houdini_version_str: '19_0' }
- { houdini_version: '19.5', houdini_version_str: '19_5' }
#- { houdini_version: '20.0', houdini_version_str: '20_0' }
fail-fast: false
container:
image: aswf/ci-base:2023
steps:
- uses: actions/checkout@v3
- name: timestamp
id: timestamp
run: echo "::set-output name=timestamp::`date -u +'%Y-%m-%dT%H:%M:%SZ'`"
run: echo "timestamp=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_OUTPUT
- name: download_houdini
run: ./ci/download_houdini.sh ${{ matrix.config.houdini_version }} ON
- name: install_houdini
Expand All @@ -85,7 +85,7 @@ jobs:
cp hou/hou.tar.gz $HOME/houdini_install/hou.tar.gz
cd $HOME/houdini_install && tar -xzf hou.tar.gz && cd -
- name: write_houdini_cache
uses: actions/cache@v2
uses: actions/cache@v3
with:
path: hou
key: vdb-v5-houdini${{ matrix.config.houdini_version_str }}-${{ steps.timestamp.outputs.timestamp }}
Expand All @@ -104,7 +104,7 @@ jobs:
runs-on: ${{ (github.repository_owner == 'AcademySoftwareFoundation' && 'ubuntu-20.04-8c-32g-300h') || 'ubuntu-latest' }}
name: linux-extra:${{ matrix.config.name }}
container:
image: aswf/ci-openvdb:2022-clang14
image: aswf/ci-openvdb:2023-clang15
env:
CXX: clang++
strategy:
Expand Down Expand Up @@ -158,8 +158,7 @@ jobs:
if [ "$RUNNER_OS" == "Linux" ]; then
sudo apt-get -q install -y libboost-dev libboost-iostreams-dev libtbb-dev libblosc-dev llvm-dev libgtest-dev libcppunit-dev pybind11-dev
elif [ "$RUNNER_OS" == "macOS" ]; then
./ci/install_macos_ax.sh 15
brew install googletest
./ci/install_macos.sh 15
else
echo "$RUNNER_OS not supported"; exit 1
fi
Expand Down Expand Up @@ -243,7 +242,7 @@ jobs:
github.event_name != 'workflow_dispatch' ||
github.event.inputs.type == 'all' ||
github.event.inputs.type == 'ax'
runs-on: macos-11
runs-on: macos-latest
name: macos-cxx:${{ matrix.config.cxx }}-llvm:${{ matrix.config.llvm }}-${{ matrix.config.build }}
env:
CXX: ${{ matrix.config.cxx }}
Expand All @@ -257,7 +256,7 @@ jobs:
steps:
- uses: actions/checkout@v3
- name: install_deps
run: ./ci/install_macos_ax.sh ${{ matrix.config.llvm }}
run: ./ci/install_macos.sh ${{ matrix.config.llvm }}
- name: build
run: >
./ci/build.sh -v
Expand Down
12 changes: 12 additions & 0 deletions CHANGES
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
OpenVDB Version History
=======================

Version 11.0.0 - In Progress

This version introduces ABI changes relative to older major releases,
so to preserve ABI compatibility it might be necessary to define the
macro OPENVDB_ABI_VERSION_NUMBER=N, where, for example, N is 9 for
Houdini 19.5 and 10 for Houdini 20.0.

Version 10.1.0 - October 11, 2023

Highlights:
Expand Down Expand Up @@ -118,6 +125,11 @@ Version 10.0.1 - November 30, 2022

Version 10.0.0 - October 27, 2022

This version introduces ABI changes relative to older major releases,
so to preserve ABI compatibility it might be necessary to define the
macro OPENVDB_ABI_VERSION_NUMBER=N, where, for example, N is 8 for
Houdini 19.0 and 9 for Houdini 19.5.

Highlights:
- Introducing OpenVDBLink, which provides a Mathematica interface to
OpenVDB. This link ports over access to various grid containers including
Expand Down
11 changes: 4 additions & 7 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@ endif()

###### Version

set(OpenVDB_MAJOR_VERSION 10)
set(OpenVDB_MINOR_VERSION 1)
set(OpenVDB_MAJOR_VERSION 11)
set(OpenVDB_MINOR_VERSION 0)
set(OpenVDB_PATCH_VERSION 0)
set(OpenVDB_VERSION "${OpenVDB_MAJOR_VERSION}.${OpenVDB_MINOR_VERSION}.${OpenVDB_PATCH_VERSION}")

Expand Down Expand Up @@ -89,8 +89,8 @@ cmake_dependent_option(OPENVDB_INSTALL_CMAKE_MODULES

option(USE_HOUDINI [=[
Build the library against a Houdini installation. Turns on automatically if OPENVDB_BUILD_HOUDINI_PLUGIN is enabled.
When enabled, you do not need to provide dependency locations for TBB, Blosc, IlmBase and OpenEXR. Boost must be
provided. IlmBase/OpenEXR can optionally be provided if Houdini Version >= 17.5.]=] OFF)
When enabled, you do not need to provide dependency locations for TBB, Blosc, Imath and OpenEXR. Boost must be
provided. Imath/OpenEXR can optionally be provided.]=] OFF)
option(USE_MAYA [=[
Build the library against a Maya installation. Turns on automatically if OPENVDB_BUILD_MAYA_PLUGIN is enabled.
When enabled, you do not need to provide dependency locations for TBB. All other dependencies must be provided.]=] OFF)
Expand Down Expand Up @@ -281,13 +281,11 @@ enable_testing()
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")

# Add cmake modules to installation command
# @todo fix our glew cmake module

if(OPENVDB_INSTALL_CMAKE_MODULES)
set(OPENVDB_CMAKE_MODULES
cmake/FindBlosc.cmake
cmake/FindJemalloc.cmake
cmake/FindIlmBase.cmake
cmake/FindLog4cplus.cmake
cmake/FindOpenEXR.cmake
cmake/FindOpenVDB.cmake
Expand Down Expand Up @@ -406,7 +404,6 @@ endif()
if(USE_STATIC_DEPENDENCIES)
set(BLOSC_USE_STATIC_LIBS ON)
set(OPENEXR_USE_STATIC_LIBS ON)
set(ILMBASE_USE_STATIC_LIBS ON)
set(TBB_USE_STATIC_LIBS ON)
set(LOG4CPLUS_USE_STATIC_LIBS ON)
set(JEMALLOC_USE_STATIC_LIBS ON)
Expand Down
Loading

0 comments on commit 9876cdf

Please sign in to comment.