]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - lib/abi/CMakeLists.txt
Vendor import of libc++ trunk r290819:
[FreeBSD/FreeBSD.git] / lib / abi / CMakeLists.txt
1
2 # Detect if we are building in the same configuration used to generate
3 # the abilist files.
4 if (DEFINED TARGET_TRIPLE
5     AND EXISTS "${CMAKE_CURRENT_LIST_DIR}/${TARGET_TRIPLE}.abilist"
6     AND TARGET cxx_shared
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 "")
12 else()
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")
16     endif()
17     set(LIBCXX_HAS_ABILIST_CONFIGURATION 0 CACHE INTERNAL "")
18 endif()
19
20
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>
26             DEPENDS cxx_shared
27             COMMENT "Testing ABI compatibility...")
28 endif()