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
22a2b9c49f Tests: Fix Java tests on multi-config generators
b05d297964 Tests: handle a case when hg executable is broken
2faabab644 Tests: don't fail tests on broken E2K Java RVM
1462a1e15d Tests: check for shlibdeps symbols/shlibs before testing it
070e217399 Tests: enable Java tests if javac is a recurse symlink
7545d1ca9f Tests: don't use broken makensis
f11c12f9c8 Source: Suppress some warnings on LCC 1.23.x
de16db0f64 curl: make libcmcurl buildable with old LibreSSL
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7418
For every file foo.ui we generate a ui_foo.h file in
${target}_autogen/include or ${target}_autogen/include_$<CONFIG> in the
multi-config case. Even .ui files in subdirectories are handled this
way. That means, .ui files with the same base name will conflict in a
target.
However, for .ui files in subdirectories we added generated sources with
the nonexistent path ${target}_autogen/include/subdir/ui_foo.h. This
patch fixes that.
Also, CMake will now yield an error if a target has multiple .ui files
with the same base name.
Fixes#23523
FindCURL, when found as `curl-config.cmake`, will fill `CURL_VERSION`
instead of `CURL_VERSION_STRING` variable. It may break some cases
when user is relying on correct value of the latter variable, and
as an example, already breaks `CMakeOnly.AllFindModules` test.
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.
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.
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.
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.
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.
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.
LCC 1.23.x (confirmed for 1.23.10, 1.23.19, maybe others)
issues -Wunused-function warning on the following functions:
Source/cmFileAPICodemodel.cxx:126, ValueEq()
Source/cmFileAPICodemodel.cxx:130, ValueLess()
Source/cmGeneratorExpressionNode.cxx:630, back()
This fix makes it silent for compatibility.
This is not a subject for newer LCC versions, like 1.25 and 1.26.
On LCC 1.21 CMake is not buildable, and 1.22 and 1.24 are not
tested, as they are internal development versions. Thus, the fix
is only applied if LCC 1.23 is detected.
LibreSSL older than 2.6.0 is not supported correctly
in upstream curl, and as a consequence, in libcmcurl.
Such LibreSSL versions can be used in old distros,
like OS Elbrus 4.x and 5.x, so until this fix, CMake
wasn't buildable there either.
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
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.
6c8789af75 FindGLEW: select_library_configuration might be used before it is defined
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7412