Skip to content

Commit 6ac8fc2

Browse files
authored
Merge pull request #1440 from ivanimanishi/ieCortexUpdates
IE Cortex Updates for VFX Platform 2023
2 parents de33eeb + 3a39d64 commit 6ac8fc2

File tree

15 files changed

+868
-507
lines changed

15 files changed

+868
-507
lines changed

Changes

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,19 @@ Improvements
55
------------
66

77
- OpenImageIOAlgo::DataView : Added support for Int64Data, UInt64Data, Int64VectorData and UInt64VectorData.
8+
- IECoreHoudini : Updated to support Houdini 20.0 and 20.5.
9+
- IECoreMaya : Avoid compilation warnings with new gcc.
10+
11+
Build
12+
-----
13+
14+
- SConstruct :
15+
- Added `PYBIND11_INCLUDE_PATH` option.
16+
- Added `VDB_PYTHON_PATH` to USD tests.
17+
- Added `INSTALL_CREATE_SYMLINKS`, which allows you to disable the creation of version symlinks at the end of the install.
18+
19+
- CI :
20+
- IECoreHoudini tests updated to pass on newer environments.
821

922
10.5.10.0 (relative to 10.5.9.5)
1023
=========

SConstruct

Lines changed: 98 additions & 42 deletions
Large diffs are not rendered by default.

config/ie/buildAll

Lines changed: 101 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -5,134 +5,149 @@ import subprocess
55
import sys
66
import os
77
import os.path
8-
import shutil
98
import VersionControl
10-
VersionControl.setVersion( "IEBuild" )
9+
10+
VersionControl.setVersion("IEBuild")
1111
import IEBuild
1212

1313
##########################################################################
1414
# parse SConstruct file for the cortex version
1515
##########################################################################
1616

1717
## \todo: this is duplicated from ./options but can we centralize it instead?
18-
def cortexRegistryVersion() :
19-
20-
import re
21-
varsFound = {}
22-
varsToFind = [ "ieCoreMilestoneVersion", "ieCoreMajorVersion" ]
23-
24-
with open( "SConstruct", "r" ) as f :
25-
for line in f :
26-
for varName in varsToFind :
27-
match = re.match( "^\s*%s\s*=\s*(?P<value>\d+).*$" % varName, line )
28-
if match :
29-
varsFound[varName] = match.groupdict()["value"]
30-
varsToFind.remove( varName )
31-
break
32-
if not varsToFind:
33-
break
34-
35-
if varsToFind :
36-
raise Exception( "Could not find the Cortex version in the SConstruct file. Please review the parsing rules." )
37-
38-
return varsFound["ieCoreMilestoneVersion"] + "." + varsFound["ieCoreMajorVersion"]
18+
def cortexVersion():
19+
import re
20+
21+
varsFound = {}
22+
varNames = [
23+
"ieCoreMilestoneVersion", "ieCoreMajorVersion", "ieCoreMinorVersion", "ieCorePatchVersion"
24+
]
25+
varsToFind = list(varNames)
26+
27+
with open("SConstruct", "r") as f:
28+
for line in f:
29+
for varName in varsToFind:
30+
match = re.match("^\s*%s\s*=\s*(?P<value>\d+).*$" % varName, line)
31+
if match:
32+
varsFound[varName] = match.groupdict()["value"]
33+
varsToFind.remove(varName)
34+
break
35+
if not varsToFind:
36+
break
37+
38+
if varsToFind:
39+
raise Exception(
40+
"Could not find the Cortex version in the SConstruct file. Please review the parsing"
41+
" rules."
42+
)
43+
44+
return ".".join([varsFound[k] for k in varNames])
45+
46+
47+
currentCortexVersion = cortexVersion()
48+
cortexReg = IEEnv.findRegistryRoot("cortex", currentCortexVersion)
3949

4050
platform = IEEnv.platform()
41-
cortexCompatibilityVersion = cortexRegistryVersion()
42-
cortexReg = IEEnv.registry["libraries"]["cortex"][cortexCompatibilityVersion][platform]
4351

4452
##########################################################################
4553
# Run a single build
4654
##########################################################################
4755

48-
def build( extraArgs = [] ) :
4956

50-
sysArgs = sys.argv[1:]
57+
def build(extraArgs=[]):
58+
sysArgs = sys.argv[1:]
5159

52-
install = False
53-
if "install" in sysArgs :
54-
install = True
55-
sysArgs.remove( "install" )
60+
install = False
61+
if "install" in sysArgs:
62+
install = True
63+
sysArgs.remove("install")
5664

57-
release = False
58-
if "RELEASE=1" in sysArgs :
59-
release = True
65+
release = False
66+
if "RELEASE=1" in sysArgs:
67+
release = True
6068

61-
if "J=" in " ".join( sysArgs ) :
62-
sysArgs = " ".join( sysArgs ).replace( "J=", "-j " ).split( " " )
69+
if "J=" in " ".join(sysArgs):
70+
sysArgs = " ".join(sysArgs).replace("J=", "-j ").split(" ")
6371

64-
installPrefix = "/software" if release else os.path.expanduser( "~" )
65-
buildArgs = [ "INSTALL_PREFIX=" + installPrefix ]
66-
buildArgs.extend( extraArgs )
67-
buildArgs.extend( sysArgs )
72+
installPrefix = "/software" if release else os.path.expanduser("~")
73+
buildArgs = ["INSTALL_PREFIX=" + installPrefix]
74+
buildArgs.extend(extraArgs)
75+
buildArgs.extend(sysArgs)
6876

69-
argsToValidate = [ "CORTEX_VERSION={}".format( cortexCompatibilityVersion ) ] + extraArgs
70-
if not IEEnv.Registry.validateVariation( argsToValidate ) :
71-
print( "Skipped invalid variation combination: " + str(argsToValidate) + "\n" )
72-
return
77+
argsToValidate = ["CORTEX_VERSION={}".format(currentCortexVersion)] + extraArgs
78+
if not IEEnv.Registry.validateVariation(argsToValidate):
79+
print("Skipped invalid variation combination: " + str(argsToValidate) + "\n")
80+
return
7381

74-
cmd = [ "scons", "install" ] if install or release else [ "scons" ]
82+
cmd = ["scons", "install"] if install or release else ["scons"]
7583

76-
print( " ".join( cmd + buildArgs ) )
77-
if "DRYRUN=1" in sysArgs :
78-
return
84+
print(" ".join(cmd + buildArgs))
85+
if "DRYRUN=1" in sysArgs:
86+
return
87+
88+
if subprocess.call(cmd + buildArgs) != 0:
89+
raise RuntimeError("Error : " + str(" ".join(cmd + buildArgs)))
90+
print("Build succeeded: " + " ".join(cmd + buildArgs) + "\n")
7991

80-
if subprocess.call( cmd + buildArgs ) != 0 :
81-
raise RuntimeError( "Error : " + str( " ".join( cmd + buildArgs ) ) )
82-
print( "Build succeeded: " + " ".join( cmd + buildArgs ) + "\n" )
8392

8493
##########################################################################
8594
# Build docs only
8695
##########################################################################
8796

88-
def installDocs() :
8997

90-
sysArgs = sys.argv[1:]
98+
def installDocs():
99+
sysArgs = sys.argv[1:]
91100

92-
if "RELEASE=1" not in sysArgs :
93-
return
101+
if "RELEASE=1" not in sysArgs:
102+
return
94103

95-
buildArgs = [ "INSTALL_PREFIX=/software" ]
96-
buildArgs.extend( sysArgs )
104+
buildArgs = ["INSTALL_PREFIX=/software"]
105+
buildArgs.extend(sysArgs)
97106

98-
cmd = [ "scons", "installDoc" ]
99-
print( " ".join( cmd + buildArgs ) )
100-
if "DRYRUN=1" in sysArgs :
101-
return
107+
cmd = ["scons", "installDoc"]
108+
print(" ".join(cmd + buildArgs))
109+
if "DRYRUN=1" in sysArgs:
110+
return
102111

103-
if subprocess.call( cmd + buildArgs ) != 0 :
112+
if subprocess.call(cmd + buildArgs) != 0:
113+
raise RuntimeError("Error : scons installDoc " + str(" ".join(buildArgs)))
104114

105-
raise RuntimeError("Error : scons installDoc " + str( " ".join( buildArgs ) ) )
106115

107116
##########################################################################
108117
# Loop over all builds
109118
##########################################################################
110119

111-
compilerVersions = IEBuild.utils.versionsToInstall( "gcc" )
112-
pythonVersions = IEBuild.utils.versionsToInstall( "python" )
113-
mayaVersions = IEBuild.utils.versionsToInstall( "maya" )
114-
nukeVersions = IEBuild.utils.versionsToInstall( "nuke" )
115-
houdiniVersions = IEBuild.utils.versionsToInstall( "houdini" )
116-
rvVersions = IEBuild.utils.versionsToInstall( "rv" )
120+
compilerVersions = IEBuild.utils.versionsToInstall("gcc")
121+
pythonVersions = IEBuild.utils.versionsToInstall("python")
122+
mayaVersions = IEBuild.utils.versionsToInstall("maya")
123+
nukeVersions = IEBuild.utils.versionsToInstall("nuke")
124+
houdiniVersions = IEBuild.utils.versionsToInstall("houdini")
125+
rvVersions = IEBuild.utils.versionsToInstall("rv")
117126

118127

119128
for compilerVersion in compilerVersions:
120-
for pythonVersion in pythonVersions :
121-
build( [ "COMPILER_VERSION="+compilerVersion, "PYTHON_VERSION="+pythonVersion, "DL_VERSION=UNDEFINED" ] )
122-
123-
for mayaVersion in mayaVersions :
124-
compilerVersion = IEEnv.registry["apps"]["maya"][mayaVersion][platform]["compilerVersion"]
125-
build( [ "APP=maya", "APP_VERSION="+mayaVersion ] )
126-
127-
for nukeVersion in nukeVersions :
128-
compilerVersion = IEEnv.registry["apps"]["nuke"][nukeVersion][platform]["compilerVersion"]
129-
build( [ "APP=nuke", "APP_VERSION="+nukeVersion ] )
130-
131-
for houdiniVersion in houdiniVersions :
132-
compilerVersion = IEEnv.registry["apps"]["houdini"][houdiniVersion][platform]["compilerVersion"]
133-
build( [ "APP=houdini", "APP_VERSION="+houdiniVersion ] )
134-
135-
for rvVersion in rvVersions :
136-
build( [ "APP=rv", "APP_VERSION="+rvVersion, "DL_VERSION=UNDEFINED" ] )
129+
for pythonVersion in pythonVersions:
130+
build(
131+
[
132+
"COMPILER_VERSION=" + compilerVersion,
133+
"PYTHON_VERSION=" + pythonVersion,
134+
"DL_VERSION=UNDEFINED",
135+
]
136+
)
137+
138+
for mayaVersion in mayaVersions:
139+
compilerVersion = IEEnv.registry["apps"]["maya"][mayaVersion][platform]["compilerVersion"]
140+
build(["APP=maya", "APP_VERSION=" + mayaVersion])
141+
142+
for nukeVersion in nukeVersions:
143+
compilerVersion = IEEnv.registry["apps"]["nuke"][nukeVersion][platform]["compilerVersion"]
144+
build(["APP=nuke", "APP_VERSION=" + nukeVersion])
145+
146+
for houdiniVersion in houdiniVersions:
147+
compilerVersion = IEEnv.registry["apps"]["houdini"][houdiniVersion][platform]["compilerVersion"]
148+
build(["APP=houdini", "APP_VERSION=" + houdiniVersion])
149+
150+
for rvVersion in rvVersions:
151+
build(["APP=rv", "APP_VERSION=" + rvVersion, "DL_VERSION=UNDEFINED"])
137152

138153
installDocs()

0 commit comments

Comments
 (0)