4597396784 Apple: Use include_guard() within compiler config
e95b3fd9bb Apple: Use CMAKE_EFFECTIVE_SYSTEM_NAME to share compiler info
84f9f63fcc Modules: Introduce CMAKE_EFFECTIVE_SYSTEM_NAME to lookup compiler info
9fa0f2eb56 CMakeFindPackageMode: Perform platform-specific initialization
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1964
Apple platforms macOS, iOS, tvOS, and watchOS can all share the same
compiler information. Rename `Darwin-*` modules to `Apple-*` and load
them all through `CMAKE_EFFECTIVE_SYSTEM_NAME`. This saves duplication
of 4 * 21 compiler information modules.
Issue: #17870
Create a `CMAKE_EFFECTIVE_SYSTEM_NAME` variable to use for looking
up compiler information modules instead of using `CMAKE_SYSTEM_NAME`
directly. This will allow multiple platforms to share the same set
of compiler information modules without spelling out all of them.
Issue: #17870
Since commit v3.1.0-rc1~565^2~3 (Add platform-specific initialization
step when enabling languages, 2014-04-29) the main enable-language logic
includes the `CMakeSystemSpecificInitialize` module to perform
platform-specific initialization based on `CMAKE_SYSTEM_NAME`. This
should be done during `cmake --find-package` mode too.
The `armeabi` ABI is no longer available, so we can no longer use it by
default unconditionally. Instead detect all available ABIs and choose
the oldest arm ABI that is available.
Also update the test suite to account for the lack of `armeabi` support
and pass as of Android NDK r17-beta2.
The change in commit v3.11.0-rc1~334^2 (FindOpenMP: Use NO_DEFAULT_PATH
where appropriate, 2017-11-15) broke partial support for Intel on Windows.
Since `OpenMP_${LANG}_IMPLICIT_LINK_DIRS` is empty for this compiler
the `find_library` call without `NO_DEFAULT_PATH` worked accidentally
in environments with the needed libraries in the search path already.
Fix support for Intel on Windows by simply removing our explicit search
for the `libiomp5md` library. In cases that it is needed, the compiler
already inserts metadata in `.obj` files to tell the MSVC linker to use
the library.
Suggested-by: Christian Pfeiffer <cpfeiffer@live.de>
Fixes: #17910
Extend the fix in commit v3.9.6~1^2 (Restore exclusion of "gcc_eh" from
implicit link libraries, 2017-11-07) to also exclude `gcc_eh` libraries
referenced by absolute path to the library file.
Issue: #17436
Add `AL` and `OpenAL` to the `PATH_SUFFIXES` so that they are searched
within the standard system include directories.
We already have `include/AL`, `include/OpenAL`, and `include` to help
out within the locations specified by `PATHS`, though it is unclear why
it was done this way instead of adding the suffixes to all the `PATHS`
explicitly.
3f82c5904d Clang: Add standard flags support when simulating MSVC
8381bc12ad Clang: Avoid extra C++ feature detection when simulating MSVC
6cddf7ba32 Clang: Refactor standard flags logic when simulating MSVC
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1906
When trying to match full path libraries on the mpicc link line, the
current regex is not strict enough and improperly matches a partial path
to the Xcode compiler path with homebrew mpich. This adjusts the regex
to look for a space preceeding the library name to prevent the first
argument, i.e. the compiler invocation, from being matched, and require
either a space or end-pattern after the library to prevent mismatches with
arguments that contain the library suffix but don't actually end with it.
Apply the optimization from commit v3.10.0-rc1~131^2 (MSVC: Avoid
unnecessary C++ feature detection steps, 2017-09-11) to the case of
Clang simulating a version of MSVC that does not define standards.
Issue: #17274
Fix component include/library path if multiple versions are installed.
When searching for individual components, look only in the locations
we expect to find them that we already computed.
VS 15.3 has more features than we recorded in commit v3.7.0-rc1~156^2~2
(Features: Record features for VS 15 Preview 4, 2016-09-05).
While at it, update comments and simplify some cases.
If runtests('$unittest_file') throws an exception it is ignored. It is
easy to produce such an exception by passing a nonexistent file as
UNITTEST_FILE.
We already handle exceptions if the option NO_UNITTEST_FRAMEWORK is set.
Use the same method to handle exceptions thrown by runtests or by a
custom_Matlab_test_command.
Fixes#16660.
When `CMAKE_C_COMPILER` is `clcache`, pass plain `cl` as the host
compiler to `nvcc`. Otherwise, `nvcc` does not accept it.
Signed-off-by: Edward Z. Yang <ezyang@fb.com>
This reverts commit v3.11.0-rc1~108^2 (CheckIncludeFiles: Honor
CMAKE_REQUIRED_LIBRARIES, 2017-12-24). The behavior change can
affect checks in existing projects that don't expect the behavior.
Introducing the behavior again will require a policy.
Fixes: #17874
Issue: #9514
The check for `wxWidgets_LIBRARIES` variable, introduced by e8b77084, fails
with the `wx-config` script generated by an MSYS build, because
`wxWidgets_LIBRARY_DIRS` is in POSIX style.
This commit fixes the problem with `wxWidgets_LIBRARY_DIRS` by converting it to
Windows style. The actual code were copied from bf643286, which does the same
thing for `wxWidgets_INCLUDE_DIRS`.
This allows defining compat versions of some C/C++ features with the name of the
keyword itself, so all code can look as if it was written for the new language
standard.