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.
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
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.
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.
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
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.
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
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
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
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
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
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.
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.
The Windows implementation of these tests have been found to not
handle Windows paths and path separators properly in a number of
areas. The whole approach taken in these tests appears dubious, so
they may need to be significantly rewritten. Disable them until then
so we don't get false positives.
Issue: #22031
Since commit dc5fc898f6 (Xcode: Set object file locations using
TARGET_TEMP_DIR, 2022-09-29, v3.25.0-rc1~64^2~1), `xcodebuild clean`
does not remove the object files in our explicit `TARGET_TEMP_DIR`
because it is not under the `SYMROOT`. Put it there.
Fixes: #24096
Also write for all configurations from multi-config generators.
This field was added in the Clang 5 documentation and not present in the
Clang 4 documentation (sometime between Dec 2016 and Mar 2017 according
to `web.archive.org`).
a12050666c Tests: Add case for ninja with non-ascii chars
02a04dd9c7 Ninja: Restore support for non-ascii paths on Windows with ninja<=1.10
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7833
a12050666c Tests: Add case for ninja with non-ascii chars
02a04dd9c7 Ninja: Restore support for non-ascii paths on Windows with ninja<=1.10
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7833
3fc971c38b CheckSourceCompiles: For Swift executable, name source 'main.swift'
2345139ab5 CheckSourceCompiles: Add support for Swift
4451a1f54f Tests: Factor out a CMake_TEST_Swift variable for Swift test conditions
f78ad6223a Tests: Provide Apple inspection results to CMakeOnly and RunCMake tests
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Saleem Abdulrasool <compnerd@compnerd.org>
Merge-request: !7783
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.
bea4ed5430 CTest: Add support for outputJUnitFile in presets
9270a02003 CMakePresets.json: Add outputJUnitFile to test presets schema
757786bb73 Tests: Add test for outputLogFile in CMakePresets.json
b68c3596e7 CMakePresets.json: Disallow extra properties in test output schema
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: scivision <michael@scivision.dev>
Merge-request: !7806
bea4ed5430 CTest: Add support for outputJUnitFile in presets
9270a02003 CMakePresets.json: Add outputJUnitFile to test presets schema
757786bb73 Tests: Add test for outputLogFile in CMakePresets.json
b68c3596e7 CMakePresets.json: Disallow extra properties in test output schema
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: scivision <michael@scivision.dev>
Merge-request: !7806
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