-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add OpenUSD to the build #20898
Comments
I'll post here some info I've gathered on the build system front. As I learn more, I'll probably circle back and edit the summary in this post, as well as the original post. One aspect of building OpenUSD is to identify any required dependencies, and any optional dependencies that we would like to opt-in to. We need to check the licenses of those dependencies, and how to integrate them into our build. On first skim, all of the licensing questions will be easy (the licenses are unremarkable) and the only question on that front will be ensuring that we properly redistribute all of the notice texts. The main question will be integrating OpenUSD and its dependencies the build system. Some of the dependencies are already vendored:
For these, we just need to be sure to obey ODR -- if we have another copy of the library in Drake, we either need to unify them in the workspace, or else ensure that their names will not conflict. For example in the case of One required, non-vendored dependency is We already link a copy of Another required, non-vendored dependency is It's a little tricky to figure out the exact subset of boost that is required (because the OpenUSD code mixes the Python bindings next to the non-Python sources, so I'm not sure exactly which OpenUSD files we need in Drake), but as a first approximation I'm seeing:
Drake has a policy of not using Boost, because of ABI conflicts with other libraries that users might want to use that also use Boost, but of a different version. That doesn't matter for things like BOOST_PP macros which evaporate in the object code, but will matter for anything with linkage. Possibly we could use BCP to re-namespace the subset of Boost that we need for OpenUSD. There are some heros trying to de-boostify OpenUSD with pull requests; possibly we could pour our fuel on that fire instead of working around the problem. TBD. |
The next task is to identify exactly which modules of |
Perhaps a the first goal should be to get |
It looks like we might need to cherry-pick some patches from open pull requests, so that we can use a non-ancient version of TBB: |
The boost problem is a bit more acute than I had realized. For now in #20994 we've disabled OpenUSD in CI. I'll try to get boost compiling in CI in perhaps the next two weeks. |
cc @hong-nvidia |
This is a sub-task of #17833.
I'm filing it separately because it will involve a non-trivial amount of details that are mostly unrelated to the multibody and parsing side of Drake.
The call to action is to be able to run a unit test inside Drake that loads some minimal
*.usd
file by calling into OpenUSD and call some various accessor functions that interrogate the loaded scene. Basically a "proof of life" that we've successfully linked to a copy of OpenUSD can be run without crashing./tmp
:Writing stack for smoke_test to /tmp/st_smoke_test.rl8KNi because of ERROR.
Un-pin theboost_internal
external (rmcommit_pin = True
)The text was updated successfully, but these errors were encountered: