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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions