Add support for client-owned *stateful* query files. These allow
clients to request a list of versions of each object kind and get only
the first-listed version that CMake recognizes. Since clients own their
stateful query files they can mutate them over time. As a client
installation is updated it may update the queries that it writes to
build trees to get newer object versions without paying the cost of
continuing to generate older versions.
Issue: #18398
Add support for client-owned stateless query files. These allow clients
to *own* requests for major object versions and get all those recognized
by CMake.
Issue: #18398
Add a file-based API that clients may use to get semantic information
about the buildsystem that CMake generates. Clients will write query
files under a designated location in the build tree, and CMake will
write reply files for clients to read.
Start with support for shared stateless query files. These allow
clients to share requests for major object versions and get all those
recognized by CMake. Once any client has written a shared request to a
build tree it will persist. Other clients will not need to overwrite
the request (since it is stateless) and should not remove it either.
For now we add only an undocumented object kind to use for testing the
query and reply infrastructure. Object kinds providing real semantic
information will be added later.
Issue: #18398
d9195ab081 Tests: Teach run_ctest to handle removal of CTestConfig.cmake
1ca53f5ef1 Remove unnecessary CTEST_PROJECT_NAME variables
15ac4aae0e Remove warning when no CTestConfig.cmake file exists
3125c47d27 ctest_build: Do not require unnecessary [CTEST_]PROJECT_NAME value
36bbd07a76 CDashUpload: Use the query part of the submit url as field
e1dfe8cee6 CTest: Don't require 'submit.php?' in submit location
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2640
Since commit v3.13.0~7^2 (FindBoost: Improve compiler prefix
detection for GCC 5+ and clang 4+, 2018-11-07) we run the internal
`_Boost_COMPILER_DUMPVERSION` macro on all UNIX platforms. Teach
the macro to tolerate missing `CMAKE_CXX_COMPILER_VERSION`, which
occurs when the CXX language is not enabled.
Fixes: #18624
When running tests in a non-fresh build tree there may be files left
from previous test runs. In the case that a test removes
`CTestConfig.cmake.in`, we must remove any `CTestConfig.cmake` that
may have been left behind.
The lexical token expression added by commit v3.7.0-rc1~73^2~1 (Fortran:
Add support for submodule syntax in dependency scanning, 2016-09-05)
has a typo and does not match upper-case `B` in `SUBMODULE`. Fix it.
Fixes: #18595
The old behavior of $<IN_LIST:...> is inconsistent with that of
if(IN_LIST), in that it does not find an empty search item even if
the list contains empty items. This change adds a new policy to
correctly handle empty items and make the behavior more consistent
with if(IN_LIST).
Fixes: #18556
Represent the input file path internally in canonical form. Otherwise
multiple `configure_file` calls that share the same input file but specify
it relative to different directories (e.g. via `../`) result in multiple
copies of the dependency on the rule to re-run CMake. This causes the
Ninja generator to emit duplicate phony build statements for these
dependencies, which generates an error with `-w dupbuild=err`, which
will be default in Ninja 1.9.
Also canonicalize the output path for consistency.
Add a test case.
Fixes: #18584
bced9d5e56 Tests/FindX11: add a test
a7d2ffb232 FindX11: add imported targets
40b3dba529 FindX11: require Freetype and Fontconfig for Xft
cc96249e2e FindX11: remove local variable from the advanced list
99489d9f10 FindX11: find Xext.h
b8b598061a FindX11: match variables with library names
6079a0d00f FindX11: fix some formatting in the documentation
3c54955d0d FindX11: use `list(APPEND)` for clearer code
...
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2604
86e8315482 CTest: Restore inheritance of stdin by test processes
bdec3bd896 Tests: Teach RunCMake infrastructure to optionally provide stdin
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2618
e0c26406aa Autogen: Sort tests
83bbfb1d53 Autogen: Add a definitions test to the MocOnly test
01d5e5c460 Autogen: Add and use cmQtAutoGenInitializer::InfoWriter class
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2610
Since commit v3.11.0-rc1~117^2 (CTest: Re-implement test process
handling using libuv, 2017-12-10) we do not give the child test
processes any stdin. Prior to that change we let the child test
processes inherit stdin from ctest itself. Tests that run serially
might be able to use the real stdin meaningfully, so restore that
behavior and add a test case.
Fixes: #18591
Removing FindQt.cmake gives Qt upstream a path forward to export its
own QtConfig.cmake files which can be found by find_package()
without having to explicitly specify CONFIG. Projects that still
want to use Qt3/4 can call find_package(Qt[34]), include(FindQt),
or add FindQt.cmake to their CMAKE_MODULE_PATH.
Represent the input file path internally in canonical form. Otherwise
multiple `configure_file` calls that share the same input file but specify
it relative to different directories (e.g. via `../`) result in multiple
copies of the dependency on the rule to re-run CMake. This causes the
Ninja generator to emit duplicate phony build statements for these
dependencies, which generates an error with `-w dupbuild=err`, which
will be default in Ninja 1.9.
Also canonicalize the output path for consistency.
Add a test case.
Fixes: #18584
FreeBSD ports commit r484628 (Install texinfo files (GNU info) into
${PREFIX}/share/info, 2018-11-10) changed the "info" destination
from "info" to "share/info". The commit included a patch to their
distribution of CMake to fix the `GNUInstallDirs` module too.
Apply a similar logic change to our upstream version of the module.
We already made a similar change for GNU/kFreeBSD in commit
v3.13.0-rc2~8^2 (GNUInstallDirs: Don't use BSD info and man paths on
GNU/kFreeBSD, 2018-10-21).
Fixes: #18585
c4b4d8b3a6 POSITION_INDEPENDENT_CODE: Manage link flags for executables
724a0346f7 POSITION_INDEPENDENT_CODE: Fix erroneous '-fPIE' flag for Sun Studio
023188ffb4 INTERFACE_POSITION_INDEPENDENT_CODE: add generator expressions support
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2465