Commit Graph

6458 Commits

Author SHA1 Message Date
Brad King f03a80aefd Merge topic 'genex-target-property-lifetime'
5a1af142f1 Genex: Fix value lifetimes in nested TARGET_PROPERTY evaluation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3362
2019-05-23 09:22:37 -04:00
Brad King 5222400d9f Merge topic 'FindPython-find_strategy'
8517b549f4 FindPython: Add policy to manage lookup stratgey default.
9f205acefe FindPython: Implement lookup strategies.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3354
2019-05-23 08:59:25 -04:00
Brad King cbd1c5b4ab Merge topic 'framework-var'
26ea022c3b Add variable CMAKE_FRAMEWORK

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3347
2019-05-23 08:57:36 -04:00
Brad King 8ed6efbbd3 Merge topic 'default-generator-env'
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
2019-05-22 10:32:43 -04:00
Brad King c024e44abe Merge topic 'find-package-prefer-config'
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
2019-05-22 10:28:59 -04:00
Brad King 5a1af142f1 Genex: Fix value lifetimes in nested TARGET_PROPERTY evaluation
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
2019-05-22 10:19:41 -04:00
Eicke Herbertz d0f0ba0f7a Tests: Add environment generator tests 2019-05-22 07:40:51 -04:00
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
Marc Chevrier 9f205acefe FindPython: Implement lookup strategies.
Configration variable Python_FIND_STRATEGY controls the lookup startegy.
Possible values are LOCATION and VERSION.

Fixes: #19159
2019-05-21 16:13:27 +02:00
Brad King a1eb03569d file: Change REMOVE to ignore empty names
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
2019-05-21 09:25:32 -04:00
Ruslan Baratov 26ea022c3b Add variable CMAKE_FRAMEWORK 2019-05-21 14:26:23 +03: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
Sebastian Holtermann f945c3e755 Tests: Extend MakeClean test to cover subdirectories without targets
This adds a subdirectory to the MakeClean test, in which files are added to
the `ADDITIONAL_CLEAN_FILES` directory property, but which holds no targets.
2019-05-18 12:27:29 +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
Saleem Abdulrasool a9180ccf9a Tests: add a check for the Swift compiler
This ensures that the tests only run when the Swift compiler is present.
2019-05-17 10:09:35 -04:00
Brad King 21f5ed8091 Merge topic 'use_additional_clean_files'
eda3963615 UseSWIG: Use ADDITIONAL_CLEAN_FILES for cleaning
8c47be28cc UseJava: Use ADDITIONAL_CLEAN_FILES for cleaning
ac86c02d1b UseEcos: Use ADDITIONAL_CLEAN_FILES for cleaning
2532e00339 FindDoxygen: Use ADDITIONAL_CLEAN_FILES for cleaning
4edc0ef359 Test: Improve WarnUnusedCliUnused to run on all generators

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3328
2019-05-17 09:37:33 -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 73a829e078 InterfaceLibrary: Whitelist EXPORT_PROPERTIES property
Fixes: #19261
2019-05-17 09:20:04 -04:00
Kyle Edwards e3ff7ced63 file(INSTALL): Add FOLLOW_SYMLINK_CHAIN argument 2019-05-16 15:25:33 -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
Sebastian Holtermann 4edc0ef359 Test: Improve WarnUnusedCliUnused to run on all generators
In the WarnUnusedCliUnused test, the whole CMakeCache.txt was removed in the
clean stage to trigger the same CMake warning in re-builds.  This technique
worked only in the Makefile generators and the test was limited to these.

Now only the variable of interest is removed from the cache by using a
`unset(UNUSED_CLI_VARIABLE CACHE)` statement in the CMakeLists.txt file.
This makes the WarnUnusedCliUnused test run on all generators
2019-05-15 15:28:37 +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
Robert Maynard e214abdaab Genex: Add COMPILE_LANG_AND_ID generator expression 2019-05-14 14:54:15 -04:00
Luca Cappa 2a9ff9703e MSVC: Add support for /JMC (Just My Code) 2019-05-14 13:27:18 -04: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
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 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 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 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
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
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
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
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
Kyle Edwards 8cc04b1918 cmake: Display error if generate step fails 2019-05-13 10:31:39 -04:00
Gregor Jasny e9d128b789 Apple: Properly lookup XCTest for iOS and tvOS
Closes: #19172
2019-05-11 12:12:32 +02:00
Marc Chevrier 741fb95f66 Merge topic 'FindPython-module'
30b873c05d FindPython*: Manage weak link for Python modules

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !3291
2019-05-10 09:02:57 -04:00
Brad King ca0ac8f289 Merge topic 'FindBoost-fphsa'
634f6ea159 FindBoost: Add new unit tests
a22dd5d8be FindBoost: Modernize module mode with FPHSA
a315977595 FindBoost: Fix and modernize config mode with FPHSA
24342d5ef7 FindBoost: Add vars Boost_VERSION_MACRO/MAJOR/MINOR/PATCH/COUNT
26634752d0 FindBoost: Introduce new imported target Boost::headers
d6c12f374d FindBoost: Compare versions consistently against Boost_VERSION_STRING

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3243
2019-05-08 12:42:29 -04:00
Craig Scott 4aace9b015 Merge topic 'ctest-update-version-override'
2a34d0ac36 ctest: Add new variable CTEST_UPDATE_VERSION_OVERRIDE
7ddac95121 Help: cross-ref and wording of docs related to ctest_update()
a0d04d8810 testing: Update terminology in ctest_update tests

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Zack Galbreath <zack.galbreath@kitware.com>
Merge-request: !3277
2019-05-08 08:49:34 -04:00
Kyle Edwards 26025d6e10 cmUVProcessChain: Add cmUVProcessChain
This class is ultimately intended as a replacement for cmsys::Process.
It spawns a series of processes using libuv, piping the output of each
command into the next.

Note: input support has not yet been implemented because write
support has not yet been implemented on cmUVStreambuf.
2019-05-07 13:40:06 -04:00
Dennis Klein 634f6ea159 FindBoost: Add new unit tests 2019-05-07 17:19:46 +02:00
Brad King fa077acba5 Merge topic 'enforce-explicit-use-of-project'
1527defbfe cmMakefile: Enforce explicit use of project() command

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3245
2019-05-07 11:17:26 -04:00
Brad King 707c180ff0 Merge topic 'CTestCoverageCollectGCOV-updates'
41d262bd3d CTestCoverageCollectGCOV: run gcov with -x
911b97867b CTestCoverageCollectGCOV: run gcov only once

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3258
2019-05-07 11:15:18 -04:00
Zack Galbreath 2a34d0ac36 ctest: Add new variable CTEST_UPDATE_VERSION_OVERRIDE
Set this in a CTest script to explicitly define what the current revision
will be reported as in Update.xml.
2019-05-07 10:45:47 -04:00
Marc Chevrier 30b873c05d FindPython*: Manage weak link for Python modules
Add new target Python::Module which take care of platform requirements
for Python module development.

Fixes: #18100
2019-05-07 16:37:24 +02:00
Dennis Klein a22dd5d8be FindBoost: Modernize module mode with FPHSA 2019-05-07 16:08:55 +02:00
Dennis Klein a315977595 FindBoost: Fix and modernize config mode with FPHSA
Fixes: #19186
2019-05-07 16:08:55 +02:00
Bartosz Kosiorek 1527defbfe cmMakefile: Enforce explicit use of project() command
Fixes: 17714
2019-05-06 10:58:10 +02:00