blob: 9d085fdf825176be5d28f9cace0d5c046f816fbf [file] [log] [blame]
name: declare_dependency
returns: dep
description: |
This function returns a [[@dep]] object that
behaves like the return value of [[dependency]] but is
internal to the current build. The main use case for this is in
subprojects. This allows a subproject to easily specify how it should
be used. This makes it interchangeable with the same dependency that
is provided externally by the system.
kwargs:
compile_args:
type: list[str]
description: Compile arguments to use.
dependencies:
type: list[dep]
description: Other dependencies needed to use this dependency.
include_directories:
type: list[inc | str]
description: |
the directories to add to header search path,
must be [[@inc]] objects or *(since 0.50.0)* plain strings.
link_args:
type: list[str]
description: Link arguments to use.
link_with:
type: list[lib]
description: Libraries to link against.
link_whole:
type: list[lib]
since: 0.46.0
description: Libraries to link fully, same as [[executable]].
sources:
type: list[str | file | custom_tgt | custom_idx | generated_list]
description: |
sources to add to targets
(or generated header files
that should be built before sources including them are built)
extra_files:
type: list[str | file]
since: 1.2.0
description: |
extra files to add to targets.
mostly used for IDE integration.
version:
type: str
description: |
the version of this dependency,
such as `1.2.3`. Defaults to the project version.
variables:
type: dict[str] | list[str]
since: 0.54.0
description: |
a dictionary of arbitrary strings,
this is meant to be used
in subprojects where special variables would be provided via cmake or
pkg-config. *since 0.56.0* it can also be a list of `'key=value'` strings.
d_module_versions:
type: str | int | list[str | int]
since: 0.62.0
description: |
The [D version identifiers](https://dlang.org/spec/version.html#version) to add
during the compilation of D source files.
d_import_dirs:
type: list[inc | str]
since: 0.62.0
description: |
the directories to add to the string search path (i.e. `-J` switch for DMD).
Must be [[@inc]] objects or plain strings.
objects:
type: list[extracted_obj]
since: 1.1.0
description: |
a list of object files, to be linked directly into the targets that use the
dependency.