fee01194 VS: Add an environment variable for the Windows 10 kits directory
b80c6d12 VS: Refactor Win 10 Kits root detection to support multiple roots
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !696
7f8b93ab CheckSymbolExists: Document that intrinsics may not be detected
91233d56 CheckSymbolExists: Format documentation
b416d3e6 CheckSymbolExists: Convert docs to bracket comment syntax
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !695
Define a `CMAKE_WINDOWS_KITS_10_DIR` environment variable to allow
users to tell CMake about a custom Windows 10 SDK directory. We
choose to make this an environment variable rather than a CMake
variable or cache entry because:
* Using a custom directory also requires custom external MSBuild
configuration. Therefore users are already configuring a
custom environment.
* The custom directory must be set consistently in all parts of
a build including nested projects. An environment variable
avoids requiring users to thread the setting into nested builds.
Fixes: #16743
It is quite often the project description has used in a real world software.
Examples include:
* part of a help screen of the application
* builtin resources (`*.rc` files, data for "About" dialog of a GUI app, & etc)
* most generators for CPack can use it
* it could be used by documentary software (Doxygen, Sphinx) which is usually
integrated to CMake based projects via `add_custom_target()`
Now `project()` call learned an optional `DESCRIPTION` parameter with a
short string describing a project. Being specified, it would set the
`PROJECT_DESCRIPTION` variable which could be used in `configure_file()`
or whatever user wants. Also `PROJECT_DESCRIPTION` is a default value
for `CPACK_PACKAGE_DESCRIPTION_SUMMARY`.
Every desktop application should be HiDPI ready in present.
Based on information from Qt documentation enabling properties in
`Info.plist` is sufficient to activate this feature.
Newer versions of `qmake` do it.
Signed-off-by: Ľubomír Carik <Lubomir.Carik@gmail.com>
These were added by commit v3.8.0-rc4~4^2~1 (RC: Add missing
CMAKE_RC_FLAGS_<CONFIG> entries to cache, 2017-03-28) and should be
advanced as they are for other languages.
As of 3.6.1 Python (only version tested in this case), installing 32-bit
version on 64-bit windows has a slightly different registry key path.
`-32` is appended to the end of the version number in the path. Also
added a few more registry path guesses based on 64-bit version of
Python.
Also the module now checks if the host is WIN32 instead of the target,
which is required if you are cross compiling.
Latest wxWidgets git master version and the upcoming 3.1.1 release requires
linking with shlwapi and version DLLs. As this does no harm when using the
previous versions, just do it unconditionally.
Changes in commit 3ca6f70f (FindBoost: Allow testing for multiple
compiler suffixes, 2017-03-28) accidentally left a `set()` instead of a
`list(APPEND)` while constructing `_boost_RELEASE_NAMES`. Fix the logic
to match what was done for `_boost_DEBUG_NAMES`. Otherwise we drop some
of the candidate names.
Use the `GENERATOR_IS_MULTI_CONFIG` global property to reliably
detect multi-config generators regardless of what variables the
project or user have set.
This reverts commit 09475c29 (CPack/NSIS: Sign the uninstaller,
2017-03-01) and follow-up commit e1ee7b43 (CPack/NSIS: Avoid a race
condition when generating the installer, 2017-03-22). The signing
implementation does not work on Linux for a couple reasons:
* The script tries to run the temporary uninstaller executable,
but of course this cannot be done except on a Windows host.
* The `${NSISDIR}\makensis` file does not exist because `makensis`
is installed elsewhere.
The result is that existing package configurations can break on Linux.
For example, the CPackComponents test fails.
Revert the feature until an alternative implementation approach can be
found.
This adds the option CUDA_LINK_LIBRARIES_KEYWORD which can be set to PRIVATE,
PUBLIC, or INTERFACE or left empty (the default) to use the old form of
target_link_libraries internally in FindCUDA macros.
Fixes: #16772
Fix the case when the tag name to be checked out also happens to match a
path name. Unfortunately we cannot do this for Git versions prior to
1.8.5 because they do not "do what I mean" to checkout remote branches
when the `--` argument is given.
Fixes: #16678
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.