Commit Graph

8905 Commits

Author SHA1 Message Date
Brad King ca3e83250f Merge topic 'lcc-policy'
3958ed878f LCC: Add policy CMP0129 regarding interpreting LCC as GNU

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !6643
2021-10-22 07:08:58 -04:00
makise-homura 3958ed878f LCC: Add policy CMP0129 regarding interpreting LCC as GNU
Due to MCST LCC compiler identification is now changed to LCC,
there should be a way for old projects to still identify it as GNU,
as it was before.
This commits adds the policy:
CMP0129: Compiler id for MCST LCC compilers is now LCC, not GNU.
This policy controls such a behavior.
OLD behaivior is to treat LCC as GNU, NEW is to treat is as LCC.
2021-10-21 17:24:22 +03:00
Brad King fcab9785c9 Merge topic 'vs-instance'
46e9ff5729 Restore honoring CMAKE_GENERATOR_INSTANCE in toolchain file
42418b02f7 Android: Refactor sysroot detection under Visual Studio
44a86d0b38 cmake_host_system_information: Add undocumented VS_MSBUILD_COMMAND key
6999b87133 cmGlobalVisualStudio10Generator: Add method to find MSBuild early
7f730464be cmGlobalGenerator: Add method to check if generator is at least VS 10
8917b8512f cmGlobalVisualStudioVersionedGenerator: Allow repeating SetGeneratorInstance
6511654164 cmGlobalVisualStudio10Generator: Allow subclasses to reset MSBuild search

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !6646
2021-10-21 09:21:24 -04:00
Brad King edd60a2188 Merge topic 'fix_reroot_paths'
91ec6eee58 find_package: Don't reroot prefix that is equal to a root path

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !6644
2021-10-21 09:19:22 -04:00
Brad King 44a86d0b38 cmake_host_system_information: Add undocumented VS_MSBUILD_COMMAND key
When using the Visual Studio generator for VS 10 or above,
offer this key to get the location of the MSBuild command
before the first `project()` or `enable_language()` command
has finished running.

This will be needed only by one of our own modules, so leave it
undocumented for now.
2021-10-20 13:00:25 -04:00
Alexandru Croitor 91ec6eee58 find_package: Don't reroot prefix that is equal to a root path
When both CMAKE_FIND_ROOT_PATH and CMAKE_PREFIX_PATH are set to
/opt/my_device_sysroot, cmFindCommon::RerootPaths would only look
for packages in /opt/my_device_sysroot/opt/my_device_sysroot
but would not try to look in /opt/my_device_sysroot.

Make sure to not reroot the prefix path in such a case.

Fixes: #21937
2021-10-20 18:50:41 +02:00
Robert Maynard 61b9764b03 CUDA: Allow both CUDA_SEPARABLE_COMPILATION and CUDA_PTX_COMPILATION
The target properties `CUDA_SEPARABLE_COMPILATION` and `CUDA_PTX_COMPILATION`
now aren't mutually exclusive and can now be used together on the same
target.
2021-10-20 11:18:06 -04:00
Brad King 3b5e1b53ea Merge topic 'vs-unity-individual-pch'
71f15be957 VS: Fix compilation of single source with PCH in Unity Build
7fcc35c676 Tests: Clean RunCMake.UnityBuild cases

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6641
2021-10-20 09:02:32 -04:00
Kyle Edwards 7d07569e4d Tests/RunCMake: Merge TargetSources into target_sources 2021-10-19 16:59:10 -04:00
Brad King 71f15be957 VS: Fix compilation of single source with PCH in Unity Build
Sources that are part of a unity build are normally not compiled
individually.  However, the VS IDE allows a single source to be
compiled.  This can also be achieved on the command line:

    msbuild my.vcxproj ... -t:ClCompile -p:SelectedFiles=<src>

where `<src>` is the path in the vcxproj `ClCompile` entry.

In a target with precompiled headers, the source needs PCH settings to
support individual compilation even if the normal unity build does not.
2021-10-19 11:50:07 -04:00
Brad King 7fcc35c676 Tests: Clean RunCMake.UnityBuild cases 2021-10-19 11:50:06 -04:00
Brad King d723bac01c Merge topic 'lcc-compiler'
02b2607a5c Help: Add release note for MCST LCC compiler support
e5d9fce03f LCC: Add dedicated support for MCST LCC compiler
2b9ef77944 CPack/DEB: deal with broken dpkg-shlibdeps on E2K architecture
0995c75301 Tests/RPM: skip tests tat rely on debugedit if it's not found
ea55ac9a51 Tests/RunCMake/CommandLine: Deal with locales that are different from English

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6608
2021-10-19 09:22:22 -04:00
Brad King 239b280f76 Merge topic 'ci-openwatcom'
14f2dbad03 ci: Add Open Watcom 1.9 nightly CI job
94404e912e Tests: Disable SubDirSpaces test on Open Watcom

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !6635
2021-10-19 08:59:31 -04:00
Brad King 94404e912e Tests: Disable SubDirSpaces test on Open Watcom
Open Watcom 1.9 does not support spaces in the path.
2021-10-15 14:46:31 -04:00
Brad King 14d98bcfe6 export: Propagate IMPORTED_NO_SYSTEM target property to consumers
Enabling `IMPORTED_NO_SYSTEM` on a target built within the project has
no effect on the build system, but it is still a useful way to set the
property on imported targets generated by `install(EXPORT)` and
`export()`.

Issue: #17364
2021-10-15 13:04:19 -04:00
makise-homura e5d9fce03f LCC: Add dedicated support for MCST LCC compiler
Divert LCC compiler as a new one, instead of treating it as GNU.

Since old times, Elbrus C/C++/Fortran Compiler (LCC) by MCST has been
passing checks for GNU compilers, so it has been identified as GNU.
Now, with intent of seriously upstreaming its support, it has been
added as a separate LCC compiler, and its version displays not a
supported GCC version, but LCC version itself (e.g. LCC 1.25.19 instead
of GNU 7.3.0).

This commit adds its support for detection, and also converts basically
every check like 'is this compiler GNU?' to 'is this compiler GNU or
LCC?'. The only places where this check is untouched, is where it
regards other platforms where LCC is unavailable (primarily non-Linux),
and where it REALLY differs from GNU compiler.

Note: this transition may break software that are already ported to
Elbrus, but hardly relies that LCC will be detected as GNU; still such
software is not known.
2021-10-15 05:05:19 +03:00
makise-homura 2b9ef77944 CPack/DEB: deal with broken dpkg-shlibdeps on E2K architecture
"OS Elbrus" (OSL for short), a reference Linux distro for E2K (Elbrus)
platform may have broken dpkg-shlibdeps, that doesn't specify
dependencies correctly. In this case, the only reliable way is to
explicitly set dependencies of libc6 and lcc-libs, and then warn user
to let him know this list may be incomplete. This commit does that.
This fix has no effect on correctly working dpkg-shlibdeps, so when
this bug will be fixed in new versions of OSL, CPack will work as
expected with these distros.
2021-10-15 05:05:18 +03:00
makise-homura 0995c75301 Tests/RPM: skip tests tat rely on debugedit if it's not found
There are several tests that run on systems that have rpm installed, but
they fail if there's no debugedit installed also. This commit makes
these tests being skipped in such case.
2021-10-15 05:05:18 +03:00
makise-homura ea55ac9a51 Tests/RunCMake/CommandLine: Deal with locales that are different from English
RunCMake/CommandLine has problems
when ran using language setting differeng from English. This is due to
test outputs being compared to English strings, which comparison
obviously fails if this language is set to, e.g. Russian. This commit
sets locale as "C" prior to running these tests, so messages while
testing are generated in correct language and do not fail checks
anymore.
2021-10-15 05:04:24 +03:00
Brad King 7df0541055 Add property to mark IMPORTED targets as not SYSTEM
Add an `IMPORTED_NO_SYSTEM` target property to specify this.  When
enabled, do not treat the `INTERFACE_INCLUDE_DIRECTORIES` of an imported
target as `SYSTEM` include directories.

This is similar to the existing `NO_SYSTEM_FROM_IMPORTED` property, but
works from the consumed target rather than the consumer.

Fixes: #17364
2021-10-14 13:15:48 -04:00
Brad King f40380077e Merge topic 'clang-warnings'
09f4edbcef Fix Clang -Wbitwise-instead-of-logical warnings

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !6623
2021-10-14 07:51:31 -04:00
Brad King dde674122e Tests: Reduce RunCMake.BuildDepends MakeDependencies case size on Borland
The Borland compiler takes a long time to process a large number of
include files.  Sometimes the test times out.  Reduce its size.
2021-10-13 12:18:53 -04:00
Brad King 09f4edbcef Fix Clang -Wbitwise-instead-of-logical warnings 2021-10-13 10:00:08 -04:00
Brad King 6c16f06e87 Merge topic 'optimize-macos-runtime-dependencies'
93c5864aa1 cmBinUtilsMacOSMachOLinker: improve performance by memoizing otool calls
fc92d6640b cmFileCommand: improve error message

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6616
2021-10-13 08:57:51 -04:00
Seth R Johnson fc92d6640b cmFileCommand: improve error message
Print full list of unresolved dependencies and a phrase that indicates
what about the file is unresolved.
2021-10-12 11:40:45 -04:00
Brad King 0f31463c37 Add deprecation warnings for policies CMP0094 and below
The OLD behaviors of all policies are deprecated, but only by
documentation.  Add an explicit deprecation diagnostic for policies
introduced in CMake 3.15 and below to encourage projects to port
away from setting policies to OLD.
2021-10-08 12:17:04 -04:00
Brad King b7c91c74eb Merge topic 'revert-debian-libexec'
6658e260d4 GNUInstallDirs: Fix misinterpretation of Debian Policy on LIBEXECDIR

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6607
2021-10-08 09:45:12 -04:00
Timo Röhling 6658e260d4 GNUInstallDirs: Fix misinterpretation of Debian Policy on LIBEXECDIR
Revert commit 798c1c3192 (GNUInstallDirs: Comply with Debian Policy on
LIBEXECDIR, 2020-10-08, v3.19.0-rc1~11^2).

The Debian Policy builds upon FHS 3.0 and permits installing to
`/usr/libexec`. While Policy does grant an additional exception for
applications to use a single subdirectory of `/usr/lib/<triplet>`, this
is not meant to replace `/usr/libexec` as valid target.

Fixes: #22731
2021-10-07 14:29:18 -04:00
Brad King 6e037a04e7 Merge topic 'FindJasper-imported-target'
6e8754c625 FindJasper: Add IMPORTED target
bdbce845cd FindJasper: Add JASPER_INCLUDE_DIRS result variable
7f8413c309 FindJasper: Modernize documentation layout
524205a7a5 FindJasper: Modernize code layout

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4633
2021-10-07 09:22:11 -04:00
Brad King 9dcf924093 Tests: Skip RunCMake.file INSTALL-FOLLOW_SYMLINK_CHAIN case on Cygwin
This case was added by commit e3ff7ced63 (file(INSTALL): Add
FOLLOW_SYMLINK_CHAIN argument, 2019-05-16, v3.15.0-rc1~103^2).
Skip it on Cygwin because it fails due to `foo/../` pairs being
flattened away in symlinks.
2021-10-06 16:38:05 -04:00
Hiroshi Miura 6e8754c625 FindJasper: Add IMPORTED target
Fixes: #20601
Signed-off-by: Hiroshi Miura <miurahr@linux.com>
2021-10-06 11:28:09 -04:00
Brad King 973ccc52af Merge topic 'ci-xcode-13.0'
429522e89c gitlab-ci: update macOS jobs to use Xcode 13.0
75901f0472 Tests: Fix RunCMake.XcodeProject XcodeIOSInstallCombined cases for Xcode 13.0

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6578
2021-10-06 10:25:31 -04:00
Brad King 434f757233 Merge topic 'xcode13-schema'
0e86fea0be Tests: Specify destination for Xcode scheme

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6582
2021-10-06 10:24:16 -04:00
Brad King ca2bc33626 Merge topic 'find-blas-lapack-sizeof-integer'
64038fd5bc Help: Add release notes for Find{BLAS,LAPACK} BLA_SIZEOF_INTEGER option
972489ae4e Find{BLAS,LAPACK}: Provide testing of BLA_SIZEOF_INTEGER
95219365ff Find{BLAS,LAPACK}: Make possible testing of ILP64 model
2cd94f3e57 Find{BLAS,LAPACK}: Specify integer type in tests
9b69307b56 Find{BLAS,LAPACK}: De-duplicate and generalize test creation logic
91fd645d46 FindLAPACK: Stop processing if LAPACK library does not have 64-bit integer API
b8a3cea51f FindBLAS: Stop processing if BLAS library does not have 64-bit integer API
d2f5c7856f FindLAPACK: Search 32/64-bit integer API via BLA_SIZEOF_INTEGER if possible
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6407
2021-10-06 10:17:46 -04:00
Craig Scott 9a88f5df3e Merge topic 'fetchcontent-CMAKE-vars-passthrough'
1851aa49be FetchContent: Pass through networking-related CMAKE_... variables
96937438b7 Help: Clean up how TLS and NETRC variables are discussed
2a82bd85b6 Help: Add documentation for CMAKE_TLS_CAINFO

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6589
2021-10-06 07:07:32 -04:00
Igor S. Gerasimov 972489ae4e Find{BLAS,LAPACK}: Provide testing of BLA_SIZEOF_INTEGER 2021-10-05 23:41:36 +09:00
Igor S. Gerasimov 95219365ff Find{BLAS,LAPACK}: Make possible testing of ILP64 model 2021-10-05 23:41:36 +09:00
Igor S. Gerasimov 2cd94f3e57 Find{BLAS,LAPACK}: Specify integer type in tests 2021-10-05 23:41:36 +09:00
Brad King 9b69307b56 Find{BLAS,LAPACK}: De-duplicate and generalize test creation logic
Interpret `CMake_TEST_FindBLAS` and `CMake_TEST_FindLAPACK` as a
sequence of option assignments intermixed with vendor names.
2021-10-05 23:41:36 +09:00
Brad King 75901f0472 Tests: Fix RunCMake.XcodeProject XcodeIOSInstallCombined cases for Xcode 13.0
The output of `otool -vf` now contains additional content that happens
to be matched by our architectures regex.  Make the regex more strict.
2021-10-05 09:13:23 -04:00
Craig Scott 1851aa49be FetchContent: Pass through networking-related CMAKE_... variables
CMAKE_TLS_VERIFY, CMAKE_TLS_CAINFO, CMAKE_NETRC and
CMAKE_NETRC_FILE are now passed through to the underlying
ExternalProject sub-build. Previously, they were silently ignored.

Fixes: #22144
2021-10-05 23:41:34 +11:00
Craig Scott a31447417f Merge topic 'qt6-tests'
a742088472 Tests: Add support for testing Qt6

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6587
2021-10-05 08:27:02 -04:00
Gregor Jasny 0e86fea0be Tests: Specify destination for Xcode scheme
The `Using the first of multiple matching destinations` warning
vanishes if we explicitly specify a destination.

Fixes: #22704
2021-10-05 07:38:48 -04:00
Brad King c55a41c9b2 Merge topic 'default_extensions'
4a0485be7f cmStandardLevelResolver: Avoid unnecessary flags, fix unset level logic
29e2b85171 Tests: Simplify RunCMake.CompileFeatures introspection
fc3a1cbdd8 CompilerID: Compiler extensions default detection
2adfd95d79 CompilerID: Rename language_dialect to language_standard
00055d7779 Help: Document CMAKE_<LANG>_STANDARD_DEFAULT
a65bee4cfc Help: Document HIP standard/extensions properties and variables
a40ff1bb5a Help: Make language standard/extensions variable pages less wordy
3feff8379b Help: Generic language standard and extension variables documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6177
2021-10-04 12:43:24 -04:00
Craig Scott a742088472 Tests: Add support for testing Qt6
The minimum CMake version for Qt6 is 3.16, so all the calls to
cmake_minimum_required() are updated here to enforce that
minimum. This will avoid any CMake version-related warnings
from Qt.

Avoid hard-coding Qt5 where the tests could now be using
Qt5 or Qt6.

Fixes: #22188
2021-10-04 22:10:57 +11:00
Raul Tambre 4a0485be7f cmStandardLevelResolver: Avoid unnecessary flags, fix unset level logic
The changes are part of CMP0128.

When the standard level is unset:
* Flags are added if extension mode doesn't match the compiler's default.
  Previously logic only worked if LANG_EXTENSIONS was ON. Fixes #22224.
* The full flag is used. Previously CMAKE_LANG_EXTENSION_COMPILE_OPTION was
  used. This was only supported for IAR.

Otherwise:
* Avoid adding flags if not necessary per the detected compiler defaults.
* Fixed check for when the requested standard is older. It now matches the
  nearby comments.

I reworded the fallback comment as its logic was a bit difficult to wrap my
head around.
2021-09-29 22:28:40 +03:00
Brad King 5bd94332c7 Merge topic 'clang-warnings'
37859e3244 Source: Fix clang -Wimplicit-fallthrough warnings
907d098838 Source: Fix clang -Wextra-semi warnings

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !6561
2021-09-29 09:57:47 -04:00
Raul Tambre 29e2b85171 Tests: Simplify RunCMake.CompileFeatures introspection 2021-09-28 21:24:53 +03:00
Sean McBride 907d098838 Source: Fix clang -Wextra-semi warnings 2021-09-28 09:59:24 -04:00
Brad King a21d5455c0 Merge topic 'autogen-dep-on-imported-implib-only-target'
895fa3433f cmQtAutoGenInitializer: support IMPLIB-only imported targets
354c1f5628 Tests/RunCMake/Autogen: test CMP0111 behavior

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !6558
2021-09-27 13:48:57 -04:00