Skip to content

Multiple compiles per configuration file #131

@TheRustifyer

Description

@TheRustifyer

Feature Request

Is your feature request related to a problem? Please describe.

Currently, a single configuration file allows the user to declare only one compiler configuration. It would be beneficial to enable users to configure multiple compilers within a single configuration file, eliminating the need for separate configuration files for each compiler.

Furthermore, it would be advantageous to allow users to specify an array of available operating systems for these configurations. This would enable users to conditionally configure compilers based on the underlying operating system.
Describe the solution you'd like

Describe the solution you'd like

One straightforward solution could be to introduce named entries, similar to the targets feature, where users can configure all the compilers and variations they need. Later, we could simply iterate through each entry in the map. However, this approach would require matching the model.compiler.cpp_compiler throughout the codebase or retrieving it from the hashmap, which could introduce code that is prone to errors.

A better alternative, using a similar approach, would be to introduce a new entity within the configuration file using the [compiler] attribute as [compiler.<compiler_identifier>]. We could then create an adapter that generates a linear collection of standard configuration files. This way, the codebase wouldn’t need extensive modifications wherever the compiler configuration is referenced (which is practically everywhere). Once the adapter generates the linear collection, we can iterate over them with minimal code changes, extending functionality without requiring internal API modifications all over the codebase.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requestfeatureSomething new in the application or library

Type

No type

Projects

Status

No status

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions