Skip to content

Commit a969dae

Browse files
authored
Merge branch 'RB-10.4' into tmpRB-10.3
2 parents 10d6dd8 + 7af432e commit a969dae

File tree

214 files changed

+2194
-2907
lines changed

Some content is hidden

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

214 files changed

+2194
-2907
lines changed

.github/workflows/main.yml

Lines changed: 64 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -33,48 +33,55 @@ jobs:
3333
linux-python2,
3434
linux-python2-debug,
3535
linux-python3,
36-
macos-python2
36+
windows-python3,
37+
windows-python3-debug
3738
]
3839

3940
include:
4041

4142
- name: linux-python2
4243
os: ubuntu-20.04
4344
buildType: RELEASE
44-
containerImage: ghcr.io/gafferhq/build/build:1.2.0
45+
containerImage: ghcr.io/gafferhq/build/build:2.0.0
4546
options: .github/workflows/main/options.posix
46-
dependenciesURL: https://github.com/GafferHQ/dependencies/releases/download/4.0.0/gafferDependencies-4.0.0-Python2-linux.tar.gz
47+
dependenciesURL: https://github.com/GafferHQ/dependencies/releases/download/5.1.0/gafferDependencies-5.1.0-Python2-linux.tar.gz
4748
tests: testCore testCorePython testScene testImage testAlembic testUSD testVDB testAppleseed
4849
publish: true
4950

5051
- name: linux-python2-debug
5152
os: ubuntu-20.04
5253
buildType: DEBUG
53-
containerImage: ghcr.io/gafferhq/build/build:1.2.0
54+
containerImage: ghcr.io/gafferhq/build/build:2.0.0
5455
options: .github/workflows/main/options.posix
55-
dependenciesURL: https://github.com/GafferHQ/dependencies/releases/download/4.0.0/gafferDependencies-4.0.0-Python2-linux.tar.gz
56+
dependenciesURL: https://github.com/GafferHQ/dependencies/releases/download/5.1.0/gafferDependencies-5.1.0-Python2-linux.tar.gz
5657
tests: testCore testCorePython testScene testImage testAlembic testUSD testVDB testAppleseed
5758
publish: false
5859

5960
- name: linux-python3
6061
os: ubuntu-20.04
6162
buildType: RELEASE
62-
containerImage: ghcr.io/gafferhq/build/build:1.2.0
63+
containerImage: ghcr.io/gafferhq/build/build:2.0.0
6364
options: .github/workflows/main/options.posix
64-
dependenciesURL: https://github.com/GafferHQ/dependencies/releases/download/4.0.0/gafferDependencies-4.0.0-Python3-linux.tar.gz
65+
dependenciesURL: https://github.com/GafferHQ/dependencies/releases/download/5.1.0/gafferDependencies-5.1.0-Python3-linux.tar.gz
6566
tests: testCore testCorePython testScene testImage testAlembic testUSD testVDB testAppleseed
6667
publish: true
6768

68-
- name: macos-python2
69-
os: macos-10.15
69+
- name: windows-python3
70+
os: windows-2019
7071
buildType: RELEASE
71-
containerImage:
72-
options: .github/workflows/main/options.posix
73-
dependenciesURL: https://github.com/GafferHQ/dependencies/releases/download/4.0.0/gafferDependencies-4.0.0-Python2-osx.tar.gz
74-
# `testAppleseed` currently omitted due to clashes with system image IO frameworks.
72+
options: .github/workflows/main/options.windows
73+
dependenciesURL: https://github.com/hypothetical-inc/gafferDependencies/releases/download/6.2.0/gafferDependencies-6.2.0-Python3-windows.zip
7574
tests: testCore testCorePython testScene testImage testAlembic testUSD testVDB
7675
publish: true
7776

77+
- name: windows-python3-debug
78+
os: windows-2019
79+
buildType: RELWITHDEBINFO
80+
options: .github/workflows/main/options.windows
81+
dependenciesURL: https://github.com/hypothetical-inc/gafferDependencies/releases/download/6.2.0/gafferDependencies-6.2.0-Python3-windows.zip
82+
tests: testCore testCorePython testScene testImage testAlembic testUSD testVDB
83+
publish: false
84+
7885
runs-on: ${{ matrix.os }}
7986

8087
container: ${{ matrix.containerImage }}
@@ -88,7 +95,10 @@ jobs:
8895
sdk: 10.0.17763.0
8996

9097
- name: Install toolchain (Windows)
91-
run: python -m pip install scons
98+
run: |
99+
python -m pip install scons
100+
echo "PACKAGE_COMMAND=7z a -tzip" >> $env:GITHUB_ENV
101+
echo "PACKAGE_EXTENSION=zip" >> $env:GITHUB_ENV
92102
if: runner.os == 'Windows'
93103

