Commit Graph

7432 Commits

Author SHA1 Message Date
Brad King
c0323cbf5f Merge topic 'vs-custom-kits-dir'
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
2017-04-17 10:29:15 -04:00
Brad King
0d928d2fed Merge topic 'CheckSymbolExists-update-docs'
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
2017-04-13 08:14:41 -04:00
Brad King
2cb98329f1 Merge topic 'project-description'
3b484871 project: Add `DESCRIPTION` parameter

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !679
2017-04-13 08:14:23 -04:00
Brad King
fee011946e VS: Add an environment variable for the Windows 10 kits directory
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
2017-04-12 10:57:05 -04:00
Brad King
7f8b93ab0a CheckSymbolExists: Document that intrinsics may not be detected
Fixes: #16794
2017-04-12 09:33:03 -04:00
Brad King
91233d563b CheckSymbolExists: Format documentation 2017-04-12 09:31:37 -04:00
Brad King
b416d3e696 CheckSymbolExists: Convert docs to bracket comment syntax 2017-04-12 09:25:46 -04:00
Brad King
6f7f567eee Merge topic 'macos-hidpi-qt-dialog'
d9140305 macOS: Enable Hi-DPI support in applications by default

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !682
2017-04-12 09:03:50 -04:00
Alex Turbov
3b4848717a project: Add DESCRIPTION parameter
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`.
2017-04-11 10:17:00 -04:00
Brad King
85d2434826 Merge topic 'FindPythonInterp-3.6-windows'
9d15d3c7 FindPythonInterp: Add `-32` and `-64` registry entry variants

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !675
2017-04-11 10:11:42 -04:00
Ľubomír Carik
d914030507 macOS: Enable Hi-DPI support in applications by default
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>
2017-04-11 09:49:12 -04:00
Brad King
dafddda479 Merge topic 'vs-rc-defines'
89b92a98 RC: Mark CMAKE_RC_FLAGS_<CONFIG> cache entries as advanced

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !685
2017-04-10 11:14:35 -04:00
Brad King
89b92a98a5 RC: Mark CMAKE_RC_FLAGS_<CONFIG> cache entries as advanced
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.
2017-04-10 11:07:14 -04:00
Robert Dailey
9d15d3c748 FindPythonInterp: Add -32 and -64 registry entry variants
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.
2017-04-10 09:47:04 -04:00
Brad King
730a548055 Merge topic 'FindwxWidgets-new-syslibs'
ae4b3b70 FindwxWidgets: link with the new required libs under MSW

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !676
2017-04-10 09:42:53 -04:00
Vadim Zeitlin
ae4b3b7072 FindwxWidgets: link with the new required libs under MSW
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.
2017-04-07 23:50:55 +02:00
Brad King
b8fc447c1d Merge topic 'multi-config-no-build-type'
8187b884 Do not initialize CMAKE_BUILD_TYPE on multi-config generators

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !666
2017-04-07 09:00:21 -04:00
yume todo
6115875bf0 FindBoost: Fix release name candidate list construction
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.
2017-04-06 14:03:26 -04:00
Bastien Schatt
8187b88471 Do not initialize CMAKE_BUILD_TYPE on multi-config generators
Use the `GENERATOR_IS_MULTI_CONFIG` global property to reliably
detect multi-config generators regardless of what variables the
project or user have set.
2017-04-06 09:44:34 -04:00
Brad King
fe263c9882 Merge topic 'cpack-wix-root'
fde8dfa4 CPackWIX: Add documentation for CPACK_WIX_ROOT
fb22ba63 CPackWIX: Fix variable documentation indentations

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !665
2017-04-05 10:17:47 -04:00
Brad King
0d17a82b0b Merge topic 'revert-cpack_nsis_sign_uninstaller'
1b1ad2a2 Revert "CPack/NSIS: Sign the uninstaller"

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !597
2017-04-05 10:17:21 -04:00
Brad King
8e6014f51d Merge topic 'FindCUDA-tll-keywords'
9f41bfd7 FindCUDA: Add option to use modern form of target_link_libraries

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !663
2017-04-05 10:16:38 -04:00
Brad King
6e9dc960c5 Merge topic 'CheckIPOSupported-Fortran'
87199ea6 CheckIPOSupported: Add Fortran support
c92fd256 CheckIPOSupported: Move '_CMakeLTOTest-*' under 'CMakeFiles'

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !655
2017-04-05 10:16:00 -04:00
Brad King
820af5f797 Merge topic 'lang-specific-binutils'
73934188 Rename CMAKE_GCC_{AR,RANLIB} to CMAKE_LANG_COMPILER_{AR,RANLIB}

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !656
2017-04-05 10:15:40 -04:00
Nils Gladitz
fde8dfa417 CPackWIX: Add documentation for CPACK_WIX_ROOT
Fixes: #16774
2017-04-04 21:17:15 +02:00
Nils Gladitz
fb22ba6327 CPackWIX: Fix variable documentation indentations 2017-04-04 21:17:15 +02:00
Brad King
1b1ad2a2f4 Revert "CPack/NSIS: Sign the uninstaller"
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.
2017-04-04 13:41:54 -04:00
Taylor Braun-Jones
9f41bfd7b9 FindCUDA: Add option to use modern form of target_link_libraries
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
2017-04-04 09:43:05 -04:00
Ruslan Baratov
87199ea66b CheckIPOSupported: Add Fortran support 2017-04-04 09:35:39 -04:00
Ruslan Baratov
c92fd25661 CheckIPOSupported: Move '_CMakeLTOTest-*' under 'CMakeFiles' 2017-04-04 09:35:31 -04:00
Brad King
1180fdb656 Merge topic 'ExternalProject-checkout-clarify'
12a78130 ExternalProject: Run `git checkout` with `--` to clarify arguments

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !660
2017-04-04 09:27:54 -04:00
Brad King
fb3f6fd3fe Merge topic 'FindBoost-vs-toolset-fallback'
862482df FindBoost: Support prebuilt Windows binaries from SourceForge
3ca6f70f FindBoost: Allow testing for multiple compiler suffixes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !639
2017-04-04 09:20:16 -04:00
Brad King
d34daca368 Merge topic 'mac-implicit-link-no-lto-flag'
53f17333 CMakeParseImplicitLinkInfo: Ignore ld -lto_library flag

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !658
2017-04-04 09:18:39 -04:00
Brad King
c792926b35 Merge topic 'xcode-current-arch'
a1221905 Xcode: Detect CURRENT_ARCH for use by generator

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !648
2017-04-04 09:04:17 -04:00
Brad King
12a781301c ExternalProject: Run git checkout with -- to clarify arguments
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
2017-04-03 14:34:35 -04:00
Ruslan Baratov
7393418844 Rename CMAKE_GCC_{AR,RANLIB} to CMAKE_LANG_COMPILER_{AR,RANLIB}
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.
2017-04-03 14:10:50 -04:00
Brad King
585f94fe69 Merge branch 'mac-implicit-link-no-lto-flag' into release 2017-04-03 13:24:03 -04:00
Brad King
53f17333f8 CMakeParseImplicitLinkInfo: Ignore ld -lto_library flag
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
2017-04-03 13:23:31 -04:00
Brad King
8bc545c24c Merge topic 'ExternalProject-fix-remote-branch'
6f3838c0 ExternalProject: Fix regression in GIT_TAG with remote branch name

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !649
2017-04-03 09:26:53 -04:00
Brad King
7c93f6f21d Merge topic 'intel-compile-features'
4af0c9da Features: Update features for Intel C++ 17.0.2 on UNIX

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !652
2017-04-03 09:25:04 -04:00
Brad King
b1f35f1ffd Merge branch 'intel-compile-features' into release 2017-03-31 14:29:25 -04:00
Brad King
4af0c9daf4 Features: Update features for Intel C++ 17.0.2 on UNIX
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.
2017-03-31 14:29:18 -04:00
Brad King
6f3838c034 ExternalProject: Fix regression in GIT_TAG with remote branch name
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
2017-03-31 12:59:53 -04:00
Brad King
a122190509 Xcode: Detect CURRENT_ARCH for use by generator
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.
2017-03-31 11:26:08 -04:00
Brad King
8772fc81c4 Merge topic 'ipo-policy-CMP0069'
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
2017-03-31 10:38:08 -04:00
Ruslan Baratov
dfa8263f4b Implement interprocedural optimization for GNU compilers
Honor the `INTERPROCEDURAL_OPTIMIZATION` target property for GNU
compilers by activating their link-time-optimization (LTO) flags.
2017-03-30 14:56:52 -04:00
Ruslan Baratov
1588a577d1 Add policy CMP0069 to enforce INTERPROCEDURAL_OPTIMIZATION
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.
2017-03-30 14:56:46 -04:00
Ruslan Baratov
e05835c35b CheckIPOSupported: Visual Studio and Xcode generators do not support IPO 2017-03-30 10:16:10 -04:00
Brad King
cb0f3cbb8e Merge topic '10749-aix-version'
01a8a201 AIX: Properly detect host system version

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !645
2017-03-30 09:05:06 -04:00
Brad King
a820327d1a Merge topic 'sdcc-compiler-id'
5695558f SDCC: Fix identification of current sdcc compiler

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !644
2017-03-30 08:59:05 -04:00