From 041b505c2ea6e3e496497c87e1b3d4f913d0b61e Mon Sep 17 00:00:00 2001 From: Ophestra Date: Sat, 2 May 2026 21:53:38 +0900 Subject: internal/rosa/cmake: implicit CMAKE_BUILD_TYPE Lack of this behaviour is a holdover from when the helper was first split from the (now removed) LLVM helper. Signed-off-by: Ophestra --- internal/rosa/cmake.go | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'internal/rosa/cmake.go') diff --git a/internal/rosa/cmake.go b/internal/rosa/cmake.go index bfa035c0..b1499037 100644 --- a/internal/rosa/cmake.go +++ b/internal/rosa/cmake.go @@ -122,6 +122,8 @@ type CMakeHelper struct { // Path elements joined with source. Append []string + // Value of CMAKE_BUILD_TYPE. The zero value is equivalent to "Release". + BuildType string // CMake CACHE entries. Cache []KV // Runs after install. @@ -164,14 +166,7 @@ func (*CMakeHelper) wantsDir() string { return "/cure/" } // script generates the cure script. func (attr *CMakeHelper) script(name string) string { if attr == nil { - attr = &CMakeHelper{ - Cache: []KV{ - {"CMAKE_BUILD_TYPE", "Release"}, - }, - } - } - if len(attr.Cache) == 0 { - panic("CACHE must be non-empty") + attr = new(CMakeHelper) } generate := "Ninja" @@ -189,6 +184,13 @@ func (attr *CMakeHelper) script(name string) string { script += "\n" + test } + cache := make([]KV, 1, 1+len(attr.Cache)) + cache[0] = KV{"CMAKE_BUILD_TYPE", "Release"} + if attr.BuildType != "" { + cache[0][1] = attr.BuildType + } + cache = append(cache, attr.Cache...) + return ` cmake -G ` + generate + ` \ -DCMAKE_C_COMPILER_TARGET="${ROSA_TRIPLE}" \ @@ -196,7 +198,7 @@ cmake -G ` + generate + ` \ -DCMAKE_ASM_COMPILER_TARGET="${ROSA_TRIPLE}" \ -DCMAKE_INSTALL_LIBDIR=lib \ ` + strings.Join(slices.Collect(func(yield func(string) bool) { - for _, v := range attr.Cache { + for _, v := range cache { if !yield("-D" + v[0] + "=" + v[1]) { return } -- cgit v1.3.1