Commit Graph

26585 Commits

Author SHA1 Message Date
Cristian Adam
26a99da206 find_package: Add option to prefer Config mode
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
2019-05-21 10:29:47 -04:00
Cristian Adam
c365243a3a find_package: Factor out module and config find_package methods 2019-05-20 21:20:10 +02:00
Brad King
e025495b85 Merge topic 'makefiles_additional_clean_files'
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
2019-05-20 10:56:22 -04:00
Brad King
a9fb9a8774 Merge topic 'ninja-swift'
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
2019-05-20 10:55:27 -04:00
Brad King
9860b4c5e8 Merge topic 'interface-library-export-properties'
73a829e078 InterfaceLibrary: Whitelist EXPORT_PROPERTIES property

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3336
2019-05-20 10:02:57 -04:00
Kitware Robot
96cf96d4eb CMake Nightly Date Stamp 2019-05-20 00:01:04 -04:00
Kitware Robot
7024fe33b8 CMake Nightly Date Stamp 2019-05-19 00:01:06 -04:00
Sebastian Holtermann
1ded3599d6 Makefiles: Process ADDTIONAL_CLEAN_FILES dir prop at directory level
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"
2019-05-18 12:27:24 +02:00
Sebastian Holtermann
827da1119e Makefiles: Make build root targets "all", "clean" and "preinstall" recursive
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.
2019-05-18 12:06:49 +02:00
Marc Chevrier
3bd8ed22e8 Merge topic 'file-install-follow-symlink-chain'
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
2019-05-18 04:25:39 -04:00
Kitware Robot
8ada05980f CMake Nightly Date Stamp 2019-05-18 00:01:11 -04:00
Sebastian Holtermann
adc3459707 Makefiles: Avoid pointer repurposing 2019-05-17 17:58:55 +02:00
Sebastian Holtermann
0d41b45cc9 Makefiles: Inline range loop range arguments 2019-05-17 17:58:55 +02:00
Brad King
e1c95bc278 Merge topic 'autogen_ninja_clean'
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
2019-05-17 09:38:44 -04:00
Brad King
acc2f022bb Merge topic 'offer_compiler_lang_generator_expression'
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
2019-05-17 09:27:12 -04:00
Brad King
3020354f7c Merge topic 'string-cleanup'
23e8364aed Source: std::string related cleanup

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Sebastian Holtermann <sebholt@web.de>
Merge-request: !3324
2019-05-17 09:26:05 -04:00
Brad King
73a829e078 InterfaceLibrary: Whitelist EXPORT_PROPERTIES property
Fixes: #19261
2019-05-17 09:20:04 -04:00
Kitware Robot
736f9d184d CMake Nightly Date Stamp 2019-05-17 00:01:05 -04:00
Kyle Edwards
e3ff7ced63 file(INSTALL): Add FOLLOW_SYMLINK_CHAIN argument 2019-05-16 15:25:33 -04:00
Saleem Abdulrasool
b6412e3e38 Ninja: add placeholders to support Swift build
Add the placeholders needed to support compiling Swift code.
2019-05-16 14:41:05 -04:00
Saleem Abdulrasool
7d7f31161d Ninja: add support for Swift's output-file-map.json
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.
2019-05-16 14:41:05 -04:00
Saleem Abdulrasool
d688c4c19d Swift: remove unnecessary unreleased Ninja infrastructure
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.
2019-05-16 14:41:05 -04:00
Brad King
62b0d14e24 Merge topic 'update-kwsys'
23b3ca5e1f Merge branch 'upstream-KWSys' into update-kwsys
49f8351a18 KWSys 2019-05-15 (dea11658)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3325
2019-05-16 10:19:51 -04:00
Kitware Robot
82c6ec964d CMake Nightly Date Stamp 2019-05-16 00:01:06 -04:00
Brad King
9ee24ede73 Merge topic 'msvc-jmc'
2a9ff9703e MSVC: Add support for /JMC (Just My Code)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3121
2019-05-15 14:06:58 -04:00
Vitaly Stakhovsky
23e8364aed Source: std::string related cleanup 2019-05-15 10:20:05 -04:00
Sebastian Holtermann
4b4fd99f41 Autogen: Use ADDITIONAL_CLEAN_FILES target property for file cleaning
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"
2019-05-15 15:28:17 +02:00
Brad King
66efdbd21a Merge topic 'additional_clean_files'
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
2019-05-15 09:22:18 -04:00
Brad King
0064edf417 Merge topic 'ninja-pool-custom-command'
9f76961de8 Support job pools in custom commands and targets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3308
2019-05-15 09:21:08 -04:00
Brad King
ac0411f166 Merge topic 'cmuvprocesschain-iterator-fix'
dfa24355ea cmUVProcessChain: Add assert() for static analysis tools

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3322
2019-05-15 09:19:43 -04:00
Brad King
23b3ca5e1f Merge branch 'upstream-KWSys' into update-kwsys
* upstream-KWSys:
  KWSys 2019-05-15 (dea11658)
2019-05-15 09:10:03 -04:00
Kitware Robot
38bedaef72 CMake Nightly Date Stamp 2019-05-15 00:01:07 -04:00
Robert Maynard
e214abdaab Genex: Add COMPILE_LANG_AND_ID generator expression 2019-05-14 14:54:15 -04:00
Kyle Edwards
dfa24355ea cmUVProcessChain: Add assert() for static analysis tools
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.
2019-05-14 14:00:13 -04:00
Luca Cappa
2a9ff9703e MSVC: Add support for /JMC (Just My Code) 2019-05-14 13:27:18 -04: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
2389fcc677 Merge topic 'find-boost-cmp0093'
5108759ed2 FindBoost: Introduce CMP0093 to report Boost_VERSION in x.y.z format

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3317
2019-05-14 11:14:33 -04: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
Rosen Matev
9f76961de8 Support job pools in custom commands and targets
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
2019-05-14 15:58:00 +02:00
Kitware Robot
9d48d3f61b CMake Nightly Date Stamp 2019-05-14 00:01:07 -04:00
Dennis Klein
5108759ed2 FindBoost: Introduce CMP0093 to report Boost_VERSION in x.y.z format
This aligns module mode behaviour with config mode.
2019-05-13 11:57:12 -04:00