From 7abbdf503bdd23f7fa6c2b9caf459ad51b131101 Mon Sep 17 00:00:00 2001 From: Jorijn van der Graaf Date: Sat, 3 Oct 2026 21:14:30 +0200 Subject: [PATCH] readme change --- README.md | 31 ------------------------------- 1 file changed, 31 deletions(-) diff --git a/README.md b/README.md index 07ae901..ebfc905 100644 --- a/README.md +++ b/README.md @@ -14,19 +14,6 @@ alias crafter-build='flatpak run net.catcrafts.CrafterBuild' Pre-release builds of `master` are the `beta` branch (`flatpak install catcrafts net.catcrafts.CrafterBuild//beta`), and every release also attaches a single-file bundle on the Forgejo releases page (`flatpak install --user crafter-build-.flatpak`). The sandbox sees the whole host filesystem, so projects can live anywhere. Binaries built for the host link the bundled `libc++.so.1` through an rpath into the Flatpak: they run inside it (`-r`, the test runner), and are not meant to be copied out onto the host. -## Building from source (Linux) - -The development loop is native. It needs `clang`, `cmake`, `git`, `lld` and `libc++` with its std module source: - -```bash -./build.sh # produces bin/crafter-build -./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 (`/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 toolchain's own triple (`clang++ -print-target-triple`); override with `CRAFTER_BUILD_TARGET=`. The Flatpak is built from `packaging/flatpak/net.catcrafts.CrafterBuild.yaml`, which runs this same bootstrap, the self-host build and the test suite inside the sandbox against the bundled toolchain (`CRAFTER_BUILD_LLVM_DIR=/app`). - ## Writing a project.cpp Crafter Build loads a `project.cpp` from the current directory. The file exports one function that returns a populated `Configuration`: @@ -107,24 +94,6 @@ import Crafter.LintRules; #pragma crafter dependency "" [branch "" | commit ""] [project ""] ``` -## Install layout - -Inside the Flatpak: - -``` -/app/bin/crafter-build # the executable -/app/bin/clang++ lld llvm-ar wasmtime # the bundled toolchain the executable resolves first -/app/lib/libcrafter-build.a # static archive for downstream consumers -/app/share/crafter-build/*.cppm # module sources (rebuilt on the user's machine on first run) -/app/share/crafter-build/libc++-modules// - # std module sources of other libc++ releases, for sysroots without their own -/app/share/wasi-sysroot/ # WASI sysroot for wasm32 targets -~/.var/app/net.catcrafts.CrafterBuild/cache/crafter.build/---/ - # std.pcm + Crafter.Build*.pcm, built locally per toolchain -``` - -A source build uses the same shape under the checkout (`bin/`, `lib/`, `share/crafter-build/`) with the system compiler and `~/.cache/crafter.build/`. - ## Tests Tests live under `tests//`. The simplest case is a single C++ file: