Commit Graph

899 Commits

Author SHA1 Message Date
Jannik Alber
1d6db66179 CPack: Add Inno Setup generator 2023-04-28 09:33:28 -04:00
Craig Scott
e245b4df75 Merge topic 'automoc-macro-names'
c5c3aff1f5 Autogen: Add INTERFACE_AUTOMOC_MACRO_NAMES target property
69cf9700e6 Autogen: Defer setup until Generate step
7cecb6353e cmGeneratorTarget: Factor out EvaluatedTargetProperty infrastructure
2daba01ddf cmGeneratorTarget: Avoid incidental include-what-you-use warning
850b4d990c IWYU: Add mapping for 'std::remove_reference<Defer &>::type'

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8391
2023-04-10 18:06:06 -04:00
Orkun Tokdemir
7cecb6353e cmGeneratorTarget: Factor out EvaluatedTargetProperty infrastructure
Make it available outside the `cmGeneratorTarget` implementation.
In particular, we will later use it in `cmQtAutoGenInitializer`.
2023-04-05 16:12:15 -04:00
Marc Chevrier
9f60f19ee9 cmList: CMake list implementation
Fixes: #24548
2023-04-05 17:54:55 +02:00
Brad King
4901fdb201 Merge topic 'presets-json-errors'
19305afd8a presets: Improve JSON parser and error messages

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Acked-by: scivision <michael@scivision.dev>
Merge-request: !8290
2023-03-30 08:51:18 -04:00
Martin Duffy
19305afd8a presets: Improve JSON parser and error messages 2023-03-29 10:41:19 -04:00
Brad King
49167cf68f Source: Adjust stack sizes and recursion limits to work together
Adjust `CMake_DEFAULT_RECURSION_LIMIT` and/or the process stack size on
each platform to pass the `RunCMake.MaxRecursionDepth` test's "default"
cases.
2023-03-13 11:50:21 -04:00
Brad King
9504cef8c4 Tests: Allow RunCMake.MaxRecursionDepth to test public-facing default limit
Previously we compiled in a smaller default limit during nightly testing
and CI builds, so we were not testing the same default limit that
end-users will see.  Instead, set the limit during testing using an
environment variable so that we can unset it when testing the default
limit in `RunCMake.MaxRecursionDepth`.
2023-03-13 11:49:56 -04:00
Brad King
c68ebee9c2 cmake: Reduce default recursion depth when compiling for Windows ARM64
On Windows ARM64 the stack frames are large enough (at least in Debug
builds) that CMake language recursion to depth 1000 overflows the stack.
Reduce the limit for this compiler.

Suggested-by: Bill Hoffman <bill.hoffman@kitware.com>
2023-03-08 11:56:44 -05:00
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