Commit Graph

9486 Commits

Author SHA1 Message Date
Patrick Northon a2cd0687db try_run: Add RUN_OUTPUT_STDOUT_VARIABLE and RUN_OUTPUT_STDERR_VARIABLE. 2022-07-08 15:49:02 -04:00
Brad King aa1eaf6b8a Merge topic 'nvhpc-Werror'
35ec676ace NVHPC: warnings as error flag is "-Werror"

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7415
2022-07-05 10:32:55 -04:00
Brad King d5772027c2 Merge topic 'add_nvcc_compile_warning_support'
cd324110d2 CUDA: NVCC support for COMPILE_WARNING_AS_ERROR target property
2e9ac1d272 Tests: Refactor warn on error tests to support multiple languages

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7417
2022-07-05 10:31:23 -04:00
Brad King 27a103e8bc Merge topic 'file-archive-args'
7c83265e59 file(ARCHIVE*): Simplify acceptance of empty list arguments
dfff470d15 file(ARCHIVE*): Add test for keyword arguments with missing values

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7427
2022-07-01 08:24:36 -04:00
Brad King 34d746e419 Merge topic 'genex-TARGET_BUNDLE_DIR_NAME'
8bd98b8117 Genex: Fix TARGET_BUNDLE_DIR_NAME incorrect extension

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7428
2022-07-01 08:19:36 -04:00
Ben Leadbetter 8bd98b8117 Genex: Fix TARGET_BUNDLE_DIR_NAME incorrect extension
Fix the genex from commit 997af2e1a6 (Genex: Add TARGET_BUNDLE_DIR_NAME,
2022-04-14, v3.24.0-rc1~233^2) to use the correct bundle directory
extension for each bundle type.

Fixes: #23683
2022-07-01 08:18:10 -04:00
Robert Maynard 35ec676ace NVHPC: warnings as error flag is "-Werror" 2022-07-01 08:05:19 -04:00
Robert Maynard cd324110d2 CUDA: NVCC support for COMPILE_WARNING_AS_ERROR target property 2022-07-01 08:04:54 -04:00
Brad King 5a460f3243 Merge topic 'file-set-crash'
3fee5398bd install(EXPORT): Check for missing file sets at generate time

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7420
2022-06-30 08:20:24 -04:00
Brad King 6bc597b30e Merge topic 'file-set-crash' into release-3.24
3fee5398bd install(EXPORT): Check for missing file sets at generate time

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7420
2022-06-30 08:20:23 -04:00
Brad King dfff470d15 file(ARCHIVE*): Add test for keyword arguments with missing values 2022-06-29 17:43:41 -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
Robert Maynard 2e9ac1d272 Tests: Refactor warn on error tests to support multiple languages 2022-06-29 11:50:34 -04:00
Brad King b1d8141534 Merge topic 'log_level_command'
23bbac941a Add cmake_language(GET_MESSAGE_LOG_LEVEL) sub command
2b6ef864e0 Move LogLevel enum out of cmake.h header

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !7348
2022-06-29 08:52:13 -04:00
makise-homura 22a2b9c49f Tests: Fix Java tests on multi-config generators
Java.NativeHeaders test was not passing on
t:fedora36-ninja-multi pipeline. This is due to
paths being not set because of $<CONFIG> being used
at --test-command, but not being used at the actual
CTest invocation.
Now the correct variable is used there.
2022-06-28 11:12:41 -04:00
makise-homura b05d297964 Tests: handle a case when hg executable is broken
OS Elbrus 6.0-rc1 to rc3 have hg executable broken
because of python2 and python3 module directories conflict.
Here, we avoid hg related tests if such case is detected.
2022-06-28 11:12:04 -04:00
makise-homura 2faabab644 Tests: don't fail tests on broken E2K Java RVM
Java RVM on E2K architecture is known to be broken
prior to RVM version 3.5.2 (they crash with SIGILL
in some circumstances). That disallows tests like
Java.Javah, Java.Jar, and Java.NativeHeaders to pass.
Now, if such RVM is detected, these test are not being run.
2022-06-28 11:12:04 -04:00
makise-homura 1462a1e15d Tests: check for shlibdeps symbols/shlibs before testing it
OS Elbrus 6.x has totally broken dpkg-shlibdeps; 7.1 has
a working one, but still no symbols/shdibdeps files, so
generated dependencies are also empty. Since this commit,
we're checking if these files exist, and if not, we skip
the CPackComponentsDEB-components-depend2 test.
2022-06-28 11:12:04 -04:00
makise-homura 070e217399 Tests: enable Java tests if javac is a recurse symlink
There are distros (OS Elbrus 6.x, 7.x, Ubuntu 21.x)
where javac is a recurse symlink, like /usr/bin/javac ->
/etc/alternatives/javac -> /usr/lib/jvm/.../bin/javac.
On these distros, Java tests were not run, because
Tests/CMakeLists.txt was not able to handle this case
correctly. Now an additional stage of resolving symlinks
is added, and these distros have Java tests running.
2022-06-28 11:12:04 -04:00
makise-homura 7545d1ca9f Tests: don't use broken makensis
Some distros (OS Elbrus less than 7.0) have unrunnable
makensis. While performing tests, this condition is now
checked, and NSIS CPack generator test is not performed.
2022-06-28 11:12:04 -04:00
Alexandru Croitor 23bbac941a Add cmake_language(GET_MESSAGE_LOG_LEVEL) sub command
The new sub-command writes a string representation of the
current log level to the output variable given to the
sub-command.

Given that the log-level might be set either via the --log-level
command line option or via the CMAKE_MESSAGE_LOG_LEVEL
cache / regular variables, the priority for each of the log level
sources is as follows, with the first one being the highest:
1) --log-level
2) CMAKE_MESSAGE_LOG_LEVEL regular variable
3) CMAKE_MESSAGE_LOG_LEVEL cache variable
4) default log level (STATUS)

Fixes: #23572
2022-06-28 16:03:22 +02:00
Brad King 31cbe200f3 Merge topic 'posix_c'
e1adddc74e RunCMake/CXXModules/NoCXX20: Force older standard
3f7ebf9354 RunCMake/CTestTimeout: Include sched.h for pid_t
8eb8d16c19 cmSystemTools: Fix unsetenv() fallback
324ca5b489 Tests/CTestTestFdSetSize: Support plain POSIX

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7408
2022-06-28 09:28:08 -04:00
Raul Tambre e1adddc74e RunCMake/CXXModules/NoCXX20: Force older standard
Compile features ensure a compiler is aware of a standard version, but the one
actually used may be newer. The test relies on the standard chosen being
pre-C++20, so force C++17 explicitly.

This was exposed by a nightly bot that has a compiler defaulting to C++23. The
test would've broken anyway in a few years once GCC or Clang upped their
default.
2022-06-28 09:27:29 -04:00
Brad King 3fcdc98b7d Merge topic 'FindPython-multiple-queries'
ece3bedbf2 FindPython: fix error on multiple queries with different COMPONENTS

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7410
2022-06-28 09:22:55 -04:00
Raul Tambre 3f7ebf9354 RunCMake/CTestTimeout: Include sched.h for pid_t
ISO C modes in Clang don't enable modern POSIX standards.
Include sched.h to define pid_t in such modes.
2022-06-27 20:34:53 +03:00
Marc Chevrier ece3bedbf2 FindPython: fix error on multiple queries with different COMPONENTS
Ensure that multiple queries with different COMPONENTS specified in
different sub-directories are fully supported.
2022-06-27 13:16:29 -04:00
Raul Tambre 324ca5b489 Tests/CTestTestFdSetSize: Support plain POSIX
When compiling in ISO C mode functions from newer POSIX standards such as
usleep() and nanosleep() aren't available.
Fortunately select() allows timing out with microsecond precision.
2022-06-26 11:49:46 +03:00
Brad King b865fead75 Merge topic 'snprintf'
d5694e4623 Source: Replace uses of sprintf with safer snprintf
eccd0b92b6 Source: Tell Git not to check whitespace in third-party curses form code

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7383
2022-06-23 09:31:40 -04:00
Brad King 6760180f57 Merge topic 'findvulkan-volk'
f849e33452 FindVulkan: Add 'volk' component

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7382
2022-06-23 09:29:59 -04:00
Brad King 1c27316145 Merge topic 'findopenal-add-import-library'
91e3f2e088 ci: Enable FindOpenAL test on Linux builds
927e091949 FindOpenAL: Add imported target

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7385
2022-06-23 09:28:55 -04:00
Brad King 5d8289116d Merge topic 'vs-compile-batching'
9a0a94fdaa VS: Add variable to to turn off Visual Studio compile batching
a7ebb73929 Help: Improve formatting in VS_NO_COMPILE_BATCHING docs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7405
2022-06-23 09:23:56 -04:00
Brad King fd83847b14 Merge topic 'vs-compile-batching' into release-3.24
9a0a94fdaa VS: Add variable to to turn off Visual Studio compile batching
a7ebb73929 Help: Improve formatting in VS_NO_COMPILE_BATCHING docs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7405
2022-06-23 09:23:55 -04:00
Brad King d1e2090526 Merge topic 'revert-pkgconfig-static-libs'
7e4adcac82 FindPkgConfig: Revert "Populate _STATIC_LINK_LIBRARIES. Add STATIC_TARGET."

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7402
2022-06-23 09:21:26 -04:00
Brad King 9a0a94fdaa VS: Add variable to to turn off Visual Studio compile batching
Extend the change from commit b764c7c273 (VS: Add property to turn off
Visual Studio compile batching, 2022-02-07, v3.24.0-rc1~710^2) by
adding a variable to initialize the property on every target.

Issue: #23179
Fixes: #23639
2022-06-22 12:07:03 -04:00
Brad King 7e4adcac82 FindPkgConfig: Revert "Populate _STATIC_LINK_LIBRARIES. Add STATIC_TARGET."
Revert commit 020976d637 (FindPkgConfig: Populate
_STATIC_LINK_LIBRARIES. Add STATIC_TARGET., 2021-12-31,
v3.24.0-rc1~105^2).  Several regressions have been reported.
Revert the feature pending further discussion and design work.

Issue: #21714
Fixes: #23642
2022-06-22 10:13:00 -04:00
Aiden Lambert f849e33452 FindVulkan: Add 'volk' component 2022-06-22 09:46:46 -04:00
Sam V 927e091949 FindOpenAL: Add imported target
Fixes: #20026
2022-06-22 09:16:19 -04:00
Sean McBride d5694e4623 Source: Replace uses of sprintf with safer snprintf 2022-06-22 08:59:40 -04:00
Brad King 8d8957e56d Merge topic 'add_export_no_system'
9680b3b279 Add EXPORT_NO_SYSTEM target property, deprecate IMPORTED_NO_SYSTEM

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !7379
2022-06-21 10:46:03 -04:00
Brad King d94e09ec88 Merge topic 'cpp-named-module-file-sets'
07bc3b07ec gitlab-ci: test C++ modules using GCC
1b2270aa4e ci: add a Docker image to test out C++ modules with GCC
8c5a53096a Tests/RunCMake/CXXModules: add module-using examples
4151547e2f cmGlobalNinjaGenerator: use `cmModuleMapper` implementation
b43bdaff3c cmCxxModuleMapper: implement support for GCC's module map format
02d0f0e752 cmCxxModuleMapper: add source to handle module mapper contents
a046a45aad cmGlobalNinjaGenerator: add a TODO for header units
386465bf83 cmTarget: add support for C++ module fileset types
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !7369
2022-06-17 11:35:12 -04:00
Da Quexian 9680b3b279 Add EXPORT_NO_SYSTEM target property, deprecate IMPORTED_NO_SYSTEM
Issue: #18040

Signed-off-by: Da Quexian <daquexian566@gmail.com>
2022-06-17 22:38:07 +08:00
Ben Boeckel 8c5a53096a Tests/RunCMake/CXXModules: add module-using examples
This includes a number of examples that should work for various levels
of support in a compiler.

There are a number of tests which are gated on various features in the
compilers. To enable the tests, set `CMake_TEST_MODULE_COMPILATION` to a
comma-separated (to avoid `;`-escaping problems) to the list of features
which are supported:

  - `named`: Named modules are supported.
  - `shared`: Shared libraries with module usage at the API boundary are
    supported.
  - `partitions`: Named module partitions are supported.
  - `internal_partitions`: Named module internal partitions are
    supported.

Additionally, a `CMake_TEST_MODULE_COMPILATION_RULES` file must be
passed which contains the rules for how to build modules using the
provided compiler. It will be included in the tests to provide these
rules. To verify that the file provided works as intended, it must set
`CMake_TEST_CXXModules_UUID` to a specific version to indicate that it
is an expected file.
2022-06-16 10:28:34 -04:00
Ben Boeckel 386465bf83 cmTarget: add support for C++ module fileset types
C++ modules have two variants which are of importance to CMake:

  - `CXX_MODULES`: interface modules (those using `export module M;`,
    `export module M:part;`, or `module M:internal_part;`)
  - `CXX_MODULE_HEADER_UNITS`: importable header units

Creating C++ modules or partitions are *not* supported in any other
source listing. This is because the source files must be installed (so
their scope matters), but not part of usage requirements (what it means
for a module source to be injected into a consumer is not clear at this
moment). Due to the way `FILE_SET` works with scopes, they are a perfect
fit as long as `INTERFACE` is not allowed (which it is not).
2022-06-16 10:28:34 -04:00
Brad King dd8befd9d3 Merge topic 'add_SYSTEM_prop'
69beee5314 Add SYSTEM target property

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !7308
2022-06-16 09:00:45 -04:00
Brad King 7eddfed10f Merge topic 'xcode-launch-mode'
a1a0ae3ad4 Xcode: Add Xcode SCHEME control for 'Launch' control

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7355
2022-06-16 08:59:51 -04:00
Brad King d0ea344b03 Merge topic '23376-add-compile-properties-to-csharp-sdk-projects'
ba6cecea8e VS: Add compile properties to .NET Sdk projects

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7373
2022-06-16 08:59:02 -04:00
Harry Mallon a1a0ae3ad4 Xcode: Add Xcode SCHEME control for 'Launch' control 2022-06-15 19:02:56 +01:00
Da Quexian 69beee5314 Add SYSTEM target property
If it is ON, treat INTERFACE_INCLUDE_DIRECTORIES as system include directories.

Issue: #18040

Signed-off-by: Da Quexian <daquexian566@gmail.com>
2022-06-16 00:25:27 +08:00
Maxime Raynaud ba6cecea8e VS: Add compile properties to .NET Sdk projects 2022-06-15 10:59:16 -04:00
Brad King 85dc7c763a Merge topic 'find_item-validation-function'
f3b5a7d6df find_(program,library,file,path): add validation function

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7364
2022-06-15 09:59:12 -04:00