summaryrefslogtreecommitdiffstats
path: root/Help/command
diff options
context:
space:
mode:
authorDeniz Bahadir <dbahadir@benocs.com>2017-10-19 12:31:10 (GMT)
committerBrad King <brad.king@kitware.com>2017-10-24 12:14:47 (GMT)
commit4e7f67383f297d708efbb6640c9bee188a127d4e (patch)
tree4aba6cacdf3974f6bfbb4cb5908a37011a5ed33c /Help/command
parent6e4e7c6547fb4d379d564340d015af20e4a4e892 (diff)
downloadCMake-4e7f67383f297d708efbb6640c9bee188a127d4e.zip
CMake-4e7f67383f297d708efbb6640c9bee188a127d4e.tar.gz
CMake-4e7f67383f297d708efbb6640c9bee188a127d4e.tar.bz2
Defer check for sources within a target until generation.
The `add_library` and `add_executable` commands can now be called with no source-files and won't generate a warning or error message, as long as source-files will be added later via the `target_sources` command. If during the generation step still no sources are associated with targets created by such calls a useful error message will be generated and generation fails. Targets of type `INTERFACE_LIBRARY`, `UTILITY` or `GLOBAL_TARGET` are excluded from this check because we do not need sources for these target types during generation. Fixes: #16872
Diffstat (limited to 'Help/command')
-rw-r--r--Help/command/add_executable.rst13
-rw-r--r--Help/command/add_library.rst11
2 files changed, 13 insertions, 11 deletions
diff --git a/Help/command/add_executable.rst b/Help/command/add_executable.rst
index c088796..6763620 100644
--- a/Help/command/add_executable.rst
+++ b/Help/command/add_executable.rst
@@ -7,14 +7,15 @@ Add an executable to the project using the specified source files.
add_executable(<name> [WIN32] [MACOSX_BUNDLE]
[EXCLUDE_FROM_ALL]
- source1 [source2 ...])
+ [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
-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>``).
+files listed in the command invocation. (The source files can be omitted
+here if they are added later using :command:`target_sources`.) 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
diff --git a/Help/command/add_library.rst b/Help/command/add_library.rst
index de5335e..78b316d 100644
--- a/Help/command/add_library.rst
+++ b/Help/command/add_library.rst
@@ -14,13 +14,14 @@ Normal Libraries
add_library(<name> [STATIC | SHARED | MODULE]
[EXCLUDE_FROM_ALL]
- source1 [source2 ...])
+ [source1] [source2 ...])
Adds a library 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 library built is constructed based on
-conventions of the native platform (such as ``lib<name>.a`` or
+listed in the command invocation. (The source files can be omitted here
+if they are added later using :command:`target_sources`.) The ``<name>``
+corresponds to the logical target name and must be globally unique within
+a project. The actual file name of the library built is constructed based
+on conventions of the native platform (such as ``lib<name>.a`` or
``<name>.lib``).
``STATIC``, ``SHARED``, or ``MODULE`` may be given to specify the type of