Documentation channel: current development main at compiler checkpoint 1d7e15e. The latest tagged release is v0.0.3; pages identify APIs that are not yet released.

Cross compilation

Strut keeps target selection explicit. A target names the platform ABI Strut is building for; the bootstrap backend then invokes a compatible native or cross C++ toolchain.

Targets

TargetPurpose
nativeBuild for the current host.
linux-x6464-bit x86 Linux.
linux-arm6464-bit Arm Linux.
macos-arm64Apple silicon macOS.
macos-x64Intel macOS.
windows-x6464-bit Windows.

Build for a target

strut app.p --target linux-x64

Project builds

Set target in .strut/config.json, or override it on the command line where supported. Object and metadata caches are partitioned by target and build mode, so incompatible objects are never reused accidentally.

Native dependencies

Packages that link native libraries must provide libraries compatible with the selected target. Strut does not pretend a host library can be linked into a foreign target. Cross builds therefore require an appropriate cross toolchain and target-compatible native dependencies.