From d2e0724afc9631bcca59ce045debb9bb686dff1f Mon Sep 17 00:00:00 2001 From: Balint Reczey Date: Mon, 25 Feb 2013 18:12:20 +0000 Subject: Add dumpabi targets to CMake builds Also update automake generated targets to match CMake generated ones svn path=/trunk/; revision=47879 --- wiretap/CMakeLists.txt | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'wiretap/CMakeLists.txt') diff --git a/wiretap/CMakeLists.txt b/wiretap/CMakeLists.txt index be3976e494..4f14e73799 100644 --- a/wiretap/CMakeLists.txt +++ b/wiretap/CMakeLists.txt @@ -106,8 +106,11 @@ set(wiretap_LIBS add_library(wiretap ${LINK_MODE_LIB} ${WIRETAP_FILES} ) + +set(FULL_SO_VERSION "0.0.0") + set_target_properties(wiretap PROPERTIES LINK_FLAGS "${WS_LINK_FLAGS}") -set_target_properties(wiretap PROPERTIES VERSION "0.0.0" SOVERSION 0) +set_target_properties(wiretap PROPERTIES VERSION ${FULL_SO_VERSION} SOVERSION 0) # discover and substitute list of include directories for ABI compatibility # checks @@ -116,6 +119,24 @@ list(REMOVE_DUPLICATES INCLUDE_DIRS) string(REGEX REPLACE ";" "\n" INCLUDE_DIRS "${INCLUDE_DIRS}") configure_file(../abi-descriptor.template abi-descriptor.xml) +# ABI compliance checker can be obtained from +# http://ispras.linux-foundation.org/index.php/ABI_compliance_checker +# Checked using version 1.21.12 +file(GLOB HEADERS *.h) +file(MAKE_DIRECTORY abi-check-headers) + +file(COPY ${HEADERS} DESTINATION abi-check-headers) + +add_custom_command(OUTPUT libwiretap.abi.tar.gz + COMMAND cp ../config.h abi-check-headers/ + COMMAND abi-compliance-checker -l libwiretap -v1 ${FULL_SO_VERSION} + -relpath ${CMAKE_CURRENT_BINARY_DIR} -dump-abi abi-descriptor.xml + || cat logs/libwiretap/[0-9]*/log.txt + COMMAND cp abi_dumps/libwiretap/libwiretap_* libwiretap.abi.tar.gz + COMMAND rm -rf abi-check-headers/* abi_dumps + DEPENDS ../config.h ${HEADERS} wiretap) +add_custom_target(dumpabi-libwiretap DEPENDS libwiretap.abi.tar.gz) + target_link_libraries(wiretap ${wiretap_LIBS}) if(NOT ${ENABLE_STATIC}) -- cgit v1.2.1