Modules

ModuleSource FileDescription
fpmfpm.f90
fpm_backendfpm_backend.f90

Uses a list of build_target_ptr and a valid fpm_model instance to schedule and execute the compilation and linking of package targets.

Read more…
fpm_cmd_installinstall.f90
fpm_cmd_newnew.f90

A type of the general command base class fpm_cmd_settings was created for the “new” subcommand ==> type fpm_new_settings. This procedure read the values that were set on the command line from this type to decide what actions to take.

Read more…
fpm_cmd_updateupdate.f90
fpm_command_linefpm_command_line.f90

This module uses M_CLI2 to define the command line interface. To define a command line interface create a new command settings type from the fpm_cmd_settings base class or the respective parent command settings.

Read more…
fpm_compilerfpm_compiler.f90

This module defines compiler options to use for the debug and release builds.

Read more…
fpm_dependencydependency.f90

# Dependency management

Read more…
fpm_environmentfpm_environment.f90

This module contains procedures that interact with the programming environment.

Read more…
fpm_errorerror.f90

Implementation of basic error handling.

fpm_filesystemfpm_filesystem.F90

This module contains general routines for interacting with the file system

fpm_gitgit.f90

Implementation for interacting with git repositories.

fpm_installerinstaller.f90

Implementation of an installer object.

Read more…
fpm_manifestmanifest.f90

Package configuration data.

Read more…
fpm_manifest_buildbuild.f90

Implementation of the build configuration data.

Read more…
fpm_manifest_dependencydependency.f90

Implementation of the meta data for dependencies.

Read more…
fpm_manifest_exampleexample.f90

Implementation of the meta data for an example.

Read more…
fpm_manifest_executableexecutable.f90

Implementation of the meta data for an executables.

Read more…
fpm_manifest_installinstall.f90

Implementation of the installation configuration.

Read more…
fpm_manifest_librarylibrary.f90

Implementation of the meta data for libraries.

Read more…
fpm_manifest_packagepackage.f90

Define the package data containing the meta data from the configuration file.

Read more…
fpm_manifest_testtest.f90

Implementation of the meta data for a test.

Read more…
fpm_modelfpm_model.f90

Defines the fpm model data types which encapsulate all information required to correctly build a package and its dependencies.

Read more…
fpm_osfpm_os.F90
fpm_source_parsingfpm_source_parsing.f90

This module exposes two functions, parse_f_source and parse_c_source, which perform a rudimentary parsing of fortran and c source files in order to extract information required for module dependency tracking.

Read more…
fpm_sourcesfpm_sources.f90

This module implements subroutines for building a list of srcfile_t objects by looking for source files in the filesystem.

Read more…
fpm_stringsfpm_strings.f90

This module defines general procedures for string operations for both CHARACTER and TYPE(STRING_T) variables

Read more…
fpm_targetsfpm_targets.f90

This module handles the construction of the build target list from the sources list (targets_from_sources), the resolution of module-dependencies between build targets (resolve_module_dependencies), and the enumeration of objects required for link targets (resolve_target_linking).

Read more…
fpm_tomltoml.f90

This module acts as a proxy to the toml-f public Fortran API and allows to selectively expose components from the library to fpm. The interaction with toml-f data types outside of this module should be limited to tables, arrays and key-lists, most of the necessary interactions are implemented in the building interface with the get_value and set_value procedures.

Read more…
fpm_versioningversioning.f90

Implementation of versioning data for comparing packages