Skip to content

ENH: minimally activated compilers #2595

@h-vetinari

Description

@h-vetinari

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions