summaryrefslogtreecommitdiffstats
path: root/Source
Commit message (Collapse)AuthorAgeFilesLines
* find_package: Factor out module and config find_package methodsCristian Adam2019-05-202-50/+63
|
* 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.
* | | Merge topic 'interface-library-export-properties'Brad King2019-05-201-0/+1
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 73a829e078 InterfaceLibrary: Whitelist EXPORT_PROPERTIES property Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3336
| * | | InterfaceLibrary: Whitelist EXPORT_PROPERTIES propertyBrad King2019-05-171-0/+1
| | | | | | | | | | | | | | | | Fixes: #19261
* | | | CMake Nightly Date StampKitware Robot2019-05-201-1/+1
| | | |
* | | | CMake Nightly Date StampKitware Robot2019-05-191-1/+1
| | | |
* | | | Merge topic 'file-install-follow-symlink-chain'Marc Chevrier2019-05-182-7/+66
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | e3ff7ced63 file(INSTALL): Add FOLLOW_SYMLINK_CHAIN argument Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Brad King <brad.king@kitware.com> Merge-request: !3332
| * | | | file(INSTALL): Add FOLLOW_SYMLINK_CHAIN argumentKyle Edwards2019-05-162-7/+66
| | |/ / | |/| |
* | | | CMake Nightly Date StampKitware Robot2019-05-181-1/+1
| |_|/ |/| |
* | | Merge topic 'autogen_ninja_clean'Brad King2019-05-172-10/+11
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 93ee7dd044 Autogen: Update documentation for ADDITIONAL_CLEAN_FILES 4b4fd99f41 Autogen: Use ADDITIONAL_CLEAN_FILES target property for file cleaning Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3327
| * | | Autogen: Use ADDITIONAL_CLEAN_FILES target property for file cleaningSebastian Holtermann2019-05-152-10/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `ADDITIONAL_CLEAN_FILES` target property works on multiple generators to remove addition files at the clean target. In `AUTOGEN` use it instead of the deprecated and limited `ADDITIONAL_MAKE_CLEAN_FILES` directory property to remove `AUTOGEN` generated files. Fixes: #17074 "Autogen: clean target with ninja generator doesn’t clean autogen files"
* | | | Merge topic 'offer_compiler_lang_generator_expression'Brad King2019-05-171-0/+46
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | e214abdaab Genex: Add COMPILE_LANG_AND_ID generator expression f84ed796a2 Docs: Generator-expressions remove usage of `CMake-id` Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3300
| * | | | Genex: Add COMPILE_LANG_AND_ID generator expressionRobert Maynard2019-05-141-0/+46
| | | | |
* | | | | Merge topic 'string-cleanup'Brad King2019-05-1718-91/+87
|\ \ \ \ \ | |_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 23e8364aed Source: std::string related cleanup Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Sebastian Holtermann <sebholt@web.de> Merge-request: !3324
| * | | | Source: std::string related cleanupVitaly Stakhovsky2019-05-1518-91/+87
| | | | |
* | | | | CMake Nightly Date StampKitware Robot2019-05-171-1/+1
| |_|_|/ |/| | |
* | | | Merge topic 'update-kwsys'Brad King2019-05-162-20/+83
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 23b3ca5e1f Merge branch 'upstream-KWSys' into update-kwsys 49f8351a18 KWSys 2019-05-15 (dea11658) Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3325
| * | | | Merge branch 'upstream-KWSys' into update-kwsysBrad King2019-05-152-20/+83
| | | | | | | | | | | | | | | | | | | | | | | | | * upstream-KWSys: KWSys 2019-05-15 (dea11658)
* | | | | CMake Nightly Date StampKitware Robot2019-05-161-1/+1
| | | | |
* | | | | Merge topic 'msvc-jmc'Brad King2019-05-152-0/+27
|\ \ \ \ \ | |_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | 2a9ff9703e MSVC: Add support for /JMC (Just My Code) Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3121
| * | | | MSVC: Add support for /JMC (Just My Code)Luca Cappa2019-05-142-0/+27
| | | | |
* | | | | Merge topic 'additional_clean_files'Brad King2019-05-1513-44/+226
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | b5bf369ec6 Release notes: Add release notes for ADDITIONAL_CLEAN_FILES properties 4e2ce0a67a Doc: Update and deprecate ADDITIONAL_MAKE_CLEAN_FILES directory property 338994d65d Doc: Add documentation for ADDITIONAL_CLEAN_FILES properties c11f089d73 Tests: Extend MakeClean test to cover ADDITIONAL_CLEAN_FILES 012d599e26 Ninja: Add support for ADDITIONAL_CLEAN_FILES target property 890a1b9dc3 Ninja: Add support for ADDITIONAL_CLEAN_FILES directory property 7b23001f20 Ninja: Add support for additional clean files d745df4b01 Makefiles: Add support for ADDITIONAL_CLEAN_FILES target property ... Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3318
| * | | | | Ninja: Add support for ADDITIONAL_CLEAN_FILES target propertySebastian Holtermann2019-05-143-0/+29
| | | | | |
| * | | | | Ninja: Add support for ADDITIONAL_CLEAN_FILES directory propertySebastian Holtermann2019-05-142-0/+27
| | | | | |
| * | | | | Ninja: Add support for additional clean filesSebastian Holtermann2019-05-142-7/+104
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Additional clean files for the Ninja generator can be registered via the new method `cmGlobalNinjaGenerator::AddAdditionalCleanFile`. If there are additional clean files, a new rule `CLEAN_ADDITIONAL` and a new build target `CMakeFiles/clean.additional` get generated. The `clean` target will depend on `CMakeFiles/clean.additional`, if the target exists.
| * | | | | Makefiles: Add support for ADDITIONAL_CLEAN_FILES target propertySebastian Holtermann2019-05-141-0/+12
| | | | | |
| * | | | | Makefiles: Add support for ADDITIONAL_CLEAN_FILES directory propertySebastian Holtermann2019-05-141-0/+12
| | | | | |
| * | | | | Makefiles: Move ADDITIONAL_MAKE_CLEAN_FILES evaluation to lambdaSebastian Holtermann2019-05-141-10/+16
| | | | | |
| * | | | | Makefiles: Sort clean files by using a std::set<std::string> containerSebastian Holtermann2019-05-146-30/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By using a `std::set<std::string>` container instead of a `std::vector<std::string>` container, the clean files list becomes sorted and unique. The clean target in Makefiles beomes nicer and better readable this way. Also double clean entries won't appear anymore.
* | | | | | Merge topic 'ninja-pool-custom-command'Brad King2019-05-1511-28/+78
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 9f76961de8 Support job pools in custom commands and targets Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3308
| * | | | | | Support job pools in custom commands and targetsRosen Matev2019-05-1411-28/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Provide a way for custom commands and targets to set the pool variable of the ninja build statement. Setting `JOB_POOL` is not compatible with `USES_TERMINAL`, which implies the `console` pool. The option is silently ignored with other generators. Closes: #18483
* | | | | | | Merge topic 'cmuvprocesschain-iterator-fix'Brad King2019-05-151-1/+4
|\ \ \ \ \ \ \ | |_|_|_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dfa24355ea cmUVProcessChain: Add assert() for static analysis tools Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3322
| * | | | | | cmUVProcessChain: Add assert() for static analysis toolsKyle Edwards2019-05-141-1/+4
| | |_|_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some static analysis tools throw a false positive for an out-of-bounds item that is being dereferenced. This out-of-bounds error will never actually happen because of how cmUVProcessChain::InternalData::AddCommand() is being called. Nevertheless, this change adds an assert() to help static analysis tools be absolutely certain that the referenced item is within the vector's bounds. This change also changes the item access to use an index rather than an iterator.
* | | | | | CMake Nightly Date StampKitware Robot2019-05-151-1/+1
|/ / / / /
* | | | | Merge topic 'find-boost-cmp0093'Brad King2019-05-141-1/+3
|\ \ \ \ \ | |_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | 5108759ed2 FindBoost: Introduce CMP0093 to report Boost_VERSION in x.y.z format Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3317
| * | | | FindBoost: Introduce CMP0093 to report Boost_VERSION in x.y.z formatDennis Klein2019-05-131-1/+3
| | | | | | | | | | | | | | | | | | | | This aligns module mode behaviour with config mode.
* | | | | Merge topic 'cmSytemTools_ExpandedList'Brad King2019-05-144-29/+58
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cdff7f4e2a cmSystemTools: Add ExpandedListArgument and ExpandedLists methods Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Ben Boeckel <ben.boeckel@kitware.com> Merge-request: !3313
| * | | | | cmSystemTools: Add ExpandedListArgument and ExpandedLists methodsSebastian Holtermann2019-05-134-29/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changes ------- In `cmSystemTools` this - renames the method `ExpandList` to `ExpandLists` and makes it iterator based and adds the methods - `std::vector<std::string> ExpandedLists(InputIt first, InputIt last)` - `std::vector<std::string> ExpandedListArgument(const std::string& arg, bool emptyArgs)` Both return the `std::vector<std::string>` instead of taking a return vector reference like `cmSystemTools::ExpandLists` and `cmSystemTools::ExpandListArgument`. Motivation ---------- Since C++17 return value optimization is mandatory, so returning a `std:vector<std::string>` from a function should be (at least) as fast as passing a return vector reference to the function. The new methods can replace `cmSystemTools::ExpandLists` and `cmSystemTools::ExpandListArgument` in many cases, which leads to shorter and simpler syntax. E.g. the commonly used pattern ``` if (const char* value = X->GetProperty("A_KEY_STRING")) { std::vector<std::string> valuesList; cmSystemTools::ExpandListArgument(value, valuesList); for (std::string const& i : valuesList) { doSomething(i); } } ``` becomes ``` if (const char* value = X->GetProperty("A_KEY_STRING")) { for (std::string const& i : cmSystemTools::ExpandedListArgument(value)) { doSomething(i); } } ```
* | | | | | Merge topic 'error-generate-step'Brad King2019-05-141-0/+5
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8cc04b1918 cmake: Display error if generate step fails Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Ben Boeckel <ben.boeckel@kitware.com> Merge-request: !3304
| * | | | | | cmake: Display error if generate step failsKyle Edwards2019-05-131-0/+5
| |/ / / / /
* | | | | | Merge topic 'ninja_cleanups'Brad King2019-05-145-241/+223
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 054954d855 Ninja: Use clean target instead of clean tool in `cmake --target clean` calls 30a550d6ad Ninja: In cmNinjaTargetGenerator use std::unique_ptr to manage new instances 0024356f8e Ninja: In cmNinjaTargetGenerator optimize string composition 8691b3cf91 Ninja: Inline range loop range arguments 47da9859e8 Ninja: In cmGlobalNinjaGenerator use std::unique_ptr to manage output streams 9902702134 Ninja: Add and use cmGlobalNinjaGenerator::CMakeCmd method 12aa6fe07b Ninja: Fix message in cmGlobalNinjaGenerator::WriteBuild method 02293841e7 Ninja: Simplify cmGlobalNinjaGenerator::AddRule and HasRule methods ... Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3312
| * | | | | | Ninja: Use clean target instead of clean tool in `cmake --target clean` callsSebastian Holtermann2019-05-132-7/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A convenience `clean` target for the Ninja generator exists since commit 3bd41f2eb5. It's safe to call `ninja clean` instead of `ninja -t clean`. This removes the exception mapping of the `clean` target in `cmake --build ... --target clean` calls to the Ninja `-t clean` tool.