Commit Graph

26089 Commits

Author SHA1 Message Date
Brad King dbd3b1ac90 Merge topic 'vs-fortran-rc'
0b82f56ac6 VS: Fix Fortran target type selection with RC sources

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3050
2019-03-04 08:35:46 -05:00
Kitware Robot d1558fbf3a CMake Nightly Date Stamp 2019-03-04 00:01:14 -05:00
Kitware Robot 033728e867 CMake Nightly Date Stamp 2019-03-03 00:01:05 -05:00
Kitware Robot 26068d2db8 CMake Nightly Date Stamp 2019-03-02 00:01:09 -05:00
Brad King 0b82f56ac6 VS: Fix Fortran target type selection with RC sources
The Intel Fortran `.vfproj` files do support both Fortran and the
Windows Resource compiler (`.rc)` files.  Prior to CMake 3.9 we did not
support that, but commit 2c9f35789d (VS: Decide project type by linker
lang as fallback, 2017-03-30, v3.9.0-rc1~340^2) accidentally enabled it.
It was then broken by commit d3d2c3cd49 (VS: Fix Fortran target type
selection when linking C++ targets, 2019-02-04, v3.14.0-rc1~13^2).

Restore support for Fortran+RC in VS projects and add a test case.

Fixes: #19002
2019-03-01 11:58:21 -05:00
Brad King 20a41aa589 CMake 3.14.0-rc3 2019-03-01 09:25:27 -05:00
Brad King 980d9a987d Merge topic 'cuda_device_link_handle_frameworks'
d5d1b15654 CUDA: Filter out -framework arguments during device linking

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3039
2019-03-01 09:08:56 -05:00
Brad King 8b1716a62a Merge topic 'vs2019'
c9a7f3135e Help: Update VS 2019 generator release note for preview 4
00c1120837 VS: Drop workaround needed only for VS 2019 preview 2 and 3

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Egor Pugin <egor.pugin@gmail.com>
Merge-request: !3044
2019-03-01 09:07:29 -05:00
Brad King 338e32b3b8 Merge branch 'cuda_device_link_handle_frameworks' into release-3.14
Merge-request: !3039
2019-03-01 08:02:11 -05:00
Kitware Robot 2f59cd6371 CMake Nightly Date Stamp 2019-03-01 00:01:07 -05:00
Robert Maynard d5d1b15654 CUDA: Filter out -framework arguments during device linking
The filter in commit e768d96c74 (CUDA: Filter out host link flags during
device linking, 2018-10-22, v3.13.0-rc2~4^2~2^2) removes `-framework`
but not the framework name that comes after it.  Revise the logic to
remove both.

Fixes: #18911
2019-02-28 14:56:11 -05:00
Brad King 71852e969b Merge branch 'vs2019' into release-3.14
Merge-request: !3044
2019-02-28 13:25:51 -05:00
Brad King d0a328c9f6 Merge topic 'refactor-handle-path-command'
9636b03cca cmFileCommand: Refactor HandleCMakePathCommand

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2960
2019-02-28 11:43:39 -05:00
Brad King 6066aa471e Merge topic 'optimize_ge_node_lookup'
a490ea4a28 cmGeneratorExpressionNode: Initialize node key map in class constructor

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3031
2019-02-28 11:42:32 -05:00
Brad King bfd71fc05c Merge topic 'features-from-default-standard'
c7213ca870 Features: Do not use a lower-than-default standard for requested features

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3023
2019-02-28 11:41:43 -05:00
Brad King 00c1120837 VS: Drop workaround needed only for VS 2019 preview 2 and 3
A temporary workaround added by commit 626c51f47b (VS: Update for Visual
Studio 2019 Preview 2, 2019-01-24, v3.14.0-rc1~74^2) is no longer needed
as of VS 2019 preview 4.

Fixes: #18898
2019-02-28 11:04:29 -05:00
Brad King a4f2dd9577 Merge topic 'check-std-size-cbegin-cend'
e6195989c7 Merge branch 'backport-check-std-size-cbegin-cend'
a605bf438e Extend C++17/C++14 feature checks to cover more standard library APIs
e17deb7ad4 Extend C++17/C++14 feature checks to cover more standard library APIs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3030
2019-02-28 11:00:13 -05:00
Kitware Robot 0df31d99ae CMake Nightly Date Stamp 2019-02-28 00:01:08 -05:00
Brad King 18731d60ac Merge branch 'backport-check-std-size-cbegin-cend' into release-3.14
Merge-request: !3030
2019-02-27 11:32:31 -05:00
Mathieu Garaud a605bf438e Extend C++17/C++14 feature checks to cover more standard library APIs
Make sure `std::cbegin`, `std::cend`, and `std::size` work in C++17 or
C++14 mode before choosing the corresponding standard level for
compiling CMake itself.  This helps in cases that the compiler is using
a standard library too old to support the full standard level chosen.
2019-02-27 11:27:17 -05:00
Mathieu Garaud e17deb7ad4 Extend C++17/C++14 feature checks to cover more standard library APIs
Make sure `std::cbegin`, `std::cend`, and `std::size` work in C++17 or
C++14 mode before choosing the corresponding standard level for
compiling CMake itself.  This helps in cases that the compiler is using
a standard library too old to support the full standard level chosen.
2019-02-27 11:24:43 -05:00
Brad King b13a8441cd Merge topic 'ninja-dyndep-lang-aware'
f22c18b1c1 ninja: name dyndep internal files using the object file
7c78adca8e cmNinjaTargetGenerator: remove "preprocessed" mentions in dyndep
933dd91642 ninja: do not assume explicit preprocessing uses that output
2c0a7bc770 ninja: pass language to cmake_ninja_depends
72f9bb2993 ninja: make dyndep generation language aware
2dd0cb7aeb Help: note that Ninja also uses OBJECT_OUTPUTS

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2997
2019-02-27 08:21:32 -05:00
Brad King 07421e6785 Merge topic 'autogen_variable_names'
63191b169e Autogen: Use more readable variable names for static const AUTO* strings

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3026
2019-02-27 08:20:42 -05:00
Brad King 23bcac5d58 Merge topic 'ctest-clean-compress'
b5a69c6279 cmcompress: Delete unused 3rdParty module

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3019
2019-02-27 08:20:03 -05:00
Brad King 557d4b5882 Merge topic 'cmake_role-vs-fix'
e795be115e Merge branch 'master' into cmake_role-vs-fix
4b95e7fe63 CMAKE_ROLE: Fix value in --build for Visual Studio generators

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3028
2019-02-27 08:09:42 -05:00
Brad King f369d59cdd Merge branch 'cmake_role-vs-fix' into release-3.14
Merge-request: !3028
2019-02-27 08:05:55 -05:00
Brad King 9b075d9032 Merge topic 'include_external_msproject-exclude-from-all'
3106cf4e3d include_external_msproject: Restore support for EXCLUDE_FROM_ALL

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3025
2019-02-27 07:56:00 -05:00
Sebastian Holtermann a490ea4a28 cmGeneratorExpressionNode: Initialize node key map in class constructor
By initializing the node map in the class constructor of the static instance
we avoid an if-empty check.
2019-02-27 13:25:22 +01:00
Kitware Robot b3191a0f57 CMake Nightly Date Stamp 2019-02-27 00:01:09 -05:00
Kyle Edwards e795be115e Merge branch 'master' into cmake_role-vs-fix 2019-02-26 17:28:04 -05:00
Artur Ryt 9636b03cca cmFileCommand: Refactor HandleCMakePathCommand
Make use of cmJoin and fresh cmRange::transform
to reduce function complexity.
Move conversion logic to named functions.
2019-02-26 21:39:10 +01:00
Kyle Edwards 4b95e7fe63 CMAKE_ROLE: Fix value in --build for Visual Studio generators
Fixes: #18990
2019-02-26 14:52:17 -05:00
Zsolt Parragi c7213ca870 Features: Do not use a lower-than-default standard for requested features
`AddRequiredTargetC(xx)` feature didn't take the default compiler
standard into account, which possibly resulted in the use of an older
standard when some features requested it.

Fixes: #18686
2019-02-26 14:35:55 -05:00
Sebastian Holtermann 63191b169e Autogen: Use more readable variable names for static const AUTO* strings 2019-02-26 19:33:26 +01:00
Brad King 2621efac19 Merge topic 'vs-wince-no-deploy'
917c035ada VS: support suppressing deployment of selected targets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2991
2019-02-26 11:10:08 -05:00
Brad King 28a296b6c4 Merge topic 'update-kwsys'
f6eebee194 Merge branch 'upstream-KWSys' into update-kwsys
11fe7c9063 KWSys 2019-02-25 (833b2470)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3018
2019-02-26 11:08:43 -05:00
Brad King 3c7662fd62 Merge topic 'add-xlclang'
d9d285c5ad jsoncpp: Fix include order for build within CMake
0d489fab19 libuv: fix atomic ops compilation with xlclang
1699f5c231 Utilities: Suppress warnings in third-party code when using XLClang
f709089d84 XLClang: Extract compiler implicit include directories
5c41386357 XLClang: Add policy CMP0089 to present as XL for compatibility
8278237933 XL: Remove overlap with the new XLClang compiler ID
6f5cf2d2c6 XL: Revert "Recognize compilers identified by __ibmxl__"
90c6156aa8 XLClang: Add a new compiler ID for the clang-based XL compiler
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2921
2019-02-26 11:07:54 -05:00
Brad King 5ac1c809f7 Merge topic 'autogen_headers_at_configure_time'
747463d1b3 Autogen: Move additional source header search to configuration stage
16c687825d Autogen: Refactor file lists computation
2d29166758 Autogen: Use cm::make_unique to allocate jobs
8182c21d2d Autogen: Use std::unordered_set instead of std::set for skip lists
84819c79e7 Autogen: Refactor cmQtAutoGenInitializer::AddGeneratedSource method
d9893fb594 Autogen: Refactor Qt executable name computation
5e36209f71 Autogen: Rename cmQtAutoGen::GeneratorT enum to cmQtAutoGen::GenT
14ae19c327 Autogen: cmQtAutoGen: Store generator names in class static const strings

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3001
2019-02-26 11:06:10 -05:00
Brad King 3106cf4e3d include_external_msproject: Restore support for EXCLUDE_FROM_ALL
In commit dc6888573d (Pass EXCLUDE_FROM_ALL from directory to targets,
2019-01-15, v3.14.0-rc1~83^2) all `AddNewTarget` call sites were updated
to copy the directory-level `EXCLUDE_FROM_ALL` into the target property
of the same name, except that the one for `include_external_msproject`
was incorrectly missed.  Add it now.

Furthermore, refactoring in commit b99129d2d8 (ENH: some code cleanup,
2007-03-12, v2.6.0~2020) accidentally set the `EXCLUDE_FROM_ALL` target
property of `include_external_msproject`-generated targets to `FALSE`
instead of simply leaving it unset.  This was not necessary but had no
effect until the above commit gave it a meaning.  Drop that.

Fixes: #18986
2019-02-26 10:20:01 -05:00
Kitware Robot 7c292b37cf CMake Nightly Date Stamp 2019-02-26 00:01:07 -05:00
Ben Boeckel f22c18b1c1 ninja: name dyndep internal files using the object file
Now that preprocessing outputs are not necessarily used all the way
through, the output name is a better base name to use for these files.
2019-02-25 10:14:11 -05:00
Ben Boeckel 7c78adca8e cmNinjaTargetGenerator: remove "preprocessed" mentions in dyndep
Not all languages compile the preprocessed source (or even have
preprocessed sources at all).
2019-02-25 10:14:11 -05:00
Ben Boeckel 933dd91642 ninja: do not assume explicit preprocessing uses that output
In Fortran, this is OK, but for C++, compiling preprocessed source
generally results in poorer diagnostic messages and can also be
ill-formed anyways.
2019-02-25 10:14:11 -05:00
Ben Boeckel 2c0a7bc770 ninja: pass language to cmake_ninja_depends 2019-02-25 10:14:09 -05:00
Ben Boeckel 72f9bb2993 ninja: make dyndep generation language aware
A target may have multiple languages with dyndep rules, separate `.dd`
files should be generated.
2019-02-25 10:06:20 -05:00
Brad King f259e8759c Merge topic 'gt-shorter-unique-names'
3f685ac3e1 Use shorter names in internal TARGET_PROPERTY expressions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3009
2019-02-25 09:23:17 -05:00
Wil Stark 917c035ada VS: support suppressing deployment of selected targets
Add a `VS_NO_SOLUTION_DEPLOY` target property to explicitly specify for
each target whether to suppress VS solution deployment of the generated
target project.

Fixes: #18953
2019-02-25 09:14:15 -05:00
Brad King f6eebee194 Merge branch 'upstream-KWSys' into update-kwsys
* upstream-KWSys:
  KWSys 2019-02-25 (833b2470)
2019-02-25 09:04:03 -05:00
Brad King 5c41386357 XLClang: Add policy CMP0089 to present as XL for compatibility
We now identify IBM's Clang-based XL compilers, which define
`__ibmxl__`, as `XLClang` rather than `XL`.  In order to support
existing project code that checks for `XL`, add a policy whose OLD
behavior is to present the compiler id as `XL` and whose NEW behavior is
to present the compiler id as `XLClang` as we really detect it.
2019-02-25 08:24:28 -05:00
Sebastian Holtermann 747463d1b3 Autogen: Move additional source header search to configuration stage
The computation of additional source headers and and private headers for
AUTOGEN is moved from the _autogen target to the configuration stage.  This
makes them available for _autogen target dependency computations.

Closes: #18949
2019-02-25 08:20:19 -05:00