aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/rosa/cmake.go
AgeCommit message (Collapse)Author
2026-07-30internal/rosa: remove legacy exec helperOphestra
This change also adds a fourth stage to the bootstrap machinery, offering more correct toolchain validation that works around LLVM dynamic linking flaws. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-18internal/rosa/cmake: disable nuisance warningsOphestra
Author warnings are pointless here, and it makes no sense to make CMAKE_<LANG>_COMPILER_TARGET optional just to shut cmake up. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-09internal/rosa: respect preferred loadavg targetOphestra
This generally improves build performance and system responsiveness. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-27internal/rosa/cmake: use DESTDIR instead of --prefixOphestra
Turns out --prefix is deeply broken, and DESTDIR works even when using ninja. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-23internal/rosa: remove unused helpersOphestra
These are no longer needed after migration. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-21internal/rosa/package: migrate ninjaOphestra
The ninja package predates all abstractions currently available. This migration causes rebuilds due to the old package being nonreproducible. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-21internal/rosa: expose in-place behaviour in generic helperOphestra
This change also combines the createDir and wantsDir methods, and replaces the non-inplace target of the generic helper with a deterministic path. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-21internal/rosa/package: migrate nssOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-19internal/rosa/package: migrate cmakeOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-19internal/rosa: create metadata alongside artifactOphestra
This enables deferring evaluation of azalea-based packages and fixes the longstanding quirk of version being disjoint from other metadata. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-18internal/rosa: migrate GNU softwareOphestra
These are quite trivial, so migrate them in one pass. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-17internal/rosa: pass stage alongside stateOphestra
This cleans up many function signatures. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-17internal/rosa: key metadata by stringOphestra
For upcoming azalea integration. The API is quite ugly right now to ease migration. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-02internal/rosa/cmake: implicit CMAKE_BUILD_TYPEOphestra
Lack of this behaviour is a holdover from when the helper was first split from the (now removed) LLVM helper. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-01internal/rosa: global preset flagsOphestra
These changes preset behaviour globally. Useful for ad hoc workarounds for development or bootstrapping on resource-constrained systems. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-01internal/rosa/cmake: run testsOphestra
This uses the standard CMake test target. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-04-23internal/rosa/cmake: 4.3.1 to 4.3.2Ophestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-04-15internal/rosa: respect preferred job countOphestra
This discontinues use of nproc, and also overrides detection behaviour in ninja. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-04-14internal/rosa/cmake: remove variantOphestra
This has no effect outside formatting of name and is a remnant of the old llvm helpers. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-04-13internal/rosa: helpers for common url formatsOphestra
This cleans up call site of NewPackage. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-04-03internal/rosa/cmake: 4.3.0 to 4.3.1Ophestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-31internal/rosa: use type P in helper interfaceOphestra
This is easier to type and serialises correctly. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-30all: use filepathOphestra
This makes package check portable, and removes nonportable behaviour from package pkg, pipewire, and system. All other packages remain nonportable due to their nature. No latency increase was observed due to this change on amd64 and arm64 linux. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-26internal/rosa: key-value typeOphestra
This type is used very frequently. The new type is much easier to type and can receive helper methods eventually if needed. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-20internal/rosa/cmake: 4.2.3 to 4.3.0Ophestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-08internal/rosa/cmake: bake in CMAKE_INSTALL_LIBDIROphestra
There is never a good reason to set this to anything else, and the default value of lib64 breaks everything. This did not manifest on LLVM (which the CMake helper was initially written for) because it did not use this value. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-08internal/rosa/cmake: pass correct prefixOphestra
This can change build output similar to autotools --prefix and DESTDIR, but was not clearly indicated to do so. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-08internal/rosa/cmake: pass parallel argument for makeOphestra
This uses the default value for each build system, which is parallel for ninja but not for make. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-07internal/rosa/cmake: optionally use makefileOphestra
This breaks the dependency loop in zlib. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-05internal/rosa: populate Anitya project idsOphestra
This enables release monitoring for all applicable projects. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-05internal/rosa: provide package metadataOphestra
This had to be done out-of-band because there was no way to efficiently represent these within Artifact. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-02internal/rosa/cmake: enable checkOphestra
CMake was packaged very early, before the current infrastructure existed to support this. This change patches out broken tests and enables the test suite. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-02internal/rosa/cmake: 4.2.1 to 4.2.3Ophestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-02internal/rosa/make: migrate to helper interfaceOphestra
This also updates all affected artifacts to use new behaviour. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-01internal/rosa/cmake: migrate to helper interfaceOphestra
This change also removes some unused options. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-01internal/rosa/make: split build and checkOphestra
Doing these together breaks far too many buggy makefiles. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-02-16internal/rosa/cmake: optional variant stringOphestra
This improves consistency with other helpers and removes the usually unnecessary variant suffix. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-02-12internal/rosa/make: configurable configure and installOphestra
This makes the helper useful for non-autotools build systems. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-02-09internal/rosa: rename stage0 toolchainOphestra
This is stage0 relative to Rosa OS, and stage3 relative to the toolchain it is compiled on (Gentoo in this case). Referring to the toolchain itself as stage3 is counterintuitive and misleading. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-02-07internal/rosa/cmake: expose earlier build scriptOphestra
This allows for more flexible build setups. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-31internal/rosa: improve cmake interfaceOphestra
This should make the call site look better for new artifacts. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-30internal/rosa: chmod via patch helperOphestra
This works around the zfs overlay mount overhead and significantly reduces I/O in general. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-29internal/rosa: flags for toolchain-dependent artifactOphestra
This is much cleaner to add extra flags to. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-27internal/pkg: exclusive artifactsOphestra
This alleviates scheduler overhead when curing many artifacts. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-25internal/rosa: lazy initialise all artifactsOphestra
This improves performance, though not as drastically as lazy initialising llvm. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-24internal/rosa: stage3 special case helperOphestra
This makes it cleaner to specify non-stage3 and stage3-exclusive dependencies. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-21internal/rosa/cmake: chmod entire source treeOphestra
This works around builds that traverse out of the appended pathname. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-19internal/rosa/cmake: use hardcoded build directoryOphestra
This eliminates some nondeterminism. Still getting 3-stage non-determinism in runtimes and clang, though. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-19internal/rosa: parallel cmake bootstrapOphestra
This takes a very long time otherwise. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-19internal/rosa: cmake abstractionOphestra
This is a helper for generating cure script for a cmake-based project. Signed-off-by: Ophestra <cat@gensokyo.uk>