Progress status - #3
I have started coding on Monday by creating the new source file
fpm_manifest_profiles.f90. This includes the
profile_config_t type, all subroutines necessary for parsing toml profiles table and a subroutine
find_profile which finds the best matching profile based on given arguments.
The parsing of the toml should follow the following rules:
- Default behaviour is the creation of a profile with the full specification, e.g.
- If a user does not specify the name of the profile flag (
debug in the last example), add the flags to all profiles that match the other two fields (compiler and OS).
- If a user does not specify the name of the compiler, use the default compiler name (currently set to
- If a user does not specify the operating system, use these flags if no profile matches OS exactly. Example:
Assuming we are on Unix based system, the first profile is going to be used. On Windows device, the second profile has priority.
The built-in profiles from fpm_compiler are loaded now to the profiles and if a user does not specify a better matching profile, they can be used. If anybody knows, what the
id_f95 stands for, please let me know. I also assumed that
id_nvhpc should use
nvfortran as a compiler.
The user’s profile has to be specified from the command line with the
--profile flag. If this flag is not present,
build_model checks whether the
settings%flag field is not empty and in case it is,
debug profile is used. If both
settings%profile are present, the flags are appended together.
All my commits are in my Load_compiler_arguments branch. If you have any suggestions or comments on my code, please do not hesitate to tell me.
- Error handling
- Implementation of
- Research on dependencies in build_model and discussion about the flag scope implementation