4956fc26 FindHDF5: fixes for HL when using an imported config
4150048a FindHDF5: unset some variables
9310d008 FindHDF5: for a static imported config, use CONFIG-specific library
fc982844 FindHDF5: fix hdf5-config case with more than one configuration
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1064
If `CMAKE_SYSROOT` is set by the user (e.g. via the toolchain file) then
we do not set `CMAKE_SYSROOT_COMPILE` to our default. Fix our
references to the sysroot's `/usr/include` directory to use
`CMAKE_SYSROOT_COMPILE` only if it is set and else `CMAKE_SYSROOT`.
Fixes: #17096
Set the variable added by commit a2112257 (Add infrastructure to use
language extensions without any standard, 2017-06-29) for IAR. This was
accidentally left out of commit d8e6cd9e (IAR: Improve support for IAR
ARM Compiler, 2017-06-15).
Select a configuration as the first of the following available:
* MAP_IMPORTED_CONFIG_<CONFIG>
* ${CMAKE_BUILD_TYPE}, RELWITHDEBINFO, RELEASE, DEBUG
* First entry in IMPORTED_CONFIGURATIONS
Fixes: #17039
Since commit v3.8.0-rc1~251^2 (UseSWIG: Record generated java files as
custom command outputs, 2016-11-28) the generated `.java` files are
listed as sources in the call to `add_library` by swig_add_library.
They are listed only as the outputs of custom commands and not intended
for compilation as part of the library.
Reported-by: Alan W. Irwin <irwin@beluga.phys.uvic.ca>
In commit a1b38865 (FindLibXml2: Switch to standard module variable
names, 2017-07-11) the cache variable used to store the find_library
result was renamed. This breaks projects that set the old variable name
explicitly. Fix compatibility with such projects by using the old
variable as a default if it is set and the new one is not.
Currently the implementation macro for `check_symbol_exists` is
`_check_symbol_exists`, which impedes CMake users from overriding the
`check_symbol_exists` macro themselves.
- Added clearer structure by grouping the options into logical sections.
- Expanded the details for many of the options.
- Added Examples section to show how to use the various commands.
- Specifically highlighted that the contents of SOURCE_DIR may be lost
if a download method is also provided.
- Updated argument-matching regex to be more robust and account for the
varying leading spaces before keywords in the docs.
- Updated tests to account for slightly changed error messages.
Visual Studio 2015 Update 3 introduced the notion of language standard
levels to MSVC. The language standard level is defined in `_MSVC_LANG`
instead of `__cplusplus`. It also added support for the `-std:c++14`
and `-std:c++latest` flags, although the compiler defaults to its C++14
mode anyway. Visual Studio 2017 Update 3 will introduce support for the
`-std:c++17` flag.
Fixes: #16482
* LIBXML2_INCLUDE_DIR talks about libxml2 itself;
* LIBXML2_INCLUDE_DIRS lists also include directories coming from
libxml2's dependencies and is what libxml2 users should use;
* LIBXML2_LIBRARY talks about libxml2 itself;
* LIBXML2_LIBRARIES is what libxml2 users should link to.
This commit doesn't break existing users of FindLibXml2.cmake,
but provides the way for correct behaviour in future. In particular,
on OpenBSD LIBXML2_INCLUDE_DIR resolves to /usr/local/include/libxml2,
while libiconv (an libxml2 dependency) puts iconv.h
in /usr/local/include, which is not picked up automatically.
The logic added in commit v3.6.0-rc1~30^2 (Add a variable to specify
language-wide system include directories, 2016-05-24) to use
`CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES` incorrectly filters them by
`CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES`. Rather than recognizing
this, commit v3.8.0-rc1~60^2 (Android: Pass sysroot include directory
explicitly, 2017-01-20) worked around the problem by incorrectly
removing `/usr/include` from `CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES`
so it worked in `CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES`.
By not filtering out `/usr/include` from user-specified include
directories, we allow the code
include_directories(${CMAKE_SYSROOT}/usr/include)
to place the include directory too early on the command line.
Fix support for standard include directories to not be filtered by
implicit include directories, and do not remove `/usr/include` from the
list of implicit include directories for Android builds. Add a test
case to verify that an explicit `/usr/include` is ignored in favor
of the standard directory at the end.
Fixes: #17059
This option was added by commit v2.8.12~138^2 (Add
cmake_reset_check_state() macro, 2013-07-28) but has never worked.
Fix the implementation to refer to macro arguments properly (not as
normal variables).
Fixes: #17048