Commit Graph

9886 Commits

Author SHA1 Message Date
Brad King
566064ea5e Merge topic 'better-file-download-failure-msg'
8c3cf2716a file(DOWNLOAD EXPECTED_HASH): better error message when download failed

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7888
2022-11-10 10:08:54 -05:00
Aurelien Regat-Barrel
8c3cf2716a file(DOWNLOAD EXPECTED_HASH): better error message when download failed 2022-11-09 22:44:36 +01:00
Ilia K
3166547cf6 ASM_MARMASM: Add support for Microsoft ARM assembler language
https://learn.microsoft.com/en-us/cpp/assembler/arm/arm-assembler-reference

Fixes: #23999
2022-11-09 10:22:46 -05:00
Brad King
ce4babb566 Tests: Fix ARM64 test conditions for non-VS generators 2022-11-09 10:22:46 -05:00
Brad King
16cb04dbe9 Merge topic 'file-set-file-api'
b3e9fb67bb file-api: support exporting file set information

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7867
2022-11-09 09:34:40 -05:00
Brad King
9758dbd9d4 Merge topic 'use_folders_on_by_default'
d3acd22380 USE_FOLDERS: Treat as on by default

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Amir Masoud Abdol <amirmasoudabdol@icloud.com>
Merge-request: !7830
2022-11-08 14:28:21 -05:00
Ben Boeckel
b3e9fb67bb file-api: support exporting file set information
This includes listing the filesets themselves as well as which file set
(if any) each source file is associated with.

Fixes: #24128
2022-11-08 10:07:10 -05:00
Brad King
ebeb9ce406 Merge topic 'test-intel-remarks'
b2d030e8fe Tests: Teach RunCMake to ignore Intel -Rdebug-disables-optimization remarks

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7366
2022-11-08 10:04:34 -05:00
Juan Ramos
d3acd22380 USE_FOLDERS: Treat as on by default
Add a policy to treat the `USE_FOLDERS` global property as ON by default
if it is not set.

Fixes: #21695
2022-11-08 09:32:18 -05:00
Brad King
7e0c00c251 Merge topic 'googletest-addtests-skipped'
f54963e60f GoogleTest: Reports skipped test with gtest_add_tests

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !7868
2022-11-08 09:18:01 -05:00
Brad King
a0ad3209b5 Merge topic 'find-version-vars'
9e3f1723ff Find{BZip2,LibLZMA,ZLIB}: use *_VERSION as modern CMake

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Craig Scott <craig.scott@crascit.com>
Merge-request: !7877
2022-11-08 09:04:43 -05:00
Brad King
eee0c6ec0d Merge topic 'block-var-scope'
96ddcbee60 cmState: Clarify name of member tracking the active scope in a directory
cb53d9309e block: Fix variable scope protection from modification by subdirectories

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7885
2022-11-08 09:00:14 -05:00
Michael Hirsch
9e3f1723ff Find{BZip2,LibLZMA,ZLIB}: use *_VERSION as modern CMake
The old *_VERSION_STRING is silently left set for backward compat.
2022-11-07 16:22:31 -05:00
Brad King
cb53d9309e block: Fix variable scope protection from modification by subdirectories
When `cmStateSnapshot::RaiseScope` raises a variable in to a parent
directory scope, it uses `GetBuildsystemDirectoryParent` to find the
current top-most scope on the directory's stack.  Since commit 3f4e5e8c3d
(cmState: Return end snapshot for GetBuildsystemDirectoryParent.,
2015-09-01, v3.4.0-rc1~100^2~1), that depends on the `DirectoryEnd`
field in the directory's state.  However, when variable-only scopes were
added by commit 6954c8936f (cmState: Add a VariableScope snapshot type.,
2015-08-01, v3.4.0-rc1~179^2~1), we neglected to account for the
addition of that field by commit 52dbe654de (cmState: Record the end
position of each directory., 2015-08-01, v3.4.0-rc1~251^2~1).

Prior to commit 44a2f3f332 (Add new flow-control commands for variables
and policies scopes management, 2022-08-05, v3.25.0-rc1~257^2) this
problem went unnoticed because there was no way to have a variable scope
at the top of a directory's stack while processing a subdirectory. Now
the `block()/endblock()` commands enable the behavior, so fix tracking
of a variable scope as the top-most scope in a directory.

Fixes: #24138
2022-11-07 14:24:24 -05:00
Brad King
4ac37b8a0e Merge topic 'ExternalProject-INSTALL_BYPRODUCTS'
8c6b2928f4 ExternalProject: Add `INSTALL_BYPRODUCTS` option
6d6baffb85 Tests: Fix ExternalLibraryWithSubstitution test
4bcfff2df3 ExternalProject: Clarify `BYPRODUCTS` docs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7866
2022-11-07 08:57:13 -05:00
Brad King
4e047870bc Merge topic 'CheckCompilerFlag-Swift'
2d5403ecaa CheckCompilerFlag: Add Swift Support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7865
2022-11-07 08:52:25 -05:00
DavidPerretSN
f54963e60f GoogleTest: Reports skipped test with gtest_add_tests
Skipped GTests were reported as success when tests where added with gtest_add_tests. This fixes this behaviour.

Fixes: #24130
2022-11-07 10:21:30 +01:00
Alois Klink
8c6b2928f4 ExternalProject: Add INSTALL_BYPRODUCTS option
Add an `INSTALL_BYPRODUCTS` option to `ExternalProject_Add` that can
be used to declare that files are `BYPRODUCTS` of the ExternalProject
install step.

This is often required by the Ninja generator to explicitly declare
dependencies. Previously, many users used `BUILD_BYPRODUCTS`, even if
their files were created by the install step, not the build step.

This commit essentially just copies the code for `BUILD_BYPRODUCTS`.

Fixes: #24120
Fixes: #23056
2022-11-05 16:26:45 +00:00
Evan Wilde
2d5403ecaa CheckCompilerFlag: Add Swift Support
Plumb through Swift `check_compiler_flag` support.
Add tests to check that valid flags work and invalid flags don't.
2022-11-04 09:32:06 -07:00
Alois Klink
6d6baffb85 Tests: Fix ExternalLibraryWithSubstitution test
The ExternalLibraryWithSubstitution test should test whether
BUILD_BYPRODUCTS supports <BUILD_DIR> and other ExternalProject
placeholder tokens.

However, it's not hooked up correctly, and therefore isn't properly
tested. This commit links it to an executable, to confirm whether
it's possible to use the BUILD_BYPRODUCT in the Ninja generator.

Fixes: commit 86032ae0eb (ExternalProject: Replace placeholder tokens in BYPRODUCTS, 2015-03-06)
2022-11-03 23:27:16 +00:00
Brad King
7e94e54f8f Merge topic 'correct_nvptxcompiler_not_linking_to_threads'
62f13ed588 FindCUDAToolkit: Restore usage from multiple directories

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7859
2022-11-03 08:15:13 -04:00
Brad King
32352abbd1 Merge topic 'correct_nvptxcompiler_not_linking_to_threads' into release-3.25
62f13ed588 FindCUDAToolkit: Restore usage from multiple directories

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7859
2022-11-03 08:15:12 -04:00
Brad King
55ef776a62 Merge topic 'xcode-swift-include-dirs'
cb4e6702b2 Xcode: Implement Swift include directories
e1ccab12d7 Xcode: Restore Swift framework search directories

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7858
2022-11-03 08:14:15 -04:00
Brad King
cb4e6702b2 Xcode: Implement Swift include directories
Populate Xcode's `SWIFT_INCLUDE_PATHS` build setting with the
target-wide include directories.

