Commit Graph

43435 Commits

Author SHA1 Message Date
Sebastian Holtermann
338994d65d Doc: Add documentation for ADDITIONAL_CLEAN_FILES properties 2019-05-14 17:50:14 +02:00
Sebastian Holtermann
c11f089d73 Tests: Extend MakeClean test to cover ADDITIONAL_CLEAN_FILES
This extends the MakeClean test to cover the
- ADDITIONAL_CLEAN_FILES directory property and the
- ADDITIONAL_CLEAN_FILES target property

as well.
2019-05-14 17:50:14 +02:00
Sebastian Holtermann
012d599e26 Ninja: Add support for ADDITIONAL_CLEAN_FILES target property 2019-05-14 17:50:14 +02:00
Sebastian Holtermann
890a1b9dc3 Ninja: Add support for ADDITIONAL_CLEAN_FILES directory property 2019-05-14 17:50:14 +02:00
Sebastian Holtermann
7b23001f20 Ninja: Add support for additional clean files
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.
2019-05-14 17:50:14 +02:00
Sebastian Holtermann
d745df4b01 Makefiles: Add support for ADDITIONAL_CLEAN_FILES target property 2019-05-14 17:50:14 +02:00
Sebastian Holtermann
124ec11720 Makefiles: Add support for ADDITIONAL_CLEAN_FILES directory property 2019-05-14 17:50:14 +02:00
Sebastian Holtermann
43640fc80a Makefiles: Move ADDITIONAL_MAKE_CLEAN_FILES evaluation to lambda 2019-05-14 17:50:14 +02:00
Sebastian Holtermann
7c8c18b1e6 Makefiles: Sort clean files by using a std::set<std::string> container
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.
2019-05-14 17:50:13 +02:00
Brad King
1f0a695561 Merge topic 'cmSytemTools_ExpandedList'
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
2019-05-14 10:58:43 -04:00
Brad King
bae7a2e250 Merge topic 'error-generate-step'
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
2019-05-14 10:57:44 -04:00
Brad King
050bf57472 Merge topic 'ninja_cleanups'
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
2019-05-14 10:56:29 -04:00
Brad King
0302d40faa Merge topic 'cminstallgenerator-compute-error'
b133d14fb1 Refactor: Allow cmInstallGenerator::Compute() to return an error

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3305
2019-05-14 10:54:53 -04:00
Brad King
730d8a135e Merge topic 'relax_cxx_relaxed_constexpr_requirements'
d156f8f5a2 CompileFeatures: Record when MSVC gained full CXX14 support
62dbe53a8a CompileFeatures: Record when Intel gained full CXX14 support
1ebb0d79fe CompileFeatures: Relax cxx_relaxed_constexpr compiler requirements

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3292
2019-05-14 10:53:24 -04:00
Brad King
e0ab9e1cb9 Merge topic 'apple_clang_cxx_20_support'
9523ca72e2 Features: Activate C++20 support for AppleClang 10.0+

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3294
2019-05-14 10:52:17 -04:00
Brad King
9ca45a51ae Merge branch 'release-3.14' 2019-05-14 10:51:23 -04:00
Brad King
b0b357a878 Merge topic 'swig4'
65c5c1b567 FindSWIG: Support swig4.0

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3314
2019-05-14 10:49:30 -04:00
Brad King
7d9db24f4c Merge topic 'ios-xctest-lookup'
e9d128b789 Apple: Properly lookup XCTest for iOS and tvOS

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3309
2019-05-14 10:48:13 -04:00
Kitware Robot
9d48d3f61b CMake Nightly Date Stamp 2019-05-14 00:01:07 -04:00
Robert Maynard
d156f8f5a2 CompileFeatures: Record when MSVC gained full CXX14 support
Use the infrastructure added by commit 646fb1a646 (CompileFeatures:
memoize C++ compilers with full language level support, 2019-03-27) to
avoid using a `try_compile` to check for C++14 feature support when the
running compiler is known to have all features.
2019-05-13 13:13:09 -04:00
Robert Maynard
62dbe53a8a CompileFeatures: Record when Intel gained full CXX14 support
Use the infrastructure added by commit 646fb1a646 (CompileFeatures:
memoize C++ compilers with full language level support, 2019-03-27) to
avoid using a `try_compile` to check for C++14 feature support when the
running compiler is known to have all features.
2019-05-13 13:12:47 -04:00
Robert Maynard
1ebb0d79fe CompileFeatures: Relax cxx_relaxed_constexpr compiler requirements
This in effect means that cxx_relaxed_constexpr is now supported
by MSVC and Intel 18.0-18.04.
2019-05-13 13:11:32 -04:00
Brad King
016a8bc659 Merge branch 'swig4' into release-3.14
Merge-request: !3314
2019-05-13 11:30:27 -04:00
Daniele E. Domenichelli
65c5c1b567 FindSWIG: Support swig4.0 2019-05-13 11:29:53 -04:00
Sebastian Holtermann
054954d855 Ninja: Use clean target instead of clean tool in cmake --target clean calls
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.
2019-05-13 17:20:28 +02:00
Sebastian Holtermann
30a550d6ad Ninja: In cmNinjaTargetGenerator use std::unique_ptr to manage new instances 2019-05-13 17:20:27 +02:00
Sebastian Holtermann
0024356f8e Ninja: In cmNinjaTargetGenerator optimize string composition 2019-05-13 17:20:23 +02:00
Kyle Edwards
b133d14fb1 Refactor: Allow cmInstallGenerator::Compute() to return an error
This is preparation for an upcoming merge request, which will add
a new cmInstallGenerator that returns false if there are errors in
the Compute() step.
2019-05-13 10:45:36 -04:00
Brad King
f9feab40a1 Merge topic 'autorcc_timestamp'
15004e4319 AutoRcc: Simplify error logging with utility lambda
bd6c3f8609 AutoRcc: Rebuild if the rcc executable is newer than its output
54903af84b AutoRcc: Don't read the info file time again
081104fb00 AutoRcc: Write re-generation reason and rcc command as one string
eff6e622d6 Autogen: A missing info file is a critical error

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3311
2019-05-13 10:42:02 -04:00
Brad King
df6c4afa77 Merge topic 'cmuvprocesschain'
26025d6e10 cmUVProcessChain: Add cmUVProcessChain
6b04d1cdc2 cmUVStreambuf: Initialize all members on construction

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3275
2019-05-13 10:38:09 -04:00
Brad King
620e7b1c39 Merge branch 'ios-xctest-lookup' into release-3.14
Merge-request: !3309
2019-05-13 10:37:21 -04:00
Kyle Edwards
8cc04b1918 cmake: Display error if generate step fails 2019-05-13 10:31:39 -04:00
Brad King
3429369634 Merge topic 'apple_clang_full_cxx_14_support'
daad51c3b7 CompileFeatures: Record when AppleClang gained full CXX14 support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3293
2019-05-13 10:13:52 -04:00
Brad King
2bc9ddcad9 Merge topic 'iar-new_architectures'
4178096493 IAR: Add architecture support for RL78, RH850 and MSP430

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3288
2019-05-13 10:03:35 -04:00
Brad King
b498967243 Merge topic 'FindProtobuf-gen-sources'
9a324cbee0 Protobuf: Fix generated source path with PROTOBUF_GENERATE_CPP_APPEND_PATH OFF

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3295
2019-05-13 10:02:26 -04:00
Brad King
9af34615ae Merge topic 'windows-signing'
9a34031081 Utilities/Release: Enable signing of Windows release binaries
29f4f70b41 Add undocumented option to sign CMake's own binaries on Windows
1069a3f02b Configure CMake itself with policies through CMake 3.14

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3296
2019-05-13 09:57:43 -04:00
Sebastian Holtermann
cdff7f4e2a cmSystemTools: Add ExpandedListArgument and ExpandedLists methods
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);
    }
  }
```
2019-05-13 15:37:18 +02:00
Kitware Robot
a8f1527ba4 CMake Nightly Date Stamp 2019-05-13 00:01:10 -04:00
Sebastian Holtermann
8691b3cf91 Ninja: Inline range loop range arguments 2019-05-12 18:56:53 +02:00
Kitware Robot
9d2ea14492 CMake Nightly Date Stamp 2019-05-12 00:01:04 -04:00
Sebastian Holtermann
15004e4319 AutoRcc: Simplify error logging with utility lambda 2019-05-11 22:15:47 +02:00
Sebastian Holtermann
bd6c3f8609 AutoRcc: Rebuild if the rcc executable is newer than its output
In AUTORCC add a test if the rcc executable is newer that the rcc output.
If the rcc executable is newer, rebuild the output.
2019-05-11 22:15:47 +02:00
Sebastian Holtermann
54903af84b AutoRcc: Don't read the info file time again
In `AUTORCC` use the info file time that's available already instead of
reading it again.
2019-05-11 22:15:47 +02:00
Sebastian Holtermann
081104fb00 AutoRcc: Write re-generation reason and rcc command as one string
In AUTORCC with verbose output write the rcc re-generation reason and
the rcc command as on single string to avoid message chopping in concurrent
builds.
2019-05-11 21:23:29 +02:00
Sebastian Holtermann
eff6e622d6 Autogen: A missing info file is a critical error 2019-05-11 21:17:05 +02:00
Sebastian Holtermann
47da9859e8 Ninja: In cmGlobalNinjaGenerator use std::unique_ptr to manage output streams 2019-05-11 15:51:30 +02:00
Gregor Jasny
e9d128b789 Apple: Properly lookup XCTest for iOS and tvOS
Closes: #19172
2019-05-11 12:12:32 +02:00
Kitware Robot
e329944d09 CMake Nightly Date Stamp 2019-05-11 00:01:05 -04:00
Sebastian Holtermann
9902702134 Ninja: Add and use cmGlobalNinjaGenerator::CMakeCmd method 2019-05-10 20:22:26 +02:00
Sebastian Holtermann
12aa6fe07b Ninja: Fix message in cmGlobalNinjaGenerator::WriteBuild method 2019-05-10 20:22:26 +02:00