summaryrefslogtreecommitdiffstats
path: root/Source/cmMakefile.h
Commit message (Collapse)AuthorAgeFilesLines
* Source: Fix typos and spelling in commentsJosef Angstenberger2021-05-071-1/+1
|
* foreach(): loop variables are only available in the loop scopeMarc Chevrier2021-04-281-0/+1
| | | | Fixes: #20553
* cmCustomCommand: Record value of CMP0116 at time of creationKyle Edwards2021-02-231-16/+18
|
* file(GENERATE): Support new line styleAsit Dhal2021-02-011-1/+2
| | | | Fixes: #19198
* Code style: add missed explicit 'this->'Oleksandr Koval2021-01-051-1/+1
| | | | | CMake uses explicit 'this->' style. Using custom clang-tidy check we can detect and fix places where 'this->' was missed.
* file(GENERATE): Support options to manipulate file permissionsAsit Dhal2020-12-211-1/+1
| | | | Fixes: #15653
* cmLocalGenerator: Adopt custom target 'force' output name generationBrad King2020-12-151-5/+0
|
* cmMakefile: Simplify custom target 'force' output name generationBrad King2020-12-151-2/+2
| | | | | | | | | | | | | | | Remove unnecessary check of policy CMP0049. The policy can never trigger on our internally-generated name because it has no variable references. The rename in commit 0ed5ce4cd8 (cmTarget: Rename AddSource method for backward compatibility., 2014-03-17, v3.1.0-rc1~688^2~17) made it look like this code path depended on CMP0049. Then commit 0e1faa28cb (cmMakefile: Separate custom command setup from actual creation, 2019-09-14, v3.16.0-rc1~85^2) and commit ea1bed34b2 (cmMakefile: Extract utilities used for creation of custom commands, 2019-09-21, v3.16.0-rc1~52^2~1) built additional infrastructure to thread that dependence through the call stack. Remove it all.
* Reduce the scope of temporary cmProp variables and other improvementsVitaly Stakhovsky2020-11-051-2/+1
|
* configure_file: Add option for user defined permissionsAsit Dhal2020-10-241-2/+3
| | | | | | | User defined permissions and options to copy permissions are implemented. Fixes: #20866
* Constify some code as suggested by clang-tidyCengizhan Pasaoglu2020-10-191-5/+5
|
* cmMakefile: Consolidate CreateGenerated{Outputs,Byproducts}Brad King2020-10-081-1/+0
| | | | | The implementations of these two methods are now identical, so combine them.
* cmLocalGenerator: Migrate custom command output lookup from cmMakefileBrad King2020-10-081-75/+5
| | | | | | | Since commit 777ceaea94 (cmMakefile: Delay custom command creation, 2019-10-17, v3.17.0-rc1~352^2) we process custom command declarations at generate time. Therefore we do not need to look up what source file holds the custom command producing a given output until generate time.
* cmMakefile: Drop unnecessary custom command APPEND checkBrad King2020-10-081-11/+1
| | | | | | | Since commit 777ceaea94 (cmMakefile: Delay custom command creation, 2019-10-17, v3.17.0-rc1~352^2) we process custom command declarations at generate time. This includes the append-to-non-existing-command check, so we do not need it at configure time.
* cmake_language: Add signature to DEFER calls to later timesBrad King2020-09-291-4/+33
| | | | Fixes: #19575
* cmMakefile: Clarify name of internal list file run methodBrad King2020-09-291-2/+2
|
* cmMakefile: Replace GetExecutionFilePath with the top of the BacktraceBrad King2020-09-281-2/+0
| | | | | | The execution file path stack and the backtrace stack are kept in sync. At all call sites of `GetExecutionFilePath`, the execution file path matches the path in the context at the top of the backtrace stack.
* cmMakefile: Simplify ExpandArguments signatureBrad King2020-09-281-5/+2
| | | | | | | | | | | The only call sites that pass the explicit file name argument are in function blocker `ArgumentsMatch` methods for `function` and `macro`. We already ensure that they are balanced within a file scope, and the RAII helpers `BuildsystemFileScope` and `ListFileScope` ensure that the backtrace and execution list file stacks unwind to the matching level. Therefore we can assume that the file name where we are checking for matching arguments matches starting file name where those arguments first appeared, and do not need to pass it explicitly.
* cmMakefile: Remove now-unused overload of GetBacktraceBrad King2020-09-281-1/+0
|
* cmMakefile: Inline GetExecutionContext at call sitesBrad King2020-09-281-1/+0
| | | | | The method only had one line, and its implementation is more clear at the call sites than the method name.
* Merge topic 'GetExecutionListFile-by-ref'Brad King2020-09-081-1/+1
|\ | | | | | | | | | | | | 879bd7fd9c cmStateSnapshot: Return const reference from GetExecutionListFile() Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5186
| * cmStateSnapshot: Return const reference from GetExecutionListFile()Oleksandr Koval2020-09-031-1/+1
| |
* | Modernize: Use #pragma once in all header filesKitware Robot2020-09-031-4/+1
|/ | | | | | | | | | | | | | | | #pragma once is a widely supported compiler pragma, even though it is not part of the C++ standard. Many of the issues keeping #pragma once from being standardized (distributed filesystems, build farms, hard links, etc.) do not apply to CMake - it is easy to build CMake on a single machine. CMake also does not install any header files which can be consumed by other projects (though cmCPluginAPI.h has been deliberately omitted from this conversion in case anyone is still using it.) Finally, #pragma once has been required to build CMake since at least August 2017 (7f29bbe6 enabled server mode unconditionally, which had been using #pragma once since September 2016 (b13d3e0d)). The fact that we now require C++11 filters out old compilers, and it is unlikely that there is a compiler which supports C++11 but does not support #pragma once.
* cmMakefile::GetDefinition: return cmPropVitaly Stakhovsky2020-09-021-2/+1
|
* file(GENERATE): Add TARGET argumentRaul Tambre2020-08-201-1/+1
| | | | | | | Adds TARGET argument to file(GENERATE) to make resolving generator expressions requiring a target possible. Implements #21101, fixes #21074.
* Merge topic 'refactor-generator-configs'Brad King2020-07-061-4/+11
|\ | | | | | | | | | | | | 7a969fe21d cmMakefile: Refactor API to better handle empty config values Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4957
| * cmMakefile: Refactor API to better handle empty config valuesRobert Maynard2020-07-031-4/+11
| |
* | cmStandardLevelResolver: Added to handle standard level queriesRobert Maynard2020-07-011-86/+0
|/ | | | Refactored out of cmMakefile
* Merge topic 'remove-warn-unused-vars'Craig Scott2020-07-011-7/+0
|\ | | | | | | | | | | | | | | df6b077625 cmake: Remove broken '--warn-unused-vars' option Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Ben Boeckel <ben.boeckel@kitware.com> Merge-request: !4953
| * cmake: Remove broken '--warn-unused-vars' optionBrad King2020-06-291-7/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | This option has been broken since commit b9f9915516 (cmMakefile: Remove VarUsageStack., 2015-05-17, v3.3.0-rc1~52^2). That commit removed the check that an initialized variable has actually been used and caused the option to warn on every variable ever set. This was not caught by the test suite because the test for the feature only checked that warnings appear when needed and not that they do not appear when not needed. The option was never very practical to use. Remove it to avoid the runtime cost of usage tracking and checks for every variable (which we were doing even when the option was not used).
* | configure_file: Add option to control file permissions transfer to copyRahul Gottipati2020-06-301-0/+1
|/ | | | Issue: #20866
* Refactor language standard computationJustin Goshi2020-06-161-9/+45
| | | | | Instead of mutating the configure-time cmTarget's properties at generate time, compute and store it in a cmGeneratorTarget field.
* cmMakefile: Change CompileFeatureKnown to take target name instead of targetJustin Goshi2020-06-151-2/+3
| | | | The implementation needs only the target name.
* add_library/add_executable: allow local alias to imported targetsMarc Chevrier2020-06-021-1/+2
| | | | Fixes: #20641
* Merge topic 'getdef-expand'Brad King2020-06-021-0/+2
|\ | | | | | | | | | | | | 7ed8c9ebe3 cmMakefile: add GetDefExpandList() that splits value into std::vector Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4819
| * cmMakefile: add GetDefExpandList() that splits value into std::vectorVitaly Stakhovsky2020-05-301-0/+2
| | | | | | | | Combines cmMakefile:GetDefinition() and cmExpandList()
* | Single location for cmProp typedefVitaly Stakhovsky2020-06-011-2/+1
|/
* Add support to indicate UTF-8 custom command pipe output encodingJustin Goshi2020-04-131-4/+8
| | | | | | | | | | | | | | | | | Adds a flag to indicate that pipe output from a custom command should be interpreted as UTF-8 encoded. This change does not introduce a public way to set the flag, but generators that create internally-generated commands know if they are calling cmake, which uses UTF-8 pipes. MSBuild added support for interpreting output of PreBuildEvent, PreLinkEvent, PostBuildEvent, and CustomBuildStep as UTF-8. This change will appear in Visual Studio 16.6 Preview 3. It is opt-in, and you need to add the StdOutEncoding tag. MSBuild treats these as property bags so if we emit the tag for earlier versions of Visual Studio it would be safely ignored. This change emits the StdOutEncoding tag and sets it to UTF-8 whenever the custom command UTF-8 pipe flag is set. This fixes globalization issues when the output from cmake contained characters that required MSBuild to interpret as UTF-8 before displaying them.
* cmMakefile::GetProperty: return cmPropVitaly Stakhovsky2020-04-011-3/+6
|
* Merge topic 'export-repeat'Brad King2020-03-201-4/+6
|\ | | | | | | | | | | | | 8affe9aa33 export: Fix use-after-free on multiple calls overwriting same FILE Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4494
| * export: Fix use-after-free on multiple calls overwriting same FILEBrad King2020-03-191-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CMake 3.16 and below allow multiple `export()` calls with the same output file even without using `APPEND`. The implementation worked by accident by leaking memory. Refactoring in commit 5444a8095d (cmGlobalGenerator: modernize memrory managemenbt, 2019-12-29, v3.17.0-rc1~239^2) cleaned up that memory leak and converted it to a use-after-free instead. The problem is caused by using the `cmGlobalGenerator::BuildExportSets` map to own `cmExportBuildFileGenerator` instances. It can own only one instance per output FILE name at a time, so repeating use of the same file now frees the old `cmExportBuildFileGenerator` instance and leaves the pointer in the `cmMakefile::ExportBuildFileGenerators` vector dangling. Move ownership of the instances into `cmMakefile`'s vector since its entries are not replaced on a repeat output FILE. In future work we should introduce a policy to error out on this case. For now simply fix the use-after-free to restore CMake <= 3.16 behavior. Fixes: #20469
* | cmMakefile::AddCacheDefinition: Add overload that accepts std::string valueVitaly Stakhovsky2020-03-111-0/+6
| |
* | cmake_command: Add command to EVAL a CMake script as a stringCristian Adam2020-03-031-0/+3
|/
* Source: use std::string in place of const char*Vitaly Stakhovsky2020-01-291-2/+2
|
* Merge topic 'mf-typo'Brad King2020-01-281-1/+1
|\ | | | | | | | | | | | | 7b6af980eb cmMakefile: Fix spelling typo in comment Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4292
| * cmMakefile: Fix spelling typo in commentMasashi Fujita2020-01-281-1/+1
| |
* | AppendProperty: convert value param to std::stringVitaly Stakhovsky2020-01-251-1/+1
|/
* cmMakefile: modernize memory managementMarc Chevrier2020-01-141-26/+22
|
* find_*: Add debug logging infrastructureRobert Maynard2019-12-191-2/+13
| | | | | | | | | | | | Enable debug messages a new `--find-debug` command-line option or via the `CMAKE_FIND_DEBUG_MODE` variable. This work was started by Chris Wilson, continued by Ray Donnelly, and then refactored by Robert Maynard to collect information into a single message per find query. Co-Author: Ray Donnelly <mingw.android@gmail.com> Co-Author: Chris Wilson <chris+github@qwirx.com>
* CUDA: Add cuda meta-features (e.g. ``cuda_std_11``) supportRobert Maynard2019-12-101-1/+11
|