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_backend_consolefpm_backend_console.f90

This module provides a lightweight implementation for printing to the console and updating previously-printed console lines. It used by fpm_backend_output for pretty-printing build status and progress.

Read more…
fpm_backend_outputfpm_backend_output.f90

This module provides a derived type build_progress_t for printing build status and progress messages to the console while the backend is building the package.

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_publishpublish.f90

Upload a package to the registry using the publish command.

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

Dependencies on the top-level can be specified from:

Read more…
fpm_downloaderdownloader.f90
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

Read more…
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_fortranfortran.f90
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_metapackagesmeta.f90

Implementation of the metapackage configuration data.

Read more…
fpm_manifest_packagepackage.f90

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

Read more…
fpm_manifest_preprocesspreprocess.f90

Implementation of the meta data for preprocessing.

Read more…
fpm_manifest_profileprofiles.f90

Implementation of the meta data for compiler flag profiles.

Read more…
fpm_manifest_testtest.f90

Implementation of the meta data for a test.

Read more…
fpm_metafpm_meta.f90

This is a wrapper data type that encapsulate all pre-processing information (compiler flags, linker libraries, etc.) required to correctly enable a package to use a core library.

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_releasefpm_release.F90

Module fpm_release contains public constants storing this build’s unique version IDs

Read more…
fpm_settingsfpm_settings.f90

Manages global settings which are defined in the global config file.

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