docs: describe the toolchain resolver and --version
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
046609ff6f
commit
a72d18eeab
2 changed files with 4 additions and 3 deletions
|
|
@ -11,6 +11,8 @@ Bootstrap requires `clang`, `cmake`, `git`, `lld`, and `libc++`.
|
|||
./bin/crafter-build # rebuild via project.cpp
|
||||
```
|
||||
|
||||
The compiler is resolved once per run: `CRAFTER_BUILD_LLVM_DIR` if set, else a `clang++` installed beside crafter-build (`<prefix>/bin`), else PATH. `crafter-build --version` prints the version and the compiler in use; `crafter-build --help` lists the other overrides (`CRAFTER_BUILD_LIBCXX_DIR`, `CRAFTER_BUILD_LIBCLANG`, `CRAFTER_BUILD_WASI_SYSROOT`, `CRAFTER_MINGW_DIR`). A `Configuration` targets the host triple unless `cfg.target` says otherwise.
|
||||
|
||||
The bootstrap targets the host toolchain's own triple (`clang++ -print-target-triple`): `x86_64-pc-linux-gnu` on glibc distros, `x86_64-alpine-linux-musl` on Alpine/postmarketOS (`apk add clang clang-dev lld libc++-dev llvm-libunwind-dev llvm-runtimes llvm llvm-dev cmake build-base python3 git`). Override with `CRAFTER_BUILD_TARGET=`. CI ships both: `crafter-build-linux-x86_64-v{2,3,4}.tar.gz` (glibc) and `crafter-build-linux-x86_64-musl-v2.tar.gz` (musl, needs `libc++` at runtime — the launcher dlopens `project.so`, so it cannot be static).
|
||||
|
||||
To build the system as a distro package on Arch:
|
||||
|
|
@ -34,7 +36,6 @@ extern "C" Configuration CrafterBuildProject(std::span<const std::string_view> a
|
|||
cfg.path = "./";
|
||||
cfg.name = "myapp";
|
||||
cfg.outputName = "myapp";
|
||||
cfg.target = "x86_64-pc-linux-gnu";
|
||||
cfg.type = ConfigurationType::Executable;
|
||||
|
||||
std::array<fs::path, 1> ifaces = { "interfaces/Hello" };
|
||||
|
|
@ -204,7 +205,6 @@ extern "C" Configuration CrafterBuildProject(std::span<const std::string_view>)
|
|||
cfg.path = "tests/UnitFoo/";
|
||||
cfg.name = "UnitFoo";
|
||||
cfg.outputName = "UnitFoo";
|
||||
cfg.target = "x86_64-pc-linux-gnu";
|
||||
cfg.type = ConfigurationType::Executable;
|
||||
cfg.dependencies = { ParentLib("MyLib") }; // <-- the magic line
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue