Commit Graph

890 Commits

Author SHA1 Message Date
Brad King d811d86fd7 FileAPI: Add "configureLog" object kind
Provide clients with a way to get a known set of configure log event
versions.

Issue: #23200
2022-12-17 08:52:04 -05:00
Matthew Woehlke 746c776caf ConfigureLog: Add infrastructure for structured configure event logging
Add infrastructure for a "configure log".  Use YAML for a balance of
machine- and human-readability to records details of configure-time
events in a structured format.

Teach the RunCMake test framework to support matching the configure log.

Issue: #23200
2022-12-16 10:11:37 -05:00
Ben Boeckel 3fc2de5c74 cmDyndepCollation: factor out writing C++ module info from Ninja
To facilitate other generators being able to build C++20 modules, start
pulling out collator logic into a generator-agnostic location.

This commit starts by factoring out the information written to the
"target depend info" object consumed during the build to handle writing
out export and installation scripts expected during those steps.
2022-11-30 10:53:45 -05:00
Alex Turbov 74b735dea8 cmDocumentation: char*[][2]cmDocumentationEntry[N]
Use fixed size arrays of `cmDocumentationEntry` items instead of
open arrays of two `char` pointers when describe program options
help screens.

Also, drop `const char*[][2]` overloads of methods of
`cmDocumentation` and `cmDocumentationSection` classes in the sake
of generic (template) appenders introduced earlier.
2022-11-17 16:37:11 +04:00
Brad King 440822fa5c Source: Fix regression causing CMakeLib sources to be compiled repeatedly
In commit 4ff8604604 (Build: Do not use variables for sources lists,
2022-08-21) the sources of `CMakeLib` were accidentally made PUBLIC.
This causes them to be compiled again in all consuming targets.
Make the sources PRIVATE instead.
2022-10-05 12:51:44 -04:00
Kyle Edwards e316812884 CMakePresets.json: Add workflow presets to schema 2022-09-26 10:53:28 -04:00
Alex Turbov 9629be8080 Build: Use CMAKE_CURRENT_XXX_DIR instead of top dirs 2022-09-22 10:21:39 -04:00
Alex Turbov e6fb5a1feb Build: Sort linked libraries list of CMakeLib 2022-09-22 10:21:39 -04:00
Alex Turbov aa7290e8dc Build: Use imported target Threads::Threads instead of variable 2022-09-22 10:21:39 -04:00
Alex Turbov df8ad72ffa Build: Use imported target kwiml::kwiml instead of variables 2022-09-22 10:21:39 -04:00
Alex Turbov eeebf31e54 Build: Use imported target LibRHash::LibRHash instead of variables 2022-09-22 10:21:39 -04:00
Alex Turbov 08be01a181 Build: Use imported target LibUV::LibUV instead of variables 2022-09-22 10:21:38 -04:00
Alex Turbov ddac6dcbe8 Build: Use imported target JsonCpp::JsonCpp instead of variables 2022-09-22 10:21:38 -04:00
Alex Turbov ac76c53d33 Build: Use imported target CURL::libcurl instead of variables 2022-09-22 10:21:38 -04:00
Alex Turbov 1f5d9c5299 Build: Use imported target LibArchive::LibArchive instead of variables 2022-09-22 10:21:38 -04:00
Alex Turbov 9cdf5a6779 Build: Use imported target EXPAT::EXPAT instead of variables 2022-09-22 10:21:38 -04:00
Alex Turbov 2be5a7de4e Build: Use imported target ZLIB::ZLIB instead of variables 2022-09-22 10:20:30 -04:00
Alex Turbov 4c6a47c6b6 Build: Extract CMAKE_BUILD_UTILITIES macro into a separate include
The macro was one time used with the comment "Simply to improve readability...".
The result file doesn't have a macro anymore and just included into
the root `CMakeLists.txt`.
2022-09-22 09:24:49 -04:00
Alex Turbov 20b9808f90 Build: Use cmstd target instead of variable CMAKE_STD_LIBRARY 2022-09-22 09:24:49 -04:00
Alex Turbov 35ad2c6e5f Build: Replace foreach with 2 set calls 2022-09-22 09:24:49 -04:00
Alex Turbov 98e8b1755b Build: Move HAVE_CoreServices to cmCPackConfigure.h 2022-09-22 09:24:49 -04:00
Alex Turbov 7df955315b Build: Add ENABLE_BUILD_FREEBSD_PKG to cmCPackConfigure.h 2022-09-22 09:24:49 -04:00
Alex Turbov 626136ad4d Build: Use imported LibUUID::LibUUID target instead of variables
Also, simplify preprocessor condition to enable WIX CPack generator.
2022-09-22 09:24:48 -04:00
Alex Turbov 89a1e1c1be Build: Link w/ OBJECT library is OK since 3.12 2022-09-22 09:24:48 -04:00
Alex Turbov 3b32a1a820 Build: Introduce ManifestLib interface library
… instead of `MANIFEST_FILE` variable.
2022-09-22 09:24:48 -04:00
Alex Turbov a392df50b3 Build: Move KWSYS_ENCODING_DEFAULT_CODEPAGE to the config header 2022-09-22 09:24:48 -04:00
Alex Turbov 94bc776ec2 Style: Builtin commands in lower case 2022-09-22 09:24:48 -04:00
Alex Turbov 83491ddd43 Build: add_definitions()add_compile_definitions() 2022-09-22 09:24:48 -04:00
Alex Turbov 1bcacccce9 Build: Move STAT_HAS_ST_MTIM, STAT_HAS_ST_MTIMESPEC to config file 2022-09-22 09:24:47 -04:00
Alex Turbov 324d13b25d Build: Move CURL_CA_BUNDLE and CURL_CA_PATH to config header 2022-09-22 09:24:47 -04:00
Alex Turbov ae174f0dea Build: Move CMAKE_USE_WMAKE definition to cmConfigure.cmake.h.in 2022-09-22 09:24:47 -04:00
Alex Turbov 9a24c648eb Build: Fix target_link_libraries to use link interface keywords 2022-09-22 09:24:47 -04:00
Alex Turbov d5336ed714 Build: include_directories()target_include_directories() 2022-09-22 09:24:47 -04:00
Alex Turbov 4ff8604604 Build: Do not use variables for sources lists
Instead use `add_library()` with unconditionally compiled sources and
conditional `target_sources()` with extra sources to compile.
2022-09-22 09:24:47 -04:00
Alex Turbov 0aed435b35 Build: Simplify configure_file() calls 2022-09-22 09:24:47 -04:00
Alex Turbov dd28d76203 CMakeLists: Remove redundant spaces around CMake command calls 2022-09-22 09:24:46 -04:00
Alex Turbov a509602699 Build: Modernize some foreach calls to use IN LISTS/IN ITEMS 2022-09-22 09:24:46 -04:00
Kyle Edwards b699610df4 cmCMakePresetsGraph: Add package presets 2022-08-31 10:18:01 -04:00
Marc Chevrier 44a2f3f332 Add new flow-control commands for variables and policies scopes management
Add block() and endblock() commands offering the capability to create
new scopes for variables and/or policies.

