Commit Graph
28539 Commits
Author SHA1 Message Date
Olender, Sebastian D 82a5c2c6a5 VS: Fix support for '/guard:cf' linker flag
Although `$(VCTargetsPath)/1033/link.xml` for v140 and v141 toolsets
contains an entry for `LinkControlFlowGuard`, it does not work when used
in a `.vcxproj` file.  Drop our link flag table entries for these
toolsets so that the flag will be passed via `AdditionalOptions`.
2017-06-30 10:57:40 -04:00
Brad King 15c5d9a0dd Merge topic 'xcode-cross-sdk-object-libraries'
c2a6df94 Xcode: Use correct Object Library paths for cross-SDK builds

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1016
2017-06-30 10:32:02 -04:00
Brad King bc92960b63 Merge branch 'xcode-cross-sdk-object-libraries' into release-3.9 2017-06-30 10:16:30 -04:00
Kitware Robot db96ebaa7b CMake Nightly Date Stamp 2017-06-30 00:01:06 -04:00
Brad King a2112257df Add infrastructure to use language extensions without any standard
When `<LANG>_STANDARD` is not set we will not add any language standard
flags.  If `<LANG>_EXTENSIONS` is not OFF then our default is supposed
to be ON.  In order to support compilers that do not enable their
extensions by default, check a `CMAKE_<LANG>_EXTENSION_COMPILE_OPTION`
variable for an extensions flag to use without any language standard.

Suggested-by: Norbert Lange <nolange79@gmail.com>
2017-06-29 13:25:19 -04:00
Brad King 8cd28bb0e5 cmLocalGenerator: Switch order of <LANG>_{EXTENSIONS,STANDARD} check 2017-06-29 13:22:32 -04:00
Brad King 0fc2d78ee9 cmLocalGenerator: Simplify logic for language standard or extension flag 2017-06-29 13:22:32 -04:00
Gregor Jasny c2a6df94ed Xcode: Use correct Object Library paths for cross-SDK builds
When calculating Object Library paths take a look at the
`XCODE_EMIT_EFFECTIVE_PLATFORM_NAME` property to enable builds with
different SDKs. Otherwise a hard-coded architecture could be chosen.

Fixes: #16040
2017-06-29 09:52:44 -04:00
Brad King 55465be840 Merge topic '16961-xctest-scheme'
fe34a5c8 Xcode: Add XCTest support to schema generator
690cf2c1 Xcode: Prepare schema generator for XCTest
ff3498e7 XCTest: Speed up test by only enabling C language
610d2fce XCTest: Use bundle specific generator expressions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1013
2017-06-29 09:50:29 -04:00
Brad King 1ac89a4e06 Merge topic 'deb-on-windows'
52991413 CPackDeb: Enable the DEB generator on Windows

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !979
2017-06-29 09:49:29 -04:00
Brad King a9b88ffdfc Merge topic 'vs-link-debug-flags'
7ba27e36 VS: Add v140 and v141 flag table entries for /DEBUG:NONE and /DEBUG:FULL
ae44496e VS: Fix GenerateDebugInformation values for v140 and v141 toolsets
27bef160 VS: Fix GenerateDebugInformation flag map text for v141 toolsets
17a397c2 VS: Split link flag table between v140 and v141 toolsets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1002
2017-06-29 09:49:01 -04:00
Kitware Robot aaa545f867 CMake Nightly Date Stamp 2017-06-29 00:01:06 -04:00
Gregor Jasny fe34a5c82b Xcode: Add XCTest support to schema generator
Closes: #16961
2017-06-28 22:21:52 +02:00
Gregor Jasny 690cf2c1b2 Xcode: Prepare schema generator for XCTest
Issue: #16961
2017-06-28 22:06:49 +02:00
Nils Gladitz 5299141320 CPackDeb: Enable the DEB generator on Windows
While some features require external Unix tools the
generator is mostly portable.

By enabling it on Windows it can be used for cross platform
packaging.
2017-06-28 19:55:12 +02:00
Ian Hojnicki 7ba27e364f VS: Add v140 and v141 flag table entries for /DEBUG:NONE and /DEBUG:FULL 2017-06-28 08:55:40 -04:00
Brad King ae44496e2b VS: Fix GenerateDebugInformation values for v140 and v141 toolsets
When VS 2015 was first released, its new v140 toolset came with a
`link.xml` file that changed the `GenerateDebugInformation` boolean
(`false` and `true`) value from earlier toolsets to an enumeration
consisting of the possible values `No`, `Debug`, and `DebugFastLink`.

We first adapted to this in commit v3.4.2~2^2 (VS: Fix VS 2015 .vcxproj
file value for GenerateDebugInformation, 2016-01-08), but that broke
older toolsets that still expected the boolean.  Then commit
v3.6.0-rc1~295^2~1 (VS: Fix VS 2015 .vcxproj debug setting for older
toolsets, 2016-02-24) added a hack to fix up the value based on the
toolset in use.  Several follow-up commits fixed this for more older
toolsets because our flag table was at the time based on the generator
in use rather than the toolset in use.

Since commit v3.8.0-rc1~396^2 (VS: Choose flag map based on the toolset
name, 2016-10-17) we use a flag table based on the toolset, so the fixup
hack should not be needed.  We had to keep it around only due to our
default value for GenerateDebugInformation (`false` or `No`) still being
based on the generator instead of the toolset.

A VS 2015 update was released that changed the v140 toolset `link.xml`
file back to using `false` and `true` for the `GenerateDebugInformation`
enumeration variants previously known as `No` and `Debug`.  In order to
know which pair to use, we need to parse the `link.xml` file for the
current toolset.

Switch back to using `false` and `true` unconditionally in our
`GenerateDebugInformation` flag table entries and default value.  With
that plus the toolset-based flag table, we now get incorrect values for
`GenerateDebugInformation` only when using a v140 toolset from an older
VS 2015 installation.  Detect this case by parsing `link.xml` and add
special logic to convert `false` and `true` to `No` and `Debug` to
satisfy the older toolset specification.

Inspired-by: Ian Hojnicki <nullref@live.com>
Fixes: #17020
2017-06-28 08:55:40 -04:00
Ian Hojnicki 27bef1609b VS: Fix GenerateDebugInformation flag map text for v141 toolsets
Update the help text to match that from v141's link.xml file.
2017-06-28 08:55:40 -04:00
Ian Hojnicki 17a397c22a VS: Split link flag table between v140 and v141 toolsets 2017-06-28 08:55:40 -04:00
Brad King 0552747b58 Merge topic 'feature/include_guard'
c96f43b7 include_guard: add tests for the feature
80f1221f include_guard: add doc pages and a release note
85b52a04 include_guard: add vim syntax highlighting rules
d44bd1c2 include_guard: implement new command

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Craig Scott <craig.scott@crascit.com>
Merge-request: !928
2017-06-28 08:53:30 -04:00
Brad King 45ca0403ac Merge topic 'fix-windows-ninja-solink'
58017517 Ninja: Fix generated command lines for cmake_symlink_* on Windows

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1003
2017-06-28 08:46:07 -04:00
Kitware Robot 9ab399ba82 CMake Nightly Date Stamp 2017-06-28 00:01:06 -04:00
Brad King 372de3f803 CMake 3.9.0-rc5 2017-06-27 10:59:58 -04:00
Brad King 126effbb9c Merge topic 'vs_csharp_custom_command'
ec409a11 Vs: fix CSharp custom command by introducing inline MSBuild <Targets>s
dcdab5cf Vs: factor out computation of <Link> tag for CSharp source files
0a8f469a Vs: refactor WriteCustomRule for preparation of CSharp support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !970
2017-06-27 09:21:38 -04:00
Brad King 43c3afa745 Merge topic 'fix-crash-on-non-enabled-language-features'
e03a1b3b target_compile_features: Do not crash on non-enabled language
86990427 Tests: Enable languages explicitly in RunCMake.target_compile_features

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1010
2017-06-27 09:20:32 -04:00
Brad King dc11a20d7b Merge topic 'vs-cuda-fix-flags'
bbc1f364 VS: Fix support for nvcc flags not in our flag table

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1007
2017-06-27 09:18:34 -04:00
Brad King fd771df773 Merge branch 'fix-crash-on-non-enabled-language-features' into release-3.9 2017-06-27 09:14:31 -04:00
Brad King 1d86103846 Merge branch 'vs-cuda-fix-flags' into release-3.9 2017-06-27 09:14:26 -04:00
Brad King bbc1f3642c VS: Fix support for nvcc flags not in our flag table
The change in commit v3.9.0-rc4~3^2 (VS: Improve workaround for CUDA
-Xcompiler placement bug, 2017-06-21) accidentally appended to the
`AdditionalOptions` as if it were a `;`-separated list, but it is
actually a command-line string.  Append with a space instead.

While at it, fix the same problem for the `AdditionalOptions` added to
`CudaLink` by commit v3.9.0-rc3~1^2 (CUDA: When linking device code
suppress CUDA 8.0+ deprecation warnings, 2017-06-09).

Fixes: #17008
2017-06-27 09:08:50 -04:00
Kitware Robot b8858bd404 CMake Nightly Date Stamp 2017-06-27 00:01:07 -04:00
Brad King e03a1b3b61 target_compile_features: Do not crash on non-enabled language
Fixes: #17011
2017-06-26 13:54:20 -04:00
Brad King 4d0155e780 Merge topic 'vs_projecttype_comparison'
54d42ce7 Vs: disable unnecessary <ItemDefinitionGroups> for CSharp targets
d5f7bf9b Vs: change comparison to use .ProjectType member always as first comparator

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !988
2017-06-26 10:45:11 -04:00
Kitware Robot 581fda598c CMake Nightly Date Stamp 2017-06-26 00:01:04 -04:00
Kitware Robot 78f879f418 CMake Nightly Date Stamp 2017-06-25 00:01:04 -04:00
Kitware Robot 2731edf978 CMake Nightly Date Stamp 2017-06-24 00:01:04 -04:00
Nils Gladitz 5801751709 Ninja: Fix generated command lines for cmake_symlink_* on Windows
CMake generates multiple commands cojoined with &&.
On Windows this only works when executing the commands through
the Windows shell.
2017-06-23 10:58:39 +02:00
Kitware Robot 4c7caf15e4 CMake Nightly Date Stamp 2017-06-23 00:01:06 -04:00
Michael Stürmer ec409a116f Vs: fix CSharp custom command by introducing inline MSBuild <Targets>s
The custom command implementation is based on the Microsoft support article:

https://docs.microsoft.com/en-us/visualstudio/msbuild/how-to-extend-the-visual-studio-build-process

Fixes: #16960
2017-06-22 21:40:48 +02:00
Michael Stürmer dcdab5cf23 Vs: factor out computation of <Link> tag for CSharp source files 2017-06-22 21:39:37 +02:00
Michael Stürmer 0a8f469af9 Vs: refactor WriteCustomRule for preparation of CSharp support 2017-06-22 16:52:37 +02:00
Michael Stürmer 54d42ce728 Vs: disable unnecessary <ItemDefinitionGroups> for CSharp targets 2017-06-22 16:51:44 +02:00
Michael Stürmer d5f7bf9b2e Vs: change comparison to use .ProjectType member always as first comparator 2017-06-22 16:49:24 +02:00
Brad King 8fe54172fc CMake 3.9.0-rc4 2017-06-22 10:15:07 -04:00
Brad King 426c83cf8f Merge topic 'vs-rc-flags'
974f4333 VS: Fix support for rc /nologo flag in per-source COMPILE_FLAGS

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !998
2017-06-22 10:13:39 -04:00
Brad King 396b618c52 Merge topic 'vs-cuda-fix-flags'
3b754215 VS: Improve workaround for CUDA -Xcompiler placement bug
f2059585 VS: Fix target_compile_options for CUDA

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !996
2017-06-22 10:04:37 -04:00
Brad King 9f3bf3cb9d Merge topic 'vs_csharp_link_to_managed_cxx'
51865fc6 Vs: allow CSharp targets to be linked to CXX targets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !993
2017-06-22 09:58:28 -04:00
Brad King c8ee5dbc0c Merge branch 'vs-rc-flags' into release-3.9 2017-06-22 09:52:28 -04:00
Brad King 974f43338b VS: Fix support for rc /nologo flag in per-source COMPILE_FLAGS
Since commit v3.9.0-rc1~160^2 (VS: Use tool-specific flag table for
COMPILE_FLAGS parsing, 2017-05-03) we now correctly use the `rc` flag
table to process the COMPILE_FLAGS flags of `.rc` source files instead
of incorrectly using the `cl` flag table as before.  However, our `rc`
flag table is not complete.  The `/nologo` flag was working before only
by accident because the `cl` flag table entry for it happened to match.
Add the proper entry to the `rc` flag table.

Fixes: #16991
2017-06-22 09:45:42 -04:00
Pavel Solodovnikov d44bd1c25f include_guard: implement new command 2017-06-22 10:53:42 +03:00
Kitware Robot 1218731a2a CMake Nightly Date Stamp 2017-06-22 00:01:06 -04:00