Detect x32-abi through CMakeCompilerABI infrastruture and use this
information at runtime to determine the correct library paths with
`FIND_LIBRARY_USE_LIBX32_PATHS`.
Fixes: #15994
2186b323 FindHDF5: initialize HDF5_DEFINITIONS when using hdf5-config.cmake
16f1dd0d FindHDF5: document HDF5_<LANG>_DEFINITIONS
b2de6da2 FindHDF5: use import libraries when using hdf5-config.cmake on Windows
003c9138 FindHDF5: do not cache library locations when using hdf5-config.cmake
bf67fff0 FindHDF5: recognize hdf5:: prefix when using hdf5-config.cmake
e629be4a FindHDF5: fix typo in comment
1c7a9119 FindHDF5: remove mark_as_advanced for non-cached variables
8250a520 FindHDF5: add HDF5_FIND_DEBUG variable to get debugging output
4b847f12 FindHDF5: hide HDF5_DIR if HDF5 was found in another way
54a48c67 Xcode: Use proper buildable name for schema
f4977d05 Xcode: Select executable target for execution in schema
7202db5d Xcode: Fix schema container location calculation
59950821 Xcode: Do not autocreate schemes
6a54d28e Xcode: Use proper indentation for schemes
Add a new `CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX` variable to allow use
of a custom suffix on `lib` directory names. This is a more general
option than that added by commit v3.7.0-rc1~504^2 (Teach find_library
and find_package to search lib32 paths, 2016-06-10). It allows the find
path to be more deterministic on custom setups.
See discussion in #10287 and #15994.
The `LOCATION` of imported shared libraries on Windows is that of the
`.dll`. Use the import library instead to get the `.lib` to be linked.
Fixes: #16534
The `FIND_LIBRARY_USE_LIB<arch>_PATHS` global properties ask
`find_library` to look in `lib<arch>` directories automatically before
corresponding `lib` directories. However, if `lib<arch>` is just a
symlink to `lib` (or vice-versa) then we should skip adding the
`lib<arch>` path. Such symlinks typically only exist to satisfy
software that expects the `lib<arch>` path to be available.
Fixes: #16687
Previously bindexplib discarded read-only non-function symbols even in
executable/code sections, but in some specific cases they could still mark
functions.
An example is provided by nop.asm in the AuoExportDll test, which exports
a function only marked by a label. This symbol can be used from C/C++
code, but without this change it would result in an unresolved external
symbol when built as a DLL on Windows.