The CSharp compiler for VS 2017 has moved from `MSBuildTools` to
`RoslynTargets`. Account for both locations giving priority to the
`MSBuildTools` location.
This fixes a regression introduced by commit v3.3.0-rc1~5^2~2
(FindBoost: Search for debug and release libraries separately,
2015-01-26). The `_Boost_CHANGE_LIBDIR` variable was split into
`_Boost_CHANGE_LIBDIR_{DEBUG,RELEASE}` but one usage site was not
updated.
560574b0 FeatureSummary: Update release notes
3cfde818 FeatureSummary: Refactor to use global properties for package types
f0165eb6 FeatureSummary: Allow lists of dependencies in ADD_FEATURE_INFO
9da7bf08 FeatureSummary: Add QUIET_ON_EMPTY option to feature_summary
4cf4aceb FeatureSummary: Add unit tests
614a97a5 FeatureSummary: Do not force OPTIONAL type in SET_PACKAGE_PROPERTIES
65a0bfd8 FeatureSummary: Add deprecation warnings to deprecated commands
4da3cae9 FeatureSummary: Clean printed output
These new global properties were added:
* FeatureSummary_PKG_TYPES: Package types accepted by FeatureSummary
(default REQUIRED RECOMMENDED OPTIONAL RUNTIME).
* FeatureSummary_REQUIRED_PKG_TYPES: Package types that will cause
FeatureSummary to abort when called with
FATAL_ON_MISSING_REQUIRED_PACKAGES and a package in these categories
is missing (default REQUIRED).
* FeatureSummary_DEFAULT_PKG_TYPE: Default package type assigned when
not explicitly assigned by the user (default OPTIONAL).
This allows to add and remove new package types that can be printed
selectively using the "WHAT" argument.
The OPTIONAL type is used anyway as default when the type is not set
Since RUNTIME < OPTIONAL, forcing it here forces the user to set
"RUNTIME" at the first SET_PACKAGE_PROPERTIES, otherwise it is
impossible to set it later.
Without this it is impossible, for example, to add package information
(URL and DESCRIPTION) in the FindPackage file, but allow the package
to be RUNTIME.
At least the scratchbox compiler for the N900, which basically is a gcc 4.2,
sets only __GNUG__ in C++ mode, but not __GNUC__. It does indeed set
__GNUC_MINOR__ and __GNUC_PATCHLEVEL__. Extend the compiler detection code for
GNU compilers in C++ mode to look at __GNUG__ in case __GNUC__ is absent.
Currently, once pkg_check_modules succeeds, it will never call
_pkg_check_modules_internal again. That means that if the parameters
to pkg_check_modules are changed, cmake will be called to reconfigure,
but nothing will change. This change is to store the full string of
arguments to pkg_check_modules and override the FOUND optimization so
that the arguments are reevaluated when modified.
The cpack_ifw_configure_component_group command gained options:
- DEPENDS.
The cpack_ifw_configure_component and
cpack_ifw_configure_component_group commands gained options:
- REQUIRES_ADMIN_RIGHTS;
- UPDATE_TEXT;
- SORTING_PRIORITY; # New name for PRIORITY
- DEPENDENCIES; # Alias for DEPENDS
- AUTO_DEPEND_ON;
- TRANSLATIONS.
For both commands PRIORITY option now is depreceted. Please
use SORTING_PRIORITY instead.
The NDK's `build/core/definitions.mk` file adds compiler flags:
-isystem $$(call host-path,$$(SYSROOT_INC)/usr/include)
This passes the system include directory explicitly even though it is
implied by `--sysroot=`. The explicit flag places the directory
earlier in the include path than the sysroot-default one would be.
Teach CMake to add this include directory at the end of the standard
include path for Android. Otherwise the toolchain's `include-fixed/`
directory may replace system headers with "fixed" copies that are not
from the same API version.
Closes: #16536
The NDK's own build files:
<ndk>/build/tools/build-cxx-stl.sh
<ndk>/build/cmake/android.toolchain.cmake
for the `c++_static` and `c++_shared` build types add the
`<ndk>/sources/android/support/include` include directory
between the two `<ndk>/sources/cxx-stl/llvm-libc++*` directories.
Re-order our own include directory generation to match.
Issue: #16536
In qt4_create_translation() use file(GENERATE ...) instead of
file(WRITE ...). This also removes a possible CMP0058 warning
because file(GENERATE) tells the Ninja generator about the files
it provides.
Fixes: #16518
Refactoring in commit v3.6.0-rc1~47^2 (ExternalProject: Re-implement
download logic as a dedicated script, 2016-05-19) accidentally made the
download hash check case-sensitive. The hash comparison is done in hex
strings, so restore case-insensitive comparison since the case of the
hex digits does not matter.
Fixes: #16568
397b8546 VS: added documentation for C# support
a7dd8e66 VS: added support for C# (for Visual Studio 2010, 2012, 2013, 2015)
6fda6005 VS: renamed target property VS_USER_PROPS_CXX to VS_USER_PROPS
Previously we had a two issues when building cuda executables
that required separable compilation. The first was that we didn't
propagate FLAGS causing any -arch / -gencode flags to be dropped, and
secondly generators such as ninja would use the CXX language flags
instead of CUDA when the executable was mixed language.