fpm_manifest_feature_collection Module



Interfaces

public interface feature_collection_t

Interface for feature_collection_t constructor

  • public function collection_from_feature(self) result(collection)

    Create a feature collection from a single feature_config_t The feature becomes the base configuration for all OS/compiler combinations

    Arguments

    Type IntentOptional Attributes Name
    class(feature_config_t), intent(in) :: self

    Feature configuration to convert

    Return Value type(feature_collection_t)


Derived Types

type, public, extends(serializable_t) ::  feature_collection_t

Feature configuration data

Components

Type Visibility Attributes Name Initial
type(feature_config_t), public :: base
type(feature_config_t), public, allocatable :: variants(:)

Constructor

Interface for feature_collection_t constructor

public function collection_from_feature (self)

Create a feature collection from a single feature_config_t The feature becomes the base configuration for all OS/compiler combinations

Type-Bound Procedures

procedure, public :: check => check_collection
generic, public :: dump => dump_to_toml, dump_to_file, dump_to_unit
procedure, public :: dump_to_toml => feature_collection_dump
procedure, public :: extract_for_target
procedure, public :: has_cpp
generic, public :: load => load_from_toml, load_from_file, load_from_unit
procedure, public :: load_from_toml => feature_collection_load
procedure, public :: merge_into_package
generic, public :: operator(==) => serializable_is_same
procedure, public :: push_variant
procedure, public :: serializable_is_same => feature_collection_same
procedure, public, non_overridable :: test_serialization

Test load/write roundtrip


Functions

public function collection_from_feature(self) result(collection)

Create a feature collection from a single feature_config_t The feature becomes the base configuration for all OS/compiler combinations

Arguments

Type IntentOptional Attributes Name
class(feature_config_t), intent(in) :: self

Feature configuration to convert

Return Value type(feature_collection_t)

public function default_debug_feature() result(collection)

Create default debug feature collection

Arguments

None

Return Value type(feature_collection_t)

public function default_release_feature() result(collection)

Create default release feature collection

Arguments

None

Return Value type(feature_collection_t)


Subroutines

public subroutine add_default_features(features, error)

Add default features to existing features array if they don’t already exist

Arguments

Type IntentOptional Attributes Name
type(feature_collection_t), intent(inout), allocatable :: features(:)

Instance of the feature collections array (will be resized)

type(error_t), intent(out), allocatable :: error

Error handling

public subroutine get_default_features(collections, error)

Get default feature collections (debug and release)

Arguments

Type IntentOptional Attributes Name
type(feature_collection_t), intent(out), allocatable :: collections(:)

Feature collections array to populate (debug and release)

type(error_t), intent(out), allocatable :: error

Error handling

public subroutine new_collections(collections, table, error)

Initialize multiple feature collections from manifest features table

Arguments

Type IntentOptional Attributes Name
type(feature_collection_t), intent(out), allocatable :: collections(:)
type(toml_table), intent(inout) :: table
type(error_t), intent(out), allocatable :: error