The quality bar in docs/roadmap/README.md
asks that every bundle "builds standalone against installed packages, not just
composed in the workspace tree", and the mocopi adapter's scaffold commit
(2026-08-09) recorded that it did.
#111 changed what that claim covers and did not re-run the check: the adapter
now links ws2_32 on Windows, and cmake/vrmAdapterMocopiConfig.cmake.in was
edited to explain why no find_dependency accompanies it. Both are exactly the
kind of thing a standalone configure exercises and a composed build does not —
the composed build resolves in-tree targets and never reads the installed
package config at all.
The risk is genuinely low: ws2_32 is a raw SDK library name rather than an
imported target, so there should be nothing for a consumer to resolve. That is a
prediction, and this repository's convention is that a prediction goes in an
issue rather than in a claim.
What closing this looks like
cmake --install build/<target> --prefix <scratch>/prefix --config Release
cmake -S adapters/liveCapture/mocopi -B <scratch>/standalone `
-G "Visual Studio 17 2022" -A x64 `
-DCMAKE_PREFIX_PATH="<ost-runtime-prefix>;<scratch>/prefix"
cmake --build <scratch>/standalone --config Release
<ost-runtime-prefix> is pxr_DIR from the workspace CMakeCache.txt. The VS
generator finds its own toolset, so no vcvars and no ost toolchain file — note
that ost env sets no compiler, which is why a Ninja configure under it
fails with No CMAKE_CXX_COMPILER could be found and is not the route here.
Worth doing on a POSIX host too, and there it checks something Windows cannot:
that the absence of a platform link is right. The adapter adds no
Threads::Threads — deliberately, since it carries no DatagramQueue and its
check_boundaries.py allowlist refuses the name — so a Linux or macOS standalone
build is what would reveal a std::mutex-shaped dependency arriving by accident
through motionCore or motionRuntime.
Why this is not urgent
Nothing ships an adapter standalone today: ost 0.21.0 has no per-library
packaging command and adapters are deliberately outside the aggregate product
(WORKSPACE.md §5), which is
tracked separately as a v0.7.0 carry-over. So this is a verification gap in a
stated claim rather than a broken path for a user.
The quality bar in
docs/roadmap/README.mdasks that every bundle "builds standalone against installed packages, not just
composed in the workspace tree", and the mocopi adapter's scaffold commit
(2026-08-09) recorded that it did.
#111 changed what that claim covers and did not re-run the check: the adapter
now links
ws2_32on Windows, andcmake/vrmAdapterMocopiConfig.cmake.inwasedited to explain why no
find_dependencyaccompanies it. Both are exactly thekind of thing a standalone configure exercises and a composed build does not —
the composed build resolves in-tree targets and never reads the installed
package config at all.
The risk is genuinely low:
ws2_32is a raw SDK library name rather than animported target, so there should be nothing for a consumer to resolve. That is a
prediction, and this repository's convention is that a prediction goes in an
issue rather than in a claim.
What closing this looks like
<ost-runtime-prefix>ispxr_DIRfrom the workspaceCMakeCache.txt. The VSgenerator finds its own toolset, so no vcvars and no
osttoolchain file — notethat
ost envsets no compiler, which is why a Ninja configure under itfails with
No CMAKE_CXX_COMPILER could be foundand is not the route here.Worth doing on a POSIX host too, and there it checks something Windows cannot:
that the absence of a platform link is right. The adapter adds no
Threads::Threads— deliberately, since it carries noDatagramQueueand itscheck_boundaries.pyallowlist refuses the name — so a Linux or macOS standalonebuild is what would reveal a
std::mutex-shaped dependency arriving by accidentthrough
motionCoreormotionRuntime.Why this is not urgent
Nothing ships an adapter standalone today:
ost0.21.0 has no per-librarypackaging command and adapters are deliberately outside the aggregate product
(WORKSPACE.md §5), which is
tracked separately as a v0.7.0 carry-over. So this is a verification gap in a
stated claim rather than a broken path for a user.