diff options
Diffstat (limited to 'Help')
69 files changed, 1131 insertions, 98 deletions
diff --git a/Help/command/build_name.rst b/Help/command/build_name.rst index 2148e49..53cd05e 100644 --- a/Help/command/build_name.rst +++ b/Help/command/build_name.rst @@ -1,7 +1,9 @@ build_name ---------- -Deprecated. Use ${CMAKE_SYSTEM} and ${CMAKE_CXX_COMPILER} instead. +Disallowed. See CMake Policy :policy:`CMP0036`. + +Use ${CMAKE_SYSTEM} and ${CMAKE_CXX_COMPILER} instead. :: diff --git a/Help/command/export_library_dependencies.rst b/Help/command/export_library_dependencies.rst index c09f3d5..73c0b42 100644 --- a/Help/command/export_library_dependencies.rst +++ b/Help/command/export_library_dependencies.rst @@ -1,7 +1,9 @@ export_library_dependencies --------------------------- -Deprecated. Use INSTALL(EXPORT) or EXPORT command. +Disallowed. See CMake Policy :policy:`CMP0033`. + +Use :command:`install(EXPORT)` or :command:`export` command. This command generates an old-style library dependencies file. Projects requiring CMake 2.6 or later should not use the command. Use diff --git a/Help/command/include_directories.rst b/Help/command/include_directories.rst index 6744427..3e0c7a0 100644 --- a/Help/command/include_directories.rst +++ b/Help/command/include_directories.rst @@ -19,7 +19,7 @@ used by the generators. By default the directories are appended onto the current list of directories. This default behavior can be changed by setting -CMAKE_INCLUDE_DIRECTORIES_BEFORE to ON. By using AFTER or BEFORE +:variable:`CMAKE_INCLUDE_DIRECTORIES_BEFORE` to ON. By using AFTER or BEFORE explicitly, you can select between appending and prepending, independent of the default. diff --git a/Help/command/load_command.rst b/Help/command/load_command.rst index 63f23be..fc316d4 100644 --- a/Help/command/load_command.rst +++ b/Help/command/load_command.rst @@ -1,6 +1,8 @@ load_command ------------ +Disallowed. See CMake Policy :policy:`CMP0031`. + Load a command into a running CMake. :: diff --git a/Help/command/output_required_files.rst b/Help/command/output_required_files.rst index d6bce13..5e13557 100644 --- a/Help/command/output_required_files.rst +++ b/Help/command/output_required_files.rst @@ -1,7 +1,9 @@ output_required_files --------------------- -Deprecated. Approximate C preprocessor dependency scanning. +Disallowed. See CMake Policy :policy:`CMP0032`. + +Approximate C preprocessor dependency scanning. This command exists only because ancient CMake versions provided it. CMake handles preprocessor dependency scanning automatically using a diff --git a/Help/command/string.rst b/Help/command/string.rst index 1e18ca6..af18825 100644 --- a/Help/command/string.rst +++ b/Help/command/string.rst @@ -15,6 +15,7 @@ String operations. string(REPLACE <match_string> <replace_string> <output variable> <input> [<input>...]) + string(CONCAT <output variable> [<input>...]) string(<MD5|SHA1|SHA224|SHA256|SHA384|SHA512> <output variable> <input>) string(COMPARE EQUAL <string1> <string2> <output variable>) @@ -51,6 +52,9 @@ through argument parsing. REPLACE will replace all occurrences of match_string in the input with replace_string and store the result in the output. +CONCAT will concatenate all the input arguments together and store +the result in the named output variable. + MD5, SHA1, SHA224, SHA256, SHA384, and SHA512 will compute a cryptographic hash of the input string. diff --git a/Help/command/subdir_depends.rst b/Help/command/subdir_depends.rst index c72a4af..5676c8f 100644 --- a/Help/command/subdir_depends.rst +++ b/Help/command/subdir_depends.rst @@ -1,7 +1,9 @@ subdir_depends -------------- -Deprecated. Does nothing. +Disallowed. See CMake Policy :policy:`CMP0029`. + +Does nothing. :: diff --git a/Help/command/target_compile_options.rst b/Help/command/target_compile_options.rst index 88a4ea3..71d57f9 100644 --- a/Help/command/target_compile_options.rst +++ b/Help/command/target_compile_options.rst @@ -18,7 +18,7 @@ The INTERFACE, PUBLIC and PRIVATE keywords are required to specify the scope of the following arguments. PRIVATE and PUBLIC items will populate the COMPILE_OPTIONS property of <target>. PUBLIC and INTERFACE items will populate the INTERFACE_COMPILE_OPTIONS property -of <target>. The following arguments specify compile opitions. +of <target>. The following arguments specify compile options. Repeated calls for the same <target> append items in the order called. Arguments to target_compile_options may use "generator expressions" diff --git a/Help/command/target_link_libraries.rst b/Help/command/target_link_libraries.rst index a1e3e22..c2d2dc6 100644 --- a/Help/command/target_link_libraries.rst +++ b/Help/command/target_link_libraries.rst @@ -32,13 +32,16 @@ per-configuration rules by creating and linking to IMPORTED library targets. See the IMPORTED mode of the add_library command for more information. -Library dependencies are transitive by default. When this target is -linked into another target then the libraries linked to this target -will appear on the link line for the other target too. See the -INTERFACE_LINK_LIBRARIES target property to override the set of -transitive link dependencies for a target. Calls to other signatures -of this command may set the property making any libraries linked -exclusively by this signature private. +Library dependencies are transitive by default with this signature. +When this target is linked into another target then the libraries +linked to this target will appear on the link line for the other +target too. This transitive "link interface" is stored in the +INTERFACE_LINK_LIBRARIES target property when policy CMP0022 is set to +NEW and may be overridden by setting the property directly. +(When CMP0022 is not set to NEW, transitive linking is builtin but may +be overridden by the LINK_INTERFACE_LIBRARIES property. Calls to other +signatures of this command may set the property making any libraries +linked exclusively by this signature private.) CMake will also propagate "usage requirements" from linked library targets. Usage requirements affect compilation of sources in the @@ -59,10 +62,11 @@ for <target>: If an <item> is a library in a Mac OX framework, the Headers directory of the framework will also be processed as a "usage requirement". This has the same effect as passing the framework directory as an -include directory. target_link_libraries(<target> +include directory. :: + target_link_libraries(<target> <PRIVATE|PUBLIC|INTERFACE> <lib> ... [<PRIVATE|PUBLIC|INTERFACE> <lib> ... ] ...]) diff --git a/Help/command/use_mangled_mesa.rst b/Help/command/use_mangled_mesa.rst index a4d77e9..6f4d7ac 100644 --- a/Help/command/use_mangled_mesa.rst +++ b/Help/command/use_mangled_mesa.rst @@ -1,6 +1,8 @@ use_mangled_mesa ---------------- +Disallowed. See CMake Policy :policy:`CMP0030`. + Copy mesa headers for use in combination with system GL. :: diff --git a/Help/command/utility_source.rst b/Help/command/utility_source.rst index e513627..5122e52 100644 --- a/Help/command/utility_source.rst +++ b/Help/command/utility_source.rst @@ -1,6 +1,8 @@ utility_source -------------- +Disallowed. See CMake Policy :policy:`CMP0034`. + Specify the source tree of a third-party utility. :: diff --git a/Help/command/variable_requires.rst b/Help/command/variable_requires.rst index 7535e40..831dd00 100644 --- a/Help/command/variable_requires.rst +++ b/Help/command/variable_requires.rst @@ -1,7 +1,9 @@ variable_requires ----------------- -Deprecated. Use the if() command instead. +Disallowed. See CMake Policy :policy:`CMP0035`. + +Use the if() command instead. Assert satisfaction of an option's required variables. diff --git a/Help/generator/Visual Studio 10 2010.rst b/Help/generator/Visual Studio 10 2010.rst new file mode 100644 index 0000000..000677a --- /dev/null +++ b/Help/generator/Visual Studio 10 2010.rst @@ -0,0 +1,12 @@ +Visual Studio 10 2010 +--------------------- + +Generates Visual Studio 10 (VS 2010) project files. + +It is possible to append a space followed by the platform name to +create project files for a specific target platform. E.g. +"Visual Studio 10 2010 Win64" will create project files for the +x64 processor; "Visual Studio 10 2010 IA64" for Itanium. + +For compatibility with CMake versions prior to 3.0, one may specify this +generator using the name "Visual Studio 10" without the year component. diff --git a/Help/generator/Visual Studio 10.rst b/Help/generator/Visual Studio 10.rst deleted file mode 100644 index 9ea7970..0000000 --- a/Help/generator/Visual Studio 10.rst +++ /dev/null @@ -1,9 +0,0 @@ -Visual Studio 10 ----------------- - -Generates Visual Studio 10 (2010) project files. - -It is possible to append a space followed by the platform name to -create project files for a specific target platform. E.g. "Visual -Studio 10 Win64" will create project files for the x64 processor; -"Visual Studio 10 IA64" for Itanium. diff --git a/Help/generator/Visual Studio 11 2012.rst b/Help/generator/Visual Studio 11 2012.rst new file mode 100644 index 0000000..42f6f91 --- /dev/null +++ b/Help/generator/Visual Studio 11 2012.rst @@ -0,0 +1,12 @@ +Visual Studio 11 2012 +--------------------- + +Generates Visual Studio 11 (VS 2012) project files. + +It is possible to append a space followed by the platform name to +create project files for a specific target platform. E.g. +"Visual Studio 11 2012 Win64" will create project files for the +x64 processor; "Visual Studio 11 2012 ARM" for ARM. + +For compatibility with CMake versions prior to 3.0, one may specify this +generator using the name "Visual Studio 11" without the year component. diff --git a/Help/generator/Visual Studio 11.rst b/Help/generator/Visual Studio 11.rst deleted file mode 100644 index 4115c8d..0000000 --- a/Help/generator/Visual Studio 11.rst +++ /dev/null @@ -1,9 +0,0 @@ -Visual Studio 11 ----------------- - -Generates Visual Studio 11 (2012) project files. - -It is possible to append a space followed by the platform name to -create project files for a specific target platform. E.g. "Visual -Studio 11 Win64" will create project files for the x64 processor; -"Visual Studio 11 ARM" for ARM. diff --git a/Help/generator/Visual Studio 12 2013.rst b/Help/generator/Visual Studio 12 2013.rst new file mode 100644 index 0000000..d2f4912 --- /dev/null +++ b/Help/generator/Visual Studio 12 2013.rst @@ -0,0 +1,12 @@ +Visual Studio 12 2013 +--------------------- + +Generates Visual Studio 12 (VS 2013) project files. + +It is possible to append a space followed by the platform name to +create project files for a specific target platform. E.g. +"Visual Studio 12 2013 Win64" will create project files for the +x64 processor; "Visual Studio 12 2013 ARM" for ARM. + +For compatibility with CMake versions prior to 3.0, one may specify this +generator using the name "Visual Studio 12" without the year component. diff --git a/Help/generator/Visual Studio 12.rst b/Help/generator/Visual Studio 12.rst deleted file mode 100644 index 51bcab7..0000000 --- a/Help/generator/Visual Studio 12.rst +++ /dev/null @@ -1,9 +0,0 @@ -Visual Studio 12 ----------------- - -Generates Visual Studio 12 (2013) project files. - -It is possible to append a space followed by the platform name to -create project files for a specific target platform. E.g. "Visual -Studio 12 Win64" will create project files for the x64 processor; -"Visual Studio 12 ARM" for ARM. diff --git a/Help/index.rst b/Help/index.rst index 7db0be6..dea1463 100644 --- a/Help/index.rst +++ b/Help/index.rst @@ -1,29 +1,50 @@ -CMake Reference Documentation -############################# +.. title:: CMake Reference Documentation -.. only:: html - - Reference Manuals: +Command-Line Tools +################## .. toctree:: :maxdepth: 1 - /manual/ccmake.1 /manual/cmake.1 - /manual/cmake-gui.1 - /manual/cpack.1 /manual/ctest.1 + /manual/cpack.1 + +Interactive Dialogs +################### + +.. toctree:: + :maxdepth: 1 + + /manual/cmake-gui.1 + /manual/ccmake.1 + +Reference Manuals +################# + +.. toctree:: + :maxdepth: 1 + /manual/cmake-commands.7 /manual/cmake-generators.7 /manual/cmake-modules.7 /manual/cmake-policies.7 /manual/cmake-properties.7 /manual/cmake-variables.7 + +Other Manuals +############# + +.. toctree:: + :maxdepth: 1 + + /manual/cmake-developer.7 /manual/cmake-generator-expressions.7 .. only:: html - Index and Search: + Index and Search + ################ * :ref:`genindex` * :ref:`search` diff --git a/Help/manual/ccmake.1.rst b/Help/manual/ccmake.1.rst index 62a7dcf..a5fe191 100644 --- a/Help/manual/ccmake.1.rst +++ b/Help/manual/ccmake.1.rst @@ -1,13 +1,14 @@ +.. cmake-manual-description: CMake Curses Dialog Command-Line Reference + ccmake(1) ********* Synopsis ======== -:: +.. parsed-literal:: - ccmake <path-to-source> - ccmake <path-to-existing-build> + ccmake [<options>] (<path-to-source> | <path-to-existing-build>) Description =========== @@ -23,6 +24,9 @@ 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. +Options +======= + .. include:: OPTIONS_BUILD.txt .. include:: OPTIONS_HELP.txt diff --git a/Help/manual/cmake-commands.7.rst b/Help/manual/cmake-commands.7.rst index 71d7375..fb0d2b5 100644 --- a/Help/manual/cmake-commands.7.rst +++ b/Help/manual/cmake-commands.7.rst @@ -1,3 +1,5 @@ +.. cmake-manual-description: CMake Language Command Reference + cmake-commands(7) ***************** @@ -11,6 +13,8 @@ Normal Commands These commands may be used freely in CMake projects. .. toctree:: + :maxdepth: 1 + /command/add_compile_options /command/add_custom_command /command/add_custom_target @@ -103,6 +107,8 @@ These commands are available only for compatibility with older versions of CMake. Do not use them in new code. .. toctree:: + :maxdepth: 1 + /command/build_name /command/exec_program /command/export_library_dependencies @@ -126,6 +132,8 @@ CTest Commands These commands are available only in ctest scripts. .. toctree:: + :maxdepth: 1 + /command/ctest_build /command/ctest_configure /command/ctest_coverage diff --git a/Help/manual/cmake-developer.7.rst b/Help/manual/cmake-developer.7.rst new file mode 100644 index 0000000..5d20c54 --- /dev/null +++ b/Help/manual/cmake-developer.7.rst @@ -0,0 +1,526 @@ +.. cmake-manual-description: CMake Developer Reference + +cmake-developer(7) +****************** + +.. only:: html or latex + + .. contents:: + +Introduction +============ + +This manual is intended for reference by developers modifying the CMake +source tree itself. + +Help +==== + +The ``Help`` directory contains CMake help manual source files. +They are written using the `reStructuredText`_ markup syntax and +processed by `Sphinx`_ to generate the CMake help manuals. + +.. _`reStructuredText`: http://docutils.sourceforge.net/docs/ref/rst/introduction.html +.. _`Sphinx`: http://sphinx-doc.org + +Markup Constructs +----------------- + +In addition to using Sphinx to generate the CMake help manuals, we +also use a C++-implemented document processor to print documents for +the ``--help-*`` command-line help options. It supports a subset of +reStructuredText markup. When authoring or modifying documents, +please verify that the command-line help looks good in addition to the +Sphinx-generated html and man pages. + +The command-line help processor supports the following constructs +defined by reStructuredText, Sphinx, and a CMake extension to Sphinx. + +.. + Note: This list must be kept consistent with the cmRST implementation. + +CMake Domain directives + Directives defined in the `CMake Domain`_ for defining CMake + documentation objects are printed in command-line help output as + if the lines were normal paragraph text with interpretation. + +CMake Domain interpreted text roles + Interpreted text roles defined in the `CMake Domain`_ for + cross-referencing CMake documentation objects are replaced by their + link text in command-line help output. Other roles are printed + literally and not processed. + +``code-block`` directive + Add a literal code block without interpretation. The command-line + help processor prints the block content without the leading directive + line and with common indentation replaced by one space. + +``include`` directive + Include another document source file. The command-line help + processor prints the included document inline with the referencing + document. + +literal block after ``::`` + A paragraph ending in ``::`` followed by a blank line treats + the following indented block as literal text without interpretation. + The command-line help processor prints the ``::`` literally and + prints the block content with common indentation replaced by one + space. We prefer the ``::`` to appear at the end of a paragraph + line instead of as its own line. + +``note`` directive + Call out a side note. The command-line help processor prints the + block content as if the lines were normal paragraph text with + interpretation. + +``parsed-literal`` directive + Add a literal block with markup interpretation. The command-line + help processor prints the block content without the leading + directive line and with common indentation replaced by one space. + +``productionlist`` directive + Render context-free grammar productions. The command-line help + processor prints the block content as if the lines were normal + paragraph text with interpretation. + +``replace`` directive + Define a ``|substitution|`` replacement. + The command-line help processor requires a substitution replacement + to be defined before it is referenced. + +``|substitution|`` reference + Reference a substitution replacement previously defined by + the ``replace`` directive. The command-line help processor + performs the substitution and replaces all newlines in the + replacement text with spaces. + +``toctree`` directive + Include other document sources in the Table-of-Contents + document tree. The command-line help processor prints + the referenced documents inline as part of the referencing + document. + +Inline markup constructs not listed above are printed literally in the +command-line help output. We prefer to use inline markup constructs that +look correct in source form, so avoid use of \\-escapes in favor of inline +literals when possible. + +Explicit markup blocks not matching directives listed above are removed from +command-line help output. Do not use them, except for plain ``..`` comments +that are removed by Sphinx too. + +Note that nested indentation of blocks is not recognized by the +command-line help processor. Therefore: + +* Explicit markup blocks are recognized only when not indented + inside other blocks. + +* Literal blocks after paragraphs ending in ``::`` but not + at the top indentation level may consume all indented lines + following them. + +Try to avoid these cases in practice. + +CMake Domain +------------ + +CMake adds a `Sphinx Domain`_ called ``cmake``, also called the +"CMake Domain". It defines several "object" types for CMake +documentation: + +``command`` + A CMake language command. + +``generator`` + A CMake native build system generator. + See the :manual:`cmake(1)` command-line tool's ``-G`` option. + +``manual`` + A CMake manual page, like this :manual:`cmake-developer(7)` manual. + +``module`` + A CMake module. + See the :manual:`cmake-modules(7)` manual + and the :command:`include` command. + +``policy`` + A CMake policy. + See the :manual:`cmake-policies(7)` manual + and the :command:`cmake_policy` command. + +``prop_cache, prop_dir, prop_gbl, prop_sf, prop_test, prop_tgt`` + A CMake cache, directory, global, source file, test, or target + property, respectively. See the :manual:`cmake-properties(7)` manual + and the :command:`set_property` command. + +``variable`` + A CMake language variable. + See the :manual:`cmake-variables(7)` manual + and the :command:`set` command. + +Documentation objects in the CMake Domain come from two sources. +First, the CMake extension to Sphinx transforms every document named +with the form ``Help/<type>/<file-name>.rst`` to a domain object with +type ``<type>``. The object name is extracted from the document title, +which is expected to be of the form:: + + <object-name> + ------------- + +and to appear at or near the top of the ``.rst`` file before any other +lines starting in a letter, digit, or ``<``. If no such title appears +literally in the ``.rst`` file, the object name is the ``<file-name>``. +If a title does appear, it is expected that ``<file-name>`` is equal +to ``<object-name>`` with any ``<`` and ``>`` characters removed. + +Second, the CMake Domain provides directives to define objects inside +other documents: + +.. code-block:: rst + + .. command:: <command-name> + + This indented block documents <command-name>. + + .. variable:: <variable-name> + + This indented block documents <variable-name>. + +Object types for which no directive is available must be defined using +the first approach above. + +.. _`Sphinx Domain`: http://sphinx-doc.org/domains.html + +Cross-References +---------------- + +Sphinx uses reStructuredText interpreted text roles to provide +cross-reference syntax. The `CMake Domain`_ provides for each +domain object type a role of the same name to cross-reference it. +CMake Domain roles are inline markup of the forms:: + + :type:`name` + :type:`text <name>` + +where ``type`` is the domain object type and ``name`` is the +domain object name. In the first form the link text will be +``name`` (or ``name()`` if the type is ``command``) and in +the second form the link text will be the explicit ``text``. +For example, the code: + +.. code-block:: rst + + * The :command:`list` command. + * The :command:`list(APPEND)` sub-command. + * The :command:`list() command <list>`. + * The :command:`list(APPEND) sub-command <list>`. + * The :variable:`CMAKE_VERSION` variable. + * The :prop_tgt:`OUTPUT_NAME_<CONFIG>` target property. + +produces: + +* The :command:`list` command. +* The :command:`list(APPEND)` sub-command. +* The :command:`list() command <list>`. +* The :command:`list(APPEND) sub-command <list>`. +* The :variable:`CMAKE_VERSION` variable. +* The :prop_tgt:`OUTPUT_NAME_<CONFIG>` target property. + +Note that CMake Domain roles differ from Sphinx and reStructuredText +convention in that the form ``a<b>``, without a space preceding ``<``, +is interpreted as a name instead of link text with an explicit target. +This is necessary because we use ``<placeholders>`` frequently in +object names like ``OUTPUT_NAME_<CONFIG>``. The form ``a <b>``, +with a space preceding ``<``, is still interpreted as a link text +with an explicit target. + +Modules +======= + +The ``Modules`` directory contains CMake-language ``.cmake`` module files. + +Module Documentation +-------------------- + +To document CMake module ``Modules/<module-name>.cmake``, modify +``Help/manual/cmake-modules.7.rst`` to reference the module in the +``toctree`` directive, in sorted order, as:: + + /module/<module-name> + +Then add the module document file ``Help/module/<module-name>.rst`` +containing just the line:: + + .. cmake-module:: ../../Modules/<module-name>.cmake + +The ``cmake-module`` directive will scan the module file to extract +reStructuredText markup from comment blocks that start in ``.rst:``. +Add to the top of ``Modules/<module-name>.cmake`` a #-comment of the form: + +.. code-block:: cmake + + #.rst: + # <module-name> + # ------------- + # + # <reStructuredText documentation of module> + +or a bracket-comment of the form: + +.. code-block:: cmake + + #[[.rst: + <module-name> + ------------- + + <reStructuredText documentation of module> + #]] + +Any number of ``=`` may be used in the opening and closing brackets +as long as they match. Content on the line containing the closing +bracket is excluded if and only if the line starts in ``#``. + +Additional such ``.rst:`` comments may appear anywhere in the module file. +All such comments must start with ``#`` in the first column. + +For example, a ``Modules/Findxxx.cmake`` module may contain: + +.. code-block:: cmake + + #.rst: + # FindXxx + # ------- + # + # This is a cool module. + # This module does really cool stuff. + # It can do even more than you think. + # + # It even needs two paragraphs to tell you about it. + # And it defines the following variables: + # + # * VAR_COOL: this is great isn't it? + # * VAR_REALLY_COOL: cool right? + + <code> + + #[========================================[.rst: + .. command:: xxx_do_something + + This command does something for Xxx:: + + xxx_do_something(some arguments) + #]========================================] + macro(xxx_do_something) + <code> + endmacro() + +Find Modules +------------ + +A "find module" is a ``Modules/Find<package>.cmake`` file to be loaded +by the :command:`find_package` command when invoked for ``<package>``. + +We would like all ``FindXxx.cmake`` files to produce consistent variable +names. Please use the following consistent variable names for general use. + +Xxx_INCLUDE_DIRS + The final set of include directories listed in one variable for use by client + code. This should not be a cache entry. + +Xxx_LIBRARIES + The libraries to link against to use Xxx. These should include full paths. + This should not be a cache entry. + +Xxx_DEFINITIONS + Definitions to use when compiling code that uses Xxx. This really shouldn't + include options such as (-DHAS_JPEG)that a client source-code file uses to + decide whether to #include <jpeg.h> + +Xxx_EXECUTABLE + Where to find the Xxx tool. + +Xxx_Yyy_EXECUTABLE + Where to find the Yyy tool that comes with Xxx. + +Xxx_LIBRARY_DIRS + Optionally, the final set of library directories listed in one variable for + use by client code. This should not be a cache entry. + +Xxx_ROOT_DIR + Where to find the base directory of Xxx. + +Xxx_VERSION_Yy + Expect Version Yy if true. Make sure at most one of these is ever true. + +Xxx_WRAP_Yy + If False, do not try to use the relevant CMake wrapping command. + +Xxx_Yy_FOUND + If False, optional Yy part of Xxx sytem is not available. + +Xxx_FOUND + Set to false, or undefined, if we haven't found, or don't want to use Xxx. + +Xxx_NOT_FOUND_MESSAGE + Should be set by config-files in the case that it has set Xxx_FOUND to FALSE. + The contained message will be printed by the find_package() command and by + find_package_handle_standard_args() to inform the user about the problem. + +Xxx_RUNTIME_LIBRARY_DIRS + Optionally, the runtime library search path for use when running an + executable linked to shared libraries. The list should be used by user code + to create the PATH on windows or LD_LIBRARY_PATH on unix. This should not be + a cache entry. + +Xxx_VERSION_STRING + A human-readable string containing the version of the package found, if any. + +Xxx_VERSION_MAJOR + The major version of the package found, if any. + +Xxx_VERSION_MINOR + The minor version of the package found, if any. + +Xxx_VERSION_PATCH + The patch version of the package found, if any. + +You do not have to provide all of the above variables. You should provide +Xxx_FOUND under most circumstances. If Xxx is a library, then Xxx_LIBRARIES, +should also be defined, and Xxx_INCLUDE_DIRS should usually be defined (I +guess libm.a might be an exception) + +The following names should not usually be used in CMakeLists.txt files, but +they may be usefully modified in users' CMake Caches to control stuff. + +Xxx_LIBRARY + Name of Xxx Library. A User may set this and Xxx_INCLUDE_DIR to ignore to + force non-use of Xxx. + +Xxx_Yy_LIBRARY + Name of Yy library that is part of the Xxx system. It may or may not be + required to use Xxx. + +Xxx_INCLUDE_DIR + Where to find xxx.h, etc. (Xxx_INCLUDE_PATH was considered bad because a path + includes an actual filename.) + +Xxx_Yy_INCLUDE_DIR + Where to find xxx_yy.h, etc. + +For tidiness's sake, try to keep as many options as possible out of the cache, +leaving at least one option which can be used to disable use of the module, or +locate a not-found library (e.g. Xxx_ROOT_DIR). For the same reason, mark +most cache options as advanced. + +If you need other commands to do special things then it should still begin +with ``Xxx_``. This gives a sort of namespace effect and keeps things tidy for the +user. You should put comments describing all the exported settings, plus +descriptions of any the users can use to control stuff. + +You really should also provide backwards compatibility any old settings that +were actually in use. Make sure you comment them as deprecated, so that +no-one starts using them. + +To add a module to the CMake documentation, follow the steps in the +`Module Documentation`_ section above. Test the documentation formatting +by running ``cmake --help-module FindXxx``, and also by enabling the +``SPHINX_HTML`` and ``SPHINX_MAN`` options to build the documentation. +Edit the comments until generated documentation looks satisfactory. +To have a .cmake file in this directory NOT show up in the modules +documentation, simply leave out the ``Help/module/<module-name>.rst`` file +and the ``Help/manual/cmake-modules.7.rst`` toctree entry. + +After the documentation, leave a *BLANK* line, and then add a +copyright and licence notice block like this one:: + + #============================================================================= + # Copyright 2009-2011 Your Name + # + # Distributed under the OSI-approved BSD License (the "License"); + # see accompanying file Copyright.txt for details. + # + # This software is distributed WITHOUT ANY WARRANTY; without even the + # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + # See the License for more information. + #============================================================================= + # (To distribute this file outside of CMake, substitute the full + # License text for the above reference.) + +The layout of the notice block is strictly enforced by the ``ModuleNotices`` +test. Only the year range and name may be changed freely. + +A FindXxx.cmake module will typically be loaded by the command:: + + FIND_PACKAGE(Xxx [major[.minor[.patch[.tweak]]]] [EXACT] + [QUIET] [[REQUIRED|COMPONENTS] [components...]]) + +If any version numbers are given to the command it will set the following +variables before loading the module: + +Xxx_FIND_VERSION + full requested version string + +Xxx_FIND_VERSION_MAJOR + major version if requested, else 0 + +Xxx_FIND_VERSION_MINOR + minor version if requested, else 0 + +Xxx_FIND_VERSION_PATCH + patch version if requested, else 0 + +Xxx_FIND_VERSION_TWEAK + tweak version if requested, else 0 + +Xxx_FIND_VERSION_COUNT + number of version components, 0 to 4 + +Xxx_FIND_VERSION_EXACT + true if EXACT option was given + +If the find module supports versioning it should locate a version of +the package that is compatible with the version requested. If a +compatible version of the package cannot be found the module should +not report success. The version of the package found should be stored +in "Xxx_VERSION..." version variables documented by the module. + +If the QUIET option is given to the command it will set the variable +Xxx_FIND_QUIETLY to true before loading the FindXxx.cmake module. If +this variable is set the module should not complain about not being +able to find the package. If the +REQUIRED option is given to the command it will set the variable +Xxx_FIND_REQUIRED to true before loading the FindXxx.cmake module. If +this variable is set the module should issue a FATAL_ERROR if the +package cannot be found. +If neither the QUIET nor REQUIRED options are given then the +FindXxx.cmake module should look for the package and complain without +error if the module is not found. + +FIND_PACKAGE() will set the variable CMAKE_FIND_PACKAGE_NAME to +contain the actual name of the package. + +A package can provide sub-components. +Those components can be listed after the COMPONENTS (or REQUIRED) or +OPTIONAL_COMPONENTS keywords. The set of all listed components will be +specified in a Xxx_FIND_COMPONENTS variable. +For each package-specific component, say Yyy, a variable Xxx_FIND_REQUIRED_Yyy +will be set to true if it listed after COMPONENTS and it will be set to false +if it was listed after OPTIONAL_COMPONENTS. +Using those variables a FindXxx.cmake module and also a XxxConfig.cmake +package configuration file can determine whether and which components have +been requested, and whether they were requested as required or as optional. +For each of the requested components a Xxx_Yyy_FOUND variable should be set +accordingly. +The per-package Xxx_FOUND variable should be only set to true if all requested +required components have been found. A missing optional component should not +keep the Xxx_FOUND variable from being set to true. +If the package provides Xxx_INCLUDE_DIRS and Xxx_LIBRARIES variables, the +include dirs and libraries for all components which were requested and which +have been found should be added to those two variables. + +To get this behaviour you can use the FIND_PACKAGE_HANDLE_STANDARD_ARGS() +macro, as an example see FindJPEG.cmake. + +For internal implementation, it's a generally accepted convention that +variables starting with underscore are for temporary use only. (variable +starting with an underscore are not intended as a reserved prefix). diff --git a/Help/manual/cmake-generator-expressions.7.rst b/Help/manual/cmake-generator-expressions.7.rst index 849ee36..ddde183 100644 --- a/Help/manual/cmake-generator-expressions.7.rst +++ b/Help/manual/cmake-generator-expressions.7.rst @@ -1,3 +1,5 @@ +.. cmake-manual-description: CMake Generator Expressions + cmake-generator-expressions(7) ****************************** diff --git a/Help/manual/cmake-generators.7.rst b/Help/manual/cmake-generators.7.rst index c73d587..ec1f58a 100644 --- a/Help/manual/cmake-generators.7.rst +++ b/Help/manual/cmake-generators.7.rst @@ -1,3 +1,5 @@ +.. cmake-manual-description: CMake Generators Reference + cmake-generators(7) ******************* @@ -9,6 +11,8 @@ All Generators ============== .. toctree:: + :maxdepth: 1 + /generator/Borland Makefiles /generator/CodeBlocks - MinGW Makefiles /generator/CodeBlocks - Ninja @@ -30,9 +34,9 @@ All Generators /generator/Sublime Text 2 - NMake Makefiles /generator/Sublime Text 2 - Unix Makefiles /generator/Unix Makefiles - /generator/Visual Studio 10 - /generator/Visual Studio 11 - /generator/Visual Studio 12 + /generator/Visual Studio 10 2010 + /generator/Visual Studio 11 2012 + /generator/Visual Studio 12 2013 /generator/Visual Studio 6 /generator/Visual Studio 7 .NET 2003 /generator/Visual Studio 7 diff --git a/Help/manual/cmake-gui.1.rst b/Help/manual/cmake-gui.1.rst index e773ee1..032b51f 100644 --- a/Help/manual/cmake-gui.1.rst +++ b/Help/manual/cmake-gui.1.rst @@ -1,14 +1,15 @@ +.. cmake-manual-description: CMake GUI Command-Line Reference + cmake-gui(1) ************ Synopsis ======== -:: +.. parsed-literal:: - cmake-gui [options] - cmake-gui [options] <path-to-source> - cmake-gui [options] <path-to-existing-build> + cmake-gui [<options>] + cmake-gui [<options>] (<path-to-source> | <path-to-existing-build>) Description =========== @@ -23,6 +24,9 @@ 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. +Options +======= + .. include:: OPTIONS_HELP.txt See Also diff --git a/Help/manual/cmake-modules.7.rst b/Help/manual/cmake-modules.7.rst index da518d3..01efcf7 100644 --- a/Help/manual/cmake-modules.7.rst +++ b/Help/manual/cmake-modules.7.rst @@ -1,3 +1,5 @@ +.. cmake-manual-description: CMake Modules Reference + cmake-modules(7) **************** @@ -9,6 +11,8 @@ All Modules =========== .. toctree:: + :maxdepth: 1 + /module/AddFileDependencies /module/BundleUtilities /module/CheckCCompilerFlag diff --git a/Help/manual/cmake-policies.7.rst b/Help/manual/cmake-policies.7.rst index 658620f..5879a30 100644 --- a/Help/manual/cmake-policies.7.rst +++ b/Help/manual/cmake-policies.7.rst @@ -1,3 +1,5 @@ +.. cmake-manual-description: CMake Policies Reference + cmake-policies(7) ***************** @@ -5,10 +7,32 @@ cmake-policies(7) .. contents:: +Introduction +============ + +Policies in CMake are used to preserve backward compatible behavior +across multiple releases. When a new policy is introduced, newer CMake +versions will begin to warn about the backward compatible behavior. It +is possible to disable the warning by explicitly requesting the OLD, or +backward compatible behavior using the :command:`cmake_policy` command. +It is also possible to request NEW, or non-backward compatible behavior +for a policy, also avoiding the warning. + +The :command:`cmake_minimum_required` command does more than report an +error if a too-old version of CMake is used to build a project. It +also sets all policies introduced in that CMake version or earlier to +NEW behavior. + +The :variable:`CMAKE_MINIMUM_REQUIRED_VERSION` variable may also be used +to determine whether to report an error on use of deprecated macros or +functions. + All Policies ============ .. toctree:: + :maxdepth: 1 + /policy/CMP0000 /policy/CMP0001 /policy/CMP0002 @@ -37,3 +61,12 @@ All Policies /policy/CMP0025 /policy/CMP0026 /policy/CMP0027 + /policy/CMP0028 + /policy/CMP0029 + /policy/CMP0030 + /policy/CMP0031 + /policy/CMP0032 + /policy/CMP0033 + /policy/CMP0034 + /policy/CMP0035 + /policy/CMP0036 diff --git a/Help/manual/cmake-properties.7.rst b/Help/manual/cmake-properties.7.rst index bb3acff..d6d42ad 100644 --- a/Help/manual/cmake-properties.7.rst +++ b/Help/manual/cmake-properties.7.rst @@ -1,3 +1,5 @@ +.. cmake-manual-description: CMake Properties Reference + cmake-properties(7) ******************* @@ -9,7 +11,10 @@ Properties of Global Scope ========================== .. toctree:: + :maxdepth: 1 + /prop_gbl/ALLOW_DUPLICATE_CUSTOM_TARGETS + /prop_gbl/AUTOGEN_TARGETS_FOLDER /prop_gbl/AUTOMOC_TARGETS_FOLDER /prop_gbl/DEBUG_CONFIGURATIONS /prop_gbl/DISABLED_FEATURES @@ -36,6 +41,8 @@ Properties on Directories ========================= .. toctree:: + :maxdepth: 1 + /prop_dir/ADDITIONAL_MAKE_CLEAN_FILES /prop_dir/CACHE_VARIABLES /prop_dir/CLEAN_NO_CUSTOM @@ -65,6 +72,8 @@ Properties on Targets ===================== .. toctree:: + :maxdepth: 1 + /prop_tgt/ALIASED_TARGET /prop_tgt/ARCHIVE_OUTPUT_DIRECTORY_CONFIG /prop_tgt/ARCHIVE_OUTPUT_DIRECTORY @@ -72,10 +81,16 @@ Properties on Targets /prop_tgt/ARCHIVE_OUTPUT_NAME /prop_tgt/AUTOMOC_MOC_OPTIONS /prop_tgt/AUTOMOC + /prop_tgt/AUTOUIC + /prop_tgt/AUTOUIC_OPTIONS + /prop_tgt/AUTORCC + /prop_tgt/AUTORCC_OPTIONS /prop_tgt/BUILD_WITH_INSTALL_RPATH /prop_tgt/BUNDLE_EXTENSION /prop_tgt/BUNDLE /prop_tgt/COMPATIBLE_INTERFACE_BOOL + /prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MAX + /prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MIN /prop_tgt/COMPATIBLE_INTERFACE_STRING /prop_tgt/COMPILE_DEFINITIONS_CONFIG /prop_tgt/COMPILE_DEFINITIONS @@ -211,6 +226,8 @@ Properties on Tests =================== .. toctree:: + :maxdepth: 1 + /prop_test/ATTACHED_FILES_ON_FAIL /prop_test/ATTACHED_FILES /prop_test/COST @@ -232,7 +249,11 @@ Properties on Source Files ========================== .. toctree:: + :maxdepth: 1 + /prop_sf/ABSTRACT + /prop_sf/AUTOUIC_OPTIONS + /prop_sf/AUTORCC_OPTIONS /prop_sf/COMPILE_DEFINITIONS_CONFIG /prop_sf/COMPILE_DEFINITIONS /prop_sf/COMPILE_FLAGS @@ -254,6 +275,8 @@ Properties on Cache Entries =========================== .. toctree:: + :maxdepth: 1 + /prop_cache/ADVANCED /prop_cache/HELPSTRING /prop_cache/MODIFIED diff --git a/Help/manual/cmake-variables.7.rst b/Help/manual/cmake-variables.7.rst index 2311ac8..59e8064 100644 --- a/Help/manual/cmake-variables.7.rst +++ b/Help/manual/cmake-variables.7.rst @@ -1,3 +1,5 @@ +.. cmake-manual-description: CMake Variables Reference + cmake-variables(7) ****************** @@ -9,6 +11,8 @@ Variables that Provide Information ================================== .. toctree:: + :maxdepth: 1 + /variable/CMAKE_ARGC /variable/CMAKE_ARGV0 /variable/CMAKE_AR @@ -74,6 +78,8 @@ Variables that Change Behavior ============================== .. toctree:: + :maxdepth: 1 + /variable/BUILD_SHARED_LIBS /variable/CMAKE_ABSOLUTE_DESTINATION_FILES /variable/CMAKE_AUTOMOC_RELAXED_MODE @@ -88,8 +94,11 @@ Variables that Change Behavior /variable/CMAKE_FIND_LIBRARY_PREFIXES /variable/CMAKE_FIND_LIBRARY_SUFFIXES /variable/CMAKE_FIND_PACKAGE_WARN_NO_MODULE + /variable/CMAKE_FIND_NO_INSTALL_PREFIX /variable/CMAKE_IGNORE_PATH /variable/CMAKE_INCLUDE_PATH + /variable/CMAKE_INCLUDE_DIRECTORIES_BEFORE + /variable/CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE /variable/CMAKE_INSTALL_DEFAULT_COMPONENT_NAME /variable/CMAKE_INSTALL_PREFIX /variable/CMAKE_LIBRARY_PATH @@ -113,6 +122,8 @@ Variables that Describe the System ================================== .. toctree:: + :maxdepth: 1 + /variable/APPLE /variable/BORLAND /variable/CMAKE_CL_64 @@ -152,9 +163,15 @@ Variables that Control the Build ================================ .. toctree:: + :maxdepth: 1 + /variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY /variable/CMAKE_AUTOMOC_MOC_OPTIONS /variable/CMAKE_AUTOMOC + /variable/CMAKE_AUTORCC + /variable/CMAKE_AUTORCC_OPTIONS + /variable/CMAKE_AUTOUIC + /variable/CMAKE_AUTOUIC_OPTIONS /variable/CMAKE_BUILD_WITH_INSTALL_RPATH /variable/CMAKE_CONFIG_POSTFIX /variable/CMAKE_DEBUG_POSTFIX @@ -202,6 +219,8 @@ Variables for Languages ======================= .. toctree:: + :maxdepth: 1 + /variable/CMAKE_COMPILER_IS_GNULANG /variable/CMAKE_Fortran_MODDIR_DEFAULT /variable/CMAKE_Fortran_MODDIR_FLAG @@ -245,6 +264,8 @@ Variables for CPack =================== .. toctree:: + :maxdepth: 1 + /variable/CPACK_ABSOLUTE_DESTINATION_FILES /variable/CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY /variable/CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION diff --git a/Help/manual/cmake.1.rst b/Help/manual/cmake.1.rst index c9d23db..3594c3d 100644 --- a/Help/manual/cmake.1.rst +++ b/Help/manual/cmake.1.rst @@ -1,13 +1,18 @@ +.. cmake-manual-description: CMake Command-Line Reference + cmake(1) ******** Synopsis ======== -:: +.. parsed-literal:: - cmake [options] <path-to-source> - cmake [options] <path-to-existing-build> + 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 -E <command> [<options>] + cmake --find-package <options>... Description =========== @@ -22,6 +27,9 @@ 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. +Options +======= + .. include:: OPTIONS_BUILD.txt * ``-E``: CMake command mode. @@ -32,7 +40,7 @@ native tool on their platform. copy_directory, copy_if_different, echo, echo_append, environment, make_directory, md5sum, remove, remove_directory, rename, tar, time, touch, touch_nocreate. In addition, some platform specific commands - are available. On Windows: comspec, delete_regv, write_regv. On + are available. On Windows: delete_regv, write_regv. On UNIX: create_symlink. * ``-L[A][H]``: List non-advanced cached variables. @@ -57,10 +65,7 @@ native tool on their platform. --config <cfg> = For multi-configuration tools, choose <cfg>. --clean-first = Build target 'clean' first, then build. (To clean only, use --target 'clean'.) - --use-stderr = Don't merge stdout/stderr output and pass the - original stdout/stderr handles to the native - tool so it can use the capabilities of the - calling terminal (e.g. colored output). + --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. diff --git a/Help/manual/cpack.1.rst b/Help/manual/cpack.1.rst index 5c6567c..5967d6f 100644 --- a/Help/manual/cpack.1.rst +++ b/Help/manual/cpack.1.rst @@ -1,12 +1,14 @@ +.. cmake-manual-description: CPack Command-Line Reference + cpack(1) ******** Synopsis ======== -:: +.. parsed-literal:: - cpack -G <generator> [options] + cpack -G <generator> [<options>] Description =========== @@ -22,6 +24,8 @@ 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. +Options +======= * ``-G <generator>``: Use the specified generator to generate package. diff --git a/Help/manual/ctest.1.rst b/Help/manual/ctest.1.rst index 43fb961..ed9195e 100644 --- a/Help/manual/ctest.1.rst +++ b/Help/manual/ctest.1.rst @@ -1,12 +1,14 @@ +.. cmake-manual-description: CTest Command-Line Reference + ctest(1) ******** Synopsis ======== -:: +.. parsed-literal:: - ctest [options] + ctest [<options>] Description =========== @@ -16,6 +18,8 @@ CMake-generated build trees created for projects that use the ENABLE_TESTING and ADD_TEST commands have testing support. This program will run the tests and report results. +Options +======= * ``-C <cfg>, --build-config <cfg>``: Choose configuration to test. diff --git a/Help/policy/CMP0017.rst b/Help/policy/CMP0017.rst index c93e8b2..f74e6f0 100644 --- a/Help/policy/CMP0017.rst +++ b/Help/policy/CMP0017.rst @@ -11,7 +11,7 @@ the modules belonging to CMake always get those files included which they expect, and against which they were developed and tested. In all other cases, the files found in CMAKE_MODULE_PATH still take precedence over the ones in the CMake module directory. The OLD -behaviour is to always prefer files from CMAKE_MODULE_PATH over files +behavior is to always prefer files from CMAKE_MODULE_PATH over files from the CMake modules directory. This policy was introduced in CMake version 2.8.4. CMake version diff --git a/Help/policy/CMP0028.rst b/Help/policy/CMP0028.rst new file mode 100644 index 0000000..ec318a0 --- /dev/null +++ b/Help/policy/CMP0028.rst @@ -0,0 +1,23 @@ +CMP0028 +------- + +Double colon in target name means ALIAS or IMPORTED target. + +CMake 2.8.12 and lower allowed the use of targets and files with double +colons in target_link_libraries, with some buildsystem generators. + +The use of double-colons is a common pattern used to namespace IMPORTED +targets and ALIAS targets. When computing the link dependencies of a target, +the name of each dependency could either be a target, or a file on disk. +Previously, if a target was not found with a matching name, the name was +considered to refer to a file on disk. This can lead to confusing error +messages if there is a typo in what should be a target name. + +The OLD behavior for this policy is to search for targets, then files on disk, +even if the search term contains double-colons. The NEW behavior for this +policy is to issue a FATAL_ERROR if a link dependency contains +double-colons but is not an IMPORTED target or an ALIAS target. + +This policy was introduced in CMake version 3.0.0. CMake version +|release| warns when the policy is not set and uses OLD behavior. Use +the cmake_policy command to set it to OLD or NEW explicitly. diff --git a/Help/policy/CMP0029.rst b/Help/policy/CMP0029.rst new file mode 100644 index 0000000..92ef1ec --- /dev/null +++ b/Help/policy/CMP0029.rst @@ -0,0 +1,10 @@ +CMP0029 +------- + +The :command:`subdir_depends` command should not be called. + +The implementation of this command has been empty since December 2001 +but was kept in CMake for compatibility for a long time. + +.. |disallowed_version| replace:: 3.0.0 +.. include:: DISALLOWED_COMMAND.txt diff --git a/Help/policy/CMP0030.rst b/Help/policy/CMP0030.rst new file mode 100644 index 0000000..6fcffc3 --- /dev/null +++ b/Help/policy/CMP0030.rst @@ -0,0 +1,11 @@ +CMP0030 +------- + +The :command:`use_mangled_mesa` command should not be called. + +This command was created in September 2001 to support VTK before +modern CMake language and custom command capabilities. VTK has +not used it in years. + +.. |disallowed_version| replace:: 3.0.0 +.. include:: DISALLOWED_COMMAND.txt diff --git a/Help/policy/CMP0031.rst b/Help/policy/CMP0031.rst new file mode 100644 index 0000000..e97dd0a --- /dev/null +++ b/Help/policy/CMP0031.rst @@ -0,0 +1,13 @@ +CMP0031 +------- + +The :command:`load_command` command should not be called. + +This command was added in August 2002 to allow projects to add +arbitrary commands implemented in C or C++. However, it does +not work when the toolchain in use does not match the ABI of +the CMake process. It has been mostly superseded by the +:command:`macro` and :command:`function` commands. + +.. |disallowed_version| replace:: 3.0.0 +.. include:: DISALLOWED_COMMAND.txt diff --git a/Help/policy/CMP0032.rst b/Help/policy/CMP0032.rst new file mode 100644 index 0000000..1b6be48 --- /dev/null +++ b/Help/policy/CMP0032.rst @@ -0,0 +1,13 @@ +CMP0032 +------- + +The :command:`output_required_files` command should not be called. + +This command was added in June 2001 to expose the then-current CMake +implicit dependency scanner. CMake's real implicit dependency scanner +has evolved since then but is not exposed through this command. The +scanning capabilities of this command are very limited and this +functionality is better achieved through dedicated outside tools. + +.. |disallowed_version| replace:: 3.0.0 +.. include:: DISALLOWED_COMMAND.txt diff --git a/Help/policy/CMP0033.rst b/Help/policy/CMP0033.rst new file mode 100644 index 0000000..677e1c4 --- /dev/null +++ b/Help/policy/CMP0033.rst @@ -0,0 +1,14 @@ +CMP0033 +------- + +The :command:`export_library_dependencies` command should not be called. + +This command was added in January 2003 to export ``<tgt>_LIB_DEPENDS`` +internal CMake cache entries to a file for installation with a project. +This was used at the time to allow transitive link dependencies to +work for applications outside of the original build tree of a project. +The functionality has been superseded by the :command:`export` and +:command:`install(EXPORT)` commands. + +.. |disallowed_version| replace:: 3.0.0 +.. include:: DISALLOWED_COMMAND.txt diff --git a/Help/policy/CMP0034.rst b/Help/policy/CMP0034.rst new file mode 100644 index 0000000..1dd6e5c --- /dev/null +++ b/Help/policy/CMP0034.rst @@ -0,0 +1,11 @@ +CMP0034 +------- + +The :command:`utility_source` command should not be called. + +This command was introduced in March 2001 to help build executables used to +generate other files. This approach has long been replaced by +:command:`add_executable` combined with :command:`add_custom_command`. + +.. |disallowed_version| replace:: 3.0.0 +.. include:: DISALLOWED_COMMAND.txt diff --git a/Help/policy/CMP0035.rst b/Help/policy/CMP0035.rst new file mode 100644 index 0000000..ebdaccc --- /dev/null +++ b/Help/policy/CMP0035.rst @@ -0,0 +1,10 @@ +CMP0035 +------- + +The :command:`variable_requires` command should not be called. + +This command was introduced in November 2001 to perform some conditional +logic. It has long been replaced by the :command:`if` command. + +.. |disallowed_version| replace:: 3.0.0 +.. include:: DISALLOWED_COMMAND.txt diff --git a/Help/policy/CMP0036.rst b/Help/policy/CMP0036.rst new file mode 100644 index 0000000..9a5a0fd --- /dev/null +++ b/Help/policy/CMP0036.rst @@ -0,0 +1,12 @@ +CMP0036 +------- + +The :command:`build_name` command should not be called. + +This command was added in May 2001 to compute a name for the current +operating system and compiler combination. The command has long been +documented as discouraged and replaced by the :variable:`CMAKE_SYSTEM` +and :variable:`CMAKE_<LANG>_COMPILER` variables. + +.. |disallowed_version| replace:: 3.0.0 +.. include:: DISALLOWED_COMMAND.txt diff --git a/Help/policy/DISALLOWED_COMMAND.txt b/Help/policy/DISALLOWED_COMMAND.txt new file mode 100644 index 0000000..36280d2 --- /dev/null +++ b/Help/policy/DISALLOWED_COMMAND.txt @@ -0,0 +1,9 @@ +CMake >= |disallowed_version| prefer that this command never be called. +The OLD behavior for this policy is to allow the command to be called. +The NEW behavior for this policy is to issue a FATAL_ERROR when the +command is called. + +This policy was introduced in CMake version |disallowed_version|. +CMake version |release| warns when the policy is not set and uses +OLD behavior. Use the cmake_policy command to set it to OLD or +NEW explicitly. diff --git a/Help/prop_gbl/AUTOGEN_TARGETS_FOLDER.rst b/Help/prop_gbl/AUTOGEN_TARGETS_FOLDER.rst new file mode 100644 index 0000000..48cc8a1 --- /dev/null +++ b/Help/prop_gbl/AUTOGEN_TARGETS_FOLDER.rst @@ -0,0 +1,8 @@ +AUTOGEN_TARGETS_FOLDER +---------------------- + +Name of FOLDER for ``*_automoc`` targets that are added automatically by CMake for targets for which AUTOMOC is enabled. + +If not set, CMake uses the FOLDER property of the parent target as a +default value for this property. See also the documentation for the +FOLDER target property and the AUTOMOC target property. diff --git a/Help/prop_gbl/AUTOMOC_TARGETS_FOLDER.rst b/Help/prop_gbl/AUTOMOC_TARGETS_FOLDER.rst index c83fb8b..185e0ec 100644 --- a/Help/prop_gbl/AUTOMOC_TARGETS_FOLDER.rst +++ b/Help/prop_gbl/AUTOMOC_TARGETS_FOLDER.rst @@ -3,6 +3,8 @@ AUTOMOC_TARGETS_FOLDER Name of FOLDER for ``*_automoc`` targets that are added automatically by CMake for targets for which AUTOMOC is enabled. +This property is obsolete. Use AUTOGEN_TARGETS_FOLDER instead. + If not set, CMake uses the FOLDER property of the parent target as a default value for this property. See also the documentation for the FOLDER target property and the AUTOMOC target property. diff --git a/Help/prop_sf/AUTORCC_OPTIONS.rst b/Help/prop_sf/AUTORCC_OPTIONS.rst new file mode 100644 index 0000000..4b6bb10 --- /dev/null +++ b/Help/prop_sf/AUTORCC_OPTIONS.rst @@ -0,0 +1,14 @@ +AUTORCC_OPTIONS +--------------- + +Additional options for rcc when using autorcc (see the :prop_tgt:`AUTORCC` target +property) + +This property holds additional command line options which will be used when +rcc is executed during the build via autorcc, i.e. it is equivalent to the +optional OPTIONS argument of the qt4_add_resources() macro. + +By default it is empty. + +The options set on the .qrc source file may override :prop_tgt:`AUTORCC_OPTIONS` set +on the target. diff --git a/Help/prop_sf/AUTOUIC_OPTIONS.rst b/Help/prop_sf/AUTOUIC_OPTIONS.rst new file mode 100644 index 0000000..a38b2f8 --- /dev/null +++ b/Help/prop_sf/AUTOUIC_OPTIONS.rst @@ -0,0 +1,14 @@ +AUTOUIC_OPTIONS +--------------- + +Additional options for uic when using autouic (see the :prop_tgt:`AUTOUIC` target property) + +This property holds additional command line options +which will be used when uic is executed during the build via autouic, +i.e. it is equivalent to the optional OPTIONS argument of the +qt4_wrap_ui() macro. + +By default it is empty. + +The options set on the .ui source file may override :prop_tgt:`AUTOUIC_OPTIONS` set +on the target. diff --git a/Help/prop_tgt/AUTORCC.rst b/Help/prop_tgt/AUTORCC.rst new file mode 100644 index 0000000..ef2c9c8 --- /dev/null +++ b/Help/prop_tgt/AUTORCC.rst @@ -0,0 +1,21 @@ + +AUTORCC +------- + +Should the target be processed with autorcc (for Qt projects). + +AUTORCC is a boolean specifying whether CMake will handle +the Qt rcc code generator automatically, i.e. without having to use +the QT4_ADD_RESOURCES() or QT5_ADD_RESOURCES() macro. Currently Qt4 and Qt5 are +supported. + +When this property is set to TRUE, CMake will handle .qrc files added +as target sources at build time and invoke rcc accordingly. +This property is initialized by the value of the :variable:`CMAKE_AUTORCC` +variable if it is set when a target is created. + +Additional command line options for rcc can be set via the +:prop_sf:`AUTORCC_OPTIONS` source file property on the .qrc file. + +The global property :prop_gbl:`AUTOGEN_TARGETS_FOLDER` can be used to group the +autouic targets together in an IDE, e.g. in MSVS. diff --git a/Help/prop_tgt/AUTORCC_OPTIONS.rst b/Help/prop_tgt/AUTORCC_OPTIONS.rst new file mode 100644 index 0000000..489e277 --- /dev/null +++ b/Help/prop_tgt/AUTORCC_OPTIONS.rst @@ -0,0 +1,17 @@ +AUTORCC_OPTIONS +--------------- + +Additional options for rcc when using autorcc (see the :prop_tgt:`AUTORCC` target property) + +This property holds additional command line options +which will be used when rcc is executed during the build via autorcc, +i.e. it is equivalent to the optional OPTIONS argument of the +qt4_add_resources() macro. + +By default it is empty. + +This property is initialized by the value of the variable +:variable:`CMAKE_AUTORCC` if it is set when a target is created. + +The options set on the target may be overridden by :prop_sf:`AUTORCC_OPTIONS` set +on the .qrc source file. diff --git a/Help/prop_tgt/AUTOUIC.rst b/Help/prop_tgt/AUTOUIC.rst new file mode 100644 index 0000000..548c259 --- /dev/null +++ b/Help/prop_tgt/AUTOUIC.rst @@ -0,0 +1,22 @@ +AUTOUIC +------- + +Should the target be processed with autouic (for Qt projects). + +AUTOUIC is a boolean specifying whether CMake will handle +the Qt uic code generator automatically, i.e. without having to use +the QT4_WRAP_UI() or QT5_WRAP_UI() macro. Currently Qt4 and Qt5 are +supported. + +When this property is set to TRUE, CMake will scan the source files +at build time and invoke uic accordingly. +If an #include statement like #include "ui_foo.h" is found in +foo.cpp, a foo.ui file is expected next to foo.cpp, and uic is +run on the foo.ui file. +This property is initialized by the value of the :variable:`CMAKE_AUTOUIC` +variable if it is set when a target is created. + +Additional command line options for uic can be set via the +:prop_sf:`AUTOUIC_OPTIONS` source file property on the foo.ui file. +The global property :prop_gbl:`AUTOGEN_TARGETS_FOLDER` can be used to group the +autouic targets together in an IDE, e.g. in MSVS. diff --git a/Help/prop_tgt/AUTOUIC_OPTIONS.rst b/Help/prop_tgt/AUTOUIC_OPTIONS.rst new file mode 100644 index 0000000..c6cf885 --- /dev/null +++ b/Help/prop_tgt/AUTOUIC_OPTIONS.rst @@ -0,0 +1,17 @@ +AUTOUIC_OPTIONS +--------------- + +Additional options for uic when using autouic (see the :prop_tgt:`AUTOUIC` target property) + +This property holds additional command line options +which will be used when uic is executed during the build via autouic, +i.e. it is equivalent to the optional OPTIONS argument of the +qt4_wrap_ui() macro. + +By default it is empty. + +This property is initialized by the value of the variable +:variable:`CMAKE_AUTOUIC` if it is set when a target is created. + +The options set on the target may be overridden by :prop_sf:`AUTOUIC_OPTIONS` set +on the .ui source file. diff --git a/Help/prop_tgt/COMPATIBLE_INTERFACE_BOOL.rst b/Help/prop_tgt/COMPATIBLE_INTERFACE_BOOL.rst index 7f95ef0..6cf9d0a 100644 --- a/Help/prop_tgt/COMPATIBLE_INTERFACE_BOOL.rst +++ b/Help/prop_tgt/COMPATIBLE_INTERFACE_BOOL.rst @@ -9,9 +9,11 @@ boolean in the INTERFACE of all linked dependees. For example, if a property "FOO" appears in the list, then for each dependee, the "INTERFACE_FOO" property content in all of its dependencies must be consistent with each other, and with the "FOO" property in the -dependee. Consistency in this sense has the meaning that if the +depender. Consistency in this sense has the meaning that if the property is set, then it must have the same boolean value as all others, and if the property is not set, then it is ignored. Note that for each dependee, the set of properties from this property must not intersect with the set of properties from the -COMPATIBLE_INTERFACE_STRING property. +:prop_tgt:`COMPATIBLE_INTERFACE_STRING`, +:prop_tgt:`COMPATIBLE_INTERFACE_NUMBER_MIN` or +:prop_tgt:`COMPATIBLE_INTERFACE_NUMBER_MAX` property. diff --git a/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MAX.rst b/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MAX.rst new file mode 100644 index 0000000..2fe748e --- /dev/null +++ b/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MAX.rst @@ -0,0 +1,17 @@ +COMPATIBLE_INTERFACE_NUMBER_MAX +------------------------------- + +Properties whose maximum value from the link interface will be used. + +The COMPATIBLE_INTERFACE_NUMBER_MAX property may contain a list of +properties for this target whose maximum value may be read at generate time +when evaluated in the INTERFACE of all linked dependees. For example, if a +property "FOO" appears in the list, then for each dependee, the +"INTERFACE_FOO" property content in all of its dependencies will be compared +with each other and with the "FOO" property in the depender. When reading +the FOO property at generate time, the maximum value will be returned. +If the property is not set, then it is ignored. Note that for each +dependee, the set of properties from this property must not intersect +with the set of properties from the :prop_tgt:`COMPATIBLE_INTERFACE_BOOL`, +:prop_tgt:`COMPATIBLE_INTERFACE_STRING` or +:prop_tgt:`COMPATIBLE_INTERFACE_NUMBER_MIN` property. diff --git a/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MIN.rst b/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MIN.rst new file mode 100644 index 0000000..7fe384b --- /dev/null +++ b/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MIN.rst @@ -0,0 +1,17 @@ +COMPATIBLE_INTERFACE_NUMBER_MIN +------------------------------- + +Properties whose maximum value from the link interface will be used. + +The COMPATIBLE_INTERFACE_NUMBER_MIN property may contain a list of +properties for this target whose minimum value may be read at generate time +when evaluated in the INTERFACE of all linked dependees. For example, if a +property "FOO" appears in the list, then for each dependee, the +"INTERFACE_FOO" property content in all of its dependencies will be compared +with each other and with the "FOO" property in the depender. When reading +the FOO property at generate time, the minimum value will be returned. +If the property is not set, then it is ignored. Note that for each +dependee, the set of properties from this property must not intersect +with the set of properties from the :prop_tgt:`COMPATIBLE_INTERFACE_BOOL`, +:prop_tgt:`COMPATIBLE_INTERFACE_STRING` or +:prop_tgt:`COMPATIBLE_INTERFACE_NUMBER_MAX` property. diff --git a/Help/prop_tgt/COMPATIBLE_INTERFACE_STRING.rst b/Help/prop_tgt/COMPATIBLE_INTERFACE_STRING.rst index a461f76..1794d87 100644 --- a/Help/prop_tgt/COMPATIBLE_INTERFACE_STRING.rst +++ b/Help/prop_tgt/COMPATIBLE_INTERFACE_STRING.rst @@ -8,8 +8,9 @@ properties for this target which must be the same when evaluated as a string in the INTERFACE of all linked dependees. For example, if a property "FOO" appears in the list, then for each dependee, the "INTERFACE_FOO" property content in all of its dependencies must be -equal with each other, and with the "FOO" property in the dependee. +equal with each other, and with the "FOO" property in the depender. If the property is not set, then it is ignored. Note that for each dependee, the set of properties from this property must not intersect -with the set of properties from the COMPATIBLE_INTERFACE_BOOL -property. +with the set of properties from the :prop_tgt:`COMPATIBLE_INTERFACE_BOOL`, +:prop_tgt:`COMPATIBLE_INTERFACE_NUMBER_MIN` or +:prop_tgt:`COMPATIBLE_INTERFACE_NUMBER_MAX` property. diff --git a/Help/prop_tgt/INCLUDE_DIRECTORIES.rst b/Help/prop_tgt/INCLUDE_DIRECTORIES.rst index 40709a4..cf358b3 100644 --- a/Help/prop_tgt/INCLUDE_DIRECTORIES.rst +++ b/Help/prop_tgt/INCLUDE_DIRECTORIES.rst @@ -5,17 +5,20 @@ List of preprocessor include file search directories. This property specifies the list of directories given so far to the include_directories command. This property exists on directories and -targets. In addition to accepting values from the include_directories +targets. In addition to accepting values from the :command:`include_directories` command, values may be set directly on any directory or any target -using the set_property command. A target gets its initial value for +using the :command:`set_property` command. A target gets its initial value for this property from the value of the directory property. A directory gets its initial value from its parent directory if it has one. Both directory and target property values are adjusted by calls to the -include_directories command. +:command:`include_directories` command. The target property values are used by the generators to set the -include paths for the compiler. See also the include_directories -command. +include paths for the compiler. See also the :command:`include_directories` +and :command:`target_include_directories` commands. + +Relative paths should not be added to this property directly. Use one of +the commands above instead to handle relative paths. Contents of INCLUDE_DIRECTORIES may use "generator expressions" with the syntax "$<...>". See the :manual:`cmake-generator-expressions(7)` manual for diff --git a/Help/prop_tgt/INTERFACE_LINK_LIBRARIES.rst b/Help/prop_tgt/INTERFACE_LINK_LIBRARIES.rst index 24c2441..64ac46e 100644 --- a/Help/prop_tgt/INTERFACE_LINK_LIBRARIES.rst +++ b/Help/prop_tgt/INTERFACE_LINK_LIBRARIES.rst @@ -1,12 +1,12 @@ INTERFACE_LINK_LIBRARIES ------------------------ -List public interface libraries for a shared library or executable. +List public interface libraries for a library. This property contains the list of transitive link dependencies. When the target is linked into another target the libraries listed (and recursively their link interface libraries) will be provided to the -other target also. This property is overriden by the +other target also. This property is overridden by the LINK_INTERFACE_LIBRARIES or LINK_INTERFACE_LIBRARIES_<CONFIG> property if policy CMP0022 is OLD or unset. diff --git a/Help/prop_tgt/LINK_INTERFACE_LIBRARIES.rst b/Help/prop_tgt/LINK_INTERFACE_LIBRARIES.rst index 75c2a31..435e25e 100644 --- a/Help/prop_tgt/LINK_INTERFACE_LIBRARIES.rst +++ b/Help/prop_tgt/LINK_INTERFACE_LIBRARIES.rst @@ -16,7 +16,7 @@ the default set is non-empty. This property is initialized by the value of the variable CMAKE_LINK_INTERFACE_LIBRARIES if it is set when a target is created. This property is ignored for STATIC libraries. -This property is overriden by the INTERFACE_LINK_LIBRARIES property if +This property is overridden by the INTERFACE_LINK_LIBRARIES property if policy CMP0022 is NEW. This property is deprecated. Use INTERFACE_LINK_LIBRARIES instead. diff --git a/Help/prop_tgt/LINK_INTERFACE_LIBRARIES_CONFIG.rst b/Help/prop_tgt/LINK_INTERFACE_LIBRARIES_CONFIG.rst index 1a7a941..08bd650 100644 --- a/Help/prop_tgt/LINK_INTERFACE_LIBRARIES_CONFIG.rst +++ b/Help/prop_tgt/LINK_INTERFACE_LIBRARIES_CONFIG.rst @@ -7,7 +7,7 @@ This is the configuration-specific version of LINK_INTERFACE_LIBRARIES. If set, this property completely overrides the generic property for the named configuration. -This property is overriden by the INTERFACE_LINK_LIBRARIES property if +This property is overridden by the INTERFACE_LINK_LIBRARIES property if policy CMP0022 is NEW. This property is deprecated. Use INTERFACE_LINK_LIBRARIES instead. diff --git a/Help/prop_tgt/VS_GLOBAL_KEYWORD.rst b/Help/prop_tgt/VS_GLOBAL_KEYWORD.rst index 072475f..ce49316 100644 --- a/Help/prop_tgt/VS_GLOBAL_KEYWORD.rst +++ b/Help/prop_tgt/VS_GLOBAL_KEYWORD.rst @@ -1,9 +1,12 @@ VS_GLOBAL_KEYWORD ----------------- -Visual Studio project keyword. +Visual Studio project keyword for VS 10 (2010) and newer. Sets the "keyword" attribute for a generated Visual Studio project. Defaults to "Win32Proj". You may wish to override this value with "ManagedCProj", for example, in a Visual Studio managed C++ unit test project. + +Use the :prop_tgt:`VS_KEYWORD` target property to set the +keyword for Visual Studio 9 (2008) and older. diff --git a/Help/prop_tgt/VS_KEYWORD.rst b/Help/prop_tgt/VS_KEYWORD.rst index aa8e206..6c2e042 100644 --- a/Help/prop_tgt/VS_KEYWORD.rst +++ b/Help/prop_tgt/VS_KEYWORD.rst @@ -1,7 +1,10 @@ VS_KEYWORD ---------- -Visual Studio project keyword. +Visual Studio project keyword for VS 9 (2008) and older. Can be set to change the visual studio keyword, for example Qt integration works better if this is set to Qt4VSv1.0. + +Use the :prop_tgt:`VS_GLOBAL_KEYWORD` target property to set the +keyword for Visual Studio 10 (2010) and newer. diff --git a/Help/variable/CMAKE_AUTORCC.rst b/Help/variable/CMAKE_AUTORCC.rst new file mode 100644 index 0000000..d213993 --- /dev/null +++ b/Help/variable/CMAKE_AUTORCC.rst @@ -0,0 +1,7 @@ +CMAKE_AUTORCC +------------- + +Whether to handle rcc automatically for Qt targets. + +This variable is used to initialize the :prop_tgt:`AUTORCC` property on all the targets. +See that target property for additional information. diff --git a/Help/variable/CMAKE_AUTORCC_OPTIONS.rst b/Help/variable/CMAKE_AUTORCC_OPTIONS.rst new file mode 100644 index 0000000..5efbfa3 --- /dev/null +++ b/Help/variable/CMAKE_AUTORCC_OPTIONS.rst @@ -0,0 +1,7 @@ +CMAKE_AUTORCC_OPTIONS +--------------------- + +Whether to handle rcc automatically for Qt targets. + +This variable is used to initialize the :prop_tgt:`AUTORCC_OPTIONS` property on +all the targets. See that target property for additional information. diff --git a/Help/variable/CMAKE_AUTOUIC.rst b/Help/variable/CMAKE_AUTOUIC.rst new file mode 100644 index 0000000..3b016b0 --- /dev/null +++ b/Help/variable/CMAKE_AUTOUIC.rst @@ -0,0 +1,7 @@ +CMAKE_AUTOUIC +------------- + +Whether to handle uic automatically for Qt targets. + +This variable is used to initialize the :prop_tgt:`AUTOUIC` property on all the targets. +See that target property for additional information. diff --git a/Help/variable/CMAKE_AUTOUIC_OPTIONS.rst b/Help/variable/CMAKE_AUTOUIC_OPTIONS.rst new file mode 100644 index 0000000..6a88669 --- /dev/null +++ b/Help/variable/CMAKE_AUTOUIC_OPTIONS.rst @@ -0,0 +1,7 @@ +CMAKE_AUTOUIC_OPTIONS +--------------------- + +Whether to handle uic automatically for Qt targets. + +This variable is used to initialize the :prop_tgt:`AUTOUIC_OPTIONS` property on +all the targets. See that target property for additional information. diff --git a/Help/variable/CMAKE_BACKWARDS_COMPATIBILITY.rst b/Help/variable/CMAKE_BACKWARDS_COMPATIBILITY.rst index 4015739..05c366a 100644 --- a/Help/variable/CMAKE_BACKWARDS_COMPATIBILITY.rst +++ b/Help/variable/CMAKE_BACKWARDS_COMPATIBILITY.rst @@ -1,11 +1,4 @@ CMAKE_BACKWARDS_COMPATIBILITY ----------------------------- -Version of cmake required to build project - -From the point of view of backwards compatibility, this specifies what -version of CMake should be supported. By default this value is the -version number of CMake that you are running. You can set this to an -older version of CMake to support deprecated commands of CMake in -projects that were written to use older versions of CMake. This can -be set by the user or set at the beginning of a CMakeLists file. +Deprecated. See CMake Policy :policy:`CMP0001` documentation. diff --git a/Help/variable/CMAKE_FIND_NO_INSTALL_PREFIX.rst b/Help/variable/CMAKE_FIND_NO_INSTALL_PREFIX.rst new file mode 100644 index 0000000..91231b0 --- /dev/null +++ b/Help/variable/CMAKE_FIND_NO_INSTALL_PREFIX.rst @@ -0,0 +1,13 @@ +CMAKE_FIND_NO_INSTALL_PREFIX +---------------------------- + +Ignore the :variable:`CMAKE_INSTALL_PREFIX` when searching for assets. + +CMake adds the :variable:`CMAKE_INSTALL_PREFIX` to the +:variable:`CMAKE_SYSTEM_PREFIX_PATH` by default. This variable may be set +on the command line to control that behavior. + +Set :variable:`CMAKE_FIND_NO_INSTALL_PREFIX` to TRUE to tell find_package not +to search in the :variable:`CMAKE_INSTALL_PREFIX` by default. Note that the +prefix may still be searched for other reasons, such as being the same prefix +as the CMake installation, or for being a built-in system prefix. diff --git a/Help/variable/CMAKE_INCLUDE_DIRECTORIES_BEFORE.rst b/Help/variable/CMAKE_INCLUDE_DIRECTORIES_BEFORE.rst new file mode 100644 index 0000000..3c1fbcf --- /dev/null +++ b/Help/variable/CMAKE_INCLUDE_DIRECTORIES_BEFORE.rst @@ -0,0 +1,8 @@ +CMAKE_INCLUDE_DIRECTORIES_BEFORE +-------------------------------- + +Whether to append or prepend directories by default in :command:`include_directories`. + +This variable affects the default behavior of the :command:`include_directories` +command. Setting this variable to 'ON' is equivalent to using the BEFORE option +in all uses of that command. diff --git a/Help/variable/CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE.rst b/Help/variable/CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE.rst new file mode 100644 index 0000000..cbd04d7 --- /dev/null +++ b/Help/variable/CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE.rst @@ -0,0 +1,8 @@ +CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE +---------------------------------------- + +Whether to force prepending of project include directories. + +This variable affects the order of include directories generated in compiler +command lines. If set to 'ON', it causes the :variable:`CMAKE_SOURCE_DIR` and +the :variable:`CMAKE_BINARY_DIR` to appear first. |