Type describing a generated build target
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| character(len=:), | public, | allocatable | :: | compile_flags | Compile flags for this build target | ||
| type(build_target_ptr), | public, | allocatable | :: | dependencies(:) | Resolved build dependencies | ||
| integer(kind=int64), | public, | allocatable | :: | digest_cached | Previous source file hash | ||
| type(fortran_config_t), | public | :: | features | Language features | |||
| character(len=:), | public, | allocatable | :: | link_flags | Link flags for this build target | ||
| type(string_t), | public, | allocatable | :: | link_libraries(:) | Native libraries to link against | ||
| type(string_t), | public, | allocatable | :: | link_objects(:) | Objects needed to link this target | ||
| type(string_t), | public, | allocatable | :: | macros(:) | List of macros | ||
| character(len=:), | public, | allocatable | :: | output_dir | File path of output directory | ||
| character(len=:), | public, | allocatable | :: | output_file | File path of build target object relative to cwd | ||
| character(len=:), | public, | allocatable | :: | output_log_file | File path of build log file relative to cwd | ||
| character(len=:), | public, | allocatable | :: | output_name | File path of build target object relative to output_dir | ||
| character(len=:), | public, | allocatable | :: | package_name | Name of parent package | ||
| integer, | public | :: | schedule | = | -1 | Targets in the same schedule group are guaranteed to be independent | |
| logical, | public | :: | skip | = | .false. | Flag set if build target will be skipped (not built) | |
| logical, | public | :: | sorted | = | .false. | Flag set if build target is sorted for building | |
| type(srcfile_t), | public, | allocatable | :: | source | Primary source for this build target | ||
| integer, | public | :: | target_type | = | FPM_TARGET_UNKNOWN | Target type | |
| logical, | public | :: | touched | = | .false. | Flag set when first visited to check for circular dependencies | |
| type(version_t), | public, | allocatable | :: | version | Version number | 
Print information on this instance
Write information on a build target
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(build_target_t), | intent(in) | :: | self | |||
| integer, | intent(in) | :: | unit | |||
| integer, | intent(in), | optional | :: | verbosity | 
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(build_target_t), | intent(in) | :: | target_ptr | |||
| integer, | intent(in) | :: | scope | 
Set output directory
Helper function: update output directory of a target
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(build_target_t), | intent(inout) | :: | self | |||
| character(len=*), | intent(in), | optional | :: | output_dir | 
type build_target_t !> File path of build target object relative to cwd character(:), allocatable :: output_file !> File path of build target object relative to output_dir character(:), allocatable :: output_name !> File path of output directory character(:), allocatable :: output_dir !> File path of build log file relative to cwd character(:), allocatable :: output_log_file !> Name of parent package character(:), allocatable :: package_name !> Primary source for this build target type(srcfile_t), allocatable :: source !> Resolved build dependencies type(build_target_ptr), allocatable :: dependencies(:) !> Target type integer :: target_type = FPM_TARGET_UNKNOWN !> Native libraries to link against type(string_t), allocatable :: link_libraries(:) !> Objects needed to link this target type(string_t), allocatable :: link_objects(:) !> Link flags for this build target character(:), allocatable :: link_flags !> Compile flags for this build target character(:), allocatable :: compile_flags !> Flag set when first visited to check for circular dependencies logical :: touched = .false. !> Flag set if build target is sorted for building logical :: sorted = .false. !> Flag set if build target will be skipped (not built) logical :: skip = .false. !> Language features type(fortran_config_t) :: features !> Targets in the same schedule group are guaranteed to be independent integer :: schedule = -1 !> Previous source file hash integer(int64), allocatable :: digest_cached !> List of macros type(string_t), allocatable :: macros(:) !> Version number type(version_t), allocatable :: version contains !> Print information on this instance procedure :: info !> Set output directory procedure :: set_output_dir procedure :: is_executable_target end type build_target_t