Skip to content

AVSLab/bsk_sdk

Repository files navigation

Basilisk SDK (bsk-sdk)

A self-contained Python wheel that gives external projects everything they need to build Basilisk compatible SWIG plugins without vendoring the full simulation codebase.

Quick start

pip install bsk-sdk

Then 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.

Syncing from Basilisk

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 .

Updating to a newer Basilisk version

cd external/basilisk
git fetch && git checkout <tag-or-commit>
cd ../..
python3 tools/sync_all.py

Versioning

The 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.

About

Software development toolkit for Basilisk to develop external Basilisk modules outside of the core BSK distribution.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors