ModuleSource FileDescription
fpm fpm.f90
fpm_backend fpm_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_console fpm_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_output fpm_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_export export.f90
fpm_cmd_install install.f90
fpm_cmd_new new.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_publish publish.f90

Upload a package to the registry using the publish command.

Read more…
fpm_cmd_update update.f90
fpm_command_line fpm_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_compiler fpm_compiler.F90

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

Read more…
fpm_dependency dependency.f90

Dependencies on the top-level can be specified from:

Read more…
fpm_downloader downloader.f90
fpm_environment fpm_environment.f90

This module contains procedures that interact with the programming environment.

Read more…
fpm_error error.f90

Implementation of basic error handling.

fpm_filesystem fpm_filesystem.F90

This module contains general routines for interacting with the file system

Read more…
fpm_git git.f90

Implementation for interacting with git repositories.

fpm_installer installer.f90

Implementation of an installer object.

Read more…
fpm_manifest manifest.f90

Package configuration data.

Read more…
fpm_manifest_build build.f90

Implementation of the build configuration data.

Read more…
fpm_manifest_dependency dependency.f90

Implementation of the meta data for dependencies.

Read more…
fpm_manifest_example example.f90

Implementation of the meta data for an example.

Read more…
fpm_manifest_executable executable.f90

Implementation of the meta data for an executables.

Read more…
fpm_manifest_fortran fortran.f90
fpm_manifest_install install.f90

Implementation of the installation configuration.

Read more…
fpm_manifest_library library.f90

Implementation of the meta data for libraries.

Read more…
fpm_manifest_metapackages meta.f90

Implementation of the metapackage configuration data.

Read more…
fpm_manifest_package package.f90

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

Read more…
fpm_manifest_preprocess preprocess.f90

Implementation of the meta data for preprocessing.

Read more…
fpm_manifest_profile profiles.f90

Implementation of the meta data for compiler flag profiles.

Read more…
fpm_manifest_test test.f90

Implementation of the meta data for a test.

Read more…
fpm_meta fpm_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_model fpm_model.f90

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

Read more…
fpm_os fpm_os.F90
fpm_release fpm_release.F90

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

Read more…
fpm_settings fpm_settings.f90

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

fpm_source_parsing fpm_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_sources fpm_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_strings fpm_strings.f90

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

Read more…
fpm_targets fpm_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_toml toml.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_versioning versioning.f90

Implementation of versioning data for comparing packages