d4d1f85297 Help: Move a note about arguments and genexes into include file
968224484f Help: Drop unused `PROPERTY_GENEX` replace from `prop_tgt/INTERFACE_*` files
65457e4fae Help: Add _See Also_ sections to related CMake commands
c86ec79d07 Help: Use direct refs to genexes instead of ``$<GENEX-NAME>``
8c6274326d Help: Use CMake highlighting for command synopsis
c356a94512 Help: Use monospaced font for a genex name in a section title
f98c8707f4 Help: Use `code-block:: cmake` instead of `::` for sub-commands descriptions
2ba351ca4f Help: ``CMake`` → CMake
...
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7873
Add an `INSTALL_BYPRODUCTS` option to `ExternalProject_Add` that can
be used to declare that files are `BYPRODUCTS` of the ExternalProject
install step.
This is often required by the Ninja generator to explicitly declare
dependencies. Previously, many users used `BUILD_BYPRODUCTS`, even if
their files were created by the install step, not the build step.
This commit essentially just copies the code for `BUILD_BYPRODUCTS`.
Fixes: #24120Fixes: #23056
Clarify that the `BUILD_BYPRODUCTS` and `BYPRODUCTS` options
in ExternalProject may also be required when using the Ninja
generator (as that's one of the primary reasons why you'd want to
use those options).
I've also mentioned that `add_custom_command` has additional
documentation on what `BYPRODUCTS` does.
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
a0d4e3bf34 cmGeneratedFileStream: Drop unused WriteRaw method
2e5af30ce0 Ninja: Match showIncludes dependencies using console output code page
e1c1679148 cm_codecvt: Add support for the Windows console output code page
328c15189d cmGeneratedFileStream: Add support for a temporary alternate encoding
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7845
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
Swift is used as the linker for non-swift files because it needs to pull
files like swiftrt.o in when swift symbols are present to ensure that
the swift runtime is linked.
The swift driver uses clang as the underlying linker, which pulls in
crtbegin.o and friends when appropriate, so using Swift as a linker for
C/C++ libraries is fine.
The output-file-map was getting passed to all Swift invocations,
regardless of whether or not we generated one. This patch changes it so
that we only include the output-file-map in the Swift compiler
invocation if we have actually generated the file.
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
Previously, the build directory was not explicitly specified. Instead, the
current working directory was assumed to be the build directory and the
source directory was passed as a positional argument. However, if the
source directory contained a CMakeCache.txt, it was treated as a binary
directory instead. For the scenario where a project is built in-source and
it calls ExternalProject_Add() with its own source directory but a different
build directory (e.g. to build itself with a different set of configure arguments),
this results in a build error.
Explicitly list both the source and build directories using the -S and -B options
respectively. This unambiguously sets both, avoiding the above problem.
Fixes: #24081
3fc971c38b CheckSourceCompiles: For Swift executable, name source 'main.swift'
2345139ab5 CheckSourceCompiles: Add support for Swift
4451a1f54f Tests: Factor out a CMake_TEST_Swift variable for Swift test conditions
f78ad6223a Tests: Provide Apple inspection results to CMakeOnly and RunCMake tests
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Saleem Abdulrasool <compnerd@compnerd.org>
Merge-request: !7783