The IntelLLVM compiler, for compatibility with MSVC on Windows, always
runs with support for at least C++14. The `-Qstd=c++11` flag just
causes a warning that it is unused.
Fixes: #24316
Update the list of known versions.
There is a new header-only library, Boost.URL. It has no
dependencies and has a core header `<boost/url.hpp>`.
Run the command
cmake -DBOOST_DIR=/path/to/boost_1_81_0 \
-P Utilities/Scripts/BoostScanDeps.cmake
to extract dependencies from the 1.81.0 source tree.
They are the same as 1.80's dependencies, so just update
the version check for warning about newer versions.
In commit 0e96a20478 (MSVC: Add abstraction for debug information
format, 2022-08-25, v3.25.0-rc1~142^2~1) we overlooked populating the
runtime library selection flags for the Microsoft assembler. Its
compiler id is `MSVC`, so our generators expect the table to be
populated. It only supports `Embedded` debug info. Use empty flags for
the other formats.
Without this fix, enabling the `ASM_MASM` language with policy `CMP0141`
set to `NEW` causes an error due to the missing table entries.
Fixes: #24249
Refactoring in commit db76876db5 (Modules: Use new SOURCES_FROM_*
try_compile (1/2), 2022-09-26, v3.25.0-rc1~74^2~1) accidentally dropped
the final newline of the test source, which was previously provided by
the input to `configure_file`. The C standard requires a newline at the
end of file, so add one explicitly.
Signed-off-by: Andrey Vostrikov <andrey.vostrikov@cogentembedded.com>
If we don't filter out SYSTEM from the arguments we pass
through to ExternalProject_Add(), it gets appended as a
list item to whatever arguments precede it because
ExternalProject_Add() doesn't recognize it as a keyword.
Fixes: #24201
The fix in commit e9755bc7c1 (MinGW: Restore using windres when
toolchain-prefixed name is not available, 2022-08-15, v3.24.1~4^2)
incorrectly listed two entries in `CMAKE_RC_COMPILER_INIT`, which is
only meant to have one value. Revise the logic to support multiple
platform-specific names for the Windows Resource Compiler while still
only using one name as the fallback when it is not found.
Fixes: #24190
Issue: #23841
Since commit 62cd3904bf (variable: Set LINUX variable on Linux target
systems, 2022-08-10, v3.25.0-rc1~320^2), the `Platform/Android` module
inherits the `LINUX` variable setting from `Platform/Linux`. While
Android may use a Linux kernel, `CMAKE_SYSTEM_NAME` is not `Linux`, and
the platform does not follow conventions of most Linux distributions.
Fixes: #24196
In commit db76876db5 (Modules: Use new SOURCES_FROM_* try_compile (1/2),
2022-09-26, v3.25.0-rc1~74^2~1) and commit 41f7b1169a (Modules: Use new
SOURCES_FROM_* try_compile (2/2), 2022-09-26, v3.25.0-rc1~74^2) the
switch to `SOURCE_FROM_*` required a stronger precondition (the second
argument to check_include_files must not have path components) than
before (any variable name could be used).
Fix that by transforming the variable name to a C identifier before
feeding it to try_compile as a filename. The filename is unspecified by
the documentation, and the file itself is only temporary, so that should
work fine.
I have gone through all the occurrences of `SOURCE_FROM_*`, and
identified these two that require changes. The rest should work fine as
the filenames do not depend on input variable names.
Fixes: #24204
Revert commit be848a71b0 (MSVC: Teach find_library to consider the
'libfoo.a' naming convention, 2022-09-19, v3.25.0-rc1~111^2). When
targeting the MSVC ABI, this causes GNU-ABI libraries to be found in
cases they were not previously, and broke existing builds. Revert the
change pending further discussion on how to handle the motivating use
case.
Issue: #23975Fixes: #24168
Documentation was added by commit 905d5667e8 (FindRuby: Add support for
RVM installations, 2020-03-23, v3.18.0-rc1~497^2), but this feature was
never implemented.
Closes: #21528
Extend the change from commit 1d9f2f9714 (FindCUDA: Do not search for
the deprecated nppicom when CUDA >= 11, 2020-06-22, v3.18.0-rc3~14^2)
to also not use the `CUDA_nppicom_LIBRARY` variable.
Issue: #20845
Prior to commit a9073db736 (IAR: update language specification
detection, 2021-09-23, v3.22.0-rc1~83^2) the `--c++`/`--eec++` flags
were stored in `CMAKE_IAR_CXX_FLAG` so that they would be used as part
of the `CMAKE_CXX_COMPILE_OBJECT` rule variable. That commit moved the
flags to `CMAKE_CXX_FLAGS`, which also broke initialization of
`CMAKE_CXX_FLAGS` from `CMAKE_CXX_FLAGS_INIT`. Restore the original
approach.
Fixes: #24111
Generalize the fix from commit 37a279f8d1 (Ninja: Write msvc_deps_prefix
as UTF-8 when console codepage is UTF-8, 2020-07-31, v3.19.0-rc1~349^2).
`cl /showIncludes` output is encoded using the console output code page,
so this is the byte sequence that Ninja must use to match its lines.
Fixes: #24068
In commit a2fc4b6257 (FindGLUT: Drop the now-unnecessary exclusion of
pkg-config for multiconfig, 2022-10-13, v3.25.0-rc2~16^2) we
accidentally removed the entire condition around the `pkg-config` code
path instead of just the multi-config part.
Fixes: #24095
When cross-compiling for Android, the library path suffixes `/<number>/`
refer to API level specific platform libraries instead of architecture
bitness. Disable path suffix use under NDK to avoid incorrect inclusion
of API level specific libraries below the targeted API level.
Fixes: #23830