cmake/Help/manual/OPTIONS_BUILD.txt

178 lines
6.2 KiB
Plaintext
Raw Normal View History

2022-11-16 20:14:03 +01:00
.. option:: -S <path-to-source>
2018-10-28 12:09:07 +01:00
Path to root directory of the CMake project to build.
2022-11-16 20:14:03 +01:00
.. option:: -B <path-to-build>
2018-10-28 12:09:07 +01:00
Path to directory which CMake will use as the root of build directory.
If the directory doesn't already exist CMake will make it.
2022-11-16 20:14:03 +01:00
.. option:: -C <initial-cache>
2014-08-03 19:52:23 +02:00
Pre-load a script to populate the cache.
2019-11-11 23:01:05 +01:00
When CMake is first run in an empty build tree, it creates a
``CMakeCache.txt`` file and populates it with customizable settings for
2014-08-03 19:52:23 +02:00
the project. This option may be used to specify a file from which
to load cache entries before the first pass through the project's
2019-11-11 23:01:05 +01:00
CMake listfiles. The loaded entries take priority over the
2014-08-03 19:52:23 +02:00
project's default values. The given file should be a CMake script
2019-11-11 23:01:05 +01:00
containing :command:`set` commands that use the ``CACHE`` option, not a
2014-08-03 19:52:23 +02:00
cache-format file.
2020-02-01 23:06:01 +01:00
References to :variable:`CMAKE_SOURCE_DIR` and :variable:`CMAKE_BINARY_DIR`
within the script evaluate to the top-level source and build tree.
2022-11-16 20:14:03 +01:00
.. option:: -D <var>:<type>=<value>, -D <var>=<value>
2019-11-11 23:01:05 +01:00
Create or update a CMake ``CACHE`` entry.
2014-08-03 19:52:23 +02:00
2019-11-11 23:01:05 +01:00
When CMake is first run in an empty build tree, it creates a
``CMakeCache.txt`` file and populates it with customizable settings for
2014-08-03 19:52:23 +02:00
the project. This option may be used to specify a setting that
takes priority over the project's default value. The option may be
2019-11-11 23:01:05 +01:00
repeated for as many ``CACHE`` entries as desired.
2014-08-03 19:52:23 +02:00
2015-08-17 11:37:30 +02:00
If the ``:<type>`` portion is given it must be one of the types
specified by the :command:`set` command documentation for its
``CACHE`` signature.
If the ``:<type>`` portion is omitted the entry will be created
with no type if it does not exist with a type already. If a
command in the project sets the type to ``PATH`` or ``FILEPATH``
then the ``<value>`` will be converted to an absolute path.
This option may also be given as a single argument:
``-D<var>:<type>=<value>`` or ``-D<var>=<value>``.
2022-11-16 20:14:03 +01:00
It's important to note that the order of ``-C`` and ``-D`` arguments is
significant. They will be carried out in the order they are listed, with the
last argument taking precedence over the previous ones. For example, if you
specify ``-DCMAKE_BUILD_TYPE=Debug``, followed by a ``-C`` argument with a
file that calls:
.. code-block:: cmake
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "" FORCE)
then the ``-C`` argument will take precedence, and ``CMAKE_BUILD_TYPE`` will
be set to ``Release``. However, if the ``-D`` argument comes after the ``-C``
argument, it will be set to ``Debug``.
If a ``set(... CACHE ...)`` call in the ``-C`` file does not use ``FORCE``,
and a ``-D`` argument sets the same variable, the ``-D`` argument will take
precedence regardless of order because of the nature of non-``FORCE``
``set(... CACHE ...)`` calls.
.. option:: -U <globbing_expr>
2019-11-11 23:01:05 +01:00
Remove matching entries from CMake ``CACHE``.
2014-08-03 19:52:23 +02:00
This option may be used to remove one or more variables from the
2019-11-11 23:01:05 +01:00
``CMakeCache.txt`` file, globbing expressions using ``*`` and ``?`` are
supported. The option may be repeated for as many ``CACHE`` entries as
2014-08-03 19:52:23 +02:00
desired.
2019-11-11 23:01:05 +01:00
Use with care, you can make your ``CMakeCache.txt`` non-working.
2014-08-03 19:52:23 +02:00
2022-11-16 20:14:03 +01:00
.. option:: -G <generator-name>
2014-08-03 19:52:23 +02:00
Specify a build system generator.
CMake may support multiple native build systems on certain
platforms. A generator is responsible for generating a particular
build system. Possible generator names are specified in the
2015-08-17 11:37:30 +02:00
:manual:`cmake-generators(7)` manual.
2014-08-03 19:52:23 +02:00
2019-11-11 23:01:05 +01:00
If not specified, CMake checks the :envvar:`CMAKE_GENERATOR` environment
variable and otherwise falls back to a builtin default selection.
2022-11-16 20:14:03 +01:00
.. option:: -T <toolset-spec>
2017-07-20 19:35:53 +02:00
Toolset specification for the generator, if supported.
2014-08-03 19:52:23 +02:00
2017-07-20 19:35:53 +02:00
Some CMake generators support a toolset specification to tell
the native build system how to choose a compiler. See the
:variable:`CMAKE_GENERATOR_TOOLSET` variable for details.
2014-08-03 19:52:23 +02:00
2022-11-16 20:14:03 +01:00
.. option:: -A <platform-name>
2015-04-27 22:25:09 +02:00
Specify platform name if supported by generator.
Some CMake generators support a platform name to be given to the
2016-10-30 18:24:19 +01:00
native build system to choose a compiler or SDK. See the
2017-07-20 19:35:53 +02:00
:variable:`CMAKE_GENERATOR_PLATFORM` variable for details.
2015-04-27 22:25:09 +02:00
2022-11-16 20:14:03 +01:00
.. option:: --toolchain <path-to-file>
2023-12-07 09:12:54 +01:00
.. versionadded:: 3.21
2021-09-14 00:13:48 +02:00
Specify the cross compiling toolchain file, equivalent to setting
2024-07-09 14:46:46 +02:00
:variable:`CMAKE_TOOLCHAIN_FILE` variable. Relative paths are interpreted as
relative to the build directory, and if not found, relative to the source
directory.
2021-09-14 00:13:48 +02:00
2022-11-16 20:14:03 +01:00
.. option:: --install-prefix <directory>
2023-12-07 09:12:54 +01:00
.. versionadded:: 3.21
2021-09-14 00:13:48 +02:00
Specify the installation directory, used by the
:variable:`CMAKE_INSTALL_PREFIX` variable. Must be an absolute path.
2022-11-16 20:14:03 +01:00
.. option:: -Wno-dev
2014-08-03 19:52:23 +02:00
Suppress developer warnings.
Suppress warnings that are meant for the author of the
2019-11-11 23:01:05 +01:00
``CMakeLists.txt`` files. By default this will also turn off
2016-03-13 13:35:51 +01:00
deprecation warnings.
2014-08-03 19:52:23 +02:00
2022-11-16 20:14:03 +01:00
.. option:: -Wdev
2014-08-03 19:52:23 +02:00
Enable developer warnings.
2019-11-11 23:01:05 +01:00
Enable warnings that are meant for the author of the ``CMakeLists.txt``
2016-03-13 13:35:51 +01:00
files. By default this will also turn on deprecation warnings.
2022-11-16 20:14:03 +01:00
.. option:: -Wdeprecated
2016-03-13 13:35:51 +01:00
Enable deprecated functionality warnings.
Enable warnings for usage of deprecated functionality, that are meant
2019-11-11 23:01:05 +01:00
for the author of the ``CMakeLists.txt`` files.
2016-03-13 13:35:51 +01:00
2022-11-16 20:14:03 +01:00
.. option:: -Wno-deprecated
2016-03-13 13:35:51 +01:00
Suppress deprecated functionality warnings.
Suppress warnings for usage of deprecated functionality, that are meant
2019-11-11 23:01:05 +01:00
for the author of the ``CMakeLists.txt`` files.
2016-03-13 13:35:51 +01:00
2022-11-16 20:14:03 +01:00
.. option:: -Werror=<what>
Treat CMake warnings as errors. ``<what>`` must be one of the following:
``dev``
Make developer warnings errors.
Make warnings that are meant for the author of the ``CMakeLists.txt`` files
errors. By default this will also turn on deprecated warnings as errors.
``deprecated``
Make deprecated macro and function warnings errors.
Make warnings for usage of deprecated macros and functions, that are meant
for the author of the ``CMakeLists.txt`` files, errors.
.. option:: -Wno-error=<what>
2016-03-13 13:35:51 +01:00
2022-11-16 20:14:03 +01:00
Do not treat CMake warnings as errors. ``<what>`` must be one of the following:
2016-03-13 13:35:51 +01:00
2022-11-16 20:14:03 +01:00
``dev``
Make warnings that are meant for the author of the ``CMakeLists.txt`` files not
errors. By default this will also turn off deprecated warnings as errors.
2016-03-13 13:35:51 +01:00
2022-11-16 20:14:03 +01:00
``deprecated``
Make warnings for usage of deprecated macros and functions, that are meant
for the author of the ``CMakeLists.txt`` files, not errors.