summaryrefslogtreecommitdiffstats
path: root/Source
Commit message (Collapse)AuthorAgeFilesLines
* cmAlgorithms: Add cmAppend functionSebastian Holtermann2019-05-231-0/+12
| | | | | The new `cmAppend` function simplifies appending ranges of values to a `std::vector`.
* Merge topic 'genex-target-property-lifetime'Brad King2019-05-231-3/+8
|\ | | | | | | | | | | | | 5a1af142f1 Genex: Fix value lifetimes in nested TARGET_PROPERTY evaluation Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3362
| * Genex: Fix value lifetimes in nested TARGET_PROPERTY evaluationBrad King2019-05-221-3/+8
| | | | | | | | | | | | | | | | | | | | | | For special properties like `INCLUDE_DIRECTORIES`, the pointer returned by `cmTarget::GetProperty` is only valid until the next time the same special property is queried on *any* target. When evaluating a nested `TARGET_PROPERTY` generator expression we may look up such a property more than once on different targets. Fix `TargetPropertyNode::Evaluate` to store the lookup result in locally owned memory earlier. Fixes: #19286
* | Merge topic 'string-error'Brad King2019-05-239-45/+31
|\ \ | | | | | | | | | | | | | | | | | | e884b1b693 cmSystemTools::Error(): remove const char* overload Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3360
| * | cmSystemTools::Error(): remove const char* overloadVitaly Stakhovsky2019-05-229-45/+31
| |/
* | Merge topic 'compiler-launcher-shell-format'Brad King2019-05-232-4/+13
|\ \ | | | | | | | | | | | | | | | | | | 8ee6584a99 Ninja,Makefile: Fix <LANG>_COMPILER_LAUNCHER shell command syntax Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3361
| * | Ninja,Makefile: Fix <LANG>_COMPILER_LAUNCHER shell command syntaxBrad King2019-05-222-4/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | The first entry in the compiler launcher command argument list is the command itself and should be converted to the shell's native command syntax (e.g. backslashes on Windows). Without this, the `RunCMake.CompilerLauncher` test fails on Windows when there are *no* spaces in the path to `cmake.exe`.
* | | Merge topic 'FindPython-find_strategy'Brad King2019-05-231-0/+4
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8517b549f4 FindPython: Add policy to manage lookup stratgey default. 9f205acefe FindPython: Implement lookup strategies. Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3354
| * | | FindPython: Add policy to manage lookup stratgey default.Marc Chevrier2019-05-211-0/+4
| | | |
* | | | Merge topic 'framework-var'Brad King2019-05-231-0/+1
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 26ea022c3b Add variable CMAKE_FRAMEWORK Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3347
| * | | | Add variable CMAKE_FRAMEWORKRuslan Baratov2019-05-211-0/+1
| | | | |
* | | | | Merge topic 'swift-flags'Brad King2019-05-231-0/+11
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 02c14b7fcd Ninja,Swift: pass along DEFINES/FLAGS/INCLUDES Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3355
| * | | | | Ninja,Swift: pass along DEFINES/FLAGS/INCLUDESSaleem Abdulrasool2019-05-211-0/+11
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | Since the Swift model does a single compile/link phase, we would not get the compile definitions, includes, and options past along to the build of the module. Compute these for the target when constructing the main command.
* | | | | Merge topic 'cmFileTimes'Brad King2019-05-238-165/+186
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5b53cfda24 cmSystemTools: Remove cmSystemToolsFileTime interface 9c576a88d9 Use cmFileTimes instead of cmSystemToolsFileTime interface 4b45a5d5c7 cmFileTimes: New RAII based cmFileTimes class Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3358
| * | | | | cmSystemTools: Remove cmSystemToolsFileTime interfaceSebastian Holtermann2019-05-222-136/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This removes the C style cmSystemToolsFileTime interface in cmSystemTools. It was replaced by the RAII based cmFileTimes class.
| * | | | | Use cmFileTimes instead of cmSystemToolsFileTime interfaceSebastian Holtermann2019-05-223-29/+17
| | | | | |
| * | | | | cmFileTimes: New RAII based cmFileTimes classSebastian Holtermann2019-05-223-0/+169
| |/ / / / | | | | | | | | | | | | | | | | | | | | This adds a new RAII based cmFileTimes class. It is supposed to replace the C style cmSystemToolsFileTime interface.
* | | | | Merge topic 'autogen_compiler_features'Brad King2019-05-235-48/+66
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 71d6a1455e Autogen: Evaluate compiler features for the same exectuable only once Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3359
| * | | | | Autogen: Evaluate compiler features for the same exectuable only onceSebastian Holtermann2019-05-225-48/+66
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To speed up the `AUTOGEN` configuration process, evaluate the compiler features only once. The feature evaluation result is stored in the new class `cmQtAutoGen::CompilerFeatures`, and the instance is shared by using `std::shared_ptr`.
* | | | | CMake Nightly Date StampKitware Robot2019-05-231-1/+1
| | | | |
* | | | | Merge topic 'default-generator-env'Brad King2019-05-222-6/+71
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | d0f0ba0f7a Tests: Add environment generator tests a48ce8f4bf Help: Add documentation for default generator environment variables 083cf7e8a2 cmake: Allow default generator to be set by environment variables Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3218
| * | | | | cmake: Allow default generator to be set by environment variablesEicke Herbertz2019-05-162-6/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When there is no Generator available in the Cache, this will read CMAKE_GENERATOR from environment before using the CMake platform default. If CMAKE_GENERATOR is empty, use the platform default. If a environment default generator is specified, subsequent variables CMAKE_GENERATOR_(INSTANCE,PLATFORM,TOOLSET) are also evaluated in the same way.
* | | | | | Merge topic 'remove_unneeded_device_link_calls'Brad King2019-05-229-136/+163
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 81b4d10d8f CUDA: More exhaustive checks to determine when to do device linking 3205c7c950 cmNinjaLinkLineDeviceComputer now lives in the correct source file Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3320
| * | | | | | CUDA: More exhaustive checks to determine when to do device linkingRobert Maynard2019-05-216-108/+112
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously CMake used fairly naive logic to determine when to do device linking which caused unnecessary device linking to occur frequently. We now use a more exhaustive algorithm to determine when we have a need for device linking. Fixes: #19238
| * | | | | | cmNinjaLinkLineDeviceComputer now lives in the correct source fileRobert Maynard2019-05-206-34/+57
| | | | | | |
* | | | | | | Merge topic 'find-package-prefer-config'Brad King2019-05-222-50/+74
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 26a99da206 find_package: Add option to prefer Config mode c365243a3a find_package: Factor out module and config find_package methods Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Ruslan Baratov <ruslan_baratov@yahoo.com> Merge-request: !3339
| * | | | | | | find_package: Add option to prefer Config modeCristian Adam2019-05-211-42/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a `CMAKE_FIND_PACKAGE_PREFER_CONFIG` variable to tell `find_package` calls to look for a package configuration file first even if a find module is available. Fixes: #16805, #19236
| * | | | | | | find_package: Factor out module and config find_package methodsCristian Adam2019-05-202-50/+63
| | | | | | | |
* | | | | | | | Merge topic 'swift-debug-variant'Brad King2019-05-221-13/+10
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 62381effba Ninja,Swift: reuse `SWIFT_MODULE_NAME` for `SWIFT_MODULE` Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3343
| * | | | | | | | Ninja,Swift: reuse `SWIFT_MODULE_NAME` for `SWIFT_MODULE`Saleem Abdulrasool2019-05-201-13/+10
| |/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rather than compute the value of `SWIFT_MODULE`, use the computed value of `SWIFT_MODULE_NAME`. This is helpful strictly for Windows where you have multiple configuration variants with differing ABIs that need must co-exist. In particular, this re-use permits the use of `CMAKE_DEBUG_POSTFIX` to have the import library and the DLL be named with the trailing suffix but have the same import name for the swift module and interface.
* | | | | | | | Merge topic 'vs-ApplicationTypeRevision'Brad King2019-05-223-10/+22
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 9c07cefee5 VS: Fix ApplicationTypeRevision in builtin check projects 639e14def6 VS: Factor out helper to compute ApplicationTypeRevision Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3350
| * | | | | | | | VS: Fix ApplicationTypeRevision in builtin check projectsBrad King2019-05-211-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Do not use the entire `CMAKE_SYSTEM_VERSION`, but rather the first two components only. Fixes: #19275
| * | | | | | | | VS: Factor out helper to compute ApplicationTypeRevisionBrad King2019-05-213-8/+20
| |/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | This is the first two components of `CMAKE_SYSTEM_VERSION`.
* | | | | | | | Merge topic 'ninja-lib-symlink-space'Brad King2019-05-221-1/+3
|\ \ \ \ \ \ \ \ | |_|_|_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 13c92b4a30 Ninja: Fix creation of library symlinks in folders with spaces Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3341
| * | | | | | | Ninja: Fix creation of library symlinks in folders with spacesEike Ziller2019-05-201-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The arguments to 'cmake -E cmake_symlink_library' must be properly quoted.
* | | | | | | | Merge topic 'file-remove-no-empty'Craig Scott2019-05-221-0/+6
|\ \ \ \ \ \ \ \ | |_|_|_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a1eb03569d file: Change REMOVE to ignore empty names Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3349
| * | | | | | | file: Change REMOVE to ignore empty namesBrad King2019-05-211-0/+6
| | |_|_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously code like file(REMOVE_RECURSE "${accidentally_missing_variable}") treated the empty string as a relative path with respect to the current directory and removed its contents. Change this behavior to ignore the empty string with a warning instead. Normally such behavior changes are done with a policy, but in this case such code is likely a real bug in project code that can delete data. Fixes: #19274
* | | | | | | CMake Nightly Date StampKitware Robot2019-05-221-1/+1
| |_|_|_|_|/ |/| | | | |
* | | | | | Merge topic 'string-param'Brad King2019-05-2111-57/+58
|\ \ \ \ \ \ | |/ / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 273257222e Source: change parameters to std::string Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3340
| * | | | | Source: change parameters to std::stringVitaly Stakhovsky2019-05-1911-57/+58
| | | | | |
* | | | | | CMake Nightly Date StampKitware Robot2019-05-211-1/+1
| |_|/ / / |/| | | |
* | | | | Merge topic 'makefiles_additional_clean_files'Brad King2019-05-205-97/+108
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | f945c3e755 Tests: Extend MakeClean test to cover subdirectories without targets 1ded3599d6 Makefiles: Process ADDTIONAL_CLEAN_FILES dir prop at directory level 827da1119e Makefiles: Make build root targets "all", "clean" and "preinstall" recursive adc3459707 Makefiles: Avoid pointer repurposing 0d41b45cc9 Makefiles: Inline range loop range arguments Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3338
| * | | | | Makefiles: Process ADDTIONAL_CLEAN_FILES dir prop at directory levelSebastian Holtermann2019-05-185-18/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the "Unix Makefiles" generator, the `ADDTIONAL_CLEAN_FILES` directory property was evaluated on a per target basis. This had two drawbacks: - per directory clean files were repeated in every target clean script - per directory clean files weren't removed in directories without targets (issue #8164) This patch moves the `ADDTIONAL_CLEAN_FILES` directory property processing from the target to the directory level clean target. Fixes: #8164 "ADDITIONAL_CLEAN_FILES directory property not respected if no target present in directory"
| * | | | | Makefiles: Make build root targets "all", "clean" and "preinstall" recursiveSebastian Holtermann2019-05-181-39/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the "Unix Makefiles" generator, the subdirectory targets "all", "clean" and "preinstall" in Makefile2 are recursive. In the build root directory, these targets aren't. Instead they're are added separately and additional dependencies are added on a per target basis. This is inconsistent and it complicates per directory commands, like a per directory clean command. This patch makes the "all", "clean" and "preinstall" targets in Makefile2 in the build root directory recursive, using the same algorithm that is already used for subdirectories. Some side effects are: - Makefile2 gets smaller and simpler - The main "all", "clean" and "preinstall" targets have recursive dependencies, instead of flat (depth of 1) ones.
| * | | | | Makefiles: Avoid pointer repurposingSebastian Holtermann2019-05-171-4/+4
| | | | | |
| * | | | | Makefiles: Inline range loop range argumentsSebastian Holtermann2019-05-172-36/+17
| | | | | |
* | | | | | Merge topic 'ninja-swift'Brad King2019-05-206-122/+189
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a9180ccf9a Tests: add a check for the Swift compiler d745551fb6 Help: add some initial documentation for Swift support 9a182c9e5b Auxiliary: update vim syntax highlighting e9b0063e8e Modules: add build rules for Swift Ninja support b6412e3e38 Ninja: add placeholders to support Swift build 7d7f31161d Ninja: add support for Swift's output-file-map.json d688c4c19d Swift: remove unnecessary unreleased Ninja infrastructure 0723582208 Swift: Detect compiler version ... Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3297
| * | | | | | Ninja: add placeholders to support Swift buildSaleem Abdulrasool2019-05-164-1/+115
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Add the placeholders needed to support compiling Swift code.
| * | | | | | Ninja: add support for Swift's output-file-map.jsonSaleem Abdulrasool2019-05-162-4/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add an emitter for the Swift's output-map-file.json to emit the requisite support files for Swift compilation. This additionally prevents the build rules for the object file emission as well to properly support the Swift build semantics.
| * | | | | | Swift: remove unnecessary unreleased Ninja infrastructureSaleem Abdulrasool2019-05-164-126/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This cleans up the new options that were added to support Swift. This was not released, and the proper support approach that we settled upon does not require as much specialised support.