Remove unnecessary check of policy CMP0049. The policy can never
trigger on our internally-generated name because it has no variable
references.
The rename in commit 0ed5ce4cd8 (cmTarget: Rename AddSource method for
backward compatibility., 2014-03-17, v3.1.0-rc1~688^2~17) made it look
like this code path depended on CMP0049. Then commit 0e1faa28cb
(cmMakefile: Separate custom command setup from actual creation,
2019-09-14, v3.16.0-rc1~85^2) and commit ea1bed34b2 (cmMakefile: Extract
utilities used for creation of custom commands, 2019-09-21,
v3.16.0-rc1~52^2~1) built additional infrastructure to thread that
dependence through the call stack. Remove it all.
Update the documentation added by commit c257c25419
(add_custom_{command,target}: Add genex support to OUTPUT and
BYPRODUCTS, 2020-10-19) to use sphinx markup instead of prose to specify
the version in which the feature was added.
9c360b9eea FindMatlab: Fix search for MCR
bda5e2ac8f FindMatlab: Only include engine and dataarray libraries if they are found
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5600
d0bac89cea curl: Set build options the way we need for CMake
54931fdff0 Merge branch 'upstream-curl' into update-curl
5aacc593a9 curl 2020-12-09 (e0528597)
4cd65e5d88 curl: Update script to get curl 7.74.0
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5592
b7f0327dcd Tests: Cover macOS host architecture selection on Apple Silicon hosts
5f882f6ce5 macOS: Offer control over host architecture on Apple Silicon hosts
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5589
b7f0327dcd Tests: Cover macOS host architecture selection on Apple Silicon hosts
5f882f6ce5 macOS: Offer control over host architecture on Apple Silicon hosts
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5589
Do not keep state across separate project configurations.
This is particularly important in `cmake-gui` where those
configurations can be for separate projects.
Fixes: #21580
To avoid duplicate effort of depfile parsing and enhance robustness
of parsing against mal-formed depfiles in preparation of DEPFILE option
support of add_custom_command command for makefiles generators.
Move rejection of `#`, `<`, and `>` characters in outputs and byproducts
to a generate-time check. This removes the front-end check that
disallowed generator expressions. The generators have already been
updated to handle them.
Fixes: #12877
Custom commands with generator expressions in their OUTPUTs or
BYPRODUCTS are still attached to a single `.rule` file. We use an
internal map to look up the source file holding the custom command for a
given output. Populate this map using the outputs and byproducts from
all configurations after evaluating the generator expressions for each
configuration.
Issue: #12877
The CMAKE_MINIMUM_REQUIRED_VERSION has long been set by
the cmake_minimum_required() command, but the command docs
never mentioned this. Only the variable's own docs stated this but
the variable isn't very discoverable without it being mentioned in
the command's docs as well.
Add test cases verifying that `CMAKE_APPLE_SILICON_PROCESSOR` set as
either a cache or environment variable causes that to be selected as the
host architecture. Also verify that sources compile using whatever is
selected as the host architecture, even when the explicit setting is not
used.
Issue: #21554
Since commit b6c60f14b6 (macOS: Default to arm64 architecture on Apple
Silicon hosts, 2020-09-28, v3.19.0-rc1~63^2) we use `sysctl` to detect
that we are running on Apple Silicon in a way that pierces Rosetta.
This always sets `CMAKE_HOST_SYSTEM_PROCESSOR` to be `arm64` on such
hosts. However, macOS offers strong support for running processes under
an emulated `x86_64` architecture.
Teach CMake to select either `arm64` or `x86_64` as the host
architecture on Apple Silicon based on the architecture of its own
process. When CMake is built as a universal binary, macOS will select
whichever slice (architecture) is appropriate under the user's shell,
and `CMAKE_HOST_SYSTEM_PROCESSOR` will match.
Also offer a `CMAKE_APPLE_SILICON_PROCESSOR` variable and environment
variable to provide users with explicit control over the host
architecture selection regardless of CMake's own architecture.
Finally, if `CMAKE_OSX_ARCHITECTURES` is not set, pass explicit flags to
the toolchain to use selected host architecture instead of letting the
toolchain pick.
Fixes: #21554