Commit Graph

53231 Commits

Author SHA1 Message Date
Brad King
ddffbb8adb cmMakefile: Register explicit object sources more efficiently
`AddTargetObject` knows the location of object files.
2021-05-28 14:27:38 -04:00
Brad King
18e42d3e63 cmGeneratorExpressionNode: Constify local variable 2021-05-28 14:27:38 -04:00
Brad King
687326946b Merge branch 'release-3.20' 2021-05-28 14:24:56 -04:00
Brad King
0f43b4b896 Merge topic 'ci-msvc-14.29-16.10'
4c33b4e3b1 Merge branch 'master' into ci-msvc-14.29-16.10
59d9fa7131 gitlab-ci: Update Windows builds to MSVC 19.29-16.10 toolset

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6172
2021-05-28 14:24:56 -04:00
Brad King
b9ee6db49c Merge topic 'ci-msvc-14.29-16.10' into release-3.20
59d9fa7131 gitlab-ci: Update Windows builds to MSVC 19.29-16.10 toolset

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6172
2021-05-28 14:24:56 -04:00
Brad King
4c33b4e3b1 Merge branch 'master' into ci-msvc-14.29-16.10 2021-05-28 13:45:04 -04:00
Brad King
dd6fd62615 Merge branch 'release-3.20' 2021-05-28 12:52:42 -04:00
Brad King
ddd132072e Merge topic 'vs-16.10-map-external-warnings' into release-3.20
9054cd05e6 VS: Add flag table entries for '/external:W*' flags in VS 16.10

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6171
2021-05-28 12:52:42 -04:00
Brad King
21832aa8fc Merge topic 'vs-16.10-map-external-warnings'
9054cd05e6 VS: Add flag table entries for '/external:W*' flags in VS 16.10

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6171
2021-05-28 12:52:42 -04:00
Brad King
59d9fa7131 gitlab-ci: Update Windows builds to MSVC 19.29-16.10 toolset 2021-05-28 12:33:53 -04:00
Brad King
f4f80cfec6 Merge topic 'vs-toolset-version' into release-3.20
a60141feaa VS: Add special case for '-T version=14.29.16.10' under VS 16.10

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6169
2021-05-28 12:24:52 -04:00
Brad King
f864347a83 Merge branch 'release-3.20' 2021-05-28 12:24:52 -04:00
Brad King
4523da9a12 Merge topic 'vs-toolset-version'
a60141feaa VS: Add special case for '-T version=14.29.16.10' under VS 16.10

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6169
2021-05-28 12:24:52 -04:00
Brad King
1143213e38 Merge topic 'binutils-consistency'
047585edc6 BinUtils: Find linker and librarian for Intel compilers on Windows
995f5b4e7b BinUtils: Find linker and librarian for OpenWatcom
cf82300a63 BinUtils: Clarify search logic and make it more consistent

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6164
2021-05-28 12:24:10 -04:00
Brad King
42305f7d9a Merge topic 'update-curl'
d199fc4bf8 Utilities: Add missing hard-coded try_compile results for libarchive
f361cb1fb3 Utilities: Update hard-coded try_compile results for curl 1.77.0
cd40922edb Merge branch 'upstream-curl' into update-curl
18b2a8d760 curl 2021-05-26 (6b951a69)
2f38e5d214 curl: Update script to get curl 7.77.0

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6168
2021-05-28 12:23:24 -04:00
Brad King
8f9fa818dc Merge topic 'WriteBasicConfigVersion_support_leading_zeroes'
e609afeb5f WriteBasicConfigVersion supports version strings such as 21.07.04

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6167
2021-05-28 12:22:31 -04:00
Brad King
c19fdf69fa Merge topic 'doc-test-regex-v-exit-code'
91b8676f8c Help: Clarify {PASS,FAIL}_REGULAR_EXPRESSION semantics w.r.t. exit code

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6165
2021-05-28 12:21:26 -04:00
Brad King
be0e013fd9 Merge topic 'deprecate-cmake-cfg-intdir'
e71c4f7729 CMAKE_CFG_INTDIR: Formally deprecate in favor of $<CONFIG>

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6163
2021-05-28 12:20:31 -04:00
Brad King
9054cd05e6 VS: Add flag table entries for '/external:W*' flags in VS 16.10
Fixes: #22255
2021-05-28 11:54:57 -04:00
Kitware Robot
c186dfcd01 CMake Nightly Date Stamp 2021-05-28 00:01:11 -04:00
Brad King
a60141feaa VS: Add special case for '-T version=14.29.16.10' under VS 16.10
Extend the table of special cases from commit 58a50a3a0a (VS: Fix '-T
version=14.28' under VS 16.9, 2021-03-11, v3.19.7~1^2~1).  Add a special
case for the name VS 16.11 will use for VS 16.10's default toolset, so
that it can be used with VS 16.10 too.

Using '-T version=14.29.16.10' actually works under VS 16.10 without
this change, but only because there is only one 14.29 toolset so the
two-component prefix happens to match the right one.  Make it explicit.

Issue: #21922
2021-05-27 17:06:27 -04:00
Brad King
d199fc4bf8 Utilities: Add missing hard-coded try_compile results for libarchive 2021-05-27 15:53:40 -04:00
Brad King
f361cb1fb3 Utilities: Update hard-coded try_compile results for curl 1.77.0 2021-05-27 15:40:27 -04:00
Brad King
cd40922edb Merge branch 'upstream-curl' into update-curl
* upstream-curl:
  curl 2021-05-26 (6b951a69)
2021-05-27 15:23:20 -04:00
Robert Maynard
e609afeb5f WriteBasicConfigVersion supports version strings such as 21.07.04
Fixes #22207
2021-05-27 15:18:37 -04:00
Curl Upstream
18b2a8d760 curl 2021-05-26 (6b951a69)
Code extracted from:

    https://github.com/curl/curl.git

at commit 6b951a6928811507d493303b2878e848c077b471 (curl-7_77_0).
2021-05-27 15:11:35 -04:00
Brad King
2f38e5d214 curl: Update script to get curl 7.77.0 2021-05-27 15:11:10 -04:00
Brad King
393caf1f42 Merge branch 'release-3.20' 2021-05-27 14:52:40 -04:00
Brad King
13d112ea03 CMake 3.20.3 v3.20.3 2021-05-27 14:05:04 -04:00
Brad King
91b8676f8c Help: Clarify {PASS,FAIL}_REGULAR_EXPRESSION semantics w.r.t. exit code
Also cross-reference them with each other and `SKIP_REGULAR_EXPRESSION`.
2021-05-27 12:11:19 -04:00
Brad King
047585edc6 BinUtils: Find linker and librarian for Intel compilers on Windows
Update our Intel linker and archiver rules to use the `<CMAKE_LINKER>`
and `<CMAKE_AR>` placeholders instead of hard-coding the tool names.
2021-05-27 10:46:33 -04:00
Brad King
995f5b4e7b BinUtils: Find linker and librarian for OpenWatcom
Update our OpenWatcom linker and archiver rules to use the
`<CMAKE_LINKER>` and `<CMAKE_AR>` placeholders instead of
hard-coding the tool names.
2021-05-27 10:46:33 -04:00
Brad King
cf82300a63 BinUtils: Clarify search logic and make it more consistent
Consistently consider more-specific names before less-specific names.
2021-05-27 10:45:09 -04:00
Kyle Edwards
e71c4f7729 CMAKE_CFG_INTDIR: Formally deprecate in favor of $<CONFIG> 2021-05-27 10:26:11 -04:00
Brad King
34a5163fec Merge topic 'xcode-link-TARGET_OBJECTS'
2ae72ef74b Xcode: Enable multi-arch TARGET_OBJECTS genex in [INTERFACE_]LINK_LIBRARIES

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6161
2021-05-27 09:10:30 -04:00
Kitware Robot
e55c86873e CMake Nightly Date Stamp 2021-05-27 00:01:13 -04:00
Craig Scott
445c73d3fa Merge topic 'cpack-install-opts'
26e36111d3 CPack: Implement new variable CPACK_CUSTOM_INSTALL_VARIABLES

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6141
2021-05-26 18:53:40 -04:00
Brad King
2ae72ef74b Xcode: Enable multi-arch TARGET_OBJECTS genex in [INTERFACE_]LINK_LIBRARIES
This was an oversight in the original implementation.
2021-05-26 15:43:38 -04:00
Brad King
c5657a2fe4 Merge topic 'ninja-absolute-paths'
c564a3e3ff Ninja: Always compile sources using absolute paths
eb98d45111 Ninja: Handle depfiles with absolute paths to generated files in Ninja < 1.7
48471cfd18 cmNinjaNormalTargetGenerator: Factor out build event byproduct collection
18408c0b88 cmGlobalNinjaGenerator: Add helper to compute absolute paths for build.ninja
efb8d7b4a1 cmNinjaTargetGenerator: Reduce string copies in ConvertToNinjaPath wrapper
fb3a57575a cmNinjaTargetGenerator: Rename source file path lookup method for clarity
0f2b1c9d1b cmNinjaTargetGenerator: Remove GetSourceFilePath call with different semantics
dfc98774a2 cmNinjaTargetGenerator: Rename local variable for clarity
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !6148
2021-05-26 11:57:22 -04:00
Brad King
4296c31881 Merge topic 'compiler-ti-linker-response-file'
74a2a7a477 Compiler/TI: Restore response file usage for linker

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6159
2021-05-26 11:56:32 -04:00
Kitware Robot
c6e36f6059 CMake Nightly Date Stamp 2021-05-26 00:01:43 -04:00
Brad King
c564a3e3ff Ninja: Always compile sources using absolute paths
The Ninja generator traditionally referenced source files and include
directories using paths relative to the build directory if they could be
expressed without a `../` sequence that leaves the build and source
directories.  For example, when using a `build/` directory inside the
source tree, sources would be compiled as `-c ../src.c` and include
directories would be referenced as `-I ../include`.  This approach
matches the traditional Ninja convention of using relative paths
whenever possible, but has undesirable side effects such as:

* Compiler diagnostic messages may not use absolute paths, making it
  harder for IDEs/editors to find the referenced sources or headers.

* Debug symbols may not use absolute paths, making it harder for
  debuggers to find the referenced sources or headers.

* Different results depending on the path to the build tree relative
  to the source tree.

* Inconsistent with the Makefile generators, which use absolute paths.

Switch to always using absolute paths to reference source files and
include directories on compiler command lines.  While alternative
solutions for diagnostic messages and debug symbols may exist with
specific tooling, this is the simplest and most consistent approach.

Note that a previous attempt to do this in commit 955c2a630a (Ninja: Use
full path for all source files, 2016-08-05, v3.7.0-rc1~275^2) was
reverted by commit 666ad1df2d (Revert "Ninja: Use full path for all
source files", 2017-02-24, v3.8.0-rc2~9^2) due to problems hooking up
depfile dependencies on generated files.  This time, the changes in
commit 2725ecff38 (Ninja: Handle depfiles with absolute paths to
generated files, 2021-05-19) should avoid those problems.

Fixes: #13894, #17450
2021-05-25 10:48:26 -04:00
Brad King
eb98d45111 Ninja: Handle depfiles with absolute paths to generated files in Ninja < 1.7
Extend the change from commit 2725ecff38 (Ninja: Handle depfiles with
absolute paths to generated files, 2021-05-19) to work on versions of
Ninja that do not support implicit outputs.  Specify the absolute paths
as normal outputs on such versions.

Issue: #13894, #21865
2021-05-25 10:48:26 -04:00
Brad King
48471cfd18 cmNinjaNormalTargetGenerator: Factor out build event byproduct collection
This was left out of commit 68e5f92cad (cmGlobalNinjaGenerator: Factor
out custom command output collection, 2021-05-18).
2021-05-25 10:48:26 -04:00
Brad King
18408c0b88 cmGlobalNinjaGenerator: Add helper to compute absolute paths for build.ninja 2021-05-25 10:48:25 -04:00
Brad King
efb8d7b4a1 cmNinjaTargetGenerator: Reduce string copies in ConvertToNinjaPath wrapper
The global generator's method returns a reference to a cached value.
Return that from the wrapper too.
2021-05-25 10:48:25 -04:00
Brad King
fb3a57575a cmNinjaTargetGenerator: Rename source file path lookup method for clarity
The `GetSourceFilePath` method is meant only for compiled sources, and
automatically handles converting it to a path for the Ninja build
manifest.  Rename the method to clarify both.
2021-05-25 10:48:25 -04:00
Brad King
0f2b1c9d1b cmNinjaTargetGenerator: Remove GetSourceFilePath call with different semantics
Reference external object files using `ConvertToNinjaPath` directly.
`GetSourceFilePath` is meant to reference source files to be compiled.
2021-05-25 10:48:25 -04:00
Brad King
dfc98774a2 cmNinjaTargetGenerator: Rename local variable for clarity 2021-05-25 10:48:25 -04:00
Brad King
51116c3ea9 cmLocalNinjaGenerator: Remove unnecessary CollapseFullPath call
`ConvertToIncludeReference` is only called with absolute paths.
One branch already assumed this.
2021-05-25 10:48:25 -04:00