Fixes: #20171
2022-08-22 16:25:53 +02:00
Ben Boeckel 29118091dc install: support CXX_MODULES_BMI installation bits 2022-07-06 10:15:23 -04:00
Ben Boeckel 02d0f0e752 cmCxxModuleMapper: add source to handle module mapper contents
This will allow all generators to share an implementation for actually
writing out the module map formats.
2022-06-16 10:28:34 -04:00
Ben Boeckel fb289dfcd9 cmExperimental: add a mechanism for experimental CMake features 2022-06-14 19:27:30 -04:00
Craig Scott 2aa83fa15b Dependency providers: Add find_package and FetchContent support
Fixes: #22619
2022-05-25 08:46:18 +10:00
Craig Scott c150f89f4d CPack: Remove the deprecated PackageMaker generator
This CPack generator has been deprecated since commit 7bf187499f
(CPack: Deprecate PackageMaker generator, 2020-01-31).

Fixes: #23344
2022-05-05 08:36:44 +10:00
Marc Chevrier 769f25aa3c cmWindowsRegistry: enhance unicode conversions 2022-04-29 16:51:17 +02:00
Marc Chevrier 17ff86547e cmake_host_system_information: query windows registry
Fixes: #21240, #23367
2022-04-13 08:59:08 -04:00
Brad King 11cc728e75 cmConstStack: Factor out of cmListFileBacktrace
This presents value semantics for a stack of constant values.
Internally it shares ownership to avoid copies.  Previously
this was implemented by `cmListFileBacktrace` explicitly,
but the approach can be re-used for other kinds of stacks.
2022-04-02 05:55:31 -04:00
Marc Chevrier 78dd7d5292 cmRulePlaceholderExpander: add base class for placeholder expansion reuse 2022-02-06 14:32:24 +01:00
Carsten Rudolph 193b8fca52 cmBuildOptions: Split build arguments into separate object. 2022-01-22 06:35:38 -05:00
Brad King 39eabc17c4 Merge topic 'cmake-presets-include'
26a5512c0f CMakePresets: Add include field
a239f23a98 Refactor: Generalize file graph in CMakePresets
84d440caac Refactor: Split JSON processing into configure, build, and test presets
fd6ea2f67f Refactor: Rename cmCMakePresetsFile to cmCMakePresetsGraph

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !6829
2022-01-10 17:12:03 -05:00