Open
Description
Description
It would be very useful to pass compiler flags from the fpm.toml file directly to the compilation commands. It seems that currently it is possible to pass very specific flags such as -ffree-form but something more generic would be more flexible. For example
name = "my-fortran-project"
[fortran]
source-form = "free"
user-defined-flags = "-ffree-line-length-none"
The new user-defined-flags
would then be passed straight through to the compiler and the compiler allowed to catch any errors with the flags.
Possible Solution
get_feature_flags could handle a new feature user_defined_flags
function get_feature_flags(compiler, features) result(flags)
type(compiler_t), intent(in) :: compiler
type(fortran_features_t), intent(in) :: features
character(:), allocatable :: flags
flags = ""
if (features%implicit_typing) then
flags = flags // compiler%get_feature_flag("implicit-typing")
else
flags = flags // compiler%get_feature_flag("no-implicit-typing")
end if
if (features%implicit_external) then
flags = flags // compiler%get_feature_flag("implicit-external")
else
flags = flags // compiler%get_feature_flag("no-implicit-external")
end if
if (allocated(features%source_form)) then
flags = flags // compiler%get_feature_flag(features%source_form//"-form")
end if
if (allocated(features%user_defined_flags)) then
flags = flags // " " // features%user_defined_flags
end if
end function get_feature_flags
This would of course require further changes to add user-defined-flags
. Could this be added everywhere source-form
also is currently?
Additional Information
No response