Commit Graph

33590 Commits

Author SHA1 Message Date
Brad King 369d580937 Features: Record features for Intel Compiler on Windows
Since this compiler always defines `__cplusplus` to `1` we need to use
`_MSC_VER`, `__INTEL_CXX11_MODE__`, and the feature test macro named
`__cpp_aggregate_nsdmi` to detect C++11 and C++14 modes.

With no `-Qstd=` flag this compiler defaults to C++98 plus a subset of
C++11/C++14 features needed to be compatible with MSVC.  We pretend it
is plain C++98 and add a `-Qstd=` flag whenever needed for C++11 or
above features even if they would happen to be available in MSVC-mode.

Closes: #16384
2016-10-27 13:33:10 -04:00
Brad King a5a3642f92 Features: Port Intel CXX features to test macros where possible
The Intel 16 and 17 compilers define feature test macros of the form
`__cpp_<feature>`.  Use them where possible to detect corresponding
features.
2016-10-27 13:28:34 -04:00
Brad King d34ac22fec Features: Unset Intel CXX feature temporaries 2016-10-27 13:28:34 -04:00
Brad King 967dcf36d0 Intel: Remove incorrect C++98 standard compiler flag on Windows
The change in commit 05e05cd2 (Intel: Fix compiler C++98 standard flag
on Windows, 2016-10-26) was wrong.  The Intel C++ Compiler for Windows
does not support either `-Qstd=c++98` or `-Qstd=gnu++98`.  Simply remove
both flags for this compiler and use no options at all to achieve this
mode.

Issue: #16384
2016-10-27 13:28:34 -04:00
Brad King c6c8c24908 Merge topic 'include-what-you-use'
e81c323d Include necessary headers in commands
2016-10-27 11:17:14 -04:00
Brad King 402b133d7b Merge topic 'consoleBuf'
335a29cb Enable Unicode output to Windows consoles
2016-10-27 11:17:12 -04:00
Brad King 8f6fd091b8 Merge topic 'intel-compiler-windows-c++98'
05e05cd2 Intel: Fix compiler C++98 standard flag on Windows
2016-10-27 11:17:09 -04:00
Brad King 6613434376 Merge topic 'intel-17-features'
554b4f90 Features: Record features for Intel C++ 17 on UNIX
2016-10-27 11:17:05 -04:00
Brad King fe03a86eb3 Merge topic 'vs-fix-no-toolset'
0caca40f VS: Fix use of `Windows7.1SDK` 64-bit toolset with VS 2010 Express
2016-10-27 11:17:01 -04:00
Brad King 0caca40fcc VS: Fix use of Windows7.1SDK 64-bit toolset with VS 2010 Express
Refactoring in commit 584ab528 (VS: Add internal API to get platform
toolset as string, 2016-10-18) accidentally changed the semantics of the
original `cmGlobalVisualStudio10Generator::GetPlatformToolset`
implementation to return a pointer to an empty string instead of
`nullptr` when no toolset is configured.  This broke cases that tested
for `nullptr` to detect the lack of any specific toolset, such as the
call in `Find64BitTools`.  Restore the `nullptr` return in this case.
2016-10-27 10:42:36 -04:00
Kitware Robot 5448f0068c CMake Nightly Date Stamp 2016-10-27 00:01:05 -04:00
Brad King 05e05cd2aa Intel: Fix compiler C++98 standard flag on Windows
The Intel C++ Compiler for Windows does not support the `-Qstd=c++98`
flag but does support `-Qstd=gnu++98`.

Issue: #16384
2016-10-26 15:03:53 -04:00
Dāvis Mosāns 335a29cb07 Enable Unicode output to Windows consoles
Use KWSys ConsoleBuf to replace the `streambuf` on `std::cout` and
`std::cerr` so that process output can be encoded correctly for display
in a Windows console.
2016-10-26 17:02:37 +03:00
Brad King fdd0ce915c Merge topic 'vs-toolset-options'
69fc7bf8 VS: Choose flag map based on the toolset name
e2ed9a70 VS: Move toolset flag table lookup to global generator
584ab528 VS: Add internal API to get platform toolset as string
2016-10-26 09:28:19 -04:00
Brad King fa15858a7e Merge topic 'update-kwsys'
51cfba8c Merge branch 'upstream-KWSys' into update-kwsys
53862f04 KWSys 2016-10-23 (b630d2f5)
2016-10-26 09:28:16 -04:00
Brad King 1c8b99ce0b Merge topic 'fix-right-angle-bracket-feature-test'
68e7250a Features: Fix cxx_right_angle_brackets compiler feature test
2016-10-26 09:28:13 -04:00
Brad King 554b4f9010 Features: Record features for Intel C++ 17 on UNIX
Issue: #16384
2016-10-26 09:18:38 -04:00
Daniel Pfeifer e81c323da9 Include necessary headers in commands 2016-10-26 09:02:44 +02:00
Kitware Robot 9d203c0051 CMake Nightly Date Stamp 2016-10-26 00:01:03 -04:00
Alex Wang 68e7250a9f Features: Fix cxx_right_angle_brackets compiler feature test
The clang-format pass in commit v3.6.0-rc1~54^2~1 (Revise C++ coding
style using clang-format, 2016-05-16) changed the template right angle
brackets from `>>` to `> >`, which defeats the purpose of this test.
Change it back and exclude this content from formatting.
2016-10-25 13:38:12 -04:00
Don Olmstead 69fc7bf87d VS: Choose flag map based on the toolset name
MSBuild interprets the `.vcxproj` content based on the `PlatformToolset`
setting, so our reverse mapping needs to be based on that setting too.
For VS 2010 and above, choose the flag map to match the toolset name
rather than the generator VS version.

Issue: #16153
2016-10-25 09:46:21 -04:00
Brad King 584ab5285b VS: Add internal API to get platform toolset as string 2016-10-25 09:19:49 -04:00
Don Olmstead e2ed9a7092 VS: Move toolset flag table lookup to global generator
Move `Get*FlagTable` methods to the global generator and have each VS
generator version pre-populate its default flag table.
2016-10-25 09:19:49 -04:00
Brad King 51cfba8c21 Merge branch 'upstream-KWSys' into update-kwsys
* upstream-KWSys:
  KWSys 2016-10-23 (b630d2f5)
2016-10-25 09:13:48 -04:00
KWSys Upstream 53862f04a0 KWSys 2016-10-23 (b630d2f5)
Code extracted from:

    http://public.kitware.com/KWSys.git

at commit b630d2f5575be7d70c214bfffc57aaf5069c6369 (master).

Upstream Shortlog
-----------------

Dāvis Mosāns (1):
      b630d2f5 ConsoleBuf: Check for actual console with GetConsoleMode
2016-10-25 09:13:46 -04:00
Brad King 2a567c68ce Merge branch 'release' 2016-10-25 09:12:12 -04:00
Brad King c9108c7b81 Merge topic 'cm_unordered_set'
c15dc197 Introduce CM_UNORDERED_SET
2016-10-25 09:09:09 -04:00
Brad King bdc88646c1 Merge topic 'remove-cmobject'
15aa814b Remove cmObject.h and cmTypeMacro.h
2016-10-25 09:09:04 -04:00
Brad King 61758bf4b9 Merge topic 'intel-compile-features-windows'
881585f9 Intel: Fix compiler extension flags on Windows
2016-10-25 09:09:01 -04:00
Brad King 3062b8a046 Merge topic 'st2-fix-regex'
9f1429e2 Sublime: Update generated diagnostic matching expression for MSVC
2016-10-25 09:08:58 -04:00
Brad King 644ff572f7 Merge topic 'android-pic'
4c272adb Android: Link position-independent executables with proper flags
6205f179 Android: Set CMAKE_POSITION_INDEPENDENT_CODE automatically
2016-10-25 09:08:55 -04:00
Brad King 9430125511 Merge topic 'ninja-subdir-binary-dir'
87cc9bfc Merge branch 'backport-ninja-subdir-binary-dir' into ninja-subdir-binary-dir
e983bd32 Ninja: Use binary dir for `$subdir/all` targets
42db2ebc Ninja: Use binary dir for `$subdir/all` targets
2016-10-25 09:08:51 -04:00
Brad King 9a399c27a8 Merge topic 'cmake-server-message-quoting'
9b8dc79c cmake-server: Change message wrapper to avoid ambiguity with content
2016-10-25 09:08:49 -04:00
Kitware Robot c1a520513d CMake Nightly Date Stamp 2016-10-25 00:01:04 -04:00
Daniel Pfeifer c15dc19728 Introduce CM_UNORDERED_SET
Avoid duplicating switch among std::unordered_set, cmsys::hash_set, and
std::set.
2016-10-24 22:34:52 +02:00
Daniel Pfeifer 15aa814b85 Remove cmObject.h and cmTypeMacro.h 2016-10-24 21:49:28 +02:00
Brad King 4ec0329bf1 Merge branch 'cmake-server-message-quoting' into release 2016-10-24 14:36:50 -04:00
Brad King de21e564ed Merge branch 'intel-compile-features-windows' into release 2016-10-24 14:36:46 -04:00
Brad King 9b8dc79cc8 cmake-server: Change message wrapper to avoid ambiguity with content
Change our message wrapper from

    [== CMake Server ==[ ... ]== CMake Server ==]

to

    [== "CMake Server" ==[ ... ]== "CMake Server" ==]

to guarantee that no JSON content can ever contain the ending string
(because it would be encoded as `]== \"CMake Server\" ==]`).
2016-10-24 14:36:13 -04:00
Brad King 881585f975 Intel: Fix compiler extension flags on Windows
The extension flags enabled by commit v3.6.0-rc1~120^2~1 (Features:
Record standard flags for Intel C/C++ on Windows, 2016-04-18) of the
form `-Qstd=gnu++11` are not supported by the Intel C/C++ Compiler for
Windows.  Fall back to using the non-extension form of the flags.

Issue: #16384
2016-10-24 14:29:40 -04:00
Bruno Pedrosa 9f1429e274 Sublime: Update generated diagnostic matching expression for MSVC
Update the generated `file_regex` to match MSVC-style messages in
addition to the GCC-style messages already matched.  Use non-capturing
sub-patterns to tolerate the differences in message formats while still
capturing the four pieces of information in proper group numbers (file
name, line number, column number, message).

Closes: #16375
2016-10-24 14:02:52 -04:00
Brad King 69a7309ceb Merge branch 'android-pic' into release 2016-10-24 13:50:10 -04:00
Brad King 4c272adbe1 Android: Link position-independent executables with proper flags
Add `-fPIE -pie` to the default executable link flags when
`CMAKE_POSITION_INDEPENDENT_CODE` is enabled.  This is required by
Android 16 and above for executables to run on the device.

Closes: #16382
2016-10-24 11:45:18 -04:00
Brad King 6205f1797e Android: Set CMAKE_POSITION_INDEPENDENT_CODE automatically
If the toolchain file or cache does not set this, enable it
automatically based on the Android API version.  Versions 16
and above expect position independent code.

Use the main `CMAKE_POSITION_INDEPENDENT_CODE` setting in favor of
hard-coding `-fpic` or `-fPIC` in the compiler flags for each ABI.
This allows CMake to use `-fpie` or `-fPIE` as needed when sources
are meant for executables, and `-fpic` or `-fPIC` for other sources.
2016-10-24 11:40:53 -04:00
Brad King 6cd02f08c7 Merge branch 'backport-ninja-subdir-binary-dir' into release 2016-10-24 10:31:14 -04:00
Brad King 87cc9bfc3c Merge branch 'backport-ninja-subdir-binary-dir' into ninja-subdir-binary-dir 2016-10-24 10:30:52 -04:00
Alexis Murzeau e983bd326a Ninja: Use binary dir for $subdir/all targets
The targets added by commit v3.6.0-rc1~240^2~2 (Ninja: Add `$subdir/all`
targets, 2016-03-11) use as `$subdir` the relative path from the top of
the source tree to the current source directory.  This is not correct
when using `add_subdirectory(test test_bin)`.  Instead we need to use
the relative path from the top of the binary tree to the current binary
directory as was done for related targets by commit v3.7.0-rc1~268^2
(Ninja: Add `$subdir/{test,install,package}` targets, 2016-08-05).
2016-10-24 10:30:02 -04:00
Brad King f660832999 Merge topic 'doc-cmake-server-typos'
48189697 Help: Fix cmake-server documentation
2016-10-24 10:28:19 -04:00
Brad King 92be048b7f Merge topic 'cmcommand-no-disable'
c401f958 Remove cmCommand::Enabled and all related accessors
2016-10-24 10:20:50 -04:00
Daniel Pfeifer c401f95888 Remove cmCommand::Enabled and all related accessors
Enabled is never set to false.  Remove the member variable and all
related getters and setters.
2016-10-24 10:19:09 -04:00