[CMake] Update CMAKE_OSX_DEPLOYMENT_TARGET to 10.12.
authorJonas Devlieghere <jonas@devlieghere.com>
Sun, 18 Aug 2019 21:54:26 +0000 (21:54 +0000)
committerJonas Devlieghere <jonas@devlieghere.com>
Sun, 18 Aug 2019 21:54:26 +0000 (21:54 +0000)
commit45e598d1357c4436f5a13afa5e57c3600e13f2c1
treedf12c68c8304c86e4f21daa798269df4840751a1
parentcf276ba82e815fe171b3858a0b06d8f0f6c86fa2
[CMake] Update CMAKE_OSX_DEPLOYMENT_TARGET to 10.12.

After LLVM moved to C++14, the RWMutex implementation was removed in
favor of std::shared_timed_mutex, which is only available on macOS
10.12 and later. As a workaround for older deployment targets, I added
   the original RWMutexImpl again, guarded by the deployment target.

When doing a standalone build of LLDB using the Xcode generator, the
CMake cache specifies a minimum deployment target. However, LLVM and
Clang might have been built with a different minimum deployment target.

This is exactly what happened for the Xcode build. LLVM was built with a
minimum deployment target newer than 10.12, using
std::shared_timed_mutex. LLDB on the other hand was built with a minimum
deployment target of 10.11, using the old RWMutexImpl, resulting in
undefined symbols at link-time.

This patch changes the minimum deployment target for the Xcode build to
10.12 to work around this problem. A better solution would involve
synchronizing the minimum deployment or even not setting one at all.

llvm-svn: 369220
lldb/cmake/caches/Apple-lldb-Xcode.cmake