diff options
author | Brad King <brad.king@kitware.com> | 2014-02-06 21:19:02 (GMT) |
---|---|---|
committer | CMake Topic Stage <kwrobot@kitware.com> | 2014-02-06 21:19:02 (GMT) |
commit | 6abdc6c16acec3cb6601cc0bdeba4dec30857a02 (patch) | |
tree | 68a0bfef9c275af24ea6c73aee06868e04a11b97 /Help/command/add_executable.rst | |
parent | f55528186a9ff607cbf369299253957848314dd5 (diff) | |
parent | cc46b702d04d4bcfef76db547054533f3a62a8fa (diff) | |
download | CMake-6abdc6c16acec3cb6601cc0bdeba4dec30857a02.zip CMake-6abdc6c16acec3cb6601cc0bdeba4dec30857a02.tar.gz CMake-6abdc6c16acec3cb6601cc0bdeba4dec30857a02.tar.bz2 |
Merge topic 'update-buildsystem-docs'
cc46b702 Help: Adjust the QtAutogen properties to the common style.
f371545d Help: Use ``True`` and ``False`` for IMPORTED values.
3879c847 Help: Document relation of properties to the rest of the buildsystem.
ba4c2fa8 Help: Mark up the buildsystem commands documentation
a683262a Help: Note that the compatible interface properties must not intersect.
fbe01bed Help: Specify how to order and modify transitively set property values.
645500b4 Help: Add hyperlink targets to some manual sections.
85a4fad7 Help: Use ``inline-literals`` to mark generator expressions.
a0fa0253 Help: Mark up references to NEW and OLD policy settings properly.
6c02e7f4 Help: Add a style guide.
91fbff88 Help: Fix typos
Diffstat (limited to 'Help/command/add_executable.rst')
-rw-r--r-- | Help/command/add_executable.rst | 82 |
1 files changed, 43 insertions, 39 deletions
diff --git a/Help/command/add_executable.rst b/Help/command/add_executable.rst index d6fd929..231eeed 100644 --- a/Help/command/add_executable.rst +++ b/Help/command/add_executable.rst @@ -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. |