mirror of
https://github.com/Kitware/CMake.git
synced 2026-02-22 06:59:01 -06:00
Help: Mark up the buildsystem commands documentation
Cross-link to the cmake-buildsystem manual.
This commit is contained in:
@@ -7,67 +7,71 @@ Add an executable to the project using the specified source files.
|
||||
|
||||
add_executable(<name> [WIN32] [MACOSX_BUNDLE]
|
||||
[EXCLUDE_FROM_ALL]
|
||||
source1 source2 ... sourceN)
|
||||
source1 [source2 ...])
|
||||
|
||||
Adds an executable target called <name> to be built from the source
|
||||
files listed in the command invocation. The <name> corresponds to the
|
||||
Adds an executable target called ``<name>`` to be built from the source
|
||||
files listed in the command invocation. The ``<name>`` corresponds to the
|
||||
logical target name and must be globally unique within a project. The
|
||||
actual file name of the executable built is constructed based on
|
||||
conventions of the native platform (such as <name>.exe or just
|
||||
<name>).
|
||||
conventions of the native platform (such as ``<name>.exe`` or just
|
||||
``<name>``.
|
||||
|
||||
By default the executable file will be created in the build tree
|
||||
directory corresponding to the source tree directory in which the
|
||||
command was invoked. See documentation of the
|
||||
RUNTIME_OUTPUT_DIRECTORY target property to change this location. See
|
||||
documentation of the OUTPUT_NAME target property to change the <name>
|
||||
part of the final file name.
|
||||
:prop_tgt:`RUNTIME_OUTPUT_DIRECTORY` target property to change this
|
||||
location. See documentation of the :prop_tgt:`OUTPUT_NAME` target property
|
||||
to change the ``<name>`` part of the final file name.
|
||||
|
||||
If WIN32 is given the property WIN32_EXECUTABLE will be set on the
|
||||
target created. See documentation of that target property for
|
||||
If ``WIN32`` is given the property :prop_tgt:`WIN32_EXECUTABLE` will be
|
||||
set on the target created. See documentation of that target property for
|
||||
details.
|
||||
|
||||
If MACOSX_BUNDLE is given the corresponding property will be set on
|
||||
the created target. See documentation of the MACOSX_BUNDLE target
|
||||
property for details.
|
||||
If ``MACOSX_BUNDLE`` is given the corresponding property will be set on
|
||||
the created target. See documentation of the :prop_tgt:`MACOSX_BUNDLE`
|
||||
target property for details.
|
||||
|
||||
If EXCLUDE_FROM_ALL is given the corresponding property will be set on
|
||||
the created target. See documentation of the EXCLUDE_FROM_ALL target
|
||||
property for details.
|
||||
If ``EXCLUDE_FROM_ALL`` is given the corresponding property will be set on
|
||||
the created target. See documentation of the :prop_tgt:`EXCLUDE_FROM_ALL`
|
||||
target property for details.
|
||||
|
||||
The add_executable command can also create IMPORTED executable targets
|
||||
using this signature:
|
||||
See the :manual:`cmake-buildsystem(7)` manual for more on defining
|
||||
buildsystem properties.
|
||||
|
||||
--------------------------------------------------------------------------
|
||||
|
||||
::
|
||||
|
||||
add_executable(<name> IMPORTED [GLOBAL])
|
||||
|
||||
An IMPORTED executable target references an executable file located
|
||||
outside the project. No rules are generated to build it. The target
|
||||
name has scope in the directory in which it is created and below, but
|
||||
the GLOBAL option extends visibility. It may be referenced like any
|
||||
target built within the project. IMPORTED executables are useful for
|
||||
convenient reference from commands like add_custom_command. Details
|
||||
about the imported executable are specified by setting properties
|
||||
An :ref:`IMPORTED executable target <Imported Targets>` references an
|
||||
executable file located outside the project. No rules are generated to
|
||||
build it, and the :prop_tgt:`IMPORTED` target property is ``True``. The
|
||||
target name has scope in the directory in which it is created and below, but
|
||||
the ``GLOBAL`` option extends visibility. It may be referenced like any
|
||||
target built within the project. ``IMPORTED`` executables are useful
|
||||
for convenient reference from commands like :command:`add_custom_command`.
|
||||
Details about the imported executable are specified by setting properties
|
||||
whose names begin in ``IMPORTED_``. The most important such property is
|
||||
IMPORTED_LOCATION (and its per-configuration version
|
||||
IMPORTED_LOCATION_<CONFIG>) which specifies the location of the main
|
||||
executable file on disk. See documentation of the IMPORTED_*
|
||||
:prop_tgt:`IMPORTED_LOCATION` (and its per-configuration version
|
||||
:prop_tgt:`IMPORTED_LOCATION_<CONFIG>`) which specifies the location of
|
||||
the main executable file on disk. See documentation of the ``IMPORTED_*``
|
||||
properties for more information.
|
||||
|
||||
The signature
|
||||
--------------------------------------------------------------------------
|
||||
|
||||
::
|
||||
|
||||
add_executable(<name> ALIAS <target>)
|
||||
|
||||
creates an alias, such that <name> can be used to refer to <target> in
|
||||
subsequent commands. The <name> does not appear in the generated
|
||||
buildsystem as a make target. The <target> may not be an IMPORTED
|
||||
target or an ALIAS. Alias targets can be used as linkable targets,
|
||||
targets to read properties from, executables for custom commands and
|
||||
custom targets. They can also be tested for existance with the
|
||||
regular if(TARGET) subcommand. The <name> may not be used to modify
|
||||
properties of <target>, that is, it may not be used as the operand of
|
||||
set_property, set_target_properties, target_link_libraries etc. An
|
||||
ALIAS target may not be installed of exported.
|
||||
Creates an :ref:`Alias Target <Alias Targets>`, such that ``<name>`` can
|
||||
be used to refer to ``<target>`` in subsequent commands. The ``<name>``
|
||||
does not appear in the generated buildsystem as a make target. The
|
||||
``<target>`` may not be an :ref:`Imported Target <Imported Targets>` or an
|
||||
``ALIAS``. ``ALIAS`` targets can be used as targets to read properties
|
||||
from, executables for custom commands and custom targets. They can also be
|
||||
tested for existance with the regular :command:`if(TARGET)` subcommand.
|
||||
The ``<name>`` may not be used to modify properties of ``<target>``, that
|
||||
is, it may not be used as the operand of :command:`set_property`,
|
||||
:command:`set_target_properties`, :command:`target_link_libraries` etc.
|
||||
An ``ALIAS`` target may not be installed or exported.
|
||||
|
||||
Reference in New Issue
Block a user