Skip to content

vrmAdapterMocopi's standalone build is unverified since it grew a platform link, so the quality bar's claim is stated rather than measured #113

Description

@snkmcb

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions