From 83fb80d710b19756a4679a8edf89feb0853aaa32 Mon Sep 17 00:00:00 2001 From: Ophestra Date: Mon, 19 Jan 2026 01:36:23 +0900 Subject: [PATCH] internal/rosa: cmake artifact This is required for compiling the toolchain and many other programs. Signed-off-by: Ophestra --- internal/rosa/cmake.go | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 internal/rosa/cmake.go diff --git a/internal/rosa/cmake.go b/internal/rosa/cmake.go new file mode 100644 index 0000000..3468d1d --- /dev/null +++ b/internal/rosa/cmake.go @@ -0,0 +1,31 @@ +package rosa + +import "hakurei.app/internal/pkg" + +// NewCMake returns a [pkg.Artifact] containing an installation of CMake. +func (t Toolchain) NewCMake() pkg.Artifact { + const ( + version = "4.2.1" + checksum = "Y3OdbMsob6Xk2y1DCME6z4Fryb5_TkFD7knRT8dTNIRtSqbiCJyyDN9AxggN_I75" + ) + return t.New("cmake-"+version, []pkg.Artifact{ + t.NewMake(), + t.NewKernelHeaders(), + }, nil, nil, ` +# expected to be writable in the copy made during bootstrap +chmod -R +w /usr/src/cmake/Tests + +cd "$(mktemp -d)" +/usr/src/cmake/bootstrap \ + --prefix=/system -- \ + -DCMAKE_USE_OPENSSL=OFF +make "-j$(nproc)" +make DESTDIR=/work install +`, pkg.Path(AbsUsrSrc.Append("cmake"), true, + pkg.NewHTTPGetTar( + nil, "https://github.com/Kitware/CMake/releases/download/"+ + "v"+version+"/cmake-"+version+".tar.gz", + mustDecode(checksum), + pkg.TarGzip, + ))) +}