The variables recently added by commit b9d36826 (Add 'CMAKE_GCC_AR' and
'CMAKE_GCC_RANLIB' variables, 2017-03-08) are more appropriately managed
with language-specific names rather than toolchain-specific names.
The `ld` tool in Xcode 8.3 now has a `-lto_library <path>` flag. Ignore
the flag instead of accidentally parsing it as `-l` with `to_library`.
Fixes: #16766
Intel 17.0.2 on UNIX introduced a regression from 17.0.1 in its
definition of `__cpp_constexpr` in `-std=c++14` mode. It incorrectly
defines it as `200704` instead of the expected `201304`. Fix our
feature detection table to account for this.
The change in commit v3.8.0-rc2~7^2 (ExternalProject: Run `git
checkout` with `--` to clarify arguments, 2017-02-24) broke the case of
`GIT_TAG some-remote-branch` because an explicit `--` means that the
preceding argument is a tree-ish instead of a branch. Revert the change
and leave a comment.
Fixes: #16763
During compiler identification, extract the Xcode `CURRENT_ARCH` value
and save it for later use by the Xcode generator in an internal compiler
information variable. This will be useful to know the locations of
object files when only one architecture is built.
dfa8263f Implement interprocedural optimization for GNU compilers
1588a577 Add policy CMP0069 to enforce INTERPROCEDURAL_OPTIMIZATION
a7575700 Refactoring: s,GetFeatureAsBool,IsIPOEnabled,
e05835c3 CheckIPOSupported: Visual Studio and Xcode generators do not support IPO
Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Brad King <brad.king@kitware.com>
Reviewed-by: Nils Gladitz <nilsgladitz@gmail.com>
Merge-request: !568
Previously the `INTERPROCEDURAL_OPTIMIZATION` target property was
honored only for the Intel compiler on Linux and otherwise ignored. In
order to add support for more compilers incrementally without changing
behavior in the future, add a new policy whose NEW behavior enforces the
`INTERPROCEDURAL_OPTIMIZATION` property. Add flags for supported
compilers and otherwise produce an error.
77139e32 Swift: Simplify mixed test case to make it version agnostic
c03141c0 Swift: Default to Swift 3.0 with Xcode 8.3 and later
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !638
CMakeDetermineSystem.cmake uses "uname -r" to get
CMAKE_HOST_SYSTEM_VERSION on AIX. AIX uses "uname -v" for the
major version and "uname -r" for the minor version.
Thanks to Chris Taylor for the suggested patch.
Closes#10749
The sdcc compiler no longer defines the `SDCC` preprocessor macro.
Instead `__SDCC_VERSION_MAJOR` and similar component-wise macros are
defined. Use them instead if defined.
Issue: #16746
In commit v3.8.0-rc1~304^2 (MSVC: Do not define _DEBUG explicitly when
using /MDd, 2016-11-15) we removed the `_DEBUG` preprocessor definition
from MSVC C and C++ flags because the `cl` compiler automatically
defines it in Debug builds anyway. However, the VS generators propagate
C preprocessor definitions to the RC (Windows Resource Compiler) tool.
This means that we used to explicitly define `_DEBUG` for RC debug
builds. Therefore existing project code may expect the definition to be
there even though the `rc` compiler itself does not implicitly define
`_DEBUG` in debug builds.
Add the `_DEBUG` flag to the default `CMAKE_RC_FLAGS_DEBUG` instead
to restore this definition for RC debug builds. This also makes it
available consistently in VS, Ninja, and Makefile generators.
Fixes: #16745
6eb609fd InstallRequiredSystemLibraries: Find VS 2017 redist directory
cf784d9f Add undocumented CMake language means to find VS 2017
082c0375 InstallRequiredSystemLibraries: Split VS 2017 search paths
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !632
Use our undocumented `cmake_host_system_information` query to find the
VS 2017 installation directory by asking the VS installer tool. Then
look relative to that for the redist directory.
Fixes: #16737
d4a693a0 InstallRequiredSystemLibraries: Add support for VS 2017
5ed4e481 InstallRequiredSystemLibraries: Split MFC redist dir variable
dbdb880a InstallRequiredSystemLibraries: Split VS IDE and DLL versions
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !616
VS 2017 (VS 15) places its redist DLLs in `Microsoft.VC150.*`
directories but still uses version number `140` in the DLL names. The
redist directories now have version numbers in their name, and the MSVC
and MFC runtime DLLs may be in directories with different versions.
Fill out our logic to handle this.
For now assume we are given the `MSVC_REDIST_DIR` value as a cache
entry. Unfortunately we cannot yet find the VS 2017 MSVC redist
directory automatically since there is no registry entry for the VS
installation. Later we will have to use `cmVSSetupHelper` for this.
Issue: #16735
a2aad448 InstallRequiredSystemLibraries: Drop version from variable names
16eb58d5 InstallRequiredSystemLibraries: Refactor to avoid macros
a259e8db InstallRequiredSystemLibraries: Use `MSVC_VERSION` instead of `MSVC##`
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !612