Commit Graph

36693 Commits

Author SHA1 Message Date
Brad King
f973d49ab9 Merge topic 'vs-link-guard-cf'
82a5c2c6 VS: Fix support for '/guard:cf' linker flag

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1018
2017-07-05 10:11:21 -04:00
Brad King
a57b353750 Merge topic 'autogen-header-skip'
83d8acee Autogen: Check .moc header name against SKIP list

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1017
2017-07-05 10:11:00 -04:00
Brad King
ef31812ede Merge branch 'autogen-header-skip' into release-3.9 2017-07-05 09:42:15 -04:00
Olender, Sebastian D
d1713d8bc5 VS: connect /Y- compiler option with "Not Using Precompiled Headers"
The change allows to selectively disable PrecompiledHeaders.
Despite the `$(VCTargetsPath)/1033/cl.xml` contains an empty value for switch,
for effectively turn off setting need to use /Y- option as described on msdn:
https://msdn.microsoft.com/en-us/library/1hy7a92h.aspx
2017-07-05 10:58:04 +02:00
Kitware Robot
cdb43f1c88 CMake Nightly Date Stamp 2017-07-05 00:01:08 -04:00
Sylvain Joubert
58f4744821 configure_file: Add support for indented cmakedefine
Optional spaces and/or tabs are now understood between the '#' character
and the 'cmakedefine'/'cmakedefine01' words. This indentation is
preserved in the output lines.

Fixes: #13037
2017-07-04 12:00:02 +02:00
Kitware Robot
74112c8da1 CMake Nightly Date Stamp 2017-07-04 00:01:04 -04:00
Kitware Robot
ec64410078 CMake Nightly Date Stamp 2017-07-03 00:01:08 -04:00
Sebastian Holtermann
251bcbed72 Autogen: Continue search for FOO_p.h when FOO.h was found 2017-07-02 22:54:35 +02:00
Kitware Robot
43fc13f825 CMake Nightly Date Stamp 2017-07-02 00:01:04 -04:00
Kitware Robot
0dddf85b6d CMake Nightly Date Stamp 2017-07-01 00:01:06 -04:00
Sebastian Holtermann
83d8aceeb3 Autogen: Check .moc header name against SKIP list
When encountering an #include "FOO.moc" statement where
FOO.hpp was chosen over FOO.cpp as the moc source, the
FOO.hpp name was not checked against the moc SKIP list.
2017-06-30 12:53:24 -04:00
Brad King
2086003145 Merge branch 'vs-link-guard-cf' into release-3.9 2017-06-30 10:57:55 -04:00
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
c705f0af63 Merge branch 'release-3.9' 2017-06-30 10:51:16 -04:00
Brad King
b6cbbbe129 Merge topic 'server-mode-protocol-version-docs'
ab533e48 Help: Document server-mode protocol versions more clearly

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1015
2017-06-30 10:32:22 -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
bcca01d8ad Merge topic 'FindDoxygen-project-in-subdir'
97a9a356 FindDoxygen: Use a stable reference to the location of global resources

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1014
2017-06-30 10:17:29 -04:00
Brad King
d3234a8a48 Merge branch 'FindDoxygen-project-in-subdir' into release-3.9 2017-06-30 10:16:35 -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
Robert Dailey
97a9a35607 FindDoxygen: Use a stable reference to the location of global resources
FindDoxygen generates some files based on the version of Doxygen whose
content will not vary across a project and are therefore a global
resource that can be shared by all calls to `find_package(Doxygen)` and
to `doxygen_add_docs`.  We currently use `${PROJECT_BINARY_DIR}` to
reference their location, but this is not stable because `project()`
calls in a subdirectory can change it.  Use `${CMAKE_BINARY_DIR}`
instead.

Reviewed-by: Craig Scott <craig.scott@crascit.com>
Fixes: #17022
2017-06-29 13:39:26 -05:00
Norbert Lange
d8e6cd9ed8 IAR: Improve support for IAR ARM Compiler
Make the implementation for this compiler more complete.

IAR has multiple C++ modes, historically they were reduced c++ versions
for embedded that gradually improved to the full standard (which can be
reduced again by e.g. disabling rtti and exceptions).  The new
implementation picks the best available, but the c++ mode can also be
overridden by defining `CMAKE_IAR_CXX_FLAG`.

Add C/C++ standard flags so that all modes up to and including the last
supported standard are defined.

Fixes: #16826
2017-06-29 13:25:58 -04:00
Norbert Lange
0b1a2876c8 Add a CMAKE_<LANG>_COMPILER_ARCHITECTURE_ID variable
Compilers such as MSVC and IAR may have variants that target different
architectures.  We have been using a `MSVC_<LANG>_ARCHITECTURE_ID`
variable to hold this information for MSVC.  Add an alternative with a
more general name (later we can port MSVC to it too).

This additional information may be needed to generate proper invocations
of the compiler based on its architecture variant.
2017-06-29 13:25:57 -04:00
Norbert Lange
fea7d69dde Store CMAKE_ASM_COMPILER_VERSION persistently
We already do this for other languages like C and CXX.
2017-06-29 13:25:57 -04:00
Norbert Lange
d2a8b5cea6 CMakeDetermineASMCompiler: Fix small copy-paste mistake
GNU is not a vendor of IAR.
2017-06-29 13:25:57 -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
Brad King
a9ab7d5f1b Merge branch 'release-3.9' 2017-06-29 10:26:19 -04:00
Tobias Hunger
ab533e4851 Help: Document server-mode protocol versions more clearly 2017-06-29 09:58:49 -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
Gregor Jasny
ff3498e76b XCTest: Speed up test by only enabling C language 2017-06-28 22:00:36 +02:00
Gregor Jasny
610d2fcec0 XCTest: Use bundle specific generator expressions 2017-06-28 21:59:48 +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
Brad King
594b0f80a8 Merge branch 'vs-link-debug-flags' into release-3.9 2017-06-28 08:58:19 -04: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
e40e8f5c42 Merge topic 'clang-cl-no-std'
c67bb5ba Clang: Do not add '-std=' options when simulating MSVC

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !982
2017-06-28 08:55:12 -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
Brad King
b425ef07ff Merge topic 'curl-haiku'
e7936751 curl: Fix build on Haiku

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1006
2017-06-28 08:45:08 -04:00