Skip to content

Commit c00c7f6

Browse files
authored
Merge pull request #1684 from Idclip/vdb_11
Infrastructure changes for VDB 11
2 parents f2e0bac + 9876cdf commit c00c7f6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+233
-988
lines changed

.github/workflows/ax.yml

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,10 @@ concurrency:
4343
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
4444
cancel-in-progress: true
4545

46+
defaults:
47+
run:
48+
shell: bash
49+
4650
jobs:
4751
linux-ax:
4852
if: |
@@ -63,7 +67,7 @@ jobs:
6367
config:
6468
- { image: '2023-clang15', cxx: 'clang++', build: 'Release', cmake: '' }
6569
- { image: '2023-clang15', cxx: 'g++', build: 'Release', cmake: '' }
66-
- { image: '2022-clang11', cxx: 'clang++', build: 'Debug', cmake: '' }
70+
- { image: '2023-clang15', cxx: 'clang++', build: 'Debug', cmake: '' }
6771
- { image: '2022-clang11', cxx: 'clang++', build: 'Release', cmake: '' }
6872
- { image: '2022-clang11', cxx: 'g++', build: 'Release', cmake: '' }
6973
- { image: '2021-clang10', cxx: 'clang++', build: 'Release', cmake: '-DDISABLE_DEPENDENCY_VERSION_CHECKS=ON' }
@@ -76,13 +80,12 @@ jobs:
7680
run: ./ci/install_pybind11.sh 2.10.0
7781
- name: timestamp
7882
id: timestamp
79-
shell: bash
80-
run: echo "::set-output name=timestamp::`date -u +'%Y-%m-%dT%H:%M:%SZ'`"
83+
run: echo "timestamp=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_OUTPUT
8184
- name: ccache
8285
# don't use ccache for debug builds
8386
if: matrix.config.build == 'Release'
8487
id: ccache
85-
uses: actions/cache@v2
88+
uses: actions/cache@v3
8689
with:
8790
path: /tmp/ccache
8891
key: linux-ax${{ matrix.config.image }}-${{ matrix.config.cxx }}-${{ steps.timestamp.outputs.timestamp }}
@@ -105,7 +108,6 @@ jobs:
105108
# Keep ccache light by stripping out any caches not accessed in the last day
106109
- name: ccache_clean
107110
if: matrix.config.build == 'Release'
108-
shell: bash
109111
run: ccache --evict-older-than 1d
110112

111113
macos-ax:
@@ -121,14 +123,14 @@ jobs:
121123
matrix:
122124
config:
123125
#@note llvm10 never got its own brew formula...
124-
- { runner: 'macos-11', cxx: 'clang++', build: 'Release', llvm: '11' }
125-
- { runner: 'macos-11', cxx: 'clang++', build: 'Release', llvm: '12' }
126-
- { runner: 'macos-11', cxx: 'clang++', build: 'Release', llvm: '13' }
126+
- { runner: 'macos-latest', cxx: 'clang++', build: 'Release', llvm: '11' }
127+
- { runner: 'macos-latest', cxx: 'clang++', build: 'Release', llvm: '12' }
128+
- { runner: 'macos-latest', cxx: 'clang++', build: 'Release', llvm: '13' }
127129
fail-fast: false
128130
steps:
129131
- uses: actions/checkout@v3
130132
- name: install_deps
131-
run: ./ci/install_macos_ax.sh ${{ matrix.config.llvm }}
133+
run: ./ci/install_macos.sh ${{ matrix.config.llvm }}
132134
- name: build
133135
run: >
134136
./ci/build.sh -v

