summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBalint Reczey <balint@balintreczey.hu>2013-10-15 07:30:05 +0000
committerBalint Reczey <balint@balintreczey.hu>2013-10-15 07:30:05 +0000
commit8956ee2a567e2e2e4d8b8704d80beb9cde6678b1 (patch)
tree51cf19e31d2856428b0195e4b131435c93c9536a
parent66de01339985521b2b69fcfcb4cd0587dea63fba (diff)
downloadwireshark-8956ee2a567e2e2e4d8b8704d80beb9cde6678b1.tar.gz
Factor out common parts of ABI checks to UseABICheck.cmake
svn path=/trunk/; revision=52614
-rw-r--r--cmake/modules/UseABICheck.cmake20
-rw-r--r--epan/CMakeLists.txt20
-rw-r--r--wiretap/CMakeLists.txt17
-rw-r--r--wsutil/CMakeLists.txt18
4 files changed, 31 insertions, 44 deletions
diff --git a/cmake/modules/UseABICheck.cmake b/cmake/modules/UseABICheck.cmake
new file mode 100644
index 0000000000..fcbe2d55b6
--- /dev/null
+++ b/cmake/modules/UseABICheck.cmake
@@ -0,0 +1,20 @@
+#
+# ABI Check related macros
+#
+# ABI compliance checker can be obtained from
+# http://ispras.linux-foundation.org/index.php/ABI_compliance_checker
+# Checked using version 1.21.12
+
+MACRO(ABICHECK _libname)
+ get_directory_property(INCLUDE_DIRS INCLUDE_DIRECTORIES)
+ list(REMOVE_DUPLICATES INCLUDE_DIRS)
+ string(REGEX REPLACE ";" "\n" INCLUDE_DIRS "${INCLUDE_DIRS}")
+ configure_file(../abi-descriptor.template abi-descriptor.xml)
+ # discover and substitute list of include directories for ABI compatibility
+ # checks
+ file(GLOB HEADERS *.h)
+ file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/abi-check-headers)
+ file(COPY ${HEADERS} ../ws_symbol_export.h DESTINATION abi-check-headers)
+ add_custom_target(dumpabi-${_libname} DEPENDS ${_libname}.abi.tar.gz)
+ENDMACRO()
+
diff --git a/epan/CMakeLists.txt b/epan/CMakeLists.txt
index 060403a53e..9baeaa405c 100644
--- a/epan/CMakeLists.txt
+++ b/epan/CMakeLists.txt
@@ -21,6 +21,8 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
+include(UseABICheck)
+
if (HAVE_LIBLUA)
include( wslua/CMakeLists.txt )
endif()
@@ -1607,17 +1609,8 @@ set_target_properties(epan PROPERTIES COMPILE_DEFINITIONS "WS_BUILD_DLL")
set_target_properties(epan PROPERTIES LINK_FLAGS "${WS_LINK_FLAGS}")
set_target_properties(epan PROPERTIES VERSION ${FULL_SO_VERSION} SOVERSION 0)
-# discover and substitute list of include directories for ABI compatibility
-# checks
-get_directory_property(INCLUDE_DIRS INCLUDE_DIRECTORIES)
-list(REMOVE_DUPLICATES INCLUDE_DIRS)
-string(REGEX REPLACE ";" "\n" INCLUDE_DIRS "${INCLUDE_DIRS}")
-configure_file(../abi-descriptor.template abi-descriptor.xml)
+ABICHECK(libwireshark)
-# 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 EPAN_HEADERS *.h)
file(GLOB CRYPT_HEADERS crypt/*.h)
file(GLOB DFILTER_HEADERS dfilter/*.h ../tools/lemon/cppmagic.h)
file(GLOB D_HEADERS dissectors/*.h)
@@ -1631,8 +1624,8 @@ file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/abi-check-headers
${CMAKE_CURRENT_BINARY_DIR}/abi-check-headers/ftypes
${CMAKE_CURRENT_BINARY_DIR}/abi-check-headers/wmem)
-file(COPY ../color.h ../register.h ../ws_symbol_export.h DESTINATION abi-check-headers)
-file(COPY ${EPAN_HEADERS} DESTINATION abi-check-headers/epan)
+file(COPY ../color.h ../register.h DESTINATION abi-check-headers)
+file(COPY ${HEADERS} DESTINATION abi-check-headers/epan)
file(COPY ${CRYPT_HEADERS} DESTINATION abi-check-headers/crypt)
file(COPY ${DFILTER_HEADERS} DESTINATION abi-check-headers/dfilter)
file(COPY ${D_HEADERS} DESTINATION abi-check-headers/dissectors)
@@ -1654,10 +1647,9 @@ add_custom_command(OUTPUT libwireshark.abi.tar.gz
abi-check-headers/epan/* abi-check-headers/crypt/*
abi-check-headers/dfilter/* abi-check-headers/dissectors/*
abi-check-headers/ftypes/* abi-check-headers/wmem/*
- DEPENDS ${EPAN_HEADERS}
+ DEPENDS ${HEADERS}
${CRYPT_HEADERS} ${DFILTER_HEADERS} ${D_HEADERS}
${FTYPES_HEADERS} ${WMEM_HEADERS} epan)
-add_custom_target(dumpabi-libwireshark DEPENDS libwireshark.abi.tar.gz)
# By default the name for a library with target name epan will be libepan,
# but Ethereal is now named Wireshark
diff --git a/wiretap/CMakeLists.txt b/wiretap/CMakeLists.txt
index 7fc2275da5..b5f9e9c4da 100644
--- a/wiretap/CMakeLists.txt
+++ b/wiretap/CMakeLists.txt
@@ -21,6 +21,7 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
+include(UseABICheck)
set(CLEAN_FILES
5views.c
@@ -121,20 +122,7 @@ set_target_properties(wiretap PROPERTIES LINK_FLAGS "${WS_LINK_FLAGS}")
set_target_properties(wiretap PROPERTIES VERSION ${FULL_SO_VERSION} SOVERSION 0)
set_target_properties(wiretap PROPERTIES FOLDER "DLLs")
-# discover and substitute list of include directories for ABI compatibility
-# checks
-get_directory_property(INCLUDE_DIRS INCLUDE_DIRECTORIES)
-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 ${CMAKE_CURRENT_BINARY_DIR}/abi-check-headers)
-
-file(COPY ${HEADERS} ../ws_symbol_export.h DESTINATION abi-check-headers)
+ABICHECK(libwiretap)
add_custom_command(OUTPUT libwiretap.abi.tar.gz
COMMAND cp ../config.h abi-check-headers/
@@ -144,7 +132,6 @@ add_custom_command(OUTPUT libwiretap.abi.tar.gz
COMMAND cp abi_dumps/libwiretap/libwiretap_* libwiretap.abi.tar.gz
COMMAND rm -rf abi-check-headers/* abi_dumps
DEPENDS ${HEADERS} wiretap)
-add_custom_target(dumpabi-libwiretap DEPENDS libwiretap.abi.tar.gz)
target_link_libraries(wiretap ${wiretap_LIBS})
diff --git a/wsutil/CMakeLists.txt b/wsutil/CMakeLists.txt
index cbc5d0de03..ca9053957c 100644
--- a/wsutil/CMakeLists.txt
+++ b/wsutil/CMakeLists.txt
@@ -21,6 +21,8 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
+include(UseABICheck)
+
IF(WIN32)
set(WSUTIL_PLATFORM_FILES
file_util.c
@@ -99,20 +101,7 @@ set_target_properties(wsutil PROPERTIES LINK_FLAGS "${WS_LINK_FLAGS}")
set_target_properties(wsutil PROPERTIES VERSION ${FULL_SO_VERSION} SOVERSION 0)
set_target_properties(wsutil PROPERTIES FOLDER "DLLs")
-# discover and substitute list of include directories for ABI compatibility
-# checks
-get_directory_property(INCLUDE_DIRS INCLUDE_DIRECTORIES)
-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 ${CMAKE_CURRENT_BINARY_DIR}/abi-check-headers)
-
-file(COPY ${HEADERS} ../ws_symbol_export.h DESTINATION abi-check-headers)
+ABICHECK(libwsutil)
add_custom_command(OUTPUT libwsutil.abi.tar.gz
COMMAND cp ../config.h abi-check-headers/
@@ -122,7 +111,6 @@ add_custom_command(OUTPUT libwsutil.abi.tar.gz
COMMAND cp abi_dumps/libwsutil/libwsutil_* libwsutil.abi.tar.gz
COMMAND rm -rf abi-check-headers/* abi_dumps
DEPENDS ${HEADERS} wsutil)
-add_custom_target(dumpabi-libwsutil DEPENDS libwsutil.abi.tar.gz)
target_link_libraries(wsutil ${wsutil_LIBS})