Summary: Currently, the ABI list test only works for ABI version 1. This commit allows running the ABI list test with ABI version 2. It also adds an ABI list file for ABI v2 on Mac OS X. Reviewers: EricWF Subscribers: mgorny, christof, dexonsmith, llvm-commits, mclow.lists Differential Revision: https://reviews.llvm.org/D49509 git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@337477 91177308-0d34-0410-b5e6-96231b3b80d8
27 lines
1.1 KiB
CMake
27 lines
1.1 KiB
CMake
|
|
if (DEFINED TARGET_TRIPLE)
|
|
# Ignore the major, minor, and patchlevel versions of the darwin
|
|
# target.
|
|
string(REGEX REPLACE "darwin([0-9]+)\\.([0-9]+)\\.([0-9]+)" "darwin"
|
|
GENERIC_TARGET_TRIPLE "${TARGET_TRIPLE}")
|
|
endif()
|
|
|
|
# Detect if we are building in the same configuration used to generate
|
|
# the abilist files.
|
|
set(ABILIST_FILE "${CMAKE_CURRENT_LIST_DIR}/${GENERIC_TARGET_TRIPLE}.v${LIBCXX_ABI_VERSION}.abilist")
|
|
set(SYMDIFF_EXE "${LIBCXX_SOURCE_DIR}/utils/sym_diff.py")
|
|
if (EXISTS "${ABILIST_FILE}"
|
|
AND TARGET cxx_shared
|
|
AND ("${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "libcxxabi" OR
|
|
(APPLE AND "${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "default"))
|
|
AND NOT LIBCXX_ABI_UNSTABLE)
|
|
add_custom_target(check-cxx-abilist
|
|
${SYMDIFF_EXE} --only-stdlib-symbols --strict ${ABILIST_FILE}
|
|
$<TARGET_SONAME_FILE:cxx_shared>
|
|
DEPENDS cxx_shared
|
|
COMMENT "Testing ABI compatibility...")
|
|
else()
|
|
message(STATUS "there is no pre-generated ABI list for the requested libc++ configuration. "
|
|
"check-cxx-abilist target is not supported")
|
|
endif()
|