diff options
author | Brad King <brad.king@kitware.com> | 2023-03-28 21:28:44 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2023-03-29 19:19:47 (GMT) |
commit | 689616785f76acd844fd448c51c5b2a0711aafa2 (patch) | |
tree | 203ed92c0b1ccd1d050404db790801192ca6b012 /Source/cmGlobalGenerator.h | |
parent | f4b8176447699ba82c2bf7baf2d609d0d6e3259b (diff) | |
download | CMake-689616785f76acd844fd448c51c5b2a0711aafa2.zip CMake-689616785f76acd844fd448c51c5b2a0711aafa2.tar.gz CMake-689616785f76acd844fd448c51c5b2a0711aafa2.tar.bz2 |
macOS: Do not pass Apple-specific flags to llvm-strip
Since commit cf82300a63 (BinUtils: Clarify search logic and make it more
consistent, 2021-05-27, v3.21.0-rc1~119^2~2) we prefer `llvm-strip` over
`strip` when using Clang. However, since commit 20291e8e72 (install:
Fix stripping on macOS, 2019-01-30, v3.14.0-rc1~31^2) on macOS we add
flags `-u -r`, needed by Apple's `strip` for executables, but that
`llvm-strip` does not need or support. Improve the condition to add
Apple-specific flags only when the selected `strip` tool is Apple's.
Note that Apple dylibs must be stripped with `-x` with either Apple's
`strip` or `llvm-strip`.
Fixes: #24601
Diffstat (limited to 'Source/cmGlobalGenerator.h')
-rw-r--r-- | Source/cmGlobalGenerator.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h index 4d321b5..4bbbdfa 100644 --- a/Source/cmGlobalGenerator.h +++ b/Source/cmGlobalGenerator.h @@ -607,6 +607,13 @@ public: cmInstallRuntimeDependencySet* GetNamedRuntimeDependencySet( const std::string& name); + enum class StripCommandStyle + { + Default, + Apple, + }; + StripCommandStyle GetStripCommandStyle(std::string const& strip); + protected: // for a project collect all its targets by following depend // information, and also collect all the targets @@ -737,6 +744,10 @@ private: std::map<std::string, int> LanguageToLinkerPreference; std::map<std::string, std::string> LanguageToOriginalSharedLibFlags; +#ifdef __APPLE__ + std::map<std::string, StripCommandStyle> StripCommandStyleMap; +#endif + mutable bool DiagnosedCxxModuleSupport = false; // Deferral id generation. |