Browse Source

Help: Fix incorrect CMAKE_PROJECT_xxx docs

The docs for CMAKE_PROJECT_NAME and CMAKE_PROJECT_DESCRIPTION
were erroneously documenting the behavior of PROJECT_NAME and
PROJECT_DESCRIPTION respectively. Fix these and update the
project() docs to also mention CMAKE_PROJECT_NAME and
CMAKE_PROJECT_DESCRIPTION.

Fixes: #17815
pull/320/head
Craig Scott 7 years ago
parent
commit
6a2a9d107d
  1. 7
      Help/command/project.rst
  2. 34
      Help/variable/CMAKE_PROJECT_DESCRIPTION.rst
  3. 34
      Help/variable/CMAKE_PROJECT_NAME.rst
  4. 5
      Help/variable/PROJECT_DESCRIPTION.rst
  5. 4
      Help/variable/PROJECT_NAME.rst

7
Help/command/project.rst

@ -1,7 +1,7 @@
project project
------- -------
Set a name, version, and enable languages for the entire project.
Sets project details such as name, version, etc. and enables languages.
.. code-block:: cmake .. code-block:: cmake
@ -63,7 +63,10 @@ The top-level ``CMakeLists.txt`` file for a project must contain a
literal, direct call to the :command:`project` command; loading one literal, direct call to the :command:`project` command; loading one
through the :command:`include` command is not sufficient. If no such through the :command:`include` command is not sufficient. If no such
call exists CMake will implicitly add one to the top that enables the call exists CMake will implicitly add one to the top that enables the
default languages (``C`` and ``CXX``).
default languages (``C`` and ``CXX``). The name of the project set in
the top level CMakeLists.txt file is available from the
:variable:`CMAKE_PROJECT_NAME` variable and its description from
:variable:`CMAKE_PROJECT_DESCRIPTION`.
.. note:: .. note::
Call the :command:`cmake_minimum_required` command at the beginning Call the :command:`cmake_minimum_required` command at the beginning

34
Help/variable/CMAKE_PROJECT_DESCRIPTION.rst

@ -1,7 +1,35 @@
CMAKE_PROJECT_DESCRIPTION CMAKE_PROJECT_DESCRIPTION
------------------------- -------------------------
The description of the current project.
The description of the top level project.
This specifies description of the current project from the closest inherited
:command:`project` command.
This variable holds the description of the project as specified in the top
level CMakeLists.txt file by a :command:`project` command. In the event that
the top level CMakeLists.txt contains multiple :command:`project` calls,
the most recently called one from that top level CMakeLists.txt will determine
the name that ``CMAKE_PROJECT_DESCRIPTION`` contains. For example, consider
the following top level CMakeLists.txt:
.. code-block:: cmake
cmake_minimum_required(VERSION 3.0)
project(First DESCRIPTION "I am First")
project(Second DESCRIPTION "I am Second")
add_subdirectory(sub)
project(Third DESCRIPTION "I am Third")
And ``sub/CMakeLists.txt`` with the following contents:
.. code-block:: cmake
project(SubProj DESCRIPTION "I am SubProj")
message("CMAKE_PROJECT_DESCRIPTION = ${CMAKE_PROJECT_DESCRIPTION}")
The most recently seen :command:`project` command from the top level
CMakeLists.txt would be ``project(Second ...)``, so this will print::
CMAKE_PROJECT_DESCRIPTION = I am Second
To obtain the description from the most recent call to :command:`project` in
the current directory scope or above, see the :variable:`PROJECT_DESCRIPTION`
variable.

34
Help/variable/CMAKE_PROJECT_NAME.rst

@ -1,7 +1,35 @@
CMAKE_PROJECT_NAME CMAKE_PROJECT_NAME
------------------ ------------------
The name of the current project.
The name of the top level project.
This specifies name of the current project from the closest inherited
:command:`project` command.
This variable holds the name of the project as specified in the top
level CMakeLists.txt file by a :command:`project` command. In the event that
the top level CMakeLists.txt contains multiple :command:`project` calls,
the most recently called one from that top level CMakeLists.txt will determine
the name that ``CMAKE_PROJECT_NAME`` contains. For example, consider
the following top level CMakeLists.txt:
.. code-block:: cmake
cmake_minimum_required(VERSION 3.0)
project(First)
project(Second)
add_subdirectory(sub)
project(Third)
And ``sub/CMakeLists.txt`` with the following contents:
.. code-block:: cmake
project(SubProj)
message("CMAKE_PROJECT_NAME = ${CMAKE_PROJECT_NAME}")
The most recently seen :command:`project` command from the top level
CMakeLists.txt would be ``project(Second)``, so this will print::
CMAKE_PROJECT_NAME = Second
To obtain the name from the most recent call to :command:`project` in
the current directory scope or above, see the :variable:`PROJECT_NAME`
variable.

5
Help/variable/PROJECT_DESCRIPTION.rst

@ -3,4 +3,7 @@ PROJECT_DESCRIPTION
Short project description given to the project command. Short project description given to the project command.
This is the description given to the most recent :command:`project` command.
This is the description given to the most recently called :command:`project`
command in the current directory scope or above. To obtain the description
of the top level project, see the :variable:`CMAKE_PROJECT_DESCRIPTION`
variable.

4
Help/variable/PROJECT_NAME.rst

@ -3,4 +3,6 @@ PROJECT_NAME
Name of the project given to the project command. Name of the project given to the project command.
This is the name given to the most recent :command:`project` command.
This is the name given to the most recently called :command:`project`
command in the current directory scope or above. To obtain the name of
the top level project, see the :variable:`CMAKE_PROJECT_NAME` variable.
Loading…
Cancel
Save