.github/workflows/build.yml

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -77,15 +77,13 @@ jobs:
7777
# @note we specifically use clang15.0 (not clang15) here as the newest
7878
# versions of the clang15.X containers have some issues with the GLFW
7979
# installation
80-
- { cxx: clang++, image: '2023-clang15.0', abi: '10', build: 'Release', cmake: '' }
81-
- { cxx: g++, image: '2023-clang15.0', abi: '10', build: 'Release', cmake: '' }
80+
- { cxx: clang++, image: '2023-clang15.0', abi: '11', build: 'Release', cmake: '' }
81+
- { cxx: g++, image: '2023-clang15.0', abi: '11', build: 'Release', cmake: '' }
82+
- { cxx: clang++, image: '2022-clang11', abi: '11', build: 'Debug', cmake: '' }
8283
- { cxx: clang++, image: '2022-clang11', abi: '10', build: 'Release', cmake: '' }
83-
- { cxx: clang++, image: '2022-clang11', abi: '10', build: 'Debug' , cmake: '' }
8484
- { cxx: g++, image: '2022-clang11', abi: '10', build: 'Release', cmake: '' }
85-
- { cxx: clang++, image: '2022-clang11', abi: '9', build: 'Release', cmake: '' }
86-
- { cxx: g++, image: '2022-clang11', abi: '9', build: 'Release', cmake: '' }
87-
- { cxx: clang++, image: '2021', abi: '8', build: 'Release', cmake: '-DDISABLE_DEPENDENCY_VERSION_CHECKS=ON' }
88-
- { cxx: g++, image: '2021', abi: '8', build: 'Release', cmake: '-DDISABLE_DEPENDENCY_VERSION_CHECKS=ON' }
85+
- { cxx: clang++, image: '2022-clang11', abi: '9', build: 'Release', cmake: '-DDISABLE_DEPENDENCY_VERSION_CHECKS=ON' }
86+
- { cxx: g++, image: '2022-clang11', abi: '9', build: 'Release', cmake: '-DDISABLE_DEPENDENCY_VERSION_CHECKS=ON' }
8987
fail-fast: false
9088
steps:
9189
- uses: actions/checkout@v3
@@ -94,12 +92,12 @@ jobs:
9492
run: ./ci/install_pybind11.sh 2.10.0
9593
- name: timestamp
9694
id: timestamp
97-
run: echo "::set-output name=timestamp::`date -u +'%Y-%m-%dT%H:%M:%SZ'`"
95+
run: echo "timestamp=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_OUTPUT
9896
- name: ccache
9997
# don't use ccache for debug builds
10098
if: matrix.config.build == 'Release'
10199
id: ccache
102-
uses: actions/cache@v2
100+
uses: actions/cache@v3
103101
with:
104102
path: /tmp/ccache
105103
key: linux-vfx${{ matrix.config.image }}-abi${{ matrix.config.abi }}-${{ matrix.config.cxx }}-${{ steps.timestamp.outputs.timestamp }}
@@ -188,24 +186,17 @@ jobs:
188186
github.event_name != 'workflow_dispatch' ||
189187
github.event.inputs.type == 'all' ||
190188
github.event.inputs.type == 'mac'
191-
runs-on: macos-11
189+
runs-on: macos-latest
192190
env:
193191
CXX: clang++
194192
steps:
195193
- uses: actions/checkout@v3
196194
- name: install
197-
# brew boost-python3 installs a "Keg-only" version of python which is
198-
# not installed to PATH. We must manually provide the location of the
199-
# required python installation to CMake through a hint variable which
200-
# is exported in install_macos.sh
201195
run: ./ci/install_macos.sh
202196
- name: build
203-
# Also need to disable compiler warnings for ABI 6 and above due to
204-
# the version of clang installed
205197
run: >
206198
./ci/build.sh -v
207199
--build-type=Release
208200
--components=\"core,python,bin,view,render,test\"
209-
--cargs=\"-DOPENVDB_CXX_STRICT=OFF -DOPENVDB_ABI_VERSION_NUMBER=10 -DOPENVDB_SIMD=SSE42\"
210201
- name: test
211202
run: cd build && ctest -V

.github/workflows/docs.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,13 +105,11 @@ jobs:
105105
github.event.inputs.deploy == 'coverage'
106106
runs-on: ubuntu-latest
107107
container:
108-
image: aswf/ci-openvdb:2022
108+
image: aswf/ci-openvdb:2023
109109
env:
110110
CXX: g++
111111
steps:
112112
- uses: actions/checkout@v3
113-
- name: install_gtest
114-
run: ./ci/install_gtest.sh 1.10.0
115113
- name: install_gcovr
116114
run: pip install gcovr
117115
- name: build

.github/workflows/houdini.yml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ concurrency:
3636
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
3737
cancel-in-progress: true
3838

39+
defaults:
40+
run:
41+
shell: bash
42+
3943
jobs:
4044
checksecret:
4145
# Check that valid github secrets have been set. This isn't needed to retrieve
@@ -49,7 +53,7 @@ jobs:
4953
env:
5054
HOUDINI_CLIENT_ID: ${{ secrets.HOUDINI_CLIENT_ID }}
5155
HOUDINI_SECRET_KEY: ${{ secrets.HOUDINI_SECRET_KEY }}
52-
run: echo "::set-output name=HOUDINI_SECRETS::${{ env.HOUDINI_CLIENT_ID != '' && env.HOUDINI_SECRET_KEY != '' }}"
56+
run: echo "HOUDINI_SECRETS=${{ env.HOUDINI_CLIENT_ID != '' && env.HOUDINI_SECRET_KEY != '' }}" >> $GITHUB_OUTPUT
5357
- name: Skip Next Jobs
5458
if: steps.check.outputs.HOUDINI_SECRETS != 'true'
5559
run: echo "HOUDINI_CLIENT_ID and HOUDINI_SECRET_KEY GitHub Action Secrets needs to be set to install Houdini builds"
@@ -69,11 +73,10 @@ jobs:
6973
strategy:
7074
matrix:
7175
config:
72-
- { 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' }
73-
# Houdini 19 is technically on VFX 2020, but we need 2021 dependencies for VDB 10
74-
- { 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' }
75-
- { cxx: clang++, image: '2021', hou: '19_5', j: '8', build: 'Debug', components: 'core,hou', disable_checks: 'OFF' }
76-
- { cxx: g++, image: '2021', hou: '19_5', j: '8', build: 'Release', components: 'core,hou', disable_checks: 'OFF' }
76+
#- { cxx: clang++, image: '2022', hou: '20_0', build: 'Release', components: 'core,hou,bin,view,render,python,test,axcore,axbin,axtest' }
77+
- { cxx: clang++, image: '2021', hou: '19_5', build: 'Release', components: 'core,hou,bin,view,render,python,test,axcore,axbin,axtest' }
78+
#- { cxx: clang++, image: '2022', hou: '20_0', build: 'Debug', components: 'core,hou' }
79+
#- { cxx: g++, image: '2022', hou: '20_0', build: 'Release', components: 'core,hou' }
7780
fail-fast: false
7881
steps:
7982
- uses: actions/checkout@v3
@@ -82,19 +85,18 @@ jobs:
8285
run: ./ci/install_pybind11.sh 2.10.0
8386
- name: timestamp
8487
id: timestamp
85-
shell: bash
86-
run: echo "::set-output name=timestamp::`date -u +'%Y-%m-%dT%H:%M:%SZ'`"
88+
run: echo "timestamp=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_OUTPUT
8789
- name: ccache
8890
# don't use ccache for debug builds
8991
if: matrix.config.build == 'Release'
9092
id: ccache
91-
uses: actions/cache@v2
93+
uses: actions/cache@v3
9294
with:
9395
path: /tmp/ccache
9496
key: linux-vfx-hou${{ matrix.config.hou }}-${{ matrix.config.image }}-${{ matrix.config.cxx }}-${{ steps.timestamp.outputs.timestamp }}
9597
restore-keys: linux-vfx-hou${{ matrix.config.hou }}-${{ matrix.config.image }}-${{ matrix.config.cxx }}-
9698
- name: fetch_houdini
97-
uses: actions/cache@v2
99+
uses: actions/cache@v3
98100
with:
99101
path: hou
100102
key: dummy-houdini${{ matrix.config.hou }}-${{ steps.timestamp.outputs.timestamp }}
@@ -110,7 +112,6 @@ jobs:
110112
cp hou/hou.tar.gz $HOME/houdini_install/hou.tar.gz
111113
cd $HOME/houdini_install && tar -xzf hou.tar.gz && cd -
112114
- name: build
113-
shell: bash
114115
run: |
115116
export HFS="$HOME/houdini_install/hou"
116117
export HDSO="${HFS}/dsolib"
@@ -121,7 +122,6 @@ jobs:
121122
# Keep ccache light by stripping out any caches not accessed in the last day
122123
- name: ccache_clean
123124
if: matrix.config.build == 'Release'
124-
shell: bash
125125
run: ccache --evict-older-than 1d
126126
# Delete the houdini tarball so that this dummy cache occupies no space
127127
- name: delete_hou

.github/workflows/weekly.yml

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ jobs:
4242
env:
4343
HOUDINI_CLIENT_ID: ${{ secrets.HOUDINI_CLIENT_ID }}
4444
HOUDINI_SECRET_KEY: ${{ secrets.HOUDINI_SECRET_KEY }}
45-
run: echo "::set-output name=HOUDINI_SECRETS::${{ env.HOUDINI_CLIENT_ID != '' && env.HOUDINI_SECRET_KEY != '' }}"
45+
run: echo "HOUDINI_SECRETS=${{ env.HOUDINI_CLIENT_ID != '' && env.HOUDINI_SECRET_KEY != '' }}" >> $GITHUB_OUTPUT
4646
- name: Skip Next Jobs
4747
if: steps.check.outputs.HOUDINI_SECRETS != 'true'
4848
run: echo "HOUDINI_CLIENT_ID and HOUDINI_SECRET_KEY GitHub Action Secrets needs to be set to install Houdini builds"
@@ -67,16 +67,16 @@ jobs:
6767
strategy:
6868
matrix:
6969
config:
70-
- { houdini_version: '19.0', houdini_version_str: '19_0' }
7170
- { houdini_version: '19.5', houdini_version_str: '19_5' }
71+
#- { houdini_version: '20.0', houdini_version_str: '20_0' }
7272
fail-fast: false
7373
container:
7474
image: aswf/ci-base:2023
7575
steps:
7676
- uses: actions/checkout@v3
7777
- name: timestamp
7878
id: timestamp
79-
run: echo "::set-output name=timestamp::`date -u +'%Y-%m-%dT%H:%M:%SZ'`"
79+
run: echo "timestamp=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_OUTPUT
8080
- name: download_houdini
8181
run: ./ci/download_houdini.sh ${{ matrix.config.houdini_version }} ON
8282
- name: install_houdini
@@ -85,7 +85,7 @@ jobs:
8585
cp hou/hou.tar.gz $HOME/houdini_install/hou.tar.gz
8686
cd $HOME/houdini_install && tar -xzf hou.tar.gz && cd -
8787
- name: write_houdini_cache
88-
uses: actions/cache@v2
88+
uses: actions/cache@v3
8989
with:
9090
path: hou
9191
key: vdb-v5-houdini${{ matrix.config.houdini_version_str }}-${{ steps.timestamp.outputs.timestamp }}
@@ -104,7 +104,7 @@ jobs:
104104
runs-on: ${{ (github.repository_owner == 'AcademySoftwareFoundation' && 'ubuntu-20.04-8c-32g-300h') || 'ubuntu-latest' }}
105105
name: linux-extra:${{ matrix.config.name }}
106106
container:
107-
image: aswf/ci-openvdb:2022-clang14
107+
image: aswf/ci-openvdb:2023-clang15
108108
env:
109109
CXX: clang++
110110
strategy:
@@ -158,8 +158,7 @@ jobs:
158158
if [ "$RUNNER_OS" == "Linux" ]; then
159159
sudo apt-get -q install -y libboost-dev libboost-iostreams-dev libtbb-dev libblosc-dev llvm-dev libgtest-dev libcppunit-dev pybind11-dev
160160
elif [ "$RUNNER_OS" == "macOS" ]; then
161-
./ci/install_macos_ax.sh 15
162-
brew install googletest
161+
./ci/install_macos.sh 15
163162
else
164163
echo "$RUNNER_OS not supported"; exit 1
165164
fi
@@ -243,7 +242,7 @@ jobs:
243242
github.event_name != 'workflow_dispatch' ||
244243
github.event.inputs.type == 'all' ||
245244
github.event.inputs.type == 'ax'
246-
runs-on: macos-11
245+
runs-on: macos-latest
247246
name: macos-cxx:${{ matrix.config.cxx }}-llvm:${{ matrix.config.llvm }}-${{ matrix.config.build }}
248247
env:
249248
CXX: ${{ matrix.config.cxx }}
@@ -257,7 +256,7 @@ jobs:
257256
steps:
258257
- uses: actions/checkout@v3
259258
- name: install_deps
260-
run: ./ci/install_macos_ax.sh ${{ matrix.config.llvm }}
259+
run: ./ci/install_macos.sh ${{ matrix.config.llvm }}
261260
- name: build
262261
run: >
263262
./ci/build.sh -v

CHANGES

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
OpenVDB Version History
22
=======================
33

4+
Version 11.0.0 - In Progress
5+
6+
This version introduces ABI changes relative to older major releases,
7+
so to preserve ABI compatibility it might be necessary to define the
8+
macro OPENVDB_ABI_VERSION_NUMBER=N, where, for example, N is 9 for
9+
Houdini 19.5 and 10 for Houdini 20.0.
10+
411
Version 10.1.0 - October 11, 2023
512

613
Highlights:
@@ -118,6 +125,11 @@ Version 10.0.1 - November 30, 2022
118125

119126
Version 10.0.0 - October 27, 2022
120127

128+
This version introduces ABI changes relative to older major releases,
129+
so to preserve ABI compatibility it might be necessary to define the
130+
macro OPENVDB_ABI_VERSION_NUMBER=N, where, for example, N is 8 for
131+
Houdini 19.0 and 9 for Houdini 19.5.
132+
121133
Highlights:
122134
- Introducing OpenVDBLink, which provides a Mathematica interface to
123135
OpenVDB. This link ports over access to various grid containers including

CMakeLists.txt

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ endif()
5252

5353
###### Version
5454

55-
set(OpenVDB_MAJOR_VERSION 10)
56-
set(OpenVDB_MINOR_VERSION 1)
55+
set(OpenVDB_MAJOR_VERSION 11)
56+
set(OpenVDB_MINOR_VERSION 0)
5757
set(OpenVDB_PATCH_VERSION 0)
5858
set(OpenVDB_VERSION "${OpenVDB_MAJOR_VERSION}.${OpenVDB_MINOR_VERSION}.${OpenVDB_PATCH_VERSION}")
5959

@@ -89,8 +89,8 @@ cmake_dependent_option(OPENVDB_INSTALL_CMAKE_MODULES
8989

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

283283
# Add cmake modules to installation command
284-
# @todo fix our glew cmake module
285284

286285
if(OPENVDB_INSTALL_CMAKE_MODULES)
287286
set(OPENVDB_CMAKE_MODULES
288287
cmake/FindBlosc.cmake
289288
cmake/FindJemalloc.cmake
290-
cmake/FindIlmBase.cmake
291289
cmake/FindLog4cplus.cmake
292290
cmake/FindOpenEXR.cmake
293291
cmake/FindOpenVDB.cmake
@@ -406,7 +404,6 @@ endif()
406404
if(USE_STATIC_DEPENDENCIES)
407405
set(BLOSC_USE_STATIC_LIBS ON)
408406
set(OPENEXR_USE_STATIC_LIBS ON)
409-
set(ILMBASE_USE_STATIC_LIBS ON)
410407
set(TBB_USE_STATIC_LIBS ON)
411408
set(LOG4CPLUS_USE_STATIC_LIBS ON)
412409
set(JEMALLOC_USE_STATIC_LIBS ON)

0 commit comments

Comments
 (0)