diff options
author | Brad King <brad.king@kitware.com> | 2016-05-03 14:17:00 (GMT) |
---|---|---|
committer | CMake Topic Stage <kwrobot@kitware.com> | 2016-05-03 14:17:00 (GMT) |
commit | 3fc49c50b0a62ab66376b624d1d38e30ffbbc4dd (patch) | |
tree | 38458f0b83645ab8d64470925a9ec5a08ad8a9b7 | |
parent | c212b5b02517559dcda611cc7a59519542e1ce6d (diff) | |
parent | 5f948d2aa41cc83da989ea058a4e5f008edd12f6 (diff) | |
download | CMake-3fc49c50b0a62ab66376b624d1d38e30ffbbc4dd.zip CMake-3fc49c50b0a62ab66376b624d1d38e30ffbbc4dd.tar.gz CMake-3fc49c50b0a62ab66376b624d1d38e30ffbbc4dd.tar.bz2 |
Merge topic 'doc-cmake-policies-manual-improvements'
5f948d2a Help: Add policy summaries to cmake-policies(7)
b74d73e5 Help: Organize cmake-policies(7) manual by version of introduction
de370656 cmRST: Parse toctree lines with Sphinx cross-reference syntax
845cb217 CMP0059: Fix typo in policy description
-rw-r--r-- | Help/manual/cmake-policies.7.rst | 178 | ||||
-rw-r--r-- | Help/policy/CMP0059.rst | 2 | ||||
-rw-r--r-- | Source/cmPolicies.h | 2 | ||||
-rw-r--r-- | Source/cmRST.cxx | 16 | ||||
-rw-r--r-- | Source/cmRST.h | 1 | ||||
-rw-r--r-- | Tests/RunCMake/CMP0059/CMP0059-WARN-stderr.txt | 4 |
6 files changed, 128 insertions, 75 deletions
diff --git a/Help/manual/cmake-policies.7.rst b/Help/manual/cmake-policies.7.rst index ae5354f..43f4637 100644 --- a/Help/manual/cmake-policies.7.rst +++ b/Help/manual/cmake-policies.7.rst @@ -51,75 +51,117 @@ 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 -============ +Policies Introduced by CMake 3.4 +================================ + +.. toctree:: + :maxdepth: 1 + + CMP0065: Do not add flags to export symbols from executables without the ENABLE_EXPORTS target property. </policy/CMP0065> + CMP0064: Support new TEST if() operator. </policy/CMP0064> + +Policies Introduced by CMake 3.3 +================================ + +.. toctree:: + :maxdepth: 1 + + CMP0063: Honor visibility properties for all target types. </policy/CMP0063> + CMP0062: Disallow install() of export() result. </policy/CMP0062> + CMP0061: CTest does not by default tell make to ignore errors (-i). </policy/CMP0061> + CMP0060: Link libraries by full path even in implicit directories. </policy/CMP0060> + CMP0059: Do not treat DEFINITIONS as a built-in directory property. </policy/CMP0059> + CMP0058: Ninja requires custom command byproducts to be explicit. </policy/CMP0058> + CMP0057: Support new IN_LIST if() operator. </policy/CMP0057> + +Policies Introduced by CMake 3.2 +================================ + +.. toctree:: + :maxdepth: 1 + + CMP0056: Honor link flags in try_compile() source-file signature. </policy/CMP0056> + CMP0055: Strict checking for break() command. </policy/CMP0055> + +Policies Introduced by CMake 3.1 +================================ + +.. toctree:: + :maxdepth: 1 + + CMP0054: Only interpret if() arguments as variables or keywords when unquoted. </policy/CMP0054> + CMP0053: Simplify variable reference and escape sequence evaluation. </policy/CMP0053> + CMP0052: Reject source and build dirs in installed INTERFACE_INCLUDE_DIRECTORIES. </policy/CMP0052> + CMP0051: List TARGET_OBJECTS in SOURCES target property. </policy/CMP0051> + +Policies Introduced by CMake 3.0 +================================ + +.. toctree:: + :maxdepth: 1 + + CMP0050: Disallow add_custom_command SOURCE signatures. </policy/CMP0050> + CMP0049: Do not expand variables in target source entries. </policy/CMP0049> + CMP0048: project() command manages VERSION variables. </policy/CMP0048> + CMP0047: Use QCC compiler id for the qcc drivers on QNX. </policy/CMP0047> + CMP0046: Error on non-existent dependency in add_dependencies. </policy/CMP0046> + CMP0045: Error on non-existent target in get_target_property. </policy/CMP0045> + CMP0044: Case sensitive Lang_COMPILER_ID generator expressions. </policy/CMP0044> + CMP0043: Ignore COMPILE_DEFINITIONS_Config properties. </policy/CMP0043> + CMP0042: MACOSX_RPATH is enabled by default. </policy/CMP0042> + CMP0041: Error on relative include with generator expression. </policy/CMP0041> + CMP0040: The target in the TARGET signature of add_custom_command() must exist. </policy/CMP0040> + CMP0039: Utility targets may not have link dependencies. </policy/CMP0039> + CMP0038: Targets may not link directly to themselves. </policy/CMP0038> + CMP0037: Target names should not be reserved and should match a validity pattern. </policy/CMP0037> + CMP0036: The build_name command should not be called. </policy/CMP0036> + CMP0035: The variable_requires command should not be called. </policy/CMP0035> + CMP0034: The utility_source command should not be called. </policy/CMP0034> + CMP0033: The export_library_dependencies command should not be called. </policy/CMP0033> + CMP0032: The output_required_files command should not be called. </policy/CMP0032> + CMP0031: The load_command command should not be called. </policy/CMP0031> + CMP0030: The use_mangled_mesa command should not be called. </policy/CMP0030> + CMP0029: The subdir_depends command should not be called. </policy/CMP0029> + CMP0028: Double colon in target name means ALIAS or IMPORTED target. </policy/CMP0028> + CMP0027: Conditionally linked imported targets with missing include directories. </policy/CMP0027> + CMP0026: Disallow use of the LOCATION target property. </policy/CMP0026> + CMP0025: Compiler id for Apple Clang is now AppleClang. </policy/CMP0025> + CMP0024: Disallow include export result. </policy/CMP0024> + +Policies Introduced by CMake 2.8 +================================ + +.. toctree:: + :maxdepth: 1 + + CMP0023: Plain and keyword target_link_libraries signatures cannot be mixed. </policy/CMP0023> + CMP0022: INTERFACE_LINK_LIBRARIES defines the link interface. </policy/CMP0022> + CMP0021: Fatal error on relative paths in INCLUDE_DIRECTORIES target property. </policy/CMP0021> + CMP0020: Automatically link Qt executables to qtmain target on Windows. </policy/CMP0020> + CMP0019: Do not re-expand variables in include and link information. </policy/CMP0019> + CMP0018: Ignore CMAKE_SHARED_LIBRARY_Lang_FLAGS variable. </policy/CMP0018> + CMP0017: Prefer files from the CMake module directory when including from there. </policy/CMP0017> + CMP0016: target_link_libraries() reports error if its only argument is not a target. </policy/CMP0016> + CMP0015: link_directories() treats paths relative to the source dir. </policy/CMP0015> + CMP0014: Input directories must have CMakeLists.txt. </policy/CMP0014> + CMP0013: Duplicate binary directories are not allowed. </policy/CMP0013> + CMP0012: if() recognizes numbers and boolean constants. </policy/CMP0012> + +Policies Introduced by CMake 2.6 +================================ .. toctree:: :maxdepth: 1 - /policy/CMP0000 - /policy/CMP0001 - /policy/CMP0002 - /policy/CMP0003 - /policy/CMP0004 - /policy/CMP0005 - /policy/CMP0006 - /policy/CMP0007 - /policy/CMP0008 - /policy/CMP0009 - /policy/CMP0010 - /policy/CMP0011 - /policy/CMP0012 - /policy/CMP0013 - /policy/CMP0014 - /policy/CMP0015 - /policy/CMP0016 - /policy/CMP0017 - /policy/CMP0018 - /policy/CMP0019 - /policy/CMP0020 - /policy/CMP0021 - /policy/CMP0022 - /policy/CMP0023 - /policy/CMP0024 - /policy/CMP0025 - /policy/CMP0026 - /policy/CMP0027 - /policy/CMP0028 - /policy/CMP0029 - /policy/CMP0030 - /policy/CMP0031 - /policy/CMP0032 - /policy/CMP0033 - /policy/CMP0034 - /policy/CMP0035 - /policy/CMP0036 - /policy/CMP0037 - /policy/CMP0038 - /policy/CMP0039 - /policy/CMP0040 - /policy/CMP0041 - /policy/CMP0042 - /policy/CMP0043 - /policy/CMP0044 - /policy/CMP0045 - /policy/CMP0046 - /policy/CMP0047 - /policy/CMP0048 - /policy/CMP0049 - /policy/CMP0050 - /policy/CMP0051 - /policy/CMP0052 - /policy/CMP0053 - /policy/CMP0054 - /policy/CMP0055 - /policy/CMP0056 - /policy/CMP0057 - /policy/CMP0058 - /policy/CMP0059 - /policy/CMP0060 - /policy/CMP0061 - /policy/CMP0062 - /policy/CMP0063 - /policy/CMP0064 - /policy/CMP0065 + CMP0011: Included scripts do automatic cmake_policy PUSH and POP. </policy/CMP0011> + CMP0010: Bad variable reference syntax is an error. </policy/CMP0010> + CMP0009: FILE GLOB_RECURSE calls should not follow symlinks by default. </policy/CMP0009> + CMP0008: Libraries linked by full-path must have a valid library file name. </policy/CMP0008> + CMP0007: list command no longer ignores empty elements. </policy/CMP0007> + CMP0006: Installing MACOSX_BUNDLE targets requires a BUNDLE DESTINATION. </policy/CMP0006> + CMP0005: Preprocessor definition values are now escaped automatically. </policy/CMP0005> + CMP0004: Libraries linked may not have leading or trailing whitespace. </policy/CMP0004> + CMP0003: Libraries linked via full path no longer produce linker search paths. </policy/CMP0003> + CMP0002: Logical target names must be globally unique. </policy/CMP0002> + CMP0001: CMAKE_BACKWARDS_COMPATIBILITY should no longer be used. </policy/CMP0001> + CMP0000: A minimum required CMake version must be specified. </policy/CMP0000> diff --git a/Help/policy/CMP0059.rst b/Help/policy/CMP0059.rst index 5da479a..bce982e 100644 --- a/Help/policy/CMP0059.rst +++ b/Help/policy/CMP0059.rst @@ -1,7 +1,7 @@ CMP0059 ------- -Don't treat ``DEFINITIONS`` as a built-in directory property. +Do not treat ``DEFINITIONS`` as a built-in directory property. CMake 3.3 and above no longer make a list of definitions available through the :prop_dir:`DEFINITIONS` directory property. The diff --git a/Source/cmPolicies.h b/Source/cmPolicies.h index 5023055..dbea895 100644 --- a/Source/cmPolicies.h +++ b/Source/cmPolicies.h @@ -204,7 +204,7 @@ class cmPolicy; "Ninja requires custom command byproducts to be explicit.", \ 3, 3, 0, cmPolicies::WARN) \ SELECT(POLICY, CMP0059, \ - "Do no treat DEFINITIONS as a built-in directory property.", \ + "Do not treat DEFINITIONS as a built-in directory property.", \ 3, 3, 0, cmPolicies::WARN) \ SELECT(POLICY, CMP0060, \ "Link libraries by full path even in implicit directories.", \ diff --git a/Source/cmRST.cxx b/Source/cmRST.cxx index 67667ea..44d4289 100644 --- a/Source/cmRST.cxx +++ b/Source/cmRST.cxx @@ -46,7 +46,8 @@ cmRST::cmRST(std::ostream& os, std::string const& docroot): "):`(<*([^`<]|[^` \t]<)*)([ \t]+<[^`]*>)?`"), Substitution("(^|[^A-Za-z0-9_])" "((\\|[^| \t\r\n]([^|\r\n]*[^| \t\r\n])?\\|)(__|_|))" - "([^A-Za-z0-9_]|$)") + "([^A-Za-z0-9_]|$)"), + TocTreeLink("^.*[ \t]+<([^>]+)>$") { this->Replace["|release|"] = cmVersion::GetCMakeVersion(); } @@ -429,9 +430,18 @@ void cmRST::ProcessDirectiveTocTree() for(std::vector<std::string>::iterator i = this->MarkupLines.begin(); i != this->MarkupLines.end(); ++i) { - if(!i->empty() && i->find_first_of(":") == i->npos) + std::string const& line = *i; + if (!line.empty() && line[0] != ':') { - this->ProcessInclude(*i + ".rst", IncludeTocTree); + if (this->TocTreeLink.find(line)) + { + std::string const& link = this->TocTreeLink.match(1); + this->ProcessInclude(link + ".rst", IncludeTocTree); + } + else + { + this->ProcessInclude(line + ".rst", IncludeTocTree); + } } } } diff --git a/Source/cmRST.h b/Source/cmRST.h index b9b2366..098afab 100644 --- a/Source/cmRST.h +++ b/Source/cmRST.h @@ -89,6 +89,7 @@ private: cmsys::RegularExpression ModuleRST; cmsys::RegularExpression CMakeRole; cmsys::RegularExpression Substitution; + cmsys::RegularExpression TocTreeLink; std::vector<std::string> MarkupLines; std::string DocDir; diff --git a/Tests/RunCMake/CMP0059/CMP0059-WARN-stderr.txt b/Tests/RunCMake/CMP0059/CMP0059-WARN-stderr.txt index 4e04d15..06c7be3 100644 --- a/Tests/RunCMake/CMP0059/CMP0059-WARN-stderr.txt +++ b/Tests/RunCMake/CMP0059/CMP0059-WARN-stderr.txt @@ -1,5 +1,5 @@ CMake Warning \(dev\) at CMP0059-WARN.cmake:6 \(get_property\): - Policy CMP0059 is not set: Do no treat DEFINITIONS as a built-in directory + Policy CMP0059 is not set: Do not treat DEFINITIONS as a built-in directory property. Run "cmake --help-policy CMP0059" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack \(most recent call first\): @@ -8,7 +8,7 @@ This warning is for project developers. Use -Wno-dev to suppress it. DEFS: -DSOME_DEF CMake Warning \(dev\) at CMP0059-WARN.cmake:14 \(get_property\): - Policy CMP0059 is not set: Do no treat DEFINITIONS as a built-in directory + Policy CMP0059 is not set: Do not treat DEFINITIONS as a built-in directory property. Run "cmake --help-policy CMP0059" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack \(most recent call first\): |