llvm-project/lldb/cmake/caches/Apple-lldb-Xcode.cmake
Jonas Devlieghere 45e598d135 [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
2019-08-18 21:54:26 +00:00

15 lines
512 B
CMake

include(${CMAKE_CURRENT_LIST_DIR}/Apple-lldb-base.cmake)
set(CMAKE_GENERATOR Xcode CACHE STRING "")
set(CMAKE_OSX_DEPLOYMENT_TARGET 10.12 CACHE STRING "")
set(CMAKE_XCODE_GENERATE_SCHEME ON CACHE BOOL "")
set(LLDB_BUILD_FRAMEWORK ON CACHE BOOL "")
# Apparently, module-enabled builds clash with Xcode's analysis.
set(LLVM_ENABLE_MODULES OFF CACHE BOOL "" FORCE)
# Print a warning with instructions, if we
# build with Xcode and didn't use this cache.
set(LLDB_EXPLICIT_XCODE_CACHE_USED ON CACHE INTERNAL "")