packaging/flatpak/ holds the manifest for net.catcrafts.CrafterBuild and its side files. The runtime is the Freedesktop Sdk, not the Platform: a build tool needs glibc's headers and crt objects, gcc's libgcc_s, cmake, ninja, git and python at run time. Everything compiler-shaped is ours under /app, built from one LLVM 22.1.8 source tree: clang, lld, libclang, libc++ with its std module, compiler-rt for the host and for wasm32, the WASI sysroot (wasi-sdk 34 in sysroot-only mode, driven by the clang just built) and wasmtime for running the result. One tree means the modules crafter-build builds and the compiler that consumes them cannot drift apart, and the toolchain resolver finds all of it beside the executable with no configuration. The crafter-build module runs the bootstrap, the self-host build and the test suite inside the sandbox, so a Flatpak that installs has passed the suite with the toolchain it ships. CRAFTER_BUILD_MARCH is x86-64-v2 for the shipped binary; user projects keep -march=native. WasmHelloRuns compiles a fixture for wasm32-wasip1 and runs it under wasmtime. The existing wasm tests only inspect generated files, so this is the one that proves the sysroot, the std module for wasm and wasm-ld work together; it skips where the sysroot or wasmtime is missing. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
23 lines
1,001 B
CMake
23 lines
1,001 B
CMake
# SPDX-License-Identifier: LGPL-3.0-only
|
|
# SPDX-FileCopyrightText: Copyright (C) 2026 Catcrafts®
|
|
#
|
|
# Points wasi-sdk's sysroot build at the clang the Flatpak built, instead of
|
|
# the one wasi-sdk would build itself. Mirrors the wasi-sdk.cmake toolchain
|
|
# file an installed wasi-sdk ships, with our prefix.
|
|
set(WASI_SDK_PREFIX /app)
|
|
set(CMAKE_SYSTEM_NAME WASI)
|
|
set(CMAKE_SYSTEM_VERSION 1)
|
|
set(CMAKE_SYSTEM_PROCESSOR wasm32)
|
|
set(triple wasm32-wasip1)
|
|
set(CMAKE_C_COMPILER ${WASI_SDK_PREFIX}/bin/clang)
|
|
set(CMAKE_CXX_COMPILER ${WASI_SDK_PREFIX}/bin/clang++)
|
|
set(CMAKE_ASM_COMPILER ${WASI_SDK_PREFIX}/bin/clang)
|
|
set(CMAKE_AR ${WASI_SDK_PREFIX}/bin/llvm-ar)
|
|
set(CMAKE_RANLIB ${WASI_SDK_PREFIX}/bin/llvm-ranlib)
|
|
set(CMAKE_NM ${WASI_SDK_PREFIX}/bin/llvm-nm)
|
|
set(CMAKE_C_COMPILER_TARGET ${triple})
|
|
set(CMAKE_CXX_COMPILER_TARGET ${triple})
|
|
set(CMAKE_ASM_COMPILER_TARGET ${triple})
|
|
# The sysroot does not exist yet when cmake probes the compiler.
|
|
set(CMAKE_C_COMPILER_WORKS ON)
|
|
set(CMAKE_CXX_COMPILER_WORKS ON)
|