One unavoidable consequence of making compilers easily installable (whether as gcc_linux-64 or through the compilers metapackage), is that people and projects started using them, a lot.
This leads to friction because although we never promised to support use outside conda-forge, it is a de facto reality nowadays.
On top of that there are efforts to better handle build profiles (e.g. release/debug/etc.), c.f. conda-forge/ctng-compiler-activation-feedstock#157.
What I'm thinking about is that we should introduce a third level in the hierarchy between (currently):
${<lang>_compiler}_<platform> (fully activated compiler, geared towards conda-forge)
${<lang>_compiler}_impl_<platform> (complete dependencies, no activation)
into something like
${<lang>_compiler}-cf_<platform> (fully activated compiler, geared towards conda-forge)
${<lang>_compiler}_<platform> (minimally activated compiler, e.g. pointing to $PREFIX, but no extra flags)
${<lang>_compiler}_impl_<platform> (complete dependencies, no activation)
That would allow external users of our compiler stack to avoid having to play around with stripping out flags, while conda-forge could keep all its default config (e.g. -O2 -DCMAKE_BUILD_TYPE=Release etc.) in the conda-forge-specific compiler flavours.
FYI @wolfv @ruben-arts @jaimergp @mgorny @rgommers
CC @conda-forge/clang-compiler-activation @conda-forge/core
One unavoidable consequence of making compilers easily installable (whether as
gcc_linux-64or through thecompilersmetapackage), is that people and projects started using them, a lot.This leads to friction because although we never promised to support use outside conda-forge, it is a de facto reality nowadays.
On top of that there are efforts to better handle build profiles (e.g. release/debug/etc.), c.f. conda-forge/ctng-compiler-activation-feedstock#157.
What I'm thinking about is that we should introduce a third level in the hierarchy between (currently):
${<lang>_compiler}_<platform>(fully activated compiler, geared towards conda-forge)${<lang>_compiler}_impl_<platform>(complete dependencies, no activation)into something like
${<lang>_compiler}-cf_<platform>(fully activated compiler, geared towards conda-forge)${<lang>_compiler}_<platform>(minimally activated compiler, e.g. pointing to$PREFIX, but no extra flags)${<lang>_compiler}_impl_<platform>(complete dependencies, no activation)That would allow external users of our compiler stack to avoid having to play around with stripping out flags, while conda-forge could keep all its default config (e.g.
-O2 -DCMAKE_BUILD_TYPE=Releaseetc.) in the conda-forge-specific compiler flavours.FYI @wolfv @ruben-arts @jaimergp @mgorny @rgommers
CC @conda-forge/clang-compiler-activation @conda-forge/core