Commit Graph

56631 Commits

Author SHA1 Message Date
Brad King
2ac207f046 Merge branch 'compile-msvc-14.34-c++20' into release-3.23
Merge-request: !7910
2022-11-14 12:16:27 -05:00
Werner, Joerg
a394c9416d cmGlobalVisualStudioGenerator: Fix compiling as C++20 in VS 2022
Adding missing narrow string conversion.

This backports commit f3c918ef1b (cmGlobalVisualStudioGenerator: Fix
compiling as C++20 in VS 2022, 2022-10-20, v3.25.0-rc3~31^2) to the
CMake 3.23 and 3.24 branches.

Fixes: #24162
2022-11-14 12:07:16 -05:00
Brad King
91ccfa3302 CMake 3.23.5 v3.23.5 2022-11-01 09:36:33 -04:00
Brad King
cd5826ffc9 Merge branch 'ninja-intl-paths' into release-3.23
Merge-request: !7833
2022-10-27 09:24:29 -04:00
Brad King
a12050666c Tests: Add case for ninja with non-ascii chars
Issue: #24089
2022-10-26 15:25:45 -04:00
Brad King
02a04dd9c7 Ninja: Restore support for non-ascii paths on Windows with ninja<=1.10
Revert commit bbdb000c55 (GlobalNinjaGenerator: enlarge file stream
buffer, 2022-01-25, v3.23.0-rc1~68^2).  Somehow `rdbuf()->pubsetbuf()`
is resetting our imbued locale and `cm_codecvt` that handles encoding.

Fixes: #24089
2022-10-26 15:24:43 -04:00
Brad King
4f2bb02d9a Merge branch 'try_compile-CMP0128' into release-3.23
Merge-request: !7821
2022-10-24 12:30:24 -04:00
Brad King
90287792b6 Tests: Avoid running C++11 test on GNU < 4.7
The test added in commit 50e90e2828 (try_compile: Honor CMP0128 setting
in test project, 2022-10-18, v3.25.0-rc2~4^2) requires that the compiler
support C++11 mode, so do not run it on GNU compilers that are too old.
2022-10-24 12:04:57 -04:00
Brad King
199b3e580d Merge branch 'filesystem-path-c++03-abi' into release-3.23
Merge-request: !7813
2022-10-20 19:03:19 -04:00
Brad King
ee9805ccd1 cm/filesystem: Fix crash with pre-C++11 std::string GNU ABI in C++17
The `remove_filename` and `replace_extension` methods compute an offset
between the whole path in a `std::string` and a part of a path in a
`std::string_view`.  This is done by subtracting their `.data()`
pointers.  However, C++17 adds a non-const `.data()` through which
modification of the string is allowed.  This means the copy-on-write
implementation used by the pre-C++11 std::string GNU ABI must reallocate
if the string has been copied.  Our subtraction then computes an offset
between two different allocations, which is undefined behavior.

The workaround in commit b3ca4f9ad1 (cm/filesystem: Work around crash
when compiled for CYGWIN/MSYS runtime, 2021-04-22, v3.21.0-rc1~271^2~2)
avoided the problem by calling the non-const `.data()` to reallocate
before constructing the `string_view`.  Instead, explicitly call the
const `.data()` method on the string, which does not reallocate.

Fixes: #22090, #23328
2022-10-20 18:31:50 -04:00
Brad King
96172ba2d1 Merge branch 'try_compile-CMP0128' into release-3.23
Merge-request: !7803
2022-10-18 14:25:26 -04:00
Brad King
50e90e2828 try_compile: Honor CMP0128 setting in test project
Some projects pass a raw `-std=` flag to the compiler in the
`try_compile` project.  If they do not set CMP0128 to NEW,
we should not append a `-std=` flag where we did not before
the policy was added.

Fixes: #24063
2022-10-18 13:38:00 -04:00
Brad King
367f10f4cb Merge branch 'doc-timestamp-f' into release-3.23
Merge-request: !7796
2022-10-14 11:32:49 -04:00
Brad King
7d25ae7350 Help: Add versionadded for string(TIMESTAMP) %f specifier
This was accidentally left out of commit c050d6a01e (string(TIMESTAMP):
add %f specifier for microseconds, 2022-01-27, v3.23.0-rc1~59^2).
2022-10-14 11:28:38 -04:00
Brad King
d82e2d557e Merge branch 'cpack-nsis-uninstaller' into release-3.23
Merge-request: !7774
2022-10-10 10:43:41 -04:00
Mika Fischer
8721658959 CPack/NSIS: Fix installer not waiting for uninstaller to finish
In commit b795c96727 (CPack/NSIS: Fix uninstall command when run from
installer, 2022-03-21, v3.23.0-rc5~9^2~1) we incorrectly removed the
`_?` parameter when calling the uninstaller during installation.
This parameter is however essential for ExecWait to actually wait for
the uninstaller to finish.  Without it, the uninstaller is started in
the background and installer and uninstaller run at the same time.