Issue: #24116
2022-11-02 17:03:21 -04:00
Brad King
88b14c5cf4 Tests: Improve GeneratorExpression SHELL_PATH case robustness on MSYS 1.0
Since commit ca6ba3fee5 (Genex: Add a SHELL_PATH expression, 2015-09-24,
v3.4.0-rc1~37^2) and commit 21da25d2a8 (Tests: Generalize
GeneratorExpression MSYS path conversion workaround, 2019-03-11,
v3.15.0-rc1~407^2~1) we use a prefix string to prevent the MSYS 1.0
shell from converting absolute paths of the form `/c/...` to
windows-style paths.  In the newer `mingw.osdn.io` distribution of MSYS
1.0, the `bash` shell now also converts paths that appear after `:`.
We have no way to add a prefix string in that context, so perform the
test's check of the `SHELL_PATH` genex value at generate time instead.
2022-11-02 15:47:25 -04:00
Brad King
82c990e9be Tests: Improve RunCMake.GetPrerequisites sample executable selection
Get the runtime dependencies of an executable just built by the
toolchain with which tests are running.  Previously we used the `cmake`
binary itself, but that might have been built for a different ABI than
the tested binutils support.
2022-11-02 13:45:05 -04:00
Robert Maynard
62f13ed588 FindCUDAToolkit: Restore usage from multiple directories
Fixes #24119
2022-11-02 12:23:30 -04:00
Brad King
a9d5a0bf4b Merge topic 'compile-commands-output-field'
887a8874c3 EXPORT_COMPILE_COMMANDS: add `output` field

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !7844
2022-11-01 09:02:15 -04:00
Brad King
ea0d24c701 Merge topic 'test-objc'
bb2370842f Tests: Simplify RunCMake.try_compile compiler inspection
1abcb094a7 Tests: Fix logic to enable RunCMake.try_compile OBJC/OBJCXX cases
b641a80d55 Tests: Factor out a CMake_TEST_OBJC variable for OBJC/OBJCXX test conditions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !7855
2022-11-01 09:01:01 -04:00
Brad King
df54f1ddf8 Merge topic 'test-eol'
4180159758 Tests: Provide RunCMake.CommandLine compare_files data more robustly

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7852
2022-11-01 09:00:13 -04:00
Brad King
f5d6c1b2f8 Merge topic 'lcc-cleanup'
a2943d9ec8 Tests: Teach CheckSourceTree test to clean up more specific known files

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7850
2022-11-01 08:58:23 -04:00
Brad King
3f5d8562df Merge topic 'cmp0141-pch-reuse'
183b9a9eca CMP0141: Fix PCH REUSE_FROM under policy NEW behavior
4d13f472a2 Tests: Drop redundant project init from RunCMake.PrecompileHeaders cases
2e65fe92db cmLocalGenerator: Clarify name of local PDB type variable
17096aeba8 cmLocalGenerator: Factor out helper to compute MSVC_DEBUG_INFORMATION_FORMAT

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !7854
2022-11-01 08:53:51 -04:00
Brad King
bb2370842f Tests: Simplify RunCMake.try_compile compiler inspection
Detect the compiler id, version, and default standard level
in the test's inspection step rather than passing it all in
from the host CMake build's results.  This avoids repeating
details not known to older versions of CMake, and shortens
the code.
2022-10-31 13:04:28 -04:00
Brad King
1abcb094a7 Tests: Fix logic to enable RunCMake.try_compile OBJC/OBJCXX cases
CMake itself does not enable the OBJC/OBJCXX languages, so the
`CMAKE_OBJ{C,CXX}_STANDARD_DEFAULT` variables are never defined.
Detect them inside the test instead.
2022-10-31 13:01:51 -04:00
Brad King
b641a80d55 Tests: Factor out a CMake_TEST_OBJC variable for OBJC/OBJCXX test conditions 2022-10-31 12:43:48 -04:00
Brad King
183b9a9eca CMP0141: Fix PCH REUSE_FROM under policy NEW behavior
Under the CMP0141 NEW behavior added by commit 0e96a20478 (MSVC: Add
abstraction for debug information format, 2022-08-25, v3.25.0-rc1~142^2~1),
the `-Zi` and `-ZI` flags do not appear in `CMAKE_<LANG>_FLAGS_<CONFIG>`
anymore.  Teach the PCH REUSE_FROM implementation to recognize the
`EditAndContinue` and `ProgramDatabase` debug information formats
through the policy's new abstraction.

