2 # Detect if we are building in the same configuration used to generate
4 if (DEFINED TARGET_TRIPLE
5 AND EXISTS "${CMAKE_CURRENT_LIST_DIR}/${TARGET_TRIPLE}.abilist"
7 AND ("${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "libcxxabi" OR
8 (APPLE AND "${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "none"))
9 AND NOT LIBCXX_ABI_UNSTABLE
10 AND LIBCXX_ABI_VERSION EQUAL "1")
11 set(LIBCXX_HAS_ABILIST_CONFIGURATION 1 CACHE INTERNAL "")
13 if (NOT DEFINED LIBCXX_HAS_ABILIST_CONFIGURATION)
14 message(STATUS "libc++ configuration differs from the abilist configuration. "
15 "check-cxx-abilist target is not supported")
17 set(LIBCXX_HAS_ABILIST_CONFIGURATION 0 CACHE INTERNAL "")
21 if (LIBCXX_HAS_ABILIST_CONFIGURATION)
22 set(ABILIST_FILE "${CMAKE_CURRENT_LIST_DIR}/${TARGET_TRIPLE}.abilist")
23 set(SYMDIFF_EXE "${LIBCXX_SOURCE_DIR}/utils/sym_check/sym_diff.py")
24 add_custom_target(check-cxx-abilist
25 ${SYMDIFF_EXE} --only-stdlib-symbols ${ABILIST_FILE} $<TARGET_SONAME_FILE:cxx_shared>
27 COMMENT "Testing ABI compatibility...")