Files
android_external_libcxx/lib/abi/CMakeLists.txt
Louis Dionne c69e1a0615 [libc++] Allow running ABI list tests with different ABI versions
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
2018-07-19 18:02:50 +00:00

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()