See https://nsis.sourceforge.io/Docs/Chapter3.html#installerusageuninstaller

Add back the `_?` parameter to fix this regression.  Use another
approach to solve the problem motivating the original change.

Fixes: #24041
2022-10-10 10:41:45 -04:00
Brad King
34a6da34b8 CMake 3.23.4 v3.23.4 2022-10-04 13:26:33 -04:00
Brad King
22280bce61 Merge branch 'parse-large-int' into release-3.23
Merge-request: !7698
2022-09-20 15:17:16 -04:00
Brad King
8fc822e13a file: Avoid strange istringstream crash in cmake.org binaries on Alpine Linux
Somehow using `istringstream` and `operator >>` to parse an integer
crashes on Alpine Linux, at least when compiled with the settings we use
for the official `cmake.org` Linux binaries.  Since commit fd0c285b12
(file: Fix types of the OFFSET and LIMIT arguments, 2022-01-04,
v3.23.0-rc1~133^2), this causes the `file(READ)` command to crash when
parsing its `LIMIT` or `OFFSET` argument.  Parse the input string with
our dedicated helper to avoid the crash.

Fixes: #23872
2022-09-20 12:00:08 -04:00
Brad King
31f158e4c8 cmStringAlgorithms: Add functions to parse strings to long long integers 2022-09-20 12:00:08 -04:00
Brad King
5d80d7cb6a Merge branch 'findCUDAToolkit_declare_deps_for_targets_once' into release-3.23
Merge-request: !7633
2022-09-06 09:14:57 -04:00
Robert Maynard
f0918fe505 FindCUDAToolkit: Correctly state cusolver and cublas dependencies
Fixes #23920
2022-09-02 12:24:40 -04:00
Brad King
e2d03cea9e Merge branch 'FindGTest-gmock-needs-gtest' into release-3.23
Merge-request: !7523
2022-07-29 14:07:08 -04:00
Robert Maynard
1aa95e1a3b FindGTest: Create the gmock targets only when GTest has been found
When we introduced the `GTest::gmock` and `GTest::gmock_main` targets in
commit 50bf457a0d (FindGTest: Add target for gmock library, 2021-10-17,
v3.23.0-rc1~321^2) we failed to handle the case where GTest isn't found.
Don't construct gmock targets that depend on non-existent gtest targets
when gtest failed to be found.
2022-07-29 14:05:55 -04:00
Brad King
d566bd962d CMake 3.23.3 v3.23.3 2022-07-28 11:46:12 -04:00
Brad King
b9efb007d0 Merge branch 'release-3.22' into release-3.23 2022-07-28 11:30:01 -04:00
Brad King
0bfd4f1ed6 CMake 3.22.6 v3.22.6 2022-07-28 10:41:34 -04:00
Brad King
ee64500b7f Merge branch 'release-3.22' into release-3.23 2022-07-28 10:40:28 -04:00
Brad King
c6735d6102 Merge branch 'ci-xcode-13.4' into release-3.23
Merge-request: !7520
2022-07-28 09:36:05 -04:00
Brad King
faa4aed46f Merge branch 'ci-xcode-13.4' into release-3.22
Merge-request: !7520
2022-07-28 09:35:50 -04:00
Brad King
eddf057830 gitlab-ci: update macOS jobs to use Xcode 13.4 2022-07-28 09:27:27 -04:00
Brad King
e77ec7f76f Merge branch 'backport-3.23-cmake-P-path-args' into release-3.23
Merge-request: !7494
2022-07-22 17:01:01 -04:00
Robert Maynard
261fa5db39 cmake: In -P mode ignore extra paths on the command line
Fixes: #23748
2022-07-22 13:53:52 -04:00
Robert Maynard
314135cdf1 cmake: simplify to a single source of truth of working mode 2022-07-22 13:53:12 -04:00
Brad King
64b22cd459 Merge branch 'export-try-compile-crash' into release-3.23
Merge-request: !7472
2022-07-18 14:57:58 -04:00
Kyle Edwards
29c7546a61 cmGlobalGenerator: Only compute build files for all targets
If we're creating generation objects for imported targets only, we
don't need the export sets. Only compute build file generators
if generating for all targets.

