diff options
author | Brad King <brad.king@kitware.com> | 2020-04-08 11:35:32 -0400 |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2020-04-08 13:40:09 -0400 |
commit | 84a1e67380207bafaceefe1c19b47513c0fb63b2 (patch) | |
tree | 66cce9aa92b3f63a354f8b78e8095453820d2b4b /Source/cmLocalGenerator.h | |
parent | 45fa9b32caae2a45adf4e7eec8e69fc0a149a4ff (diff) | |
download | cmake-84a1e67380207bafaceefe1c19b47513c0fb63b2.tar.gz |
Apple: Fix mapping CMAKE_APPLE_ARCH_SYSROOTS to custom OSX_ARCHITECTURES
The `CMAKE_OSX_ARCHITECTURES` value is not used directly by generators.
It is used to initialize a per-target `OSX_ARCHITECTURES` property, but
that property can also be set explicitly by project code to a subset of
the full list of architectures. In order to handle this case, construct
a mapping from each `CMAKE_OSX_ARCHITECTURES` entry to the corresponding
`CMAKE_APPLE_ARCH_SYSROOTS` entry by name. Use the mapping to find the
sysroot for each entry in `OSX_ARCHITECTURES` for a given target.
If `CMAKE_APPLE_ARCH_SYSROOTS` does not have the same length as
`CMAKE_OSX_ARCHITECTURES`, error out early rather than risking a crash
or assertion failure.
Fixes: #20534
Diffstat (limited to 'Source/cmLocalGenerator.h')
-rw-r--r-- | Source/cmLocalGenerator.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/Source/cmLocalGenerator.h b/Source/cmLocalGenerator.h index 88194b7a29..5377be956f 100644 --- a/Source/cmLocalGenerator.h +++ b/Source/cmLocalGenerator.h @@ -513,6 +513,7 @@ protected: std::map<std::string, std::string> VariableMappings; std::string CompilerSysroot; std::string LinkerSysroot; + std::unordered_map<std::string, std::string> AppleArchSysroots; bool EmitUniversalBinaryFlags; |