OpenSite/Guides/Build a native plugin
Build the native sample from an installed SDK and run tool.ping.
- Stable identifier
sdk.build-native-plugin
Prerequisites
Matching installed headless OpenSite SDK, dependency prefix, CMake/Ninja and Visual Studio 2026 x64 toolset 14.51 for the reviewed configuration. Release uses cpython-3.14; Debug uses cpython-3.14d. A historical toolset-14.44 bundle is not a compatible replacement for the 14.51 host.
Steps
From a configured checkout, build and install the matching Release SDK to an example prefix such as C:\OpenSite-SDK. Configure C:\OpenSite-SDK\share\opensite\examples\plugins\standalone in a separate build directory with CMAKE_PREFIX_PATH set to that SDK and OPENSITE_DEPENDENCY_PREFIX set to the matching extracted dependency prefix. Build it, then place sample_native.dll and opensite-plugin.json under C:\plugins\sample.native. Run C:\OpenSite-SDK\application\OpenSiteConsole.exe --development-host --plugins C:\plugins --command sample_native/tool.ping. These paths are examples; do not mix SDK or runtime configurations.
Expected result
The process prints pong.
Limitations
The manifest sdk_api must match the host (0.0.3 in this snapshot), together with the build configuration and compiler contract. The native library remains mapped until process exit. Ping has no engineering capability; span requires the explicit development host in this sample. This headless sample does not create a desktop menu or package a distributable GUI SDK.
Documentation basis
Source-reviewed against development commit 77c3fee13944bcc4b5d487c77eb1f82fbe4c6ea7, branch feature/phase-13c-properties-python-expressions. This review inspected the implementation and repository evidence; it did not run the Windows application or repeat CTest.
docs/development/Plugin-SDK.mdexamples/plugins/standalone/CMakeLists.txtsrc/plugins/plugin_host.cpp