Fixes: #23709
2022-07-13 11:34:34 -04:00
Brad King
3bae50e830 Merge branch 'release-3.22' into release-3.23 2022-07-08 12:18:00 -04:00
Brad King
5924dc2a7e Merge branch 'rel-macos-sign-notarize' into release-3.23
Merge-request: !7463
2022-07-08 12:15:55 -04:00
Brad King
d4762d46c7 Merge branch 'rel-macos-sign-notarize' into release-3.22
Merge-request: !7463
2022-07-08 12:15:31 -04:00
Brad King
432ae51467 Utilities/Release: Update macOS notarization script to use notarytool
`xcnotary` is no longer needed since `altool` has been deprecated in
favor of `notarytool`, which has builtin support for waiting.
2022-07-08 12:14:23 -04:00
Brad King
8b89649253 Merge branch 'release-3.22' into release-3.23 2022-07-07 09:03:38 -04:00
Brad King
05a5d351f4 Merge branch 'FindLAPACK-nvhpc' into release-3.23
Merge-request: !7452
2022-07-07 09:01:20 -04:00
Brad King
7cc61ff9e8 Merge branch 'FindLAPACK-nvhpc' into release-3.22
Merge-request: !7452
2022-07-07 09:00:30 -04:00
Eisuke Kawashima
28d52a43fc FindLAPACK: Add '-fortranlibs' flag only with NVHPC/PGI compilers
Since commit 2c9e623e31 (Find{BLAS,LAPACK}: Add support for the NVHPC
LAPACK library, 2021-05-05, v3.21.0-rc1~192^2) we try the `-fortranlibs`
option as a dependency of the NVHPC LAPACK.  That flag is specific to
the NVHPC/PGI compilers, so use it conditionally with them.

Without this modification, CMake fails to find LAPACK if

- compiler ID is GNU
- `BLA_STATIC` is `ON`
- `BLA_VENDOR` is not defined or set to `All`

Fixes: #23705, #22878
2022-07-06 13:58:47 -04:00
Brad King
529004738a Merge branch 'file-set-crash' into release-3.23
Merge-request: !7420
2022-06-30 08:22:27 -04:00
Kyle Edwards
3fee5398bd install(EXPORT): Check for missing file sets at generate time
Missing file sets were originally checked at configure time in
install(TARGETS ... EXPORT), but were not checked at generate time. If
a file set was added after install(TARGETS ... EXPORT) was called,
an abortion error was thrown. Check again at generate time to gracefully
display an error message instead of crashing.

Fixes: #23680
2022-06-29 15:05:32 -04:00
Brad King
49a9741656 Merge branch 'lcc-liblfortran-renamed' into release-3.23
Merge-request: !7407
2022-06-27 13:07:31 -04:00
Igor Molchanov
57da7a4925 LCC: link with -lgfortran instead of -llfortran since 1.26.03
Since LCC 1.26.03, compiler developers decided to rename
liblfortran to libgfortran (internal reference: mcstbug#131633),
and despite it's stated that "-llfortran will be automatically
treated as -lgfortran", it actually does not work (and there's
even no symlinks like liblfortran.* -> libgfortran.*); so we
have to explicitly choose which library we have to link in.

Fixes: #23646
2022-06-27 13:02:53 -04:00
Brad King
8321c3d08e Merge branch 'backport-3.23-ExternalProject-stamp-cfgdir' into release-3.23
Merge-request: !7396
2022-06-22 08:41:50 -04:00
Brad King
5022b42f8b ExternalProject: Fix regression in stamp creation for Xcode+iOS
The change to `_ep_add_mkdir_command` in commit 5fbac2bb24
(ExternalProject: Move inline scripts to separate files, 2022-01-22,
v3.23.0-rc1~101^2) did not account for the possibility that
`CMAKE_CFG_INTDIR` is `$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)`
instead of just the configuration name.  Pass the value into the helper
script on the command line so that the native buildsystem placeholders
are evaluated.

Fixes: #23645
2022-06-21 18:27:44 -04:00