All checks were successful
Flatpak / flatpak (push) Successful in 15m0s
CI takes the newest <release> as the notes of a tag and refuses a tag that does not match it. 2.2.0 covers what changed since 2.1.0: Shader entries with per-entry defines and a named output variant, sysroot compiles against the sysroot's own libc++ headers, a project.so stamp that hashes every part of the host build, and the vendored json.hpp removed. The variant API is what catcrafts.net's deploy needs: Crafter.Graphics master has used it since 2026-10-06, and a stable Flatpak that lacks it cannot build the site. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
46 lines
3 KiB
XML
46 lines
3 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!-- SPDX-License-Identifier: CC0-1.0 -->
|
|
<component type="console-application">
|
|
<id>net.catcrafts.CrafterBuild</id>
|
|
<name>Crafter Build</name>
|
|
<summary>C++26 modules build system</summary>
|
|
<metadata_license>CC0-1.0</metadata_license>
|
|
<project_license>LGPL-3.0-only</project_license>
|
|
<developer id="net.catcrafts">
|
|
<name>Catcrafts</name>
|
|
</developer>
|
|
<description>
|
|
<p>
|
|
A build system for C++26 modules. Project descriptions are C++: a
|
|
project.cpp constructs a Configuration and returns it, and crafter-build
|
|
compiles, loads and executes it. The Flatpak carries its own LLVM, so
|
|
every machine builds with the same clang, lld, libc++ and WASI sysroot.
|
|
</p>
|
|
</description>
|
|
<url type="homepage">https://forgejo.catcrafts.net/Catcrafts/Crafter.Build</url>
|
|
<url type="bugtracker">https://forgejo.catcrafts.net/Catcrafts/Crafter.Build/issues</url>
|
|
<url type="vcs-browser">https://forgejo.catcrafts.net/Catcrafts/Crafter.Build</url>
|
|
<provides>
|
|
<binary>crafter-build</binary>
|
|
</provides>
|
|
<content_rating type="oars-1.1"/>
|
|
<releases>
|
|
<release version="2.2.0" date="2026-10-16">
|
|
<description>
|
|
<p>A Shader entry can carry defines, spelled like the compiler's -D (NAME is defined to 1, NAME=VALUE to VALUE), and a variant that names its output, so one source compiles into several outputs: ui.comp.glsl with variant sets becomes ui.comp.sets.spv. A configuration in which two entries share an output name is refused with both named, as are a malformed define and a variant with a path separator.</p>
|
|
<p>Compiles with a sysroot now use the sysroot's own libc++ headers instead of the bundled toolchain's, which fixes cross builds against a musl sysroot that include a standard header textually and stops glibc sysroot builds from silently compiling against the wrong libc++ release. The project.so stamp hashes every part of the host build, so a changed declaration recompiles it. The vendored json.hpp is gone.</p>
|
|
</description>
|
|
</release>
|
|
<release version="2.1.0" date="2026-10-03">
|
|
<description>
|
|
<p>The bundled toolchain is now LLVM 23.1.2. Build outputs are kept per compiler, so the first build after updating recompiles each project into a fresh directory and nothing has to be cleaned by hand.</p>
|
|
<p>Cross builds pick the std module source that matches the sysroot's libc++ release. The source for libc++ 22 ships beside the bundled 23 for sysroots that carry libc++ without one, such as Alpine, and a sysroot nothing matches fails with one line naming both releases. crafter-build --version prints the libc++ release in use.</p>
|
|
</description>
|
|
</release>
|
|
<release version="2.0.0" date="2026-10-03">
|
|
<description>
|
|
<p>First release distributed as a Flatpak, with a bundled LLVM 22 toolchain and WASI sysroot. Windows host support is removed; crafter-build gains --version and resolves its compiler from one place.</p>
|
|
</description>
|
|
</release>
|
|
</releases>
|
|
</component>
|