Use `cmake_host_system_information` to query the VS Installer tool for
the locations of VS versions since VS 2017 does not provide registry
entries anymore. Add a loop to simplify addition of future versions.
The fix in commit v3.8.1~4^2 (source_group: Fix TREE with root that is
not current source dir, 2017-04-20) accidentally broke support for
specifying paths relative to the source directory. Fix it and add a
test covering the case.
While at it, fix a typo in a variable name.
Fixes: #16876
Since commit v3.8.0-rc1~132^2 (FindOpenSSL: Check that both CRYPTO and
SSL libraries are present, 2017-01-03) we require both crypto and ssl
libraries to be present. This makes sense because `OPENSSL_LIBRARIES`
lists both and breaks when one is not found. However, prior to that
fix we supported finding only the crypto library and using it through
the imported target. Drop the requirement for ssl to restore support
for using crypto alone.
Later this module should be taught to support the `COMPONENTS` argument
of `find_package`.
Fixes: #16882
The fix in commit v3.8.0-rc1~257^2~1 (FindDevIL: fail properly when
library is not found, 2016-11-24) removed the previously-provided
`IL_FOUND` result variable. Set it for compatibility and update the
documentation to mention the new variable.
Fixes: #16881
The detection logic added by commit v3.8.0-rc2~14^2 (VS2017: If Win 8.1
SDK is not available, use Win 10 SDK, 2017-02-20) was incomplete. It is
possible for the Win 8.1 SDK registry entry to exist, and even the
directory, but the header files to not actually be installed. Teach
`cmGlobalVisualStudio15Generator::IsWin81SDKInstalled` to verify that
the `windows.h` header actually exists in the SDK directory. We do this
in `cmGlobalVisualStudio14Generator::GetWindows10SDKVersion` for the
Windows 10 SDK already.
Fixes: #16811
This is to permit VS2017 to make use of the vc141 suffix or
fall back to the compatible vc140 to use Boost libraries built
with VS2015.
Cherry picked from commit 3ca6f70f8b
plus a fixup from commit 6115875bf0
for backport to CMake 3.8.
The braces around project reference GUIDs for vcxproj projects were
apparently optional in the past, but Visual Studio 2017 is more strict,
displaying a warning, and not displaying project reference properties
unless the braces are present.
Fixes: #16820
Since commit v3.8.0-rc1~136^2 (FindBoost: Search official location of
prebuilt binaries on Windows, 2016-12-21) we pass input paths through
`_Boost_UPDATE_WINDOWS_LIBRARY_SEARCH_DIRS_WITH_PREBUILT_PATHS` in more
places than before. This broke tolerance of backslashes in paths
provided by the user due to the macro argument re-parsing. Turn
`_Boost_UPDATE_WINDOWS_LIBRARY_SEARCH_DIRS_WITH_PREBUILT_PATHS` into a
function instead of macro to avoid re-parsing of macro arguments.
Fixes: #16816
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.
Changes:
- Fix install script template (*.qs.in) to register on all platforms;
- Add patch version numter to display name ("CMake X.Y" -> "CMake X.Y.Z").
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.