Skip to content

Commit 82ec5a0

Browse files
authored
Merge branch 'feature/boost_numeric' into remove_boost_promote
Signed-off-by: Dan Bailey <[email protected]>
2 parents 480d864 + 5331ae5 commit 82ec5a0

File tree

331 files changed

+25802
-21177
lines changed

Some content is hidden

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

331 files changed

+25802
-21177
lines changed

.github/workflows/ax.yml

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,10 @@ jobs:
7474
- { image: '2021-clang10', cxx: 'g++', build: 'Release', cmake: '-DDISABLE_DEPENDENCY_VERSION_CHECKS=ON' }
7575
fail-fast: false
7676
steps:
77+
- name: Enable Node 16
78+
if: contains(matrix.config.image, '2021') || contains(matrix.config.image, '2022')
79+
run: |
80+
echo "ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true" >> $GITHUB_ENV
7781
- uses: actions/checkout@v3
7882
- name: pybind11
7983
#if: contains(matrix.config.image, '2023') == false
@@ -123,14 +127,16 @@ jobs:
123127
matrix:
124128
config:
125129
#@note llvm10 never got its own brew formula...
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' }
130+
# Last macos runner befor M1 (macos-14)
131+
- { runner: 'macos-13', cxx: 'clang++', build: 'Release', llvm: '12' }
132+
- { runner: 'macos-13', cxx: 'clang++', build: 'Release', llvm: '13' }
129133
fail-fast: false
130134
steps:
131135
- uses: actions/checkout@v3
132136
- name: install_deps
133-
run: ./ci/install_macos.sh ${{ matrix.config.llvm }}
137+
run: |
138+
./ci/install_macos.sh ${{ matrix.config.llvm }}
139+
./ci/install_tbb_macos.sh
134140
- name: build
135141
run: >
136142
./ci/build.sh -v
@@ -139,7 +145,8 @@ jobs:
139145
--cargs=\"
140146
-DOPENVDB_AX_TEST_CMD_DOWNLOADS=ON
141147
-DUSE_EXPLICIT_INSTANTIATION=OFF
142-
-DLLVM_DIR=/usr/local/opt/llvm@${{ matrix.config.llvm }}/lib/cmake/llvm
148+
-DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/install
149+
-DLLVM_DIR=/opt/homebrew/opt/llvm@${{ matrix.config.llvm }}/lib/cmake/llvm
143150
\"
144151
- name: test
145152
run: cd build && ctest -V

.github/workflows/build.yml

Lines changed: 21 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,11 @@ jobs:
8686
- { cxx: g++, image: '2022-clang11', abi: '9', build: 'Release', cmake: '-DDISABLE_DEPENDENCY_VERSION_CHECKS=ON' }
8787
fail-fast: false
8888
steps:
89+
- name: Enable Node 16
90+
# Solution taken from https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default
91+
if: contains(matrix.config.image, '2022')
92+
run: |
93+
echo "ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true" >> $GITHUB_ENV
8994
- uses: actions/checkout@v3
9095
- name: pybind11
9196
#if: contains(matrix.config.image, '2023') == false
@@ -125,47 +130,34 @@ jobs:
125130
run: ccache --evict-older-than 1d
126131

127132
windows:
128-
# Windows CI. Tests static and dynamic builds with MT and MD respectively.
133+
# Windows CI. Tests a dynamic build with MD.
129134
if: |
130135
github.event_name != 'workflow_dispatch' ||
131136
github.event.inputs.type == 'all' ||
132137
github.event.inputs.type == 'win'
133138
runs-on: ${{ (github.repository_owner == 'AcademySoftwareFoundation' && 'windows-2022-8c-32g-300h') || 'windows-latest' }}
134-
name: windows-vc:${{ matrix.config.vc }}-type:${{ matrix.config.build }}
139+
name: windows
135140
env:
136-
VCPKG_DEFAULT_TRIPLET: ${{ matrix.config.vc }}
141+
VCPKG_DEFAULT_TRIPLET: x64-windows
137142
strategy:
138-
matrix:
139-
config:
140-
# static build of blosc from vcpkg does not build internal sources.
141-
# USE_STATIC_DEPENDENCIES is required for IlmBase/OpenEXR defines and
142-
# Boost as both shared and static libs are installed.
143-
# USE_EXPLICIT_INSTANTIATION is disabled for debug static libraries
144-
# due to disk space constraints
145-
# @note Commented out the static debug build due to linker OOM LNK1102
146-
- { vc: 'x64-windows-static', components: 'core,bin,view,render,test', build: 'Release', cmake: '-A x64 -G \"Visual Studio 17 2022\" -DOPENVDB_CORE_SHARED=OFF -DUSE_STATIC_DEPENDENCIES=ON -DBLOSC_USE_EXTERNAL_SOURCES=ON' }
147-
#- { vc: 'x64-windows-static', components: 'core,bin,view,render,test', build: 'Debug', cmake: '-A x64 -G \"Visual Studio 17 2022\" -DOPENVDB_CORE_SHARED=OFF -DUSE_STATIC_DEPENDENCIES=ON -DBLOSC_USE_EXTERNAL_SOURCES=ON -DUSE_EXPLICIT_INSTANTIATION=OFF' }
148-
- { vc: 'x64-windows', components: 'core,bin,view,render,python,test', build: 'Release', cmake: '-A x64 -G \"Visual Studio 17 2022\" -DOPENVDB_CORE_STATIC=OFF' }
149-
- { vc: 'x64-windows', components: 'core,bin,view,render,python,test', build: 'Debug', cmake: '-A x64 -G \"Visual Studio 17 2022\" -DOPENVDB_CORE_STATIC=OFF' }
150-
#- { vc: 'x64-windows', build: 'Release', cmake: '-G \"MinGW Makefiles\" -DOPENVDB_CORE_STATIC=OFF' }
151143
fail-fast: false
152144
steps:
153145
- uses: actions/checkout@v3
154146
- name: path
155147
shell: pwsh
156148
run: |
157149
# note: system path must be modified in a previous step to it's use
158-
echo "$Env:VCPKG_INSTALLATION_ROOT\installed\${{ matrix.config.vc }}\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
159-
echo "${{github.workspace}}\build\openvdb\openvdb\${{ matrix.config.build }}" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
150+
echo "$Env:VCPKG_INSTALLATION_ROOT\installed\x64-windows\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
151+
echo "${{github.workspace}}\build\openvdb\openvdb\Release" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
160152
- name: install
161153
run: ./ci/install_windows.sh
162154
- name: build
163155
run: >
164156
./ci/build.sh -v
165-
--config=${{ matrix.config.build }}
166-
--components=${{ matrix.config.components }}
157+
--config='Release'
158+
--components='core,bin,view,render,python,test'
167159
--cargs=\'
168-
${{ matrix.config.cmake }}
160+
-A x64 -G \"Visual Studio 17 2022\" -DOPENVDB_CORE_STATIC=OFF
169161
-DMSVC_COMPRESS_PDB=ON
170162
-DUSE_EXR=ON
171163
-DUSE_PNG=ON
@@ -176,27 +168,29 @@ jobs:
176168
# Print the build directy size (monitor if we're hitting runner limits)
177169
run: du -h build
178170
- name: test
179-
# Always run tests on weekly builds but skip Debug on commits as they take a while.
180-
# https://github.community/t/distinct-job-for-each-schedule/17811/2
181-
if: contains(github.event.schedule, '0 7 * * 1') || matrix.config.build == 'Release'
182-
run: cd build && ctest -V -C ${{ matrix.config.build }}
171+
run: cd build && ctest -V -C Release
183172

184173
macos:
185174
if: |
186175
github.event_name != 'workflow_dispatch' ||
187176
github.event.inputs.type == 'all' ||
188177
github.event.inputs.type == 'mac'
189-
runs-on: macos-latest
178+
runs-on: macos-13 # Last macos runner befor M1 (macos-14)
190179
env:
191180
CXX: clang++
192181
steps:
193182
- uses: actions/checkout@v3
194183
- name: install
195-
run: ./ci/install_macos.sh
184+
run: |
185+
./ci/install_macos.sh
186+
./ci/install_tbb_macos.sh
196187
- name: build
197188
run: >
198189
./ci/build.sh -v
199190
--build-type=Release
200191
--components=\"core,python,bin,view,render,test\"
192+
--cargs=\'
193+
-DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/install
194+
\'
201195
- name: test
202196
run: cd build && ctest -V

.github/workflows/docs.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ jobs:
4242
# need to re-write the python docs to use sphinx
4343
image: aswf/ci-openvdb:2022
4444
steps:
45+
- name: Enable Node 16
46+
run: |
47+
echo "ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true" >> $GITHUB_ENV
4548
- uses: actions/checkout@v3
4649
- name: install_doxygen
4750
run: ./ci/install_doxygen.sh 1_8_11
@@ -51,7 +54,12 @@ jobs:
5154
# - name: install_epydoc
5255
# run: pip install epydoc
5356
- name: install_latex
54-
run: yum -y install texlive-latex-bin texlive-dvips texlive-collection-fontsrecommended texlive-collection-latexrecommended
57+
run: |
58+
# Fix error: Cannot prepare internal mirrorlist: No URLs in mirrorlist. CentOS 8 reached EOL means need to replace the official mirror to vault.centos.org
59+
# Comment out mirrorlist and replace #baseurl=...mirror.centos.org with baseurl=...vault.centos.org in files starting with CentOS- in /etc/yum.repos.d folder
60+
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
61+
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
62+
yum -y install texlive-latex-bin texlive-dvips texlive-collection-fontsrecommended texlive-collection-latexrecommended
5563
- name: build
5664
run: >
5765
./ci/build.sh -v

.github/workflows/houdini.yml

Lines changed: 73 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ jobs:
6464
${{ needs.checksecret.outputs.HOUDINI_SECRETS == 'true' ||
6565
github.repository_owner == 'AcademySoftwareFoundation' }}
6666
runs-on: ${{ (github.repository_owner == 'AcademySoftwareFoundation' && 'ubuntu-20.04-8c-32g-300h') || 'ubuntu-latest' }}
67-
name: hou:${{ matrix.config.hou }}-vfx:${{ matrix.config.image }}-cxx:${{ matrix.config.cxx }}
67+
name: hou:${{ matrix.config.hou_hash }}-vfx:${{ matrix.config.image }}-cxx:${{ matrix.config.cxx }}
6868
container:
6969
image: aswf/ci-base:${{ matrix.config.image }}
7070
env:
@@ -73,12 +73,21 @@ jobs:
7373
strategy:
7474
matrix:
7575
config:
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' }
76+
- { cxx: clang++, image: '2023.0', hou_hash: '20_0-newabi', build: 'Release', components: 'core,hou,bin,view,render,python,test,axcore,axbin,axtest' }
77+
- { cxx: clang++, image: '2022', hou_hash: '20_0-oldabi', build: 'Release', components: 'core,hou' }
78+
- { cxx: clang++, image: '2021', hou_hash: '19_5', build: 'Release', components: 'core,hou' }
79+
- { cxx: clang++, image: '2023.0', hou_hash: '20_0-newabi', build: 'Debug', components: 'core,hou,bin,view,render,python,test,axcore,axbin,axtest' }
80+
- { cxx: g++, image: '2023.0', hou_hash: '20_0-newabi', build: 'Release', components: 'core,hou,bin,view,render,python,test,axcore,axbin,axtest' }
81+
- { cxx: g++, image: '2022', hou_hash: '20_0-oldabi', build: 'Release', components: 'core,hou' }
8082
fail-fast: false
8183
steps:
84+
# See note on this step in the Houdini weekly.yml job
85+
# We can remove this when we no longer use < 2023 images
86+
- name: Enable Node 16
87+
run: |
88+
echo "ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true" >> $GITHUB_ENV
89+
- name: remove zstd
90+
run: yum -y remove zstd
8291
- uses: actions/checkout@v3
8392
- name: pybind11
8493
#if: contains(matrix.config.image, '2023') == false
@@ -93,18 +102,17 @@ jobs:
93102
uses: actions/cache@v3
94103
with:
95104
path: /tmp/ccache
96-
key: linux-vfx-hou${{ matrix.config.hou }}-${{ matrix.config.image }}-${{ matrix.config.cxx }}-${{ steps.timestamp.outputs.timestamp }}
97-
restore-keys: linux-vfx-hou${{ matrix.config.hou }}-${{ matrix.config.image }}-${{ matrix.config.cxx }}-
105+
key: linux-vfx-hou${{ matrix.config.hou_hash }}-${{ matrix.config.image }}-${{ matrix.config.cxx }}-${{ steps.timestamp.outputs.timestamp }}
106+
restore-keys: linux-vfx-hou${{ matrix.config.hou_hash }}-${{ matrix.config.image }}-${{ matrix.config.cxx }}-
98107
- name: fetch_houdini
99108
uses: actions/cache/restore@v3
100109
with:
101110
path: hou
102-
key: dummy-houdini${{ matrix.config.hou }}-${{ steps.timestamp.outputs.timestamp }}
103-
restore-keys: vdb-v5-houdini${{ matrix.config.hou }}-
111+
key: dummy-houdini${{ matrix.config.hou_hash }}-${{ steps.timestamp.outputs.timestamp }}
112+
restore-keys: vdb-v5-houdini${{ matrix.config.hou_hash }}-
104113
- name: validate_houdini
105114
run: test -f "hou/hou.tar.gz"
106-
# Make sure the cache is copied, not moved, as the cache action always posts the cache.
107-
# Also make sure that the unpacked install is NOT in the root of the OpenVDB checkout
115+
# Make sure that the unpacked install is NOT in the root of the OpenVDB checkout
108116
# otherwise CMake's install RPATHs wil not work correctly.
109117
- name: install_houdini
110118
run: |
@@ -113,16 +121,63 @@ jobs:
113121
cd $HOME/houdini_install && tar -xzf hou.tar.gz && cd -
114122
- name: build
115123
run: |
116-
export HFS="$HOME/houdini_install/hou"
117-
export HDSO="${HFS}/dsolib"
118-
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/lib64:${HDSO}"
119-
./ci/build.sh -v --build-type=Release --components="core,hou" --cargs=\"-DDISABLE_DEPENDENCY_VERSION_CHECKS=ON -DDISABLE_CMAKE_SEARCH_PATHS=ON -DOPENVDB_BUILD_HOUDINI_ABITESTS=OFF -DOPENVDB_HOUDINI_INSTALL_PREFIX=/tmp\ -DTBB_INCLUDEDIR=/usr/local/include -DTBB_LIBRARYDIR=/usr/local/lib\"
124+
./ci/build.sh -v \
125+
--build-type=Release \
126+
--components="${{ matrix.config.components }}" \
127+
--cargs=\" \
128+
-DHOUDINI_ROOT=$HOME/houdini_install/hou \
129+
-DOPENVDB_BUILD_HOUDINI_ABITESTS=OFF \
130+
-DOPENVDB_HOUDINI_INSTALL_PREFIX=/tmp \
131+
-DDISABLE_CMAKE_SEARCH_PATHS=ON \
132+
-DDISABLE_DEPENDENCY_VERSION_CHECKS=ON \
133+
\"
120134
- name: test
121135
run: cd build && ctest -V
122136
# Keep ccache light by stripping out any caches not accessed in the last day
123137
- name: ccache_clean
124138
if: matrix.config.build == 'Release'
125139
run: ccache --evict-older-than 1d
126-
# Delete the houdini tarball so that this dummy cache occupies no space
127-
- name: delete_hou
128-
run: rm -f hou/hou.tar.gz
140+
141+
macos-houdini:
142+
needs: [checksecret]
143+
if: >
144+
${{ needs.checksecret.outputs.HOUDINI_SECRETS == 'true' ||
145+
github.repository_owner == 'AcademySoftwareFoundation' }}
146+
runs-on: macos-latest
147+
steps:
148+
- uses: actions/checkout@v3
149+
- name: fetch_houdini
150+
uses: actions/cache/restore@v3
151+
with:
152+
path: hou
153+
key: dummy-houdini
154+
restore-keys: vdb-v5-houdini-macos-
155+
- name: validate_houdini
156+
run: test -f "hou/hou.tar.gz"
157+
# Make sure that the unpacked install is NOT in the root of the OpenVDB checkout
158+
# otherwise CMake's install RPATHs wil not work correctly.
159+
- name: install_houdini
160+
run: |
161+
mkdir $HOME/houdini_install
162+
cp hou/hou.tar.gz $HOME/houdini_install/hou.tar.gz
163+
cd $HOME/houdini_install && tar -xzf hou.tar.gz && cd -
164+
- name: install_deps
165+
run: ./ci/install_macos.sh 15
166+
- name: build
167+
run: |
168+
./ci/build.sh -v \
169+
--build-type=Release \
170+
--components="core,hou,bin,view,render,python,test,axcore,axbin" \
171+
--cargs=\" \
172+
-DHOUDINI_ROOT=$HOME/houdini_install/hou \
173+
-DOPENVDB_BUILD_HOUDINI_ABITESTS=OFF \
174+
-DOPENVDB_HOUDINI_INSTALL_PREFIX=/tmp \
175+
-DDISABLE_CMAKE_SEARCH_PATHS=ON \
176+
-DDISABLE_DEPENDENCY_VERSION_CHECKS=ON \
177+
-DUSE_EXPLICIT_INSTANTIATION=OFF \
178+
-DTbb_INCLUDE_DIR=$HOME/houdini_install/hou/Frameworks/Houdini.framework/Versions/Current/Resources/toolkit/include/tbb \
179+
-DLLVM_DIR=/opt/homebrew/opt/llvm@15/lib/cmake/llvm \
180+
-DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/install \
181+
\"
182+
- name: test
183+
run: cd build && ctest -V

0 commit comments

Comments
 (0)