build_target_t Derived Type

type, public :: build_target_t

Type describing a generated build target


Contents

Source Code


Components

TypeVisibility AttributesNameInitial
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

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

character(len=:), public, allocatable:: output_file

File path of build target object relative to cwd

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


Source Code

type build_target_t

    !> File path of build target object relative to cwd
    character(:), allocatable :: output_file

    !> 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.

    !> Targets in the same schedule group are guaranteed to be independent
    integer :: schedule = -1

    !> Previous source file hash
    integer(int64), allocatable :: digest_cached

end type build_target_t