Commit Graph

5518 Commits

Author SHA1 Message Date
Brad King e62dfeccb1 Features: Do not assume c_restrict support in CompileFeatures test
Define `EXPECT_C_RESTRICT` separately for each compiler.
2018-03-28 10:54:43 -04:00
Brad King c22cdf78d7 Features: Fix CompileFeatures test checks for C
Compare the HAVE_ and EXPECT_ macros as we do for CXX.
2018-03-28 10:54:41 -04:00
Craig Scott d5f0b2df8e Merge topic 'cmake_minimum_required-forward-compat'
8dc97acb03 cmake_minimum_required: Tolerate unknown future arguments

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1888
2018-03-27 08:16:46 -04:00
Brad King b9788dc5a3 Merge topic 'revert-CTestTestfile-removal-again'
70c50aa23c Revert "Remove CTestTestfile.cmake when BUILD_TESTING is OFF"

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1887
2018-03-27 07:49:28 -04:00
Brad King 8dc97acb03 cmake_minimum_required: Tolerate unknown future arguments
When a `...<max>` version is given that is larger than the running
version of CMake, assume that the project is aware of a newer version of
CMake and that any unknown arguments are future arguments.  This will
allow future versions of CMake to add arguments to the command that
projects can use without introducing errors in older versions of CMake
(back to 3.12).
2018-03-26 11:31:08 -04:00
Brad King 911972903b Merge topic 'contract-plplot'
53e3080be3 Tests: Restore PLplot contract test repository https URL

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1883
2018-03-26 07:58:22 -04:00
Brad King 70c50aa23c Revert "Remove CTestTestfile.cmake when BUILD_TESTING is OFF"
Revert commit v3.8.0-rc1~305^2 (Remove CTestTestfile.cmake when BUILD_TESTING
is OFF, 2016-11-14) again.  We reverted it once in commit v3.8.0-rc3~22^2
(Revert "Remove CTestTestfile.cmake when BUILD_TESTING is OFF", 2017-03-06) but
it was accidentally restored by commit v3.11.0-rc1~387^2 (server: add
"ctestInfo" request to get test info, 2017-10-25), perhaps due to conflict
resolution during rebase.

