- subprocess-isolated test runner (replaces V1 dlopen-RunTest); Pass/Fail/Crash/Timeout/Skipped outcomes via :Test partition - TestRunner abstraction with command templates: Local, Ssh, SshWin (cmd.exe-shell), QemuUser, FromEnv; probe-based skip when runner unreachable - transitive PCM-path propagation in Build(); resolveImport walks deps recursively; depResults cache keyed by PcmDir() so per-target builds don't collide - cfg.sysroot threaded through BuildStdPcm + base compile/link command (enables aarch64 cross via Arch Linux ARM rootfs) - lib + exe split: project.cpp defines crafterBuildLib (LibraryStatic) + crafterBuildExe (Executable depending on it); build.sh produces lib/libcrafter-build.a alongside bin/crafter-build for downstream static-link consumers - Windows DLL+launcher: CRAFTER_API macro, /EXPORT flag for project.dll's CrafterBuildProject; Crafter::Run as the real entry point with main.cpp as a thin wrapper - 18 tests: HelloWorld/WithModule/Defines/CrossProjectModule/ Diamond × (Linux + sshwin:winvm), plus Incremental, BuildError, Libraries, RunnerClassification, QemuUser, SshRunner, WindowsViaSsh, CrossArchAarch64 - single ./bin/crafter-build test runs everything; Windows variants skip gracefully if winvm SSH alias unreachable Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
27 lines
841 B
Bash
27 lines
841 B
Bash
pkgname=crafter-build
|
|
pkgver=0.1.0
|
|
pkgrel=1
|
|
pkgdesc='C++26 modules build system'
|
|
arch=('x86_64')
|
|
url='https://forgejo.catcrafts.net/Catcrafts/Crafter.Build'
|
|
license=('LGPL-3.0-only')
|
|
depends=('clang' 'libc++' 'lld')
|
|
makedepends=('cmake' 'git')
|
|
source=()
|
|
sha256sums=()
|
|
options=('!strip' '!debug' '!lto')
|
|
|
|
build() {
|
|
cd "$startdir"
|
|
rm -rf bin build share/crafter-build
|
|
CRAFTER_BUILD_MARCH=x86-64-v3 CRAFTER_BUILD_MTUNE=generic ./build.sh
|
|
}
|
|
|
|
package() {
|
|
cd "$startdir"
|
|
install -Dm755 bin/crafter-build "$pkgdir/usr/bin/crafter-build"
|
|
install -Dm644 lib/libcrafter-build.a "$pkgdir/usr/lib/libcrafter-build.a"
|
|
install -dm755 "$pkgdir/usr/share/crafter-build"
|
|
install -m644 share/crafter-build/*.cppm "$pkgdir/usr/share/crafter-build/"
|
|
install -m644 share/crafter-build/*.h "$pkgdir/usr/share/crafter-build/"
|
|
}
|