Revert r243503 "[libcxx] Cleanup CMake configuration and integrate with LLVM"
This caused clang-format to stop linking on Mac; see PR24306. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@243550 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -25,23 +25,48 @@ if (MSVC_IDE OR XCODE)
|
||||
endif()
|
||||
|
||||
if (LIBCXX_ENABLE_SHARED)
|
||||
add_library(cxx SHARED ${LIBCXX_SOURCES} ${LIBCXX_HEADERS})
|
||||
add_library(cxx SHARED
|
||||
${LIBCXX_SOURCES}
|
||||
${LIBCXX_HEADERS}
|
||||
)
|
||||
else()
|
||||
add_library(cxx STATIC ${LIBCXX_SOURCES} ${LIBCXX_HEADERS})
|
||||
add_library(cxx STATIC
|
||||
${LIBCXX_SOURCES}
|
||||
${LIBCXX_HEADERS}
|
||||
)
|
||||
endif()
|
||||
|
||||
#if LIBCXX_CXX_ABI_LIBRARY_PATH is defined we want to add it to the search path.
|
||||
if (DEFINED LIBCXX_CXX_ABI_LIBRARY_PATH)
|
||||
target_link_libraries(cxx "-L${LIBCXX_CXX_ABI_LIBRARY_PATH}")
|
||||
endif()
|
||||
|
||||
if (DEFINED LIBCXX_CXX_ABI_DEPS)
|
||||
add_dependencies(cxx LIBCXX_CXX_ABI_DEPS)
|
||||
endif()
|
||||
|
||||
#if LIBCXX_CXX_ABI_LIBRARY_PATH is defined we want to add it to the search path.
|
||||
add_link_flags_if(LIBCXX_CXX_ABI_LIBRARY_PATH "-L${LIBCXX_CXX_ABI_LIBRARY_PATH}")
|
||||
set(libraries "")
|
||||
if (LIBCXX_ENABLE_STATIC_ABI_LIBRARY)
|
||||
# TODO(ericwf): Remove these GNU specific linker flags and let CMake do the
|
||||
# configuration. This will be more portable.
|
||||
list(APPEND libraries "-Wl,--whole-archive" "-Wl,-Bstatic")
|
||||
list(APPEND libraries "${LIBCXX_CXX_ABI_LIBRARY}")
|
||||
list(APPEND libraries "-Wl,-Bdynamic" "-Wl,--no-whole-archive")
|
||||
else()
|
||||
list(APPEND libraries "${LIBCXX_CXX_ABI_LIBRARY}")
|
||||
endif()
|
||||
|
||||
add_library_flags_if(LIBCXX_COVERAGE_LIBRARY "${LIBCXX_COVERAGE_LIBRARY}")
|
||||
# Generate library list.
|
||||
append_if(libraries LIBCXX_HAS_PTHREAD_LIB pthread)
|
||||
append_if(libraries LIBCXX_HAS_C_LIB c)
|
||||
append_if(libraries LIBCXX_HAS_M_LIB m)
|
||||
append_if(libraries LIBCXX_HAS_RT_LIB rt)
|
||||
append_if(libraries LIBCXX_HAS_GCC_S_LIB gcc_s)
|
||||
|
||||
add_library_flags_if(LIBCXX_ENABLE_STATIC_ABI_LIBRARY "-Wl,--whole-archive" "-Wl,-Bstatic")
|
||||
add_library_flags("${LIBCXX_CXX_ABI_LIBRARY}")
|
||||
add_library_flags_if(LIBCXX_ENABLE_STATIC_ABI_LIBRARY "-Wl,-Bdynamic" "-Wl,--no-whole-archive")
|
||||
if (LIBCXX_COVERAGE_LIBRARY)
|
||||
target_link_libraries(cxx ${LIBCXX_COVERAGE_LIBRARY})
|
||||
endif()
|
||||
target_link_libraries(cxx ${libraries})
|
||||
|
||||
if (APPLE AND LLVM_USE_SANITIZER)
|
||||
if ("${LLVM_USE_SANITIZER}" STREQUAL "Address")
|
||||
@@ -64,21 +89,15 @@ if (APPLE AND LLVM_USE_SANITIZER)
|
||||
set(LIBCXX_SANITIZER_LIBRARY "${LIBDIR}/${LIBFILE}")
|
||||
set(LIBCXX_SANITIZER_LIBRARY "${LIBCXX_SANITIZER_LIBRARY}" PARENT_SCOPE)
|
||||
message(STATUS "Manually linking compiler-rt library: ${LIBCXX_SANITIZER_LIBRARY}")
|
||||
add_library_flags("${LIBCXX_SANITIZER_LIBRARY}")
|
||||
add_link_flags("-Wl,-rpath,${LIBDIR}")
|
||||
target_link_libraries(cxx "${LIBCXX_SANITIZER_LIBRARY}")
|
||||
target_link_libraries(cxx "-Wl,-rpath,${LIBDIR}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Generate library list.
|
||||
add_library_flags_if(LIBCXX_HAS_PTHREAD_LIB pthread)
|
||||
add_library_flags_if(LIBCXX_HAS_C_LIB c)
|
||||
add_library_flags_if(LIBCXX_HAS_M_LIB m)
|
||||
add_library_flags_if(LIBCXX_HAS_RT_LIB rt)
|
||||
add_library_flags_if(LIBCXX_HAS_GCC_S_LIB gcc_s)
|
||||
|
||||
# Setup flags.
|
||||
add_flags_if_supported(-fPIC)
|
||||
add_link_flags_if_supported(-nodefaultlibs)
|
||||
append_if(LIBCXX_COMPILE_FLAGS LIBCXX_HAS_FPIC_FLAG -fPIC)
|
||||
append_if(LIBCXX_LINK_FLAGS LIBCXX_HAS_NODEFAULTLIBS_FLAG -nodefaultlibs)
|
||||
|
||||
if ( APPLE AND (LIBCXX_CXX_ABI_LIBNAME STREQUAL "libcxxabi" OR
|
||||
LIBCXX_CXX_ABI_LIBNAME STREQUAL "none"))
|
||||
@@ -87,8 +106,8 @@ if ( APPLE AND (LIBCXX_CXX_ABI_LIBNAME STREQUAL "libcxxabi" OR
|
||||
endif()
|
||||
|
||||
if ( CMAKE_OSX_DEPLOYMENT_TARGET STREQUAL "10.6" )
|
||||
add_definitions(-D__STRICT_ANSI__)
|
||||
add_link_flags(
|
||||
list(APPEND LIBCXX_COMPILE_FLAGS "-U__STRICT_ANSI__")
|
||||
list(APPEND LIBCXX_LINK_FLAGS
|
||||
"-compatibility_version 1"
|
||||
"-current_version 1"
|
||||
"-install_name /usr/lib/libc++.1.dylib"
|
||||
@@ -110,7 +129,7 @@ if ( APPLE AND (LIBCXX_CXX_ABI_LIBNAME STREQUAL "libcxxabi" OR
|
||||
set (OSX_RE_EXPORT_LINE "/usr/lib/libc++abi.dylib -Wl,-reexported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/libc++abi${LIBCXX_LIBCPPABI_VERSION}.exp")
|
||||
endif()
|
||||
|
||||
add_link_flags(
|
||||
list(APPEND LIBCXX_LINK_FLAGS
|
||||
"-compatibility_version 1"
|
||||
"-install_name /usr/lib/libc++.1.dylib"
|
||||
"-Wl,-unexported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/libc++unexp.exp"
|
||||
@@ -120,9 +139,8 @@ if ( APPLE AND (LIBCXX_CXX_ABI_LIBNAME STREQUAL "libcxxabi" OR
|
||||
endif()
|
||||
endif()
|
||||
|
||||
target_link_libraries(cxx ${LIBCXX_LIBRARIES})
|
||||
split_list(LIBCXX_COMPILE_FLAGS)
|
||||
split_list(LIBCXX_LINK_FLAGS)
|
||||
string(REPLACE ";" " " LIBCXX_COMPILE_FLAGS "${LIBCXX_COMPILE_FLAGS}")
|
||||
string(REPLACE ";" " " LIBCXX_LINK_FLAGS "${LIBCXX_LINK_FLAGS}")
|
||||
|
||||
set_target_properties(cxx
|
||||
PROPERTIES
|
||||
|
Reference in New Issue
Block a user