Runtime Requirements#
When building an application, plugin, or container that uses OpenUSD Exchange libraries and modules, there are a few considerations:
The shared libraries can be placed anywhere, so long as they can be dynamically loaded at runtime using standard procedures on your operating system (e.g on the
PATHorLD_LIBRARY_PATHenvironment variables).The OpenUSD Plugins (i.e.
plugInfo.jsonfiles) must be placed relative to the OpenUSD shared libraries.If you are using python, the
pxrandusdexpython modules can be placed anywhere, so long as they are configured appropriately forsys.pathat runtime.
Example runtime file layouts#
For clarity, below are some suggested file layouts for our both default and “minimal” builds on Linux and Windows.
Note
As suggested above, if you need to use alternate paths for some or all of the normal shared libraries or python modules, that is fine. These are just default suggestions, which match the install_usdex defaults.
├── lib
│ ├── libusdex_core.so
│ ├── libusdex_rtx.so
│ ├── libomni_transcoding.so
│ ├── libboost_python310.so -> libboost_python310.so.1.78.0
│ ├── libboost_python310.so.1.78.0
│ ├── libpython3.10.so -> libpython3.10.so.1.0
│ ├── libpython3.10.so.1.0
│ ├── libpython3.so
│ ├── libtbb.so.2
│ ├── libusd_arch.so
│ ├── libusd_ar.so
│ ├── libusd_gf.so
│ ├── libusd_js.so
│ ├── libusd_kind.so
│ ├── libusd_ndr.so
│ ├── libusd_pcp.so
│ ├── libusd_plug.so
│ ├── libusd_sdf.so
│ ├── libusd_sdr.so
│ ├── libusd_tf.so
│ ├── libusd_trace.so
│ ├── libusd_usdGeom.so
│ ├── libusd_usdLux.so
│ ├── libusd_usdShade.so
│ ├── libusd_usd.so
│ ├── libusd_usdUtils.so
│ ├── libusd_vt.so
│ ├── libusd_work.so
| └── usd
| ├── plugInfo.json
| └── ...
| └── resources
| └── plugInfo.json
├── python
| ├── pxr
│ | └── ...
| └── usdex
| ├── core
| │ ├── __init__.py
| │ ├── _StageAlgoBindings.py
| │ ├── _usdex_core.cpython-310-x86_64-linux-gnu.so
| │ └── _usdex_core.pyi
| └── rtx
| ├── __init__.py
| ├── _usdex_rtx.cpython-310-x86_64-linux-gnu.so
| └── _usdex_rtx.pyi
└── python-runtime
├── bin
├── lib
└── ...
└── lib
├── libusdex_core.so
├── libusdex_rtx.so
├── libomni_transcoding.so
├── libtbb.so.2
├── libusd_ms.so
└── usd
├── plugInfo.json
└── ...
└── resources
└── plugInfo.json
├── lib
│ ├── usdex_core.dll
│ ├── usdex_rtx.dll
│ ├── omni_transcoding.dll
| ├── boost_python310-vc142-mt-x64-1_78.dll
│ ├── python3.dll
│ ├── python310.dll
│ ├── tbb.dll
│ ├── usd_ar.dll
│ ├── usd_arch.dll
│ ├── usd_gf.dll
│ ├── usd_js.dll
│ ├── usd_kind.dll
│ ├── usd_ndr.dll
│ ├── usd_pcp.dll
│ ├── usd_plug.dll
│ ├── usd_sdf.dll
│ ├── usd_sdr.dll
│ ├── usd_tf.dll
│ ├── usd_trace.dll
│ ├── usd_usd.dll
│ ├── usd_usdGeom.dll
│ ├── usd_usdLux.dll
│ ├── usd_usdShade.dll
│ ├── usd_usdUtils.dll
│ ├── usd_vt.dll
│ └── usd_work.dll
| └── usd
| ├── plugInfo.json
| └── ...
| └── resources
| └── plugInfo.json
├── python
| ├── pxr
│ | └── ...
| └── usdex
| ├── core
| │ ├── __init__.py
| │ ├── _StageAlgoBindings.py
| | ├── _usdex_core.cp310-win_amd64.pyd
| │ └── _usdex_core.pyi
| └── rtx
| ├── __init__.py
| ├── _usdex_rtx.cp310-win_amd64.pyd
| └── _usdex_rtx.pyi
└── python-runtime
├── bin
├── lib
└── ...
└── lib
├── usdex_core.dll
├── usdex_rtx.dll
├── omni_transcoding.dll
├── tbb.dll
├── usd_ms.dll
└── usd
├── plugInfo.json
└── ...
└── resources
└── plugInfo.json