Skip to content

Conversation

@murraystevenson
Copy link
Collaborator

No description provided.

SConstruct Outdated
if env["PLATFORM"] == "win32" :
pxrVersionHeader = env.FindFile( "pxr/pxr.h", dependencyIncludes )
if pxrVersionHeader is not None and "#define PXR_USE_INTERNAL_BOOST_PYTHON\n" in open( str( pxrVersionHeader ) ) :
# Windows builds currently require both boost_python and USD's internal library,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the story here?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A bit of an odd one. From this patch, it appears this is how Cortex has been built for the dependencies-10 Windows releases Linking only to boost_python results in one set of missing symbols, and linking only to usd_python results in another.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This would be my guess :

  • IECoreUSD.lib does need to link to usd_python.so, to satisfy USD's own linking requirements. But it doesn't need to link to boost_python because our Python bindings aren't in libIECoreUSD.so. So your patch where you replaced one library with the other depending on PXR_USE_INTERNAL_BOOST_PYTHON was right.
  • But _IECoreUSD.lib (the python module) also needs to link to usd_python.so, again to satisfy USD's own linking requirements. So as well as replacing in usdEnv, we need to add in usdPythonModuleEnv.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This would be my guess :

Thanks! That appears to have done the trick, I've rebased this PR and updated the approach in 304f1da to link IECoreUSD to either usd_python or boost_python, and _IECoreUSD to both when necessary.

We'll be able to reinstate it at some point in the future when macOS builds of dependencies-10.x.x are available.
We take the same approach as gafferhq/gaffer to install the required SDK version as it's no longer provided by the runner.
In this version, the Python bindings use Pixar's fork of Boost Python unconditionally, so we need to link to that instead.
@johnhaddon johnhaddon merged commit 1529618 into ImageEngine:RB-10.6 Aug 28, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants