74 lines
3.0 KiB
ReStructuredText
74 lines
3.0 KiB
ReStructuredText
add_executable
|
|
--------------
|
|
|
|
Add an executable to the project using the specified source files.
|
|
|
|
::
|
|
|
|
add_executable(<name> [WIN32] [MACOSX_BUNDLE]
|
|
[EXCLUDE_FROM_ALL]
|
|
source1 source2 ... sourceN)
|
|
|
|
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>).
|
|
|
|
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.
|
|
|
|
If WIN32 is given the property 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 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.
|
|
|
|
The add_executable command can also create IMPORTED executable targets
|
|
using this signature:
|
|
|
|
::
|
|
|
|
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
|
|
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_*
|
|
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.
|