A self-contained Python wheel that gives external projects everything they need to build Basilisk compatible SWIG plugins without vendoring the full simulation codebase.
pip install bsk-sdkThen in your plugin's CMakeLists.txt:
find_package(bsk-sdk CONFIG REQUIRED)
bsk_add_swig_module(
TARGET myPlugin
INTERFACE swig/myPlugin.i
SOURCES myPlugin.cpp
LINK_LIBS bsk::plugin
)See examples/custom-atm-plugin/ for a
complete working example.
The SDK vendors a curated subset of Basilisk headers and sources. These are synced from a pinned Basilisk commit via a Git submodule.
git submodule update --init --recursive
python3 tools/sync_all.py
pip install -e .Or opt into auto-sync during build:
BSK_SDK_AUTO_SYNC=1 pip install -e .cd external/basilisk
git fetch && git checkout <tag-or-commit>
cd ../..
python3 tools/sync_all.pyThe bsk-sdk package version tracks the Basilisk version it was synced from
(e.g. bsk-sdk==2.9.1 contains headers from Basilisk v2.9.1).
At CMake configure time, the SDK checks that the installed Basilisk version matches and errors out on a mismatch. This prevents silent ABI incompatibilities where plugins are compiled against headers from one Basilisk version but linked against a different runtime.