Skip to content

Compiler & Variant Propagation #29653

@RikkiButler20

Description

@RikkiButler20

Summary

Currently on develop, compiler flags and variants are inconsistent: compiler flags set for a package are inherited by its dependencies, while variants are not. We should have these be consistent by allowing for inheritance to be enabled or disabled for both variants and compiler flags.

  • Make new (spec language) operators
  • Apply operators to variants and compiler flags
  • How to resolve conflicts

Compiler Flags Docs
Variant Docs

Rationale

No response

Description

What I propose is using two of the currently used symbols to symbolized that the variant or compiler flag will be inherited.
Examples:
package++variant --> enabled variant that will be inherited by its dependencies
package+variant --> enabled variant that will not be inherited by its dependencies
package compiler_flag==True --> compiler_flag will be inherited by its dependencies
package compiler_flag=True --> compiler_flag will be not inherited by its dependencies

Additional information

$ spack --version
0.18.0.dev0

General information

  • I have run spack --version and reported the version of Spack
  • I have searched the issues of this repo and believe this is not a duplicate

Metadata

Metadata

Assignees

Labels

featureA feature is missing in Spack

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions