diff options
-rwxr-xr-x | .gitlab/ci/cmake.ps1 | 4 | ||||
-rwxr-xr-x | .gitlab/ci/cmake.sh | 6 | ||||
-rw-r--r-- | .gitlab/ci/download_qt.cmake | 15 | ||||
-rw-r--r-- | .gitlab/ci/download_qt_hashes.cmake | 10 | ||||
-rw-r--r-- | Help/command/cmake_path.rst | 249 | ||||
-rw-r--r-- | Help/manual/cmake-gui.1.rst | 4 | ||||
-rw-r--r-- | Modules/FindRuby.cmake | 1 | ||||
-rw-r--r-- | Source/QtDialog/CMakeSetup.cxx | 7 | ||||
-rw-r--r-- | Source/QtDialog/CMakeSetupDialog.cxx | 29 | ||||
-rw-r--r-- | Source/cmGlobalXCodeGenerator.cxx | 5 |
10 files changed, 171 insertions, 159 deletions
diff --git a/.gitlab/ci/cmake.ps1 b/.gitlab/ci/cmake.ps1 index 3b42cae..e73aab7 100755 --- a/.gitlab/ci/cmake.ps1 +++ b/.gitlab/ci/cmake.ps1 @@ -1,7 +1,7 @@ $erroractionpreference = "stop" -$version = "3.17.2" -$sha256sum = "CF82B1EB20B6FBE583487656FCD496490FFCCDFBCBBA0F26E19F1C9C63B0B041" +$version = "3.18.4" +$sha256sum = "A932BC0C8EE79F1003204466C525B38A840424D4AE29F9E5FB88959116F2407D" $filename = "cmake-$version-win64-x64" $tarball = "$filename.zip" diff --git a/.gitlab/ci/cmake.sh b/.gitlab/ci/cmake.sh index 658a62a..b4c6ddf 100755 --- a/.gitlab/ci/cmake.sh +++ b/.gitlab/ci/cmake.sh @@ -2,17 +2,17 @@ set -e -readonly version="3.17.2" +readonly version="3.18.4" case "$( uname -s )" in Linux) shatool="sha256sum" - sha256sum="dc57f3cc448ca67fc8776b4ad4c22b087b9c6a8e459938b9622b8c7f4ef6b21e" + sha256sum="149e0cee002e59e0bb84543cf3cb099f108c08390392605e944daeb6594cbc29" platform="Linux" ;; Darwin) shatool="shasum -a 256" - sha256sum="139500e20b080444fcafe57f24f57248c691c5187cce6695bee2b9aad6792c7d" + sha256sum="9d27049660474cf134ab46fa0e0db771b263313fcb8ba82ee8b2d1a1a62f8f20" platform="Darwin" ;; *) diff --git a/.gitlab/ci/download_qt.cmake b/.gitlab/ci/download_qt.cmake index 31ce6c3..c7e3717 100644 --- a/.gitlab/ci/download_qt.cmake +++ b/.gitlab/ci/download_qt.cmake @@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.12) # Input variables. set(qt_version_major "5") set(qt_version_minor "15") -set(qt_version_patch "0") +set(qt_version_patch "1") # This URL is only visible inside of Kitware's network. Please use your own Qt # Account to obtain these files. if ("$ENV{CMAKE_CONFIGURATION}" MATCHES "package") @@ -20,7 +20,7 @@ if ("$ENV{CMAKE_CONFIGURATION}" MATCHES "vs2015") elseif ("$ENV{CMAKE_CONFIGURATION}" MATCHES "vs2017" OR "$ENV{CMAKE_CONFIGURATION}" MATCHES "vs2019") set(qt_platform "windows_x86") - set(msvc_year "2017") + set(msvc_year "2019") set(qt_abi "win64_msvc${msvc_year}_64") elseif ("$ENV{CMAKE_CONFIGURATION}" MATCHES "macos") set(qt_platform "mac_x64") @@ -37,14 +37,7 @@ set(qt_version_nodot "${qt_version_major}${qt_version_minor}${qt_version_patch}" # Files needed to download. set(qt_files) if (qt_platform STREQUAL "windows_x86") - if (msvc_year STREQUAL "2017") - set(qt_build_stamp "202002260536") - elseif (msvc_year STREQUAL "2015") - set(qt_build_stamp "202005150700") - else () - message(FATAL_ERROR - "Build stamp for MSVC ${msvc_year} is unknown") - endif () + set(qt_build_stamp "202009071110") set(qt_file_name_prefix "${qt_version}-0-${qt_build_stamp}") @@ -60,7 +53,7 @@ elseif (qt_platform STREQUAL "mac_x64") "qt-5.6.2-macosx10.7-x86_64.tar.xz") set(qt_subdir "qt-5.6.2-macosx10.7-x86_64") else () - set(qt_build_stamp "202005140805") + set(qt_build_stamp "202009071110") set(qt_file_name_prefix "${qt_version}-0-${qt_build_stamp}") foreach (qt_component IN ITEMS qtbase) diff --git a/.gitlab/ci/download_qt_hashes.cmake b/.gitlab/ci/download_qt_hashes.cmake index 28837dc..02a6fdd 100644 --- a/.gitlab/ci/download_qt_hashes.cmake +++ b/.gitlab/ci/download_qt_hashes.cmake @@ -2,12 +2,12 @@ # # sha256sum $files | awk '{ print "set(\"" $2 "_hash\" " $1 ")" }' >> $thisfile -set("5.15.0-0-202002260536qtbase-Windows-Windows_10-MSVC2017-Windows-Windows_10-X86_64.7z_hash" c041596be8f7a16c7be9ea6757c14766ff3200ab6d56f7db8f865dbfe039fe20) -set("5.15.0-0-202002260536qtwinextras-Windows-Windows_10-MSVC2017-Windows-Windows_10-X86_64.7z_hash" 10796128fac54f146767e33f6872975ba238858547de7a9650ec4cd9581fe71a) +set("5.15.1-0-202009071110qtbase-Windows-Windows_10-MSVC2019-Windows-Windows_10-X86_64.7z_hash" a5635124a135f383d9fb92bf628b018cff9f781addfd388926a367cda5b7cd38) +set("5.15.1-0-202009071110qtwinextras-Windows-Windows_10-MSVC2019-Windows-Windows_10-X86_64.7z_hash" 908947855b5d7a854886746365ac29e9296b5d64d4e18089641a6988167807d3) -set("5.15.0-0-202005150700qtbase-Windows-Windows_10-MSVC2015-Windows-Windows_10-X86_64.7z_hash" 0c2653c5eca256f59c0b48b537cd633b05560e4241c0226856d2ae22ab066df4) -set("5.15.0-0-202005150700qtwinextras-Windows-Windows_10-MSVC2015-Windows-Windows_10-X86_64.7z_hash" 4bca3a8d8c7611e211a82d86b3396f8a622abe7859d5052452414642ec191844) +set("5.15.1-0-202009071110qtbase-Windows-Windows_10-MSVC2015-Windows-Windows_10-X86_64.7z_hash" 5d0d2e71e3b00cf88ac4c616b4b314a7e73871f325512821f53c464cdfee961f) +set("5.15.1-0-202009071110qtwinextras-Windows-Windows_10-MSVC2015-Windows-Windows_10-X86_64.7z_hash" 803e0234169464babb5305dedc21382e90c3266c6f9414ff0cff04be578681e1) -set("5.15.0-0-202005140805qtbase-MacOS-MacOS_10_13-Clang-MacOS-MacOS_10_13-X86_64.7z_hash" 04d867c81d2431f288c42c9752642759460b9468477de349368dcc8de0c8ddc4) +set("5.15.1-0-202009071110qtbase-MacOS-MacOS_10_13-Clang-MacOS-MacOS_10_13-X86_64.7z_hash" df2813ce7c6cb4287abd7956cd1cb9d08312e4ac1208b6cb57af4df11b8ebba1) set("qt-5.6.2-macosx10.7-x86_64.tar.xz_hash" 2b60373ea60037ce356d4c9f5a8c1df9854127a2c55118252e1a2f5a5f4e0010) diff --git a/Help/command/cmake_path.rst b/Help/command/cmake_path.rst index 555926b..cb84dd1 100644 --- a/Help/command/cmake_path.rst +++ b/Help/command/cmake_path.rst @@ -65,15 +65,15 @@ The following exceptions apply: the target system. So this is not generally applicable to the target system in cross-compiling environment. -For all commands, ``<path>`` placeholder expect a variable name. An error will -be raised if the variable does not exist, except for `APPEND`_ and +For all commands, ``<path-var>`` placeholder expect a variable name. An error +will be raised if the variable does not exist, except for `APPEND`_ and `CMAKE_PATH`_ sub-commands. ``<input>`` placeholder expect a string literal. -``[<input>...]`` placeholder expect zero or more arguments. ``<output>`` +``[<input>...]`` placeholder expect zero or more arguments. ``<out-var>`` placeholder expect a variable name. .. note:: - ``cmake_path`` command does not support list of paths. The ``<path>`` + ``cmake_path`` command does not support list of paths. The ``<path-var>`` placeholder must store only one path name. To initialize a path variable, three possibilities can be used: @@ -96,7 +96,7 @@ To initialize a path variable, three possibilities can be used: `Modification`_ and `Generation`_ sub-commands store the result in-place or in the variable specified by ``OUTPUT_VARIABLE`` option. All other sub-commands, -except `CMAKE_PATH`_, store the result in the required ``<output>`` variable. +except `CMAKE_PATH`_, store the result in the required ``<out-var>`` variable. Sub-commands supporting ``NORMALIZE`` option will :ref:`normalize <NORMAL_PATH>` the path. @@ -107,58 +107,58 @@ Synopsis .. parsed-literal:: `Decomposition`_ - cmake_path(`GET`_ <path> :ref:`ROOT_NAME <GET_ROOT_NAME>` <output>) - cmake_path(`GET`_ <path> :ref:`ROOT_DIRECTORY <GET_ROOT_DIRECTORY>` <output>) - cmake_path(`GET`_ <path> :ref:`ROOT_PATH <GET_ROOT_PATH>` <output>) - cmake_path(`GET`_ <path> :ref:`FILENAME <GET_FILENAME>` <output>) - cmake_path(`GET`_ <path> :ref:`EXTENSION <GET_EXTENSION>` [LAST_ONLY] <output>) - cmake_path(`GET`_ <path> :ref:`STEM <GET_STEM>` [LAST_ONLY] <output>) - cmake_path(`GET`_ <path> :ref:`RELATIVE_PATH <GET_RELATIVE_PATH>` <output>) - cmake_path(`GET`_ <path> :ref:`PARENT_PATH <GET_PARENT_PATH>` <output>) + cmake_path(`GET`_ <path-var> :ref:`ROOT_NAME <GET_ROOT_NAME>` <out-var>) + cmake_path(`GET`_ <path-var> :ref:`ROOT_DIRECTORY <GET_ROOT_DIRECTORY>` <out-var>) + cmake_path(`GET`_ <path-var> :ref:`ROOT_PATH <GET_ROOT_PATH>` <out-var>) + cmake_path(`GET`_ <path-var> :ref:`FILENAME <GET_FILENAME>` <out-var>) + cmake_path(`GET`_ <path-var> :ref:`EXTENSION <GET_EXTENSION>` [LAST_ONLY] <out-var>) + cmake_path(`GET`_ <path-var> :ref:`STEM <GET_STEM>` [LAST_ONLY] <out-var>) + cmake_path(`GET`_ <path-var> :ref:`RELATIVE_PATH <GET_RELATIVE_PATH>` <out-var>) + cmake_path(`GET`_ <path-var> :ref:`PARENT_PATH <GET_PARENT_PATH>` <out-var>) `Modification`_ - cmake_path(`APPEND`_ <path> [<input>...] [OUTPUT_VARIABLE <output>]) - cmake_path(`CONCAT`_ <path> [<input>...] [OUTPUT_VARIABLE <output>]) - cmake_path(`REMOVE_FILENAME`_ <path> [OUTPUT_VARIABLE <output>]) - cmake_path(`REPLACE_FILENAME`_ <path> <input> [OUTPUT_VARIABLE <output>]) - cmake_path(`REMOVE_EXTENSION`_ <path> [LAST_ONLY] - [OUTPUT_VARIABLE <output>]) - cmake_path(`REPLACE_EXTENSION`_ <path> [LAST_ONLY] <input> - [OUTPUT_VARIABLE <output>]) + cmake_path(`APPEND`_ <path-var> [<input>...] [OUTPUT_VARIABLE <out-var>]) + cmake_path(`CONCAT`_ <path-var> [<input>...] [OUTPUT_VARIABLE <out-var>]) + cmake_path(`REMOVE_FILENAME`_ <path-var> [OUTPUT_VARIABLE <out-var>]) + cmake_path(`REPLACE_FILENAME`_ <path-var> <input> [OUTPUT_VARIABLE <out-var>]) + cmake_path(`REMOVE_EXTENSION`_ <path-var> [LAST_ONLY] + [OUTPUT_VARIABLE <out-var>]) + cmake_path(`REPLACE_EXTENSION`_ <path-var> [LAST_ONLY] <input> + [OUTPUT_VARIABLE <out-var>]) `Generation`_ - cmake_path(`NORMAL_PATH`_ <path> [OUTPUT_VARIABLE <output>]) - cmake_path(`RELATIVE_PATH`_ <path> [BASE_DIRECTORY <path>] - [OUTPUT_VARIABLE <output>]) - cmake_path(`PROXIMATE_PATH`_ <path> [BASE_DIRECTORY <path>] - [OUTPUT_VARIABLE <output>]) - cmake_path(`ABSOLUTE_PATH`_ <path> [BASE_DIRECTORY <path>] [NORMALIZE] - [OUTPUT_VARIABLE <output>]) + cmake_path(`NORMAL_PATH`_ <path-var> [OUTPUT_VARIABLE <out-var>]) + cmake_path(`RELATIVE_PATH`_ <path-var> [BASE_DIRECTORY <input>] + [OUTPUT_VARIABLE <out-var>]) + cmake_path(`PROXIMATE_PATH`_ <path-var> [BASE_DIRECTORY <input>] + [OUTPUT_VARIABLE <out-var>]) + cmake_path(`ABSOLUTE_PATH`_ <path-var> [BASE_DIRECTORY <input>] [NORMALIZE] + [OUTPUT_VARIABLE <out-var>]) `Conversion`_ - cmake_path(`CMAKE_PATH`_ <path> [NORMALIZE] <input>) - cmake_path(`NATIVE_PATH`_ <path> [NORMALIZE] <output>) - cmake_path(`CONVERT`_ <input> `TO_CMAKE_PATH_LIST`_ <output>) - cmake_path(`CONVERT`_ <input> `TO_NATIVE_PATH_LIST`_ <output>) + cmake_path(`CMAKE_PATH`_ <path-var> [NORMALIZE] <input>) + cmake_path(`NATIVE_PATH`_ <path-var> [NORMALIZE] <out-var>) + cmake_path(`CONVERT`_ <input> `TO_CMAKE_PATH_LIST`_ <out-var>) + cmake_path(`CONVERT`_ <input> `TO_NATIVE_PATH_LIST`_ <out-var>) `Comparison`_ - cmake_path(`COMPARE`_ <path> <OP> <input> <output>) + cmake_path(`COMPARE`_ <path-var> <OP> <input> <out-var>) `Query`_ - cmake_path(`HAS_ROOT_NAME`_ <path> <output>) - cmake_path(`HAS_ROOT_DIRECTORY`_ <path> <output>) - cmake_path(`HAS_ROOT_PATH`_ <path> <output>) - cmake_path(`HAS_FILENAME`_ <path> <output>) - cmake_path(`HAS_EXTENSION`_ <path> <output>) - cmake_path(`HAS_STEM`_ <path> <output>) - cmake_path(`HAS_RELATIVE_PATH`_ <path> <output>) - cmake_path(`HAS_PARENT_PATH`_ <path> <output>) - cmake_path(`IS_ABSOLUTE`_ <path> <output>) - cmake_path(`IS_RELATIVE`_ <path> <output>) - cmake_path(`IS_PREFIX`_ <path> <input> [NORMALIZE] <output>) + cmake_path(`HAS_ROOT_NAME`_ <path-var> <out-var>) + cmake_path(`HAS_ROOT_DIRECTORY`_ <path-var> <out-var>) + cmake_path(`HAS_ROOT_PATH`_ <path-var> <out-var>) + cmake_path(`HAS_FILENAME`_ <path-var> <out-var>) + cmake_path(`HAS_EXTENSION`_ <path-var> <out-var>) + cmake_path(`HAS_STEM`_ <path-var> <out-var>) + cmake_path(`HAS_RELATIVE_PATH`_ <path-var> <out-var>) + cmake_path(`HAS_PARENT_PATH`_ <path-var> <out-var>) + cmake_path(`IS_ABSOLUTE`_ <path-var> <out-var>) + cmake_path(`IS_RELATIVE`_ <path-var> <out-var>) + cmake_path(`IS_PREFIX`_ <path-var> <input> [NORMALIZE] <out-var>) `Hashing`_ - cmake_path(`HASH`_ <path> [NORMALIZE] <output>) + cmake_path(`HASH`_ <path-var> [NORMALIZE] <out-var>) Decomposition ^^^^^^^^^^^^^ @@ -168,7 +168,7 @@ Decomposition .. code-block:: cmake - cmake_path(GET <path> ROOT_NAME <output>) + cmake_path(GET <path-var> ROOT_NAME <out-var>) Returns the root name of the path. If the path does not include a root name, returns an empty path. @@ -194,7 +194,7 @@ For example: .. code-block:: cmake - cmake_path(GET <path> ROOT_DIRECTORY <output>) + cmake_path(GET <path-var> ROOT_DIRECTORY <out-var>) Returns the root directory of the path. If the path does not include a root directory, returns an empty path. @@ -215,7 +215,7 @@ For example: .. code-block:: cmake - cmake_path(GET <path> ROOT_PATH <output>) + cmake_path(GET <path-var> ROOT_PATH <out-var>) Returns the root path of the path. If the path does not include a root path, returns an empty path. @@ -238,7 +238,7 @@ For example: .. code-block:: cmake - cmake_path(GET <path> FILENAME <output>) + cmake_path(GET <path-var> FILENAME <out-var>) Returns the :ref:`filename <FILENAME_DEF>` component of the path. If the path ends with a ``directory-separator``, there is no filename, so returns an empty @@ -265,7 +265,7 @@ For example: .. code-block:: cmake - cmake_path(GET <path> EXTENSION [LAST_ONLY] <output>) + cmake_path(GET <path-var> EXTENSION [LAST_ONLY] <out-var>) Returns the :ref:`extension <EXTENSION_DEF>` of the filename component. @@ -301,7 +301,7 @@ The following exceptions apply: .. code-block:: cmake - cmake_path(GET <path> STEM [LAST_ONLY] <output>) + cmake_path(GET <path-var> STEM [LAST_ONLY] <out-var>) Returns the :ref:`filename <FILENAME_DEF>` component of the path stripped of its :ref:`extension <EXTENSION_DEF>`. @@ -334,11 +334,11 @@ The following exceptions apply: .. code-block:: cmake - cmake_path(GET <path> RELATIVE_PATH <output>) + cmake_path(GET <path-var> RELATIVE_PATH <out-var>) Returns path relative to ``root-path``, that is, a pathname composed of -every component of ``<path>`` after ``root-path``. If ``<path>`` is an empty -path, returns an empty path. +every component of ``<path-var>`` after ``root-path``. If ``<path-var>`` is +an empty path, returns an empty path. For Example: @@ -361,12 +361,12 @@ For Example: .. code-block:: cmake - cmake_path(GET <path> PARENT_PATH <output>) + cmake_path(GET <path-var> PARENT_PATH <out-var>) Returns the path to the parent directory. If `HAS_RELATIVE_PATH`_ sub-command returns false, the result is a copy of -``<path>``. Otherwise, the result is ``<path>`` with one fewer element. +``<path-var>``. Otherwise, the result is ``<path-var>`` with one fewer element. For Example: @@ -392,15 +392,17 @@ Modification .. code-block:: cmake - cmake_path(APPEND <path> [<input>...] [OUTPUT_VARIABLE <output>]) + cmake_path(APPEND <path-var> [<input>...] [OUTPUT_VARIABLE <out-var>]) -Append all the ``<input>`` arguments to the ``<path>`` using ``/`` as +Append all the ``<input>`` arguments to the ``<path-var>`` using ``/`` as ``directory-separator``. For each ``<input>`` argument, the following algorithm (pseudo-code) applies: .. code-block:: cmake + # <path> is the contents of <path-var> + IF (<input>.is_absolute() OR (<input>.has_root_name() AND NOT <input>.root_name() STREQUAL <path>.root_name())) @@ -411,7 +413,7 @@ For each ``<input>`` argument, the following algorithm (pseudo-code) applies: IF (<input>.has_root_directory()) remove any root-directory and the entire relative path from <path> ELSEIF (<path>.has_filename() OR - (NOT <path>.has_root_directory() OR <path>.is_absolute())) + (NOT <path-var>.has_root_directory() OR <path>.is_absolute())) appends directory-separator to <path> ENDIF() @@ -421,22 +423,22 @@ For each ``<input>`` argument, the following algorithm (pseudo-code) applies: .. code-block:: cmake - cmake_path(CONCAT <path> [<input>...] [OUTPUT_VARIABLE <output>]) + cmake_path(CONCAT <path-var> [<input>...] [OUTPUT_VARIABLE <out-var>]) -Concatenates all the ``<input>`` arguments to the ``<path>`` without +Concatenates all the ``<input>`` arguments to the ``<path-var>`` without ``directory-separator``. .. _REMOVE_FILENAME: .. code-block:: cmake - cmake_path(REMOVE_FILENAME <path> [OUTPUT_VARIABLE <output>]) + cmake_path(REMOVE_FILENAME <path-var> [OUTPUT_VARIABLE <out-var>]) Removes the :ref:`filename <FILENAME_DEF>` component (as returned by -:ref:`GET ... FILENAME <GET_FILENAME>`) from ``<path>``. +:ref:`GET ... FILENAME <GET_FILENAME>`) from ``<path-var>``. After this function returns, if change is done in-place, `HAS_FILENAME`_ -returns false for ``<path>``. +returns false for ``<path-var>``. For Example: @@ -458,13 +460,13 @@ For Example: .. code-block:: cmake - cmake_path(REPLACE_FILENAME <path> <input> [OUTPUT_VARIABLE <output>]) + cmake_path(REPLACE_FILENAME <path-var> <input> [OUTPUT_VARIABLE <out-var>]) -Replaces the :ref:`filename <FILENAME_DEF>` component from ``<path>`` with +Replaces the :ref:`filename <FILENAME_DEF>` component from ``<path-var>`` with ``<input>``. -If ``<path>`` has no filename component (`HAS_FILENAME`_ returns false), the -path is unchanged. +If ``<path-var>`` has no filename component (`HAS_FILENAME`_ returns false), +the path is unchanged. Equivalent to the following: @@ -480,23 +482,24 @@ Equivalent to the following: .. code-block:: cmake - cmake_path(REMOVE_EXTENSION <path> [LAST_ONLY] [OUTPUT_VARIABLE <output>]) + cmake_path(REMOVE_EXTENSION <path-var> [LAST_ONLY] + [OUTPUT_VARIABLE <out-var>]) -Removes the :ref:`extension <EXTENSION_DEF>`, if any, from ``<path>``. +Removes the :ref:`extension <EXTENSION_DEF>`, if any, from ``<path-var>``. .. _REPLACE_EXTENSION: .. code-block:: cmake - cmake_path(REPLACE_EXTENSION <path> [LAST_ONLY] <input> - [OUTPUT_VARIABLE <output>]) + cmake_path(REPLACE_EXTENSION <path-var> [LAST_ONLY] <input> + [OUTPUT_VARIABLE <out-var>]) Replaces the :ref:`extension <EXTENSION_DEF>` with ``<input>``. - 1. If ``<path>`` has an :ref:`extension <EXTENSION_DEF>` + 1. If ``<path-var>`` has an :ref:`extension <EXTENSION_DEF>` (`HAS_EXTENSION`_ is true), it is removed. - 2. A ``dot`` character is appended to ``<path>``, if ``<input>`` is not empty - or does not begin with a ``dot`` character. + 2. A ``dot`` character is appended to ``<path-var>``, if ``<input>`` is not + empty or does not begin with a ``dot`` character. 3. ``<input>`` is appended as if `CONCAT`_ was used. @@ -517,9 +520,9 @@ Generation .. code-block:: cmake - cmake_path(NORMAL_PATH <path> [OUTPUT_VARIABLE <output>]) + cmake_path(NORMAL_PATH <path-var> [OUTPUT_VARIABLE <out-var>]) -Normalize ``<path>``. +Normalize ``<path-var>``. A path can be normalized by following this algorithm: @@ -544,10 +547,10 @@ A path can be normalized by following this algorithm: .. code-block:: cmake - cmake_path(RELATIVE_PATH <path> [BASE_DIRECTORY <path>] - [OUTPUT_VARIABLE <output>]) + cmake_path(RELATIVE_PATH <path-var> [BASE_DIRECTORY <input>] + [OUTPUT_VARIABLE <out-var>]) -Returns ``<path>`` made relative to ``BASE_DIRECTORY`` argument. If +Returns ``<path-var>`` made relative to ``BASE_DIRECTORY`` argument. If ``BASE_DIRECTORY`` is not specified, the default base directory will be :variable:`CMAKE_CURRENT_SOURCE_DIR`. @@ -558,11 +561,11 @@ For reference, the algorithm used to compute the relative path is described .. code-block:: cmake - cmake_path(PROXIMATE_PATH <path> [BASE_DIRECTORY <path>] - [OUTPUT_VARIABLE <output>]) + cmake_path(PROXIMATE_PATH <path-var> [BASE_DIRECTORY <input>] + [OUTPUT_VARIABLE <out-var>]) If the value of `RELATIVE_PATH`_ is not an empty path, return -it. Otherwise return ``<path>``. +it. Otherwise return ``<path-var>``. If ``BASE_DIRECTORY`` is not specified, the default base directory will be :variable:`CMAKE_CURRENT_SOURCE_DIR`. @@ -571,10 +574,10 @@ If ``BASE_DIRECTORY`` is not specified, the default base directory will be .. code-block:: cmake - cmake_path(ABSOLUTE_PATH <path> [BASE_DIRECTORY <path>] [NORMALIZE] - [OUTPUT_VARIABLE <output>]) + cmake_path(ABSOLUTE_PATH <path-var> [BASE_DIRECTORY <input>] [NORMALIZE] + [OUTPUT_VARIABLE <out-var>]) -If ``<path>`` is a relative path (`IS_RELATIVE`_ is true), it is evaluated +If ``<path-var>`` is a relative path (`IS_RELATIVE`_ is true), it is evaluated relative to the given base directory specified by ``BASE_DIRECTORY`` option. If ``BASE_DIRECTORY`` is not specifired, the default base directory will be @@ -595,7 +598,7 @@ Conversion .. code-block:: cmake - cmake_path(CMAKE_PATH <path> [NORMALIZE] <input>) + cmake_path(CMAKE_PATH <path-var> [NORMALIZE] <input>) Converts a native ``<input>`` path into cmake-style path with forward-slashes (``/``). On Windows, the long filename marker is taken into account. @@ -624,9 +627,9 @@ For Example: .. code-block:: cmake - cmake_path(NATIVE_PATH <path> [NORMALIZE] <output>) + cmake_path(NATIVE_PATH <path-var> [NORMALIZE] <out-var>) -Converts a cmake-style ``<path>`` into a native +Converts a cmake-style ``<path-var>`` into a native path with platform-specific slashes (``\`` on Windows and ``/`` elsewhere). When ``NORMALIZE`` option is specified, the path is :ref:`normalized @@ -638,13 +641,13 @@ When ``NORMALIZE`` option is specified, the path is :ref:`normalized .. code-block:: cmake - cmake_path(CONVERT <input> TO_CMAKE_PATH_LIST <output> [NORMALIZE]) + cmake_path(CONVERT <input> TO_CMAKE_PATH_LIST <out-var> [NORMALIZE]) Converts a native ``<input>`` path into cmake-style path with forward-slashes (``/``). On Windows, the long filename marker is taken into account. The input can be a single path or a system search path like ``$ENV{PATH}``. A search path will be converted to a cmake-style list separated by ``;`` characters. The -result of the conversion is stored in the ``<output>`` variable. +result of the conversion is stored in the ``<out-var>`` variable. When ``NORMALIZE`` option is specified, the path is :ref:`normalized <NORMAL_PATH>` before the conversion. @@ -654,12 +657,12 @@ When ``NORMALIZE`` option is specified, the path is :ref:`normalized .. code-block:: cmake - cmake_path(CONVERT <input> TO_NATIVE_PATH_LIST <output> [NORMALIZE]) + cmake_path(CONVERT <input> TO_NATIVE_PATH_LIST <out-var> [NORMALIZE]) Converts a cmake-style ``<input>`` path into a native path with platform-specific slashes (``\`` on Windows and ``/`` elsewhere). The input can be a single path or a cmake-style list. A list will be converted into a native -search path. The result of the conversion is stored in the ``<output>`` +search path. The result of the conversion is stored in the ``<out-var>`` variable. When ``NORMALIZE`` option is specified, the path is :ref:`normalized @@ -688,8 +691,8 @@ Comparison .. code-block:: cmake - cmake_path(COMPARE <path> EQUAL <input> <output>) - cmake_path(COMPARE <path> NOT_EQUAL <input> <output>) + cmake_path(COMPARE <path-var> EQUAL <input> <out-var>) + cmake_path(COMPARE <path-var> NOT_EQUAL <input> <out-var>) Compares the lexical representations of the path and another path. @@ -697,6 +700,8 @@ For testing equality, the following algorithm (pseudo-code) apply: .. code-block:: cmake + # <path> is the contents of <path-var> + IF (NOT <path>.root_name() STREQUAL <input>.root_name()) returns FALSE ELSEIF (<path>.has_root_directory() XOR <input>.has_root_directory()) @@ -714,43 +719,43 @@ Query .. code-block:: cmake - cmake_path(HAS_ROOT_NAME <path> <output>) + cmake_path(HAS_ROOT_NAME <path-var> <out-var>) -Checks if ``<path>`` has ``root-name``. +Checks if ``<path-var>`` has ``root-name``. .. _HAS_ROOT_DIRECTORY: .. code-block:: cmake - cmake_path(HAS_ROOT_DIRECTORY <path> <output>) + cmake_path(HAS_ROOT_DIRECTORY <path-var> <out-var>) -Checks if ``<path>`` has ``root-directory``. +Checks if ``<path-var>`` has ``root-directory``. .. _HAS_ROOT_PATH: .. code-block:: cmake - cmake_path(HAS_ROOT_PATH <path> <output>) + cmake_path(HAS_ROOT_PATH <path-var> <out-var>) -Checks if ``<path>`` has root path. +Checks if ``<path-var>`` has root path. -Effectively, checks if ``<path>`` has ``root-name`` and ``root-directory``. +Effectively, checks if ``<path-var>`` has ``root-name`` and ``root-directory``. .. _HAS_FILENAME: .. code-block:: cmake - cmake_path(HAS_FILENAME <path> <output>) + cmake_path(HAS_FILENAME <path-var> <out-var>) -Checks if ``<path>`` has a :ref:`filename <FILENAME_DEF>`. +Checks if ``<path-var>`` has a :ref:`filename <FILENAME_DEF>`. .. _HAS_EXTENSION: .. code-block:: cmake - cmake_path(HAS_EXTENSION <path> <output>) + cmake_path(HAS_EXTENSION <path-var> <out-var>) -Checks if ``<path>`` has an :ref:`extension <EXTENSION_DEF>`. If the first +Checks if ``<path-var>`` has an :ref:`extension <EXTENSION_DEF>`. If the first character in the filename is a period, it is not treated as an extension (for example ".profile"). @@ -758,36 +763,36 @@ example ".profile"). .. code-block:: cmake - cmake_path(HAS_STEM <path> <output>) + cmake_path(HAS_STEM <path-var> <out-var>) -Checks if ``<path>`` has stem (:ref:`GET ... STEM <GET_STEM>` returns a non +Checks if ``<path-var>`` has stem (:ref:`GET ... STEM <GET_STEM>` returns a non empty path). .. _HAS_RELATIVE_PATH: .. code-block:: cmake - cmake_path(HAS_RELATIVE_PATH <path> <output>) + cmake_path(HAS_RELATIVE_PATH <path-var> <out-var>) -Checks if ``<path>`` has relative path (`GET_RELATIVE_PATH`_ returns a +Checks if ``<path-var>`` has relative path (`GET_RELATIVE_PATH`_ returns a non-empty path). .. _HAS_PARENT_PATH: .. code-block:: cmake - cmake_path(HAS_PARENT_PATH <path> <output>) + cmake_path(HAS_PARENT_PATH <path-var> <out-var>) -Checks if ``<path>`` has parent path. The result is true except if the path is -only composed of a :ref:`filename <FILENAME_DEF>`. +Checks if ``<path-var>`` has parent path. The result is true except if the path +is only composed of a :ref:`filename <FILENAME_DEF>`. .. _IS_ABSOLUTE: .. code-block:: cmake - cmake_path(IS_ABSOLUTE <path> <output>) + cmake_path(IS_ABSOLUTE <path-var> <out-var>) -Checks if ``<path>`` is absolute. +Checks if ``<path-var>`` is absolute. An absolute path is a path that unambiguously identifies the location of a file without reference to an additional starting location. @@ -796,7 +801,7 @@ without reference to an additional starting location. .. code-block:: cmake - cmake_path(IS_RELATIVE <path> <output>) + cmake_path(IS_RELATIVE <path-var> <out-var>) Checks if path is relative (i.e. not :ref:`absolute <IS_ABSOLUTE>`). @@ -804,9 +809,9 @@ Checks if path is relative (i.e. not :ref:`absolute <IS_ABSOLUTE>`). .. code-block:: cmake - cmake_path(IS_PREFIX <path> <input> [NORMALIZE] <output>) + cmake_path(IS_PREFIX <path-var> <input> [NORMALIZE] <out-var>) -Checks if ``<path>`` is the prefix of ``<input>``. +Checks if ``<path-var>`` is the prefix of ``<input>``. When ``NORMALIZE`` option is specified, the paths are :ref:`normalized <NORMAL_PATH>` before the check. @@ -818,11 +823,11 @@ Hashing .. code-block:: cmake - cmake_path(HASH <path> [NORMALIZE] <output>) + cmake_path(HASH <path-var> [NORMALIZE] <out-var>) -Compute hash value of ``<path>`` such that if for two paths (``p1`` and ``p2``) -are equal (:ref:`COMPARE ... EQUAL <COMPARE>`) then hash value of p1 is equal -to hash value of p2. +Compute hash value of ``<path-var>`` such that if for two paths (``p1`` and +``p2``) are equal (:ref:`COMPARE ... EQUAL <COMPARE>`) then hash value of p1 is +equal to hash value of p2. When ``NORMALIZE`` option is specified, the paths are :ref:`normalized <NORMAL_PATH>` before the check. diff --git a/Help/manual/cmake-gui.1.rst b/Help/manual/cmake-gui.1.rst index 97b5731..281986f 100644 --- a/Help/manual/cmake-gui.1.rst +++ b/Help/manual/cmake-gui.1.rst @@ -11,6 +11,7 @@ Synopsis cmake-gui [<options>] cmake-gui [<options>] {<path-to-source> | <path-to-existing-build>} cmake-gui [<options>] -S <path-to-source> -B <path-to-build> + cmake-gui [<options>] --browse-manual Description =========== @@ -40,6 +41,9 @@ Options Name of the preset to use from the project's :manual:`presets <cmake-presets(7)>` files, if it has them. +``--browse-manual`` + Open the CMake reference manual in a browser and immediately exit. + .. include:: OPTIONS_HELP.txt See Also diff --git a/Modules/FindRuby.cmake b/Modules/FindRuby.cmake index 0559a69..a0cdf3b 100644 --- a/Modules/FindRuby.cmake +++ b/Modules/FindRuby.cmake @@ -515,6 +515,7 @@ foreach(Camel Ruby_SITELIB_DIR Ruby_HAS_VENDOR_RUBY Ruby_VENDORARCH_DIR + Ruby_VENDORLIB_DIR ) string(TOUPPER ${Camel} UPPER) diff --git a/Source/QtDialog/CMakeSetup.cxx b/Source/QtDialog/CMakeSetup.cxx index 5b9d479..c1555a2 100644 --- a/Source/QtDialog/CMakeSetup.cxx +++ b/Source/QtDialog/CMakeSetup.cxx @@ -32,7 +32,8 @@ static const char* cmDocumentationUsage[][2] = { " cmake-gui [options]\n" " cmake-gui [options] <path-to-source>\n" " cmake-gui [options] <path-to-existing-build>\n" - " cmake-gui [options] -S <path-to-source> -B <path-to-build>\n" }, + " cmake-gui [options] -S <path-to-source> -B <path-to-build>\n" + " cmake-gui [options] --browse-manual\n" }, { nullptr, nullptr } }; @@ -61,6 +62,7 @@ Q_IMPORT_PLUGIN(QWindowsVistaStylePlugin); int CMakeGUIExec(CMakeSetupDialog* window); void SetupDefaultQSettings(); +void OpenReferenceManual(); int main(int argc, char** argv) { @@ -198,6 +200,9 @@ int main(int argc, char** argv) return 1; } presetName = preset.toLocal8Bit().data(); + } else if (arg == "--browse-manual") { + OpenReferenceManual(); + return 0; } } if (!sourceDirectory.empty() && diff --git a/Source/QtDialog/CMakeSetupDialog.cxx b/Source/QtDialog/CMakeSetupDialog.cxx index a15614d..05518a9 100644 --- a/Source/QtDialog/CMakeSetupDialog.cxx +++ b/Source/QtDialog/CMakeSetupDialog.cxx @@ -43,6 +43,21 @@ #include "RegexExplorer.h" #include "WarningMessagesDialog.h" +void OpenReferenceManual() +{ + QString urlFormat("https://cmake.org/cmake/help/v%1.%2/"); + QUrl url(urlFormat.arg(QString::number(cmVersion::GetMajorVersion()), + QString::number(cmVersion::GetMinorVersion()))); + + if (!cmSystemTools::GetHTMLDoc().empty()) { + url = QUrl::fromLocalFile( + QDir(QString::fromLocal8Bit(cmSystemTools::GetHTMLDoc().data())) + .filePath("index.html")); + } + + QDesktopServices::openUrl(url); +} + namespace { const QString PRESETS_DISABLED_TOOLTIP = "This option is disabled because there are no available presets in " @@ -194,19 +209,7 @@ CMakeSetupDialog::CMakeSetupDialog() QObject::connect(a, &QAction::triggered, this, &CMakeSetupDialog::doHelp); a->setShortcut(QKeySequence::HelpContents); a = HelpMenu->addAction(tr("CMake Reference Manual")); - QObject::connect(a, &QAction::triggered, this, []() { - QString urlFormat("https://cmake.org/cmake/help/v%1.%2/"); - QUrl url(urlFormat.arg(QString::number(cmVersion::GetMajorVersion()), - QString::number(cmVersion::GetMinorVersion()))); - - if (!cmSystemTools::GetHTMLDoc().empty()) { - url = QUrl::fromLocalFile( - QDir(QString::fromLocal8Bit(cmSystemTools::GetHTMLDoc().data())) - .filePath("index.html")); - } - - QDesktopServices::openUrl(url); - }); + QObject::connect(a, &QAction::triggered, this, OpenReferenceManual); a = HelpMenu->addAction(tr("About")); QObject::connect(a, &QAction::triggered, this, &CMakeSetupDialog::doAbout); diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index 952a179..e7bbf72 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -1423,7 +1423,7 @@ bool cmGlobalXCodeGenerator::CreateXCodeTarget( cmGeneratorTarget::SourceFileFlags tsFlags = gtgt->GetTargetSourceFileFlags(sourceFile); - if (filetype && IsLibraryType(filetype->GetString())) { + if (filetype && filetype->GetString() == "compiled.mach-o.objfile") { if (sourceFile->GetObjectLibrary().empty()) { externalObjFiles.push_back(xsf); } @@ -1591,7 +1591,7 @@ bool cmGlobalXCodeGenerator::CreateXCodeTarget( } } - // always create framework build phase + // Always create Link Binary With Libraries build phase cmXCodeObject* frameworkBuildPhase = nullptr; frameworkBuildPhase = this->CreateObject(cmXCodeObject::PBXFrameworksBuildPhase); @@ -1600,6 +1600,7 @@ bool cmGlobalXCodeGenerator::CreateXCodeTarget( this->CreateString("2147483647")); buildFiles = this->CreateObject(cmXCodeObject::OBJECT_LIST); frameworkBuildPhase->AddAttribute("files", buildFiles); + // Add all collected .o files to this build phase for (auto& externalObjFile : externalObjFiles) { buildFiles->AddObject(externalObjFile); } |