123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400 |
- .. cmake-manual-description: CMake Command-Line Reference
- cmake(1)
- ********
- Synopsis
- ========
- .. parsed-literal::
- cmake [<options>] (<path-to-source> | <path-to-existing-build>)
- cmake [(-D <var>=<value>)...] -P <cmake-script-file>
- cmake --build <dir> [<options>...] [-- <build-tool-options>...]
- cmake --open <dir>
- cmake -E <command> [<options>...]
- cmake --find-package <options>...
- Description
- ===========
- The "cmake" executable is the CMake command-line interface. It may be
- used to configure projects in scripts. Project configuration settings
- may be specified on the command line with the -D option.
- CMake is a cross-platform build system generator. Projects specify
- their build process with platform-independent CMake listfiles included
- in each directory of a source tree with the name CMakeLists.txt.
- Users build a project by using CMake to generate a build system for a
- native tool on their platform.
- .. _`CMake Options`:
- Options
- =======
- .. include:: OPTIONS_BUILD.txt
- ``-E <command> [<options>...]``
- See `Command-Line Tool Mode`_.
- ``-L[A][H]``
- List non-advanced cached variables.
- List cache variables will run CMake and list all the variables from
- the CMake cache that are not marked as INTERNAL or ADVANCED. This
- will effectively display current CMake settings, which can then be
- changed with -D option. Changing some of the variables may result
- in more variables being created. If A is specified, then it will
- display also advanced variables. If H is specified, it will also
- display help for each variable.
- ``--build <dir>``
- See `Build Tool Mode`_.
- ``--open <dir>``
- Open the generated project in the associated application. This is
- only supported by some generators.
- ``-N``
- View mode only.
- Only load the cache. Do not actually run configure and generate
- steps.
- ``-P <file>``
- Process script mode.
- Process the given cmake file as a script written in the CMake
- language. No configure or generate step is performed and the cache
- is not modified. If variables are defined using -D, this must be
- done before the -P argument.
- ``--find-package``
- See `Find-Package Tool Mode`_.
- ``--graphviz=[file]``
- Generate graphviz of dependencies, see :module:`CMakeGraphVizOptions` for more.
- Generate a graphviz input file that will contain all the library and
- executable dependencies in the project. See the documentation for
- :module:`CMakeGraphVizOptions` for more details.
- ``--system-information [file]``
- Dump information about this system.
- Dump a wide range of information about the current system. If run
- from the top of a binary tree for a CMake project it will dump
- additional information such as the cache, log files etc.
- ``--debug-trycompile``
- Do not delete the try_compile build tree. Only useful on one try_compile at a time.
- Do not delete the files and directories created for try_compile
- calls. This is useful in debugging failed try_compiles. It may
- however change the results of the try-compiles as old junk from a
- previous try-compile may cause a different test to either pass or
- fail incorrectly. This option is best used for one try-compile at a
- time, and only when debugging.
- ``--debug-output``
- Put cmake in a debug mode.
- Print extra information during the cmake run like stack traces with
- message(send_error ) calls.
- ``--trace``
- Put cmake in trace mode.
- Print a trace of all calls made and from where.
- ``--trace-expand``
- Put cmake in trace mode.
- Like ``--trace``, but with variables expanded.
- ``--trace-source=<file>``
- Put cmake in trace mode, but output only lines of a specified file.
- Multiple options are allowed.
- ``--warn-uninitialized``
- Warn about uninitialized values.
- Print a warning when an uninitialized variable is used.
- ``--warn-unused-vars``
- Warn about unused variables.
- Find variables that are declared or set, but not used.
- ``--no-warn-unused-cli``
- Don't warn about command line options.
- Don't find variables that are declared on the command line, but not
- used.
- ``--check-system-vars``
- Find problems with variable usage in system files.
- Normally, unused and uninitialized variables are searched for only
- in CMAKE_SOURCE_DIR and CMAKE_BINARY_DIR. This flag tells CMake to
- warn about other files as well.
- .. include:: OPTIONS_HELP.txt
- .. _`Build Tool Mode`:
- Build Tool Mode
- ===============
- CMake provides a command-line signature to build an already-generated
- project binary tree::
- cmake --build <dir> [<options>...] [-- <build-tool-options>...]
- This abstracts a native build tool's command-line interface with the
- following options:
- ``--build <dir>``
- Project binary directory to be built. This is required and must be first.
- ``--target <tgt>``
- Build ``<tgt>`` instead of default targets. May only be specified once.
- ``--config <cfg>``
- For multi-configuration tools, choose configuration ``<cfg>``.
- ``--clean-first``
- Build target ``clean`` first, then build.
- (To clean only, use ``--target clean``.)
- ``--use-stderr``
- Ignored. Behavior is default in CMake >= 3.0.
- ``--``
- Pass remaining options to the native tool.
- Run ``cmake --build`` with no options for quick help.
- Command-Line Tool Mode
- ======================
- CMake provides builtin command-line tools through the signature::
- cmake -E <command> [<options>...]
- Run ``cmake -E`` or ``cmake -E help`` for a summary of commands.
- Available commands are:
- ``capabilities``
- Report cmake capabilities in JSON format. The output is a JSON object
- with the following keys:
- ``version``
- A JSON object with version information. Keys are:
- ``string``
- The full version string as displayed by cmake ``--version``.
- ``major``
- The major version number in integer form.
- ``minor``
- The minor version number in integer form.
- ``patch``
- The patch level in integer form.
- ``suffix``
- The cmake version suffix string.
- ``isDirty``
- A bool that is set if the cmake build is from a dirty tree.
- ``generators``
- A list available generators. Each generator is a JSON object with the
- following keys:
- ``name``
- A string containing the name of the generator.
- ``toolsetSupport``
- ``true`` if the generator supports toolsets and ``false`` otherwise.
- ``platformSupport``
- ``true`` if the generator supports platforms and ``false`` otherwise.
- ``extraGenerators``
- A list of strings with all the extra generators compatible with
- the generator.
- ``serverMode``
- ``true`` if cmake supports server-mode and ``false`` otherwise.
- ``chdir <dir> <cmd> [<arg>...]``
- Change the current working directory and run a command.
- ``compare_files <file1> <file2>``
- Check if ``<file1>`` is same as ``<file2>``. If files are the same,
- then returns 0, if not it returns 1.
- ``copy <file>... <destination>``
- Copy files to ``<destination>`` (either file or directory).
- If multiple files are specified, the ``<destination>`` must be
- directory and it must exist. Wildcards are not supported.
- ``copy_directory <dir>... <destination>``
- Copy directories to ``<destination>`` directory.
- If ``<destination>`` directory does not exist it will be created.
- ``copy_if_different <file>... <destination>``
- Copy files to ``<destination>`` (either file or directory) if
- they have changed.
- If multiple files are specified, the ``<destination>`` must be
- directory and it must exist.
- ``echo [<string>...]``
- Displays arguments as text.
- ``echo_append [<string>...]``
- Displays arguments as text but no new line.
- ``env [--unset=NAME]... [NAME=VALUE]... COMMAND [ARG]...``
- Run command in a modified environment.
- ``environment``
- Display the current environment variables.
- ``make_directory <dir>...``
- Create ``<dir>`` directories. If necessary, create parent
- directories too. If a directory already exists it will be
- silently ignored.
- ``md5sum <file>...``
- Create MD5 checksum of files in ``md5sum`` compatible format::
- 351abe79cd3800b38cdfb25d45015a15 file1.txt
- 052f86c15bbde68af55c7f7b340ab639 file2.txt
- ``sha1sum <file>...``
- Create SHA1 checksum of files in ``sha1sum`` compatible format::
- 4bb7932a29e6f73c97bb9272f2bdc393122f86e0 file1.txt
- 1df4c8f318665f9a5f2ed38f55adadb7ef9f559c file2.txt
- ``sha224sum <file>...``
- Create SHA224 checksum of files in ``sha224sum`` compatible format::
- b9b9346bc8437bbda630b0b7ddfc5ea9ca157546dbbf4c613192f930 file1.txt
- 6dfbe55f4d2edc5fe5c9197bca51ceaaf824e48eba0cc453088aee24 file2.txt
- ``sha256sum <file>...``
- Create SHA256 checksum of files in ``sha256sum`` compatible format::
- 76713b23615d31680afeb0e9efe94d47d3d4229191198bb46d7485f9cb191acc file1.txt
- 15b682ead6c12dedb1baf91231e1e89cfc7974b3787c1e2e01b986bffadae0ea file2.txt
- ``sha384sum <file>...``
- Create SHA384 checksum of files in ``sha384sum`` compatible format::
- acc049fedc091a22f5f2ce39a43b9057fd93c910e9afd76a6411a28a8f2b8a12c73d7129e292f94fc0329c309df49434 file1.txt
- 668ddeb108710d271ee21c0f3acbd6a7517e2b78f9181c6a2ff3b8943af92b0195dcb7cce48aa3e17893173c0a39e23d file2.txt
- ``sha512sum <file>...``
- Create SHA512 checksum of files in ``sha512sum`` compatible format::
- 2a78d7a6c5328cfb1467c63beac8ff21794213901eaadafd48e7800289afbc08e5fb3e86aa31116c945ee3d7bf2a6194489ec6101051083d1108defc8e1dba89 file1.txt
- 7a0b54896fe5e70cca6dd643ad6f672614b189bf26f8153061c4d219474b05dad08c4e729af9f4b009f1a1a280cb625454bf587c690f4617c27e3aebdf3b7a2d file2.txt
- ``remove [-f] <file>...``
- Remove the file(s). If any of the listed files already do not
- exist, the command returns a non-zero exit code, but no message
- is logged. The ``-f`` option changes the behavior to return a
- zero exit code (i.e. success) in such situations instead.
- ``remove_directory <dir>``
- Remove a directory and its contents. If a directory does
- not exist it will be silently ignored.
- ``rename <oldname> <newname>``
- Rename a file or directory (on one volume).
- ``server``
- Launch :manual:`cmake-server(7)` mode.
- ``sleep <number>...``
- Sleep for given number of seconds.
- ``tar [cxt][vf][zjJ] file.tar [<options>...] [--] [<file>...]``
- Create or extract a tar or zip archive. Options are:
- ``--``
- Stop interpreting options and treat all remaining arguments
- as file names even if they start in ``-``.
- ``--files-from=<file>``
- Read file names from the given file, one per line.
- Blank lines are ignored. Lines may not start in ``-``
- except for ``--add-file=<name>`` to add files whose
- names start in ``-``.
- ``--mtime=<date>``
- Specify modification time recorded in tarball entries.
- ``--format=<format>``
- Specify the format of the archive to be created.
- Supported formats are: ``7zip``, ``gnutar``, ``pax``,
- ``paxr`` (restricted pax, default), and ``zip``.
- ``time <command> [<args>...]``
- Run command and display elapsed time.
- ``touch <file>``
- Touch a file.
- ``touch_nocreate <file>``
- Touch a file if it exists but do not create it. If a file does
- not exist it will be silently ignored.
- UNIX-specific Command-Line Tools
- --------------------------------
- The following ``cmake -E`` commands are available only on UNIX:
- ``create_symlink <old> <new>``
- Create a symbolic link ``<new>`` naming ``<old>``.
- .. note::
- Path to where ``<new>`` symbolic link will be created has to exist beforehand.
- Windows-specific Command-Line Tools
- -----------------------------------
- The following ``cmake -E`` commands are available only on Windows:
- ``delete_regv <key>``
- Delete Windows registry value.
- ``env_vs8_wince <sdkname>``
- Displays a batch file which sets the environment for the provided
- Windows CE SDK installed in VS2005.
- ``env_vs9_wince <sdkname>``
- Displays a batch file which sets the environment for the provided
- Windows CE SDK installed in VS2008.
- ``write_regv <key> <value>``
- Write Windows registry value.
- Find-Package Tool Mode
- ======================
- CMake provides a helper for Makefile-based projects with the signature::
- cmake --find-package <options>...
- This runs in a pkg-config like mode.
- Search a package using :command:`find_package()` and print the resulting flags
- to stdout. This can be used to use cmake instead of pkg-config to find
- installed libraries in plain Makefile-based projects or in autoconf-based
- projects (via ``share/aclocal/cmake.m4``).
- .. note::
- This mode is not well-supported due to some technical limitations.
- It is kept for compatibility but should not be used in new projects.
- See Also
- ========
- .. include:: LINKS.txt
|