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