summaryrefslogtreecommitdiffstats
path: root/Source/cmMakefile.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'AddCacheEntry-suppress-raw-pointer-usage'Brad King2023-05-311-9/+7
|\ | | | | | | | | | | | | | | 4fc322bab4 AddCacheEntry: Suppress raw pointer usage Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8520
| * AddCacheEntry: Suppress raw pointer usageMarc Chevrier2023-05-301-9/+7
| |
* | cmake: Add debuggerGlen Chung2023-05-301-0/+95
|/ | | | | | | | | | | | | | | | - Depends on cppdap and jsoncpp. - Add --debugger argument to enable the Debugger. - Add --debugger-pipe argument for DAP traffics over named pipes. - Support breakpoints by filenames and line numbers. - Support exception breakpoints. - Call stack shows filenames and line numbers. - Show Cache Variables. - Show the state of currently defined targets, tests and directories with their properties. - Add cmakeVersion to DAP initialize response. - Include unit tests. Co-authored-by: Ben McMorran <bemcmorr@microsoft.com>
* SetProperty: suppress raw pointer usageMarc Chevrier2023-05-261-4/+0
|
* CMake code rely on cmList class for CMake lists management (part. 2)Marc Chevrier2023-04-291-29/+11
|
* CMake code rely on cmList class for CMake lists management (part. 1)Marc Chevrier2023-04-241-9/+8
|
* presets: Add trace options to configure presetsArtin Alavi2023-03-301-4/+4
| | | | | | Add JSON schema version 7 to support them. Fixes: #22543
* Merge topic 'recursion-limit'Brad King2023-03-141-14/+42
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 49167cf68f Source: Adjust stack sizes and recursion limits to work together 9504cef8c4 Tests: Allow RunCMake.MaxRecursionDepth to test public-facing default limit 60ef076bac find_package: Enforce maximum nesting depth below maximum recursion depth 89b69bf1ad Add CMAKE_MAXIMUM_RECURSION_DEPTH environment variable 395895bda7 cmMakefile: Factor out helper to get recursion depth limit 88bc8dfc14 cmMakefile: Store recursion depth limit as size_t fcad8d0630 cmMakefile: Improve parsing of CMAKE_MAXIMUM_RECURSION_DEPTH variable 497f7d5c1a Tests: Simplify option passing to RunCMake.MaxRecursionDepth cases Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8307
| * Source: Adjust stack sizes and recursion limits to work togetherBrad King2023-03-131-0/+18
| | | | | | | | | | | | Adjust `CMake_DEFAULT_RECURSION_LIMIT` and/or the process stack size on each platform to pass the `RunCMake.MaxRecursionDepth` test's "default" cases.
| * Add CMAKE_MAXIMUM_RECURSION_DEPTH environment variableBrad King2023-03-131-0/+6
| | | | | | | | | | | | | | Extend the recursion limit controls added by commit a6982cff0d (cmMakefile: Impose maximum recursion limit, 2018-12-14, v3.14.0-rc1~82^2) with an environment variable that is used if the CMake variable of the same name is not set.
| * cmMakefile: Factor out helper to get recursion depth limitBrad King2023-03-131-10/+16
| |
| * cmMakefile: Store recursion depth limit as size_tBrad King2023-03-131-5/+4
| |
| * cmMakefile: Improve parsing of CMAKE_MAXIMUM_RECURSION_DEPTH variableBrad King2023-03-091-6/+5
| |
* | Treat '.ccm', '.cxxm', and '.c++m' files as C++ sourcesBrad King2023-03-091-1/+1
|/ | | | | | | | | These extensions are used by convention for C++ module interface units with Clang. For now, do not add any tests using these extensions. Very few compilers recognize them as C++ sources. Tests can be added later as part of C++ modules support.
* Apple: Handle generation and comsuption of text-based stubs (.tbd files)Marc Chevrier2023-03-011-0/+5
| | | | Fixes: #24123
* find_package: Use <PACKAGENAME>_ROOT variables as search prefixesBrad King2023-02-231-0/+21
| | | | | | | | | Extend commit eb35d8884b (find_package: Use PackageName_ROOT variables as search prefixes, 2018-03-15, v3.12.0-rc1~349^2) to also check upper-case `<PACKAGENAME>_ROOT` variables. Add policy `CMP0144` to enable the behavior in a compatible way. Fixes: #24403
* cmFindPackageCommand: Refactor CMP0074 logic to de-duplicate lookupsBrad King2023-02-231-16/+10
|
* cmMakefile: add support for a "synthesized" targetBen Boeckel2023-02-141-3/+12
| | | | | | It is a normal target, but will end up copying its internals from another target. Keep track of this state so that such copying can only occur when intended.
* cmTarget: make Visibility an `enum class`Ben Boeckel2023-02-141-3/+3
|
* cmCustomCommand: Refactor custom command-specific policy valuesKyle Edwards2023-02-061-3/+3
| | | | | | | | | | | | | | | | | Many custom commands are created by CMake itself rather than by the user. These custom commands should always have their policies set to NEW, and user-created custom commands should have their policy values set only from the state snapshot. In addition, we want to genericize the mechanism of recording a policy at the time of custom command creation. Add a CM_FOR_EACH_CUSTOM_COMMAND_POLICY macro to genericize custom command policies. Use this to define all custom command policies. Make all such policies NEW instead of WARN by default. Remove individual policy modifier methods and add a single method that records relevant values from a cmStateSnapshot. Remove the no longer needed explicit policy settings from synthesized custom commands.
* Add deprecation warnings for policies CMP0114 and belowBrad King2023-02-011-1/+1
| | | | | | | The OLD behaviors of all policies are deprecated, but only by documentation. Add an explicit deprecation diagnostic for policies introduced in CMake 3.19 and below to encourage projects to port away from setting policies to OLD.
* cmValue: Use operator* explicitly to convert to std::string; avoid extra callVitaly Stakhovsky2023-01-161-1/+2
|
* cmake::CreateProfilingEntry: Refactor to take lambda for argsKyle Edwards2022-11-111-1/+14
|
* cmMakefileProfilingData: Refactor to use RAIIKyle Edwards2022-10-261-7/+6
| | | | And add a more generic StartEntry() method.
* Merge topic 'trace-try_compile'Brad King2022-10-171-0/+3
|\ | | | | | | | | | | | | | | 5ba51621af try_compile: Propagate --trace through try_compile Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !7757
| * try_compile: Propagate --trace through try_compileMatthew Woehlke2022-10-111-0/+3
| | | | | | | | | | Add ability to specify another cmake instance from which to get the trace output target. Use this during try_compile.
* | Add deprecation warnings for policies CMP0108 and belowBrad King2022-10-121-2/+2
|/ | | | | | | The OLD behaviors of all policies are deprecated, but only by documentation. Add an explicit deprecation diagnostic for policies introduced in CMake 3.18 and below to encourage projects to port away from setting policies to OLD.
* Merge topic 'add_subdirectory_system'Brad King2022-09-271-1/+5
|\ | | | | | | | | | | | | 2eb30a7036 add_subdirectory: Add SYSTEM option Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7399
| * add_subdirectory: Add SYSTEM optionDa Quexian2022-09-261-1/+5
| | | | | | | | | | Fixes: #22401 Signed-off-by: Da Quexian <daquexian566@gmail.com>
* | Merge topic 'check-library-properties-fix-performances-regression'Brad King2022-09-091-25/+0
|\ \ | | | | | | | | | | | | | | | | | | | | | 985b4c82a6 Check link libraries properties: fix performances regression a47eef32a3 renames method FinalizeTargetCompileInfo() in FinalizeTargetConfiguration(). Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7651
| * | Check link libraries properties: fix performances regressionMarc Chevrier2022-09-071-25/+0
| | | | | | | | | | | | Fixes: #23939
* | | return(): Propagate variables to result scopeMarc Chevrier2022-09-031-0/+1
| | | | | | | | | | | | Fixes: #23871
* | | cmMakefile: add RaiseScope for list of variablesMarc Chevrier2022-09-031-0/+12
| | |
* | | cmMakefile::VariablePushPop: helper class to manage variable scopesMarc Chevrier2022-08-221-0/+13
| | |
* | | cmMakefile: Dedupe languages when enabling themfriendlyanon2022-06-301-2/+24
| | | | | | | | | | | | | | | | | | | | | | | | cmMakefile::EnableLanguage() now deduplicates the languages argument and emits an author warning listing the languages that were defined multiple times in a single call. Fixes: #23596
* | | cmMakefile: Refactor parameter and variable names for EnableLanguagefriendlyanon2022-06-301-12/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit 731369ef9c (ENH: try to initialize all languages at the same time, 2004-08-27, v2.4.0~2899) the languages parameter name for cmMakefile::EnableLanguage() was changed to "std::vector languages" in the declaration, however the definition had "std::vector lang". Furthermore, the variable names in the definition had confusing names, such as the "i" variable in the loop which referred to an iterator at one point, but no longer does.
* | | Add cmake_language(GET_MESSAGE_LOG_LEVEL) sub commandAlexandru Croitor2022-06-281-0/+23
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Add deprecation warnings for policies CMP0102 and belowBrad King2022-06-141-1/+1
|/ | | | | | | The OLD behaviors of all policies are deprecated, but only by documentation. Add an explicit deprecation diagnostic for policies introduced in CMake 3.17 and below to encourage projects to port away from setting policies to OLD.
* cmSystemTools: Fix 'ErrorOccurred' spellingFeRD (Frank Dana)2022-06-131-19/+19
| | | | | | | | Rename the booleans 's_ErrorOccured' and 's_FatalErrorOccured' to 's_ErrorOccurred' and 's_FatalErrorOccurred', respectively. Rename the getters and setters to 'Get[Fatal]ErrorOccurred' and 'Set[Fatal]ErrorOccurred', and fix all uses across the codebase.
* clang-tidy: address `google-readability-casting` lintsBen Boeckel2022-05-241-1/+1
| | | | At least those involving `static_cast`.
* clang-tidy: address `modernize-use-default-member-init` lintsBen Boeckel2022-05-241-10/+4
|
* cmListFileBacktrace: Clarify call sites that only push a file pathBrad King2022-04-011-3/+6
| | | | | This removes the last part of the `cmListFileBacktrace` interface that needs to know the type of data in its stack.
* Trace: process else and elseif commands correctlyBraulio Valdivielso Martinez2022-03-251-7/+8
| | | | | | | | | | | | | | | | | There have been two bugs reported about the `else` and `elseif` commands in the context of the tracing functionality and the json-v1 format (#23191 #22315). In essence, the reported traces referred to the layer of the stacktrace immediately on top of the expected ones. This MR fixes both issues. My solution adds a new parameter to the `PrintCommandTrace` function, `commandMissingFromStack`, that callers can specify if the command they want to report a trace for is not a regular part of the stack maintained in `cmMakefile`. This is only the case for `else` and `elseif`. The other bug is fixed by having the caller pass a `cmListFileBacktrace`, which helps in getting the right lines, file names... for the reported command. Fixes: #23191 #22315
* find_package: Add support for default GLOBAL imported targetsJohn Parent2022-03-101-0/+5
| | | | | | | | | Allow find package to promote scope of imported targets by specifying an argument to `find_package` or by specifying a CMake variable. * Add support for CMAKE_GLOBAL_IMPORT_SCOPE variable * Add support for GLOBAL argument to find_package Additionally add testing for above features.
* Genex-LINK_GROUP: Add possibility to group libraries at link stepMarc Chevrier2022-02-281-9/+9
| | | | Fixes: #23121
* Merge topic 'debug-find'Brad King2022-02-111-0/+19
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | 38de1bef2d find_package: Improve --debug-find-pkg= when using a find module d634d20397 find_package: Avoid printing debug output header multiple times df3e29450a find_package: Mention package name in Config mode debug output 636ca7f25c find_package: Fix find module name in --debug-find output 596e185409 find_package: Improve formatting of --debug-find output 2f43527574 Tests: Improve order of RunCMake.find_package cases a690523fcf cmFindPackageCommand: Drop ComputeIfDebugModeWanted overload Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !6973
| * find_package: Improve --debug-find-pkg= when using a find moduleBrad King2022-02-101-0/+19
| | | | | | | | | | | | | | | | | | Extend the feature added by commit d7b18895bc (cmake: Add filtered debug-find options, 2021-12-07, v3.23.0-rc1~217^2) to enable debug output for `find_*` calls within a find module or cmake package configuration file. Fixes: #23211
* | Trace: include `line_end` field in json-v1 formatBraulio Valdivielso Martinez2022-02-091-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After !6954 got merged, it has become easier for tools to get full stack-traces for runtime traces of a CMake program. The trace information already included in the JSON objects (line number, source file path) allows tools that display these stack traces to print the CMake source code associated to them. However, CMake commands may spawn multiple lines, and the JSON information associated to a trace only contains the line in which the command started, but not the one in which it ended. If tools want to print stack traces along the relevant source code, and they want to print the whole command associated to the stack frame, they will have to implement their own CMake language parser to know where the command ends. In order to simplify the life of those who want to write tooling for CMake, this commit adds a `line_end` field to the json-v1 trace format. If a given command spans multiple lines, the `line_end` field will contain the line of the last line spanned by the command (that of the closing parenthesis associated to the command).
* | Merge topic 'genex-LINK_LIBRARY-to-decorate-library'Brad King2022-02-091-0/+25
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2a6b0415d7 $<LINK_LIBRARY>: Add LINK_LIBRARY_OVERRIDE target property 42965799b4 Genex: Add $<LINK_LIBRARY:...> 78dd7d5292 cmRulePlaceholderExpander: add base class for placeholder expansion reuse 4b55828a9f cmExpandListWithBacktrace: add handling of empty elements. 28d7432468 cmComputeLinkInformation: use cmComputeLinkDepends::LinkEntry Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6769
| * | Genex: Add $<LINK_LIBRARY:...>Marc Chevrier2022-02-071-0/+25
| | | | | | | | | | | | | | | | | | | | | | | | This generator expression offers the capability, for the link step, to decorate libraries with prefix/suffix flags and/or adding any specific flag for each library. Fixes: #22812, #18751, #20078, #22703