Admin message

Due to an influx of spam, we have had to require each new account to be manually approved. Please register an account and then write an email to accountsupport@archlinux.org to get it approved. Sorry for the inconvenience.

Use Arch-specific toolchains and presets for cmake based packages
# Idea proposal 💡 ## Checks **NOTE**: The below check boxes **must be** checked before the accompanying idea will be considered. - [x] I have checked that the idea is not directly tied to a specific project For example: "Show label icons in the package overview web page" must be a feature request in the ArchWeb repository - [x] I have carefully checked this idea is not already covered by any [open or closed ideas](https://gitlab.archlinux.org/archlinux/ideas/-/issues/?state=all). - [x] I understand that I hold no copyright claims and that this idea can be adapted and used by Arch Linux in any arbitrary shape or form. ## Summary <!-- Briefly summarize **what** the idea is about. Note: Verbose details should be added to the specification section. --> Make use of cmake [toolchains](https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html) and [presets](https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html) to allow modification of e.g. `Release` build type via distribution flags. ## Motivation <!-- Explain the reason behind this idea and **why** this should be picked up. --> Plenty of upstreams disallow using the `None` build type and e.g. only provide other build types like `Release`. These come at the disadvantage that they usually don't allow using our distribution flags (however, this is desirable), while build type `None` sometimes drags in debug symbols by default (see e.g. https://gitlab.archlinux.org/archlinux/packaging/packages/supercollider/-/blob/8e6ea25999161fdc1fd69675ca8431595aa77175/PKGBUILD#L87-88). ## Specification <!-- A more verbose description about **what** should be done. Optional: Include any thoughts about **how** it should be done. --> Using cmake in a more uniform way in packaging would allow us to make use of default build types (such as `Release`) while retaining our distribution flags. For this to happen we need to investigate writing presets and how to provide our own toolchain with it. Afterwards, we should add those files to a custom package which gets pulled in by the `base-devel` meta-package, so that the files are made available during build time. Eventually, the cmake packaging guidelines need adapting to reflect this and explain how to use the preset files when building packages.
issue