Fixes: #24106
2022-10-31 12:19:06 -04:00
Brad King
4d13f472a2 Tests: Drop redundant project init from RunCMake.PrecompileHeaders cases
The `CMakeLists.txt` file already calls `cmake_minimum_required` and
`project` before including each case's code.
2022-10-31 12:17:29 -04:00
Brad King
4180159758 Tests: Provide RunCMake.CommandLine compare_files data more robustly
The `lf` and `crlf` files need to have exact LF and CRLF newlines,
respectively.  Previously we used the Git `eol` attribute for this,
but occasionally the Git work tree ends up without the conversion.
It is unclear why that happens, so try to avoid the problem by
treating their content as binary instead.
2022-10-31 10:50:33 -04:00
Brad King
46c1693602 Merge topic 'tests-FindPkgConfig'
fc8f8d82f2 Tests: Disable parts of FindPkgConfig tests without wide supported
96d7b5a6d1 Tests: pkg_check_modules() doesn't allow spaces in a moduleSpec
afd1b28cea Tests: Disable broken FindPkgConfig test cases for Windows

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7847
2022-10-31 09:54:56 -04:00
Brad King
35a231bf0f Merge topic 'ewilde/swift-output-file-map-logic'
e88509d0e8 Swift: Omit output-file-map when used as a linker

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7835
2022-10-31 09:54:12 -04:00
Brad King
353f850f29 Merge topic 'vs-CLRSupport'
eef13a4b33 VS: Add COMMON_LANGUAGE_RUNTIME support for "netcore"
0815329dbc Help: Format COMMON_LANGUAGE_RUNTIME values as a definition list

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7807
2022-10-31 09:53:08 -04:00
Brad King
fb862dd3ac Merge topic 'vs-dotnetsdk-arm64'
9a0ca7df67 Tests: Fix RunCMake.VsDotnetSdk with VS >= 17.3 on ARM64

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7842
2022-10-31 09:45:13 -04:00
Brad King
bb171688c9 Merge topic 'vs-dotnetsdk-arm64' into release-3.25
9a0ca7df67 Tests: Fix RunCMake.VsDotnetSdk with VS >= 17.3 on ARM64

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7842
2022-10-31 09:45:12 -04:00
Brad King
5b23e3021b Merge topic 'ninja-showIncludes-encoding'
a0d4e3bf34 cmGeneratedFileStream: Drop unused WriteRaw method
2e5af30ce0 Ninja: Match showIncludes dependencies using console output code page
e1c1679148 cm_codecvt: Add support for the Windows console output code page
328c15189d cmGeneratedFileStream: Add support for a temporary alternate encoding

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7845
2022-10-31 09:44:12 -04:00
Brad King
d69b77a9ca Merge topic 'ninja-showIncludes-encoding' into release-3.25
a0d4e3bf34 cmGeneratedFileStream: Drop unused WriteRaw method
2e5af30ce0 Ninja: Match showIncludes dependencies using console output code page
e1c1679148 cm_codecvt: Add support for the Windows console output code page
328c15189d cmGeneratedFileStream: Add support for a temporary alternate encoding

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7845
2022-10-31 09:44:11 -04:00
Brad King
5752150c64 Merge topic 'xcode-obj-dir'
024e3d2bf6 Xcode: Put object files in a place that Xcode cleans

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7843
2022-10-31 09:42:29 -04:00
Brad King
a2943d9ec8 Tests: Teach CheckSourceTree test to clean up more specific known files
Extend the list of files added by commit 2de1458c3c (Tests: Teach
CheckSourceTree test to clean up some specific known files, 2022-10-13).
2022-10-31 09:34:14 -04:00
Brad King
2e5af30ce0 Ninja: Match showIncludes dependencies using console output code page
Generalize the fix from commit 37a279f8d1 (Ninja: Write msvc_deps_prefix
as UTF-8 when console codepage is UTF-8, 2020-07-31, v3.19.0-rc1~349^2).
`cl /showIncludes` output is encoded using the console output code page,
so this is the byte sequence that Ninja must use to match its lines.

Fixes: #24068
2022-10-30 08:29:55 -04:00
Craig Scott
fc8f8d82f2 Tests: Disable parts of FindPkgConfig tests without wide supported
Some pkg-config implementations on Windows don't return the same
results as those on other platforms. They appear to be bugs in those
implementations, the one that comes with Strawberry perl being one
case where this was observed. The handling of Libs and Cflags entries
is incomplete, resulting in some flags not being reported where they
should be. These are faults in the pkg-config implementation, not in
CMake or its tests, so we disable those parts of the tests on Windows
to avoid reporting false positives.
2022-10-30 09:37:13 +11:00
Craig Scott
96d7b5a6d1 Tests: pkg_check_modules() doesn't allow spaces in a moduleSpec
The documentation of pkg_check_modules() is a little ambiguous about
whether spaces are allowed in a moduleSpec that includes a version
constraint. All examples in the docs do not have spaces, so it could be
claimed spaces are not supported. The tests fail on Windows when spaces
are included, likely because some pkg-config implementations don't
support that. Update the tests to not assume spaces are supported as
part of a moduleSpec.
2022-10-29 22:05:30 +11:00