94104
- name: Install toolchain (MacOS)
@@ -102,11 +112,25 @@ jobs:
102112
# _before_ anything we specify with `-isystem`, despite documentation to the
103113
# contrary. So we nuke the headers.
104114
rm -rf /usr/local/include/*
115+
echo PACKAGE_COMMAND=tar -czf >> $GITHUB_ENV
116+
echo PACKAGE_EXTENSION=tar.gz >> $GITHUB_ENV
105117
if: runner.os == 'macOS'
106118

107119
- name: Install toolchain (Linux)
108120
run: |
109-
echo /opt/rh/devtoolset-6/root/bin >> $GITHUB_PATH
121+
# The Docker container configures bash shells such that they enable the
122+
# software collections we want. If we could set GitHub's
123+
# `defaults.run.shell` to `bash` then all our build steps would pick up
124+
# this environment automatically. But we can't do that because it
125+
# breaks the build on Windows, and we can't configure a different shell
126+
# per platform because GitHub won't allow it. But we can run _this_
127+
# Linux-only step in bash, and transfer the environment out to be used
128+
# in later steps.
129+
echo $PATH > $GITHUB_PATH
130+
echo LD_LIBRARY_PATH=$LD_LIBRARY_PATH >> $GITHUB_ENV
131+
echo PACKAGE_COMMAND=tar -czf >> $GITHUB_ENV
132+
echo PACKAGE_EXTENSION=tar.gz >> $GITHUB_ENV
133+
shell: bash
110134
if: runner.os == 'Linux'
111135

112136
- name: Install Python Modules
@@ -137,7 +161,7 @@ jobs:
137161
shell: bash
138162

139163
- name: Cache
140-
uses: actions/cache@v1
164+
uses: actions/cache@v3
141165
with:
142166
path: sconsCache
143167
key: ${{ runner.os }}-${{ matrix.containerImage }}-${{env.CORTEX_DEPENDENCIES_HASH}}-${{ matrix.buildType }}-${{ github.sha }}
@@ -146,32 +170,50 @@ jobs:
146170
147171
- name: Build
148172
run: |
149-
scons -j 2 install BUILD_TYPE=${{ matrix.buildType }} OPTIONS=${{ matrix.options }} CXXSTD=c++14 BUILD_CACHEDIR=sconsCache
173+
scons -j 2 install BUILD_TYPE=${{ matrix.buildType }} OPTIONS=${{ matrix.options }} BUILD_CACHEDIR=sconsCache
174+
# Copy the config log for use in the "Debug Failures" step, because it
175+
# gets clobbered by the `scons test*` call below.
176+
cp config.log buildConfig.log
150177
151178
- name: Test
152179
run: |
153-
scons ${{ matrix.tests }} BUILD_TYPE=${{ matrix.buildType }} OPTIONS=${{ matrix.options }} CXXSTD=c++14 BUILD_CACHEDIR=sconsCache
180+
scons ${{ matrix.tests }} BUILD_TYPE=${{ matrix.buildType }} OPTIONS=${{ matrix.options }} BUILD_CACHEDIR=sconsCache
154181
env:
155182
IECORE_RTLD_GLOBAL: 0
183+
OCIO: ${{ env.CORTEX_BUILD_NAME }}/openColorIO/config.ocio
156184

157185
- name: Build Package
158186
run: |
159-
tar -czf ${{ env.CORTEX_BUILD_NAME }}.tar.gz ${{ env.CORTEX_BUILD_NAME }}
187+
${{ env.PACKAGE_COMMAND }} ${{ env.CORTEX_BUILD_NAME }}.${{env.PACKAGE_EXTENSION}} ${{ env.CORTEX_BUILD_NAME }}
160188
if: matrix.publish
161189

162190
- uses: actions/upload-artifact@v2
163191
with:
164192
name: ${{ env.CORTEX_BUILD_NAME }}
165-
path: ${{ env.CORTEX_BUILD_NAME }}.tar.gz
193+
path: ${{ env.CORTEX_BUILD_NAME }}.${{ env.PACKAGE_EXTENSION }}
166194
if: matrix.publish
167195

168196
- name: Publish Release
169197
run: |
170-
./.github/workflows/main/publishRelease.py --archive ${{ env.CORTEX_BUILD_NAME }}.tar.gz --repo ${{ github.repository }} --releaseId ${{ env.CORTEX_GITHUB_RELEASEID }}
171-
if: matrix.publish && env.CORTEX_GITHUB_RELEASEID != '' && runner.os != 'Windows'
198+
python ./.github/workflows/main/publishRelease.py --archive ${{ env.CORTEX_BUILD_NAME }}.${{ env.PACKAGE_EXTENSION }} --repo ${{ github.repository }} --releaseId ${{ env.CORTEX_GITHUB_RELEASEID }}
199+
if: matrix.publish && env.CORTEX_GITHUB_RELEASEID != ''
172200

173201
env:
174202
GITHUB_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }}
175203

176204
- name: Limit cache size
177205
run: python ./.github/workflows/main/limitCacheSize.py
206+
207+
- name: Debug Failures
208+
run: |
209+
# Give MacOS crash reporter time to do its thing
210+
sleep 20
211+
# Print SCons logs and MacOS crash logs
212+
shopt -s nullglob
213+
for logFile in config.log buildConfig.log ~/Library/Logs/DiagnosticReports/*.crash
214+
do
215+
echo $logFile
216+
cat $logFile
217+
done
218+
shell: bash
219+
if: failure()

.github/workflows/main/options.posix

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ BOOST_LIB_SUFFIX = ""
4545

4646
OPENEXR_INCLUDE_PATH = includes
4747
OIIO_INCLUDE_PATH = includes
48-
OIIO_LIB_PATH = libs
48+
OIIO_LIB_PATH = ""
4949
OSL_INCLUDE_PATH = includes
5050
BLOSC_INCLUDE_PATH = includes
5151
FREETYPE_INCLUDE_PATH = includes + "/freetype2"
@@ -57,7 +57,9 @@ WITH_GL = "1"
5757
GLEW_INCLUDE_PATH = includes + "/GL"
5858

5959
TBB_INCLUDE_PATH = includes
60+
6061
USD_INCLUDE_PATH = includes
62+
USD_LIB_PREFIX = "usd_"
6163

6264
# Renderers
6365
# =========

.github/workflows/main/options.windows

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,6 @@ INSTALL_RMANDISPLAY_NAME = build + "\\renderMan\\displayDrivers\\ieDisplay"
1313
INSTALL_PYTHON_DIR = build + "\\python"
1414
INSTALL_IECORE_OPS = ""
1515

16-
# disable permissive mode, making MSVC more standards compliant
17-
# /D_USE_MATH_DEFINES is needed with permissive mode off for
18-
# common definitions like M_P
19-
# /Zc:externC- fixes a compilation error with Boost::interprocess
20-
# described here:
21-
# https://developercommunity.visualstudio.com/content/problem/756694/including-windowsh-and-boostinterprocess-headers-l.html
22-
CXXFLAGS = ["/permissive-", "/D_USE_MATH_DEFINES", "/Zc:externC-"]
23-
2416
LIBPATH = libs
2517

2618
PYTHON = deps + "\\bin\\python"
@@ -33,8 +25,9 @@ PYTHONPATH = deps + "\\python"
3325
# Libs
3426
# ====
3527

36-
BOOST_INCLUDE_PATH = includes + "\\boost-1_68"
37-
BOOST_LIB_SUFFIX = "-vc141-mt-x64-1_68"
28+
BOOST_INCLUDE_PATH = includes
29+
BOOST_LIB_SUFFIX = ""
30+
BOOST_LIB_PATH = libs
3831

3932
OPENEXR_INCLUDE_PATH = includes
4033
OIIO_INCLUDE_PATH = includes + "\\OpenImageIO"
@@ -53,6 +46,7 @@ GLEW_LIB_SUFFIX = "32"
5346
TBB_INCLUDE_PATH = includes
5447
USD_INCLUDE_PATH = includes
5548
USD_LIB_PATH = libs
49+
USD_LIB_PREFIX = "usd_"
5650
DOXYGEN = deps + "\\doxygen\\doxygen.exe"
5751

5852
# Renderers
@@ -76,5 +70,5 @@ WARNINGS_AS_ERRORS = "1"
7670

7771
# PATH is needed to locate the MSVC compiler. PROCESSOR_ARCHITECTURE and USERNAME
7872
# are needed by the HeaderGenerator and accompanying tests.
79-
ENV_VARS_TO_IMPORT = "PATH PROCESSOR_ARCHITECTURE USERNAME CI"
73+
ENV_VARS_TO_IMPORT = "PATH PROCESSOR_ARCHITECTURE USERNAME CI OCIO"
8074

.gitignore

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,13 @@
77
*.pyc
88
*.dylib
99
*.code-workspace
10+
*.obj
11+
*.pyd
12+
*.pdb
13+
*.dll
14+
*.lib
15+
*.ilk
16+
*.exp
1017
.sconsign.dblite
1118
.sconf_temp
1219
.cproject
@@ -24,19 +31,8 @@ config.log
2431
mayaLog
2532
projects
2633
test/IECore/IECoreTest
27-
test/IECore/results.txt
28-
test/IECore/resultsPython.txt
29-
test/IECoreImage/results.txt
30-
test/IECoreVDB/resultsPython.txt
31-
test/IECoreRI/resultsPython.txt
32-
test/IECoreMaya/resultsPython.txt
33-
test/IECoreNuke/resultsPython.txt
34-
test/IECoreHoudini/resultsPython.txt
35-
contrib/IECoreMantra/test/IECoreMantra/results.txt
36-
contrib/IECoreAppleseed/test/IECoreAppleseed/results.txt
37-
contrib/IECoreAlembic/test/IECoreAlembic/resultsPython.txt
38-
contrib/IECoreArnold/test/IECoreArnold/results.txt
39-
contrib/IECoreUSD/test/IECoreUSD/resultsPython.txt
34+
test/*/results*.txt
35+
contrib/*/test/*/results*.txt
4036
/.ubuntu
4137
/dependencies
4238
.idea/

0 commit comments

Comments
 (0)