We cannot remove `CTestTestfile.cmake` when testing is off because it breaks
projects that never enable testing but create their own `CTestTestfile.cmake`
manually instead.  Revert the change again and add a test case.
2018-03-26 07:44:22 -04:00
Craig Scott 9f2ec9d241 Merge topic 'list-sublist'
768225837d list: Add SUBLIST sub-command

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1874
2018-03-22 15:27:24 -04:00
Craig Scott 82df2fe17e Merge topic 'policy-version-range'
45408b5ea1 cmake_minimum_required: Optionally set policies with version range
6a41aa2abd cmPolicies: Split parsing and impl of ApplyPolicyVersion
1d00ed7cf7 cmPolicies: Drop unnecessary check from ApplyPolicyVersion
0df559832b cmPolicies: Pass policy version as std::string

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1864
2018-03-22 15:24:49 -04:00
Brad King d78d750c04 Merge topic 'clarify_inherited_properties'
ff6234509e Help: Clarify behavior of INHERITED properties
9cc97ab4dc Tests: Add tests for INHERITED property chaining

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1879
2018-03-22 08:33:53 -04:00
Brad King a7ac022425 Merge topic 'find-package_root-revise'
3f479a3ca3 find_package: Improve CMP0074 warning messages

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1880
2018-03-22 08:32:54 -04:00
Brad King 53e3080be3 Tests: Restore PLplot contract test repository https URL
Switch back to the `https://` repository URL but without the `.git`
extensions.  It seems faster than the `git://` protocol for this server.
2018-03-22 07:08:35 -04:00
Marc Chevrier 768225837d list: Add SUBLIST sub-command
Issue: #17823
2018-03-21 12:54:53 -04:00
Brad King a13cfa246f Merge topic 'FindPython-new-implementation'
50b5e9ed13 CMake build: Use new FindPython module
352baee207 FindPython*: New implementation for Python stuff

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Ben Boeckel <ben.boeckel@kitware.com>
Acked-by: Alex Turbov <i.zaufi@gmail.com>
Merge-request: !1819
2018-03-21 10:01:52 -04:00
Brad King 45408b5ea1 cmake_minimum_required: Optionally set policies with version range
Teach `cmake_minimum_required` and `cmake_policy(VERSION)` to support a
version range of the form `<min>[...<max>]`.  Define this to mean that
version `<min>` is required, but known policies up to those introduced
by `<max>` will be set to `NEW`.  This will allow projects to easily
specify a range of versions for which they have been updated.
2018-03-21 08:00:28 -04:00
Brad King 3f479a3ca3 find_package: Improve CMP0074 warning messages
Policy `CMP0074` was added by commit eb35d8884b (find_package: Use
PackageName_ROOT variables as search prefixes, 2018-03-15).  Revise the
logic to avoid warning when a `PackageName_ROOT` variable is set to
empty since that won't change the search behavior.  Also, when we do
warn include the variable value(s) for reference.
2018-03-21 07:51:20 -04:00
Craig Scott 9cc97ab4dc Tests: Add tests for INHERITED property chaining 2018-03-21 21:38:47 +11:00
Marc Chevrier a58158727b list(): add JOIN sub-command 2018-03-20 14:28:17 +01:00
Marc Chevrier 50b5e9ed13 CMake build: Use new FindPython module 2018-03-20 09:29:55 +01:00
Marc Chevrier 352baee207 FindPython*: New implementation for Python stuff
Fixes: #16142
2018-03-20 09:29:44 +01:00
Brad King 180a36e243 Merge topic 'find-package_root-restore'
eb35d8884b find_package: Use PackageName_ROOT variables as search prefixes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1858
2018-03-19 08:30:05 -04:00
Brad King 20fc763b32 Merge topic 'export-properties'
6db61f0725 Export: allow exporting of additional properties

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1834
2018-03-19 08:28:14 -04:00
Brad King 60299bc6f0 Merge topic 'vs-debugger-command'
5a7113d8fb VS: Add target property VS_DEBUGGER_COMMAND

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1842
2018-03-19 08:26:33 -04:00
Brad King cc2e5709ed Merge topic 'intel-initializer-list'
fc96d99c3e Features: Record initializer list support for Intel 14 and above

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1855
2018-03-19 08:17:18 -04:00
Craig Scott 80784ef77f Merge topic 'project-homepage-url'
73f9b2974c project: Add HOMEPAGE_URL named parameter
fd28c382b4 project: Add <PROJECT-NAME>_DESCRIPTION
9b57cb62ea Help: Fix minor typo in docs for CMAKE_PROJECT_DESCRIPTION
c89993d529 Tests: Avoid enabling languages unnecessarily in RunCMake.project

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1816
2018-03-17 18:24:44 -04:00
Alex Turbov 73f9b2974c project: Add HOMEPAGE_URL named parameter
This sets variables like PROJECT_HOMEPAGE_URL, which can be
used as default values for various things (packaging modules,
doxygen defaults, etc.). Some packaging modules have been
updated to do this as part of this commit.

Co-Author: Craig Scott <craig.scott@crascit.com>
2018-03-17 08:25:48 +11:00
Brad King eb35d8884b find_package: Use PackageName_ROOT variables as search prefixes
This feature was originally added by commit v3.9.0-rc1~71^2~2 (find_*:
Add a new PackageRoot search path group, 2017-05-03) and documented by
commit v3.9.0-rc1~71^2 (find_*: Add docs for PackageRoot search path
group, 2017-05-03).  However, we had to disable the feature and remove
the documentation in commit v3.9.1~2^2 (find_*: Disable the PACKAGE_ROOT
search path group for CMake 3.9, 2017-08-08) due to breaking projects
that used `PackageName_ROOT` variables themselves.

