diff --git a/boulder/data/macros/actions/cmake.yml b/boulder/data/macros/actions/cmake.yml index ca58ca5f..93b3068e 100644 --- a/boulder/data/macros/actions/cmake.yml +++ b/boulder/data/macros/actions/cmake.yml @@ -28,6 +28,14 @@ actions: dependencies: - ninja + # Run testsuite with ctest + - cmake_test: + command: | + ninja test -v -j "%(jobs)" -C "%(builddir)" + dependencies: + - cmake + - ninja + definitions: # Default cmake options as passed to cmake diff --git a/boulder/data/macros/actions/meson.yml b/boulder/data/macros/actions/meson.yml index b7465ed7..f0390bd4 100644 --- a/boulder/data/macros/actions/meson.yml +++ b/boulder/data/macros/actions/meson.yml @@ -30,6 +30,12 @@ actions: dependencies: - meson + - meson_test: + command: | + meson test --no-rebuild --print-errorlogs -j "%(jobs)" -C "%(builddir)" + dependencies: + - meson + definitions: # Default meson options as passed to meson diff --git a/boulder/data/macros/arch/aarch64.yml b/boulder/data/macros/arch/aarch64.yml index 2aaa5e71..74903529 100644 --- a/boulder/data/macros/arch/aarch64.yml +++ b/boulder/data/macros/arch/aarch64.yml @@ -10,6 +10,7 @@ definitions: - cpp : "%(compiler_cpp) -m64" - march : armv8-a+simd+fp+crypto - mtune : cortex-a72.cortex-a53 + - target_triple : "aarch64-unknown-linux-gnu" flags: diff --git a/boulder/data/macros/arch/base.yml b/boulder/data/macros/arch/base.yml index 9970399b..75b0ec4c 100644 --- a/boulder/data/macros/arch/base.yml +++ b/boulder/data/macros/arch/base.yml @@ -38,6 +38,7 @@ definitions: - cpp : "%(compiler_cpp)" - objcpp : "%(compiler_objcpp)" - objcxxcpp : "%(compiler_objcxxcpp)" + - d : "%(compiler_d)" - ar : "%(compiler_ar)" - ld : "%(compiler_ld)" - objcopy : "%(compiler_objcopy)" @@ -64,6 +65,7 @@ actions : CGO_CXXFLAGS="%(cxxflags)"; export CGO_CXXFLAGS LDFLAGS="%(ldflags)"; export LDFLAGS CGO_LDFLAGS="%(ldflags) -Wl,--no-gc-sections"; export CGO_LDFLAGS + DFLAGS="%(dflags)"; export DFLAGS CC="%(cc)"; export CC CXX="%(cxx)"; export CXX OBJC="%(objc)"; export OBJC @@ -286,14 +288,17 @@ flags : c : "-pipe -Wformat -Wformat-security -Wno-error -fPIC" cxx : "-pipe -Wformat -Wformat-security -Wno-error -fPIC" ld : "-Wl,-O2,--gc-sections" + d : "-release -Hkeep-all-bodies -relocation-model=pic -wi" - omit-frame-pointer: c : "-fomit-frame-pointer -momit-leaf-frame-pointer" cxx : "-fomit-frame-pointer -momit-leaf-frame-pointer" + d : "-frame-pointer=none" - no-omit-frame-pointer: c : "-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer" cxx : "-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer" + d : "-frame-pointer=all" # Toggle bindnow (ON) - bindnow: @@ -347,28 +352,35 @@ flags : - optimize-generic: c : "-O2" cxx : "-O2" + d : "-O2" # Optimize for size (OFF) - optimize-size: c : "-Os" cxx : "-Os" + d : "-Os" # Optimize for speed (OFF) - optimize-speed: c : "-O3" cxx : "-O3" + d : "-O3" # Enable LTO optimisations (OFF) - lto-full: c : "-flto" cxx : "-flto" ld : "-flto" + llvm: + d : "-flto=full" + # Enable Thin-LTO optimisations (OFF) - lto-thin: llvm: c : "-flto=thin" cxx : "-flto=thin" + d : "-flto=thin" ld : "-flto=thin" # Enable LTOextra optimisations (OFF) @@ -406,6 +418,7 @@ flags : llvm: c : "-Xclang -mllvm -Xclang -polly -Xclang -mllvm -Xclang -polly-vectorizer=stripmine" cxx : "-Xclang -mllvm -Xclang -polly -Xclang -mllvm -Xclang -polly-vectorizer=stripmine" + d : "-polly -polly-vectorizer=stripmine" # Toggle options you want to use with llvm-bolt (OFF) - bolt: @@ -426,14 +439,21 @@ flags : llvm: c : "-gline-tables-only -fasynchronous-unwind-tables" cxx : "-gline-tables-only -fasynchronous-unwind-tables" + d : "-gline-tables-only -gc" # Toggle debug-std optimisations (ON) - debug-std: - c : "-g -feliminate-unused-debug-types -fasynchronous-unwind-tables" - cxx : "-g -feliminate-unused-debug-types -fasynchronous-unwind-tables" + d : "-g -gc -d-debug" + gnu: + c : "-g -feliminate-unused-debug-types -fasynchronous-unwind-tables" + cxx : "-g -feliminate-unused-debug-types -fasynchronous-unwind-tables" + llvm: + c : "-g -fasynchronous-unwind-tables" + cxx : "-g -fasynchronous-unwind-tables" # Toggle fast math (OFF) - math: + d : "-ffast-math -fp-contract=fast" gnu: c : "-fno-math-errno -fno-trapping-math" cxx : "-fno-math-errno -fno-trapping-math" @@ -445,6 +465,7 @@ flags : - noplt: c : "-fno-plt" cxx : "-fno-plt" + d : "-fno-plt" # Toggle -fno-semantic-interposition (OFF) - nosemantic: @@ -486,6 +507,7 @@ flags : - visibility-hidden: c : "-fvisibility=hidden" cxx : "-fvisibility-inlines-hidden -fvisibility=hidden" + d : "-fvisibility=hidden" # Toggle visibility inlines hidden (OFF) - visibility-inline: diff --git a/boulder/data/macros/arch/emul32/x86_64.yml b/boulder/data/macros/arch/emul32/x86_64.yml index be4b96fd..e065dc48 100644 --- a/boulder/data/macros/arch/emul32/x86_64.yml +++ b/boulder/data/macros/arch/emul32/x86_64.yml @@ -10,6 +10,7 @@ definitions: - cpp : "%(compiler_cpp) -m32" - march : i686 - mtune : i686 + - target_triple : "i686-unknown-linux-gnu" - pkgconfigpath : "%(libdir)/pkgconfig:/usr/share/pkgconfig:%(prefix)/lib/pkgconfig" flags: diff --git a/boulder/data/macros/arch/x86.yml b/boulder/data/macros/arch/x86.yml index 06ef7e92..368cf223 100644 --- a/boulder/data/macros/arch/x86.yml +++ b/boulder/data/macros/arch/x86.yml @@ -10,6 +10,7 @@ definitions: - cpp : "%(compiler_cpp) -m32" - march : i686 - mtune : i686 + - target_triple : "i686-unknown-linux-gnu" flags: diff --git a/boulder/data/macros/arch/x86_64-stage1.yml b/boulder/data/macros/arch/x86_64-stage1.yml index a1e3b0b8..dfb87a2b 100644 --- a/boulder/data/macros/arch/x86_64-stage1.yml +++ b/boulder/data/macros/arch/x86_64-stage1.yml @@ -15,6 +15,7 @@ definitions: - cpp : "%(compiler_cpp)" - march : x86-64-v2 - mtune : ivybridge + - target_triple : "x86_64-unknown-linux-gnu" - bootstrap_root : /bill flags: @@ -26,4 +27,4 @@ flags: defaultTuningGroups : - base - - optimize \ No newline at end of file + - optimize diff --git a/boulder/data/macros/arch/x86_64-v3x.yml b/boulder/data/macros/arch/x86_64-v3x.yml new file mode 100644 index 00000000..34c9c431 --- /dev/null +++ b/boulder/data/macros/arch/x86_64-v3x.yml @@ -0,0 +1,20 @@ +# Provides -m64 builds for x86_64-v3x build-hosts + +definitions: + + - libsuffix : "" + - build_platform : x86_64-%(vendorID) + - host_platform : x86_64-%(vendorID) + - cc : "%(compiler_c)" + - cxx : "%(compiler_cxx)" + - cpp : "%(compiler_cpp)" + - march : x86-64-v3 + - mtune : znver1 + +flags: + + # Set architecture flags (GCC) + - architecture: + c : "-march=x86-64-v3 -mtune=znver1 -maes -mfsgsbase -mpclmul -mrdrnd -maes -mxsaveopt" + cxx : "-march=x86-64-v3 -mtune=znver1 -maes -mfsgsbase -mpclmul -mrdrnd -maes -mxsaveopt" + diff --git a/boulder/data/macros/arch/x86_64.yml b/boulder/data/macros/arch/x86_64.yml index 7e812f8b..62338b0d 100644 --- a/boulder/data/macros/arch/x86_64.yml +++ b/boulder/data/macros/arch/x86_64.yml @@ -8,8 +8,10 @@ definitions: - cc : "%(compiler_c)" - cxx : "%(compiler_cxx)" - cpp : "%(compiler_cpp)" + - d : "%(compiler_d)" - march : x86-64-v2 - mtune : ivybridge + - target_triple : "x86_64-unknown-linux-gnu" flags: @@ -17,3 +19,4 @@ flags: - architecture: c : "-march=x86-64-v2 -mtune=ivybridge" cxx : "-march=x86-64-v2 -mtune=ivybridge" + d : "-mcpu=x86-64-v2" diff --git a/boulder/data/recipeTemplate.yml b/boulder/data/recipeTemplate.yml new file mode 100644 index 00000000..238a45aa --- /dev/null +++ b/boulder/data/recipeTemplate.yml @@ -0,0 +1,14 @@ +# +# SPDX-FileCopyrightText: © 2020-2024 Serpent OS Developers +# +# SPDX-License-Identifier: MPL-2.0 +# +name : %s +version : %s +release : %s +homepage : %s +upstreams : +%s +summary : %s +description : | + %s