Construct a new profile configuration from a TOML data structure
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | profile_name |
Name of the profile |
||
character(len=*), | intent(in) | :: | compiler |
Name of the compiler |
||
integer, | intent(in) | :: | os_type |
Type of the OS |
||
character(len=*), | intent(in), | optional | :: | flags |
Fortran compiler flags |
|
character(len=*), | intent(in), | optional | :: | c_flags |
C compiler flags |
|
character(len=*), | intent(in), | optional | :: | cxx_flags |
C++ compiler flags |
|
character(len=*), | intent(in), | optional | :: | link_time_flags |
Link time compiler flags |
|
type(file_scope_flag), | intent(in), | optional | :: | file_scope_flags(:) |
File scope flags |
|
logical, | intent(in), | optional | :: | is_built_in |
Is this profile one of the built-in ones? |
function new_profile(profile_name, compiler, os_type, flags, c_flags, cxx_flags, & link_time_flags, file_scope_flags, is_built_in) & & result(profile) !> Name of the profile character(len=*), intent(in) :: profile_name !> Name of the compiler character(len=*), intent(in) :: compiler !> Type of the OS integer, intent(in) :: os_type !> Fortran compiler flags character(len=*), optional, intent(in) :: flags !> C compiler flags character(len=*), optional, intent(in) :: c_flags !> C++ compiler flags character(len=*), optional, intent(in) :: cxx_flags !> Link time compiler flags character(len=*), optional, intent(in) :: link_time_flags !> File scope flags type(file_scope_flag), optional, intent(in) :: file_scope_flags(:) !> Is this profile one of the built-in ones? logical, optional, intent(in) :: is_built_in type(profile_config_t) :: profile profile%profile_name = profile_name profile%compiler = compiler profile%os_type = os_type if (present(flags)) then profile%flags = flags else profile%flags = "" end if if (present(c_flags)) then profile%c_flags = c_flags else profile%c_flags = "" end if if (present(cxx_flags)) then profile%cxx_flags = cxx_flags else profile%cxx_flags = "" end if if (present(link_time_flags)) then profile%link_time_flags = link_time_flags else profile%link_time_flags = "" end if if (present(file_scope_flags)) then profile%file_scope_flags = file_scope_flags end if if (present(is_built_in)) then profile%is_built_in = is_built_in else profile%is_built_in = .false. end if end function new_profile