diff options
Diffstat (limited to 'Help/command/add_executable.rst')
-rw-r--r-- | Help/command/add_executable.rst | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/Help/command/add_executable.rst b/Help/command/add_executable.rst new file mode 100644 index 0000000000..656af7c51f --- /dev/null +++ b/Help/command/add_executable.rst @@ -0,0 +1,73 @@ +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. |