| Type | Location | Extends | Description | 
|---|---|---|---|
| archiver_t | fpm_compiler | serializable_t | Definition of archiver object | 
| build_config_t | fpm_manifest_build | serializable_t | Configuration data for build | 
| build_progress_t | fpm_backend_output | None | Build progress object | 
| build_target_ptr | fpm_targets | None | Wrapper type for constructing arrays of  | 
| build_target_t | fpm_targets | None | Type describing a generated build target | 
| compile_command_t | fpm_compile_commands | serializable_t | Definition of a build command | 
| compile_command_table_t | fpm_compile_commands | serializable_t | |
| compiler_t | fpm_compiler | serializable_t | Definition of compiler object | 
| console_t | fpm_backend_console | None | Console object | 
| dependency_config_t | fpm_manifest_dependency | serializable_t | Configuration meta data for a dependency | 
| dependency_node_t | fpm_dependency | dependency_config_t | Dependency node in the projects dependency tree | 
| dependency_tree_t | fpm_dependency | serializable_t | Respresentation of a projects dependencies | 
| downloader_t | fpm_downloader | None | This type could be entirely avoided but it is quite practical because it can be mocked for testing. | 
| enum_descriptor | fpm_git | None | Possible git target | 
| error_t | fpm_error | None | Data type defining an error | 
| example_config_t | fpm_manifest_example | executable_config_t | Configuation meta data for an example | 
| executable_config_t | fpm_manifest_executable | serializable_t | Configuation meta data for an executable | 
| feature_collection_t | fpm_manifest_feature_collection | serializable_t | Feature configuration data | 
| feature_config_t | fpm_manifest_feature | serializable_t | Feature configuration data | 
| fortran_config_t | fpm_manifest_fortran | serializable_t | Configuration data for Fortran | 
| fpm_build_settings | fpm_command_line | fpm_cmd_settings | |
| fpm_clean_settings | fpm_command_line | fpm_build_settings | |
| fpm_cmd_settings | fpm_command_line | None | |
| fpm_export_settings | fpm_command_line | fpm_build_settings | Settings for exporting model data | 
| fpm_global_settings | fpm_settings | None | |
| fpm_install_settings | fpm_command_line | fpm_build_settings | |
| fpm_model_t | fpm_model | serializable_t | Type describing everything required to build the root package and its dependencies. | 
| fpm_new_settings | fpm_command_line | fpm_cmd_settings | |
| fpm_publish_settings | fpm_command_line | fpm_build_settings | |
| fpm_run_settings | fpm_command_line | fpm_build_settings | |
| fpm_test_settings | fpm_command_line | fpm_run_settings | |
| fpm_update_settings | fpm_command_line | fpm_cmd_settings | Settings for interacting and updating with project dependencies | 
| git_target_t | fpm_git | serializable_t | Description of an git target | 
| install_config_t | fpm_manifest_install | serializable_t | Configuration data for installation | 
| installer_t | fpm_installer | None | Declaration of the installer type | 
| library_config_t | fpm_manifest_library | serializable_t | Configuration meta data for a library | 
| metapackage_config_t | fpm_manifest_metapackages | serializable_t | Configuration data for metapackages | 
| metapackage_request_t | fpm_manifest_metapackages | serializable_t | Configuration data for a single metapackage request | 
| metapackage_t | fpm_meta_base | None | Type for describing a source file | 
| package_config_t | fpm_manifest_package | feature_config_t | Package meta data
Package configuration data - extends a  | 
| package_t | fpm_model | serializable_t | Type for describing a single package | 
| platform_config_t | fpm_manifest_platform | serializable_t | Serializable platform configuration (compiler + OS only) | 
| preprocess_config_t | fpm_manifest_preprocess | serializable_t | Configuration meta data for a preprocessor | 
| profile_config_t | fpm_manifest_profile | serializable_t | Configuration data for a profile | 
| serializable_t | fpm_toml | None | An abstract interface for any fpm class that should be fully serializable to/from TOML/JSON | 
| srcfile_t | fpm_model | serializable_t | Type for describing a source file | 
| string_t | fpm_strings | None | |
| test_config_t | fpm_manifest_test | executable_config_t | Configuation meta data for an test | 
| version_t | fpm_versioning | None |