Add policy `CMP0074` to restore the `PackageName_ROOT` variable behavior
in a compatible way.  Also revise the stack of root paths to store the
paths themselves rather than the package names.  This way the policy can
be considered at the `find_package` call site instead of individual
`find_` calls inside a find module.

Co-Author: Chuck Atkins <chuck.atkins@kitware.com>
Issue: #17144
2018-03-16 09:19:28 -04:00
Wouter Klouwen 6db61f0725 Export: allow exporting of additional properties
This change introduces an additional property that may be set on a
target to allow additional properties to be exported. Normally only a
limited number of properties are exported.

Additional properties may be exported by simply setting the
`EXPORT_PROPERTIES` property on a target that is exported.
2018-03-16 09:00:56 -04:00
Brad King 4e9aa80158 Merge branch 'intel-initializer-list' into release-3.11
Merge-request: !1855
2018-03-16 07:53:36 -04:00
Brad King df27bd3f83 Merge branch 'gtest_discover_tests_timeout' into release-3.11
Merge-request: !1851
2018-03-16 07:52:23 -04:00
Brad King fc96d99c3e Features: Record initializer list support for Intel 14 and above
Features recorded by commit v3.6.0-rc1~120^2~5 (Features: Record
standards and features for Intel C++ on UNIX, 2016-04-28) for the Intel
compiler left out initializer list support because our test case in
`Tests/CompileFeatures/cxx_generalized_initializers.cpp` caused an
internal compiler error.  It turns out this is because the Intel
compiler asserts the `initializer_list` constructor signatures to verify
that they match its own `<initializer_list>` header.  It was our dummy
implementation used to test the language feature without any headers
that caused the ICE.  Revise it to use a constructor signature accepted
by the Intel compiler.

Fixes: #17829
2018-03-16 07:47:42 -04:00
Brad King 30b7c40ad8 Merge topic 'gtest_discover_tests_timeout'
96fdde26bb GoogleTest: Rename TIMEOUT parameter to avoid clash

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1851
2018-03-16 07:27:16 -04:00
Brad King 2ab900c71b Merge topic 'compile-options-shell'
ce0b983216 target_compile_options: Add syntax to specify shell strings

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1841
2018-03-15 07:55:14 -04:00
Craig Scott 96fdde26bb GoogleTest: Rename TIMEOUT parameter to avoid clash
In gtest_discover_tests(), the TIMEOUT keyword was making it
impossible to set the TIMEOUT test property via the PROPERTIES
keyword. This would be a frequent case, but it doesn't complain
and instead silently does something different to what would
normally be expected. The TIMEOUT keyword has been renamed
to DISCOVERY_TIMEOUT, thereby removing the clash.

This is a breaking change. 3.10.1 and 3.10.2 were the only versions
that supported the TIMEOUT keyword and uses of it were likely
not working as intended.

Fixes: #17801
2018-03-15 07:36:42 -04:00
Brad King c89993d529 Tests: Avoid enabling languages unnecessarily in RunCMake.project 2018-03-15 21:52:21 +11:00
Hannes Mezger 5a7113d8fb VS: Add target property VS_DEBUGGER_COMMAND
Fixes: #17819
2018-03-14 13:27:15 -04:00
Brad King ce0b983216 target_compile_options: Add syntax to specify shell strings
Options specified via `COMPILE_OPTIONS` and `INTERFACE_COMPILE_OPTIONS`
are deduplicated, but individual options can legitimately be duplicated
when grouped with other options, e.g.

    -D A -D B

After deduplication that becomes `-D A B`.  Therefore we need a way to
treat groups of options as units during deduplication.  A simple approach
is to specify each group as one option, e.g.

    "-D A" "-D B"

However, that conflicts with options that legitimately have spaces.  To
break this ambiguity, add a `SHELL:` prefix syntax to specify that an
option should be parsed like shell command line arguments after
deduplication, e.g.

    "SHELL:-D A" "SHELL:-D B"

These will survive deduplication intact, and then be parsed to produce
`-D A -D B` on the final command line.

Fixes: #15826
2018-03-14 11:10:25 -04:00
Brad King bdbee54a83 Merge topic 'genex-COMPILE_LANGUAGE-system-include'
1b5e52fd65 Genex: Fix COMPILE_LANGUAGE propagation through try_compile
2deb9b7f34 Genex: Fix COMPILE_LANGUAGE in SYSTEM include directories

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1844
2018-03-13 13:42:45 -04:00
Brad King a039029e7c Merge branch 'genex-COMPILE_LANGUAGE-system-include' into release-3.11
Merge-request: !1844
2018-03-13 13:40:25 -04:00
Brad King 83071fff75 Merge topic 'ep-support-passing-var-ending-with-notfound'
7ad981c8f7 ExternalProject: Fix cache generation when last args ends with "-NOTFOUND"

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1838
2018-03-12 13:49:44 -04:00
Jean-Christophe Fillion-Robin 7ad981c8f7 ExternalProject: Fix cache generation when last args ends with "-NOTFOUND" 2018-03-12 13:45:50 -04:00
Brad King 378a11cdba Merge topic 'genex-TARGET_EXISTS'
7fec336bf7 genex: Add TARGET_EXISTS to check for target existence

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1829
2018-03-12 13:42:18 -04:00
Brad King 1b5e52fd65 Genex: Fix COMPILE_LANGUAGE propagation through try_compile
When evaluating include directories during export to a `try_compile`
test project, thread the compile language through to the generator
expression evaluator so it can support `$<COMPILE_LANGUAGE:...>`.

Issue: #17811
2018-03-12 13:30:14 -04:00
Brad King 2deb9b7f34 Genex: Fix COMPILE_LANGUAGE in SYSTEM include directories
When evaluating `INTERFACE_SYSTEM_INCLUDE_DIRECTORIES`, or evaluating
`INTERFACE_INCLUDE_DIRECTORIES` on an imported target, thread the
compile language through to the generator expression evaluator so
that it can support `$<COMPILE_LANGUAGE:...>`.

Fixes: #17811
2018-03-12 11:45:01 -04:00
Alex Turbov 7fec336bf7 genex: Add TARGET_EXISTS to check for target existence
Define `$<TARGET_EXISTS:a>` to `1` if `a` is an existed target name,
else `0`.
2018-03-09 08:24:05 -05:00
Brad King 6e56f28808 Merge topic 'libxml2-target'
9ef3abd3f3 FindLibXml2: provide imported target LibXml2::LibXml2

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1823
2018-03-09 07:44:30 -05:00
Brad King e11410bb0c Merge topic 'cmWorkingDirectory_success_checking'
5901699672 cmDepends: Remove attempt to change directory that always fails
e60e4dfc88 cmWorkingDirectory: Check success of current dir changes
e654622aee Tests: Add --build-and-test test case
a865f0beb2 Tests: Confirm test working dir set successfully

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1817
2018-03-09 07:43:54 -05:00
Brad King f8adde152f Merge topic 'sort_glob_output'
87a6816baf Add test for sorting and deduping of file(GLOB) result
b688d4fd22 file(GLOB): Ensure entire file list is sorted

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1821
2018-03-09 07:38:07 -05:00
Craig Scott 81b17f4649 Merge topic 'project-warn-missing-metadata-values'
587bad7ba2 project: warn on metadata arguments missing values

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1815
2018-03-08 16:11:52 -05:00
Rolf Eike Beer 9ef3abd3f3 FindLibXml2: provide imported target LibXml2::LibXml2 2018-03-08 18:31:12 +01:00