From Jiri Engelthaler via
[metze/wireshark/wip.git] / wsutil / CMakeLists.txt
index cd012eaf7e6726844a21106b78cf16a669eb7f71..7b9093c22eba8ed979819be2f4bc0e71a5f0582f 100644 (file)
@@ -35,6 +35,7 @@ set(WSUTIL_FILES
 #              @INET_PTON_LO@  # inet_pton.c
 #              @STRNCASECMP_LO@ # strncasecmp.c
 #              @STRPTIME_LO@   # strptime.c
+  aes.c
   airpdcap_wep.c
   crash_info.c
   crc10.c
@@ -46,21 +47,77 @@ set(WSUTIL_FILES
   crc8.c
   crc11.c
   crcdrm.c
+  des.c
+  eax.c
+  g711.c
+  md4.c
+  md5.c
   mpeg-audio.c
+  nstime.c
   privileges.c
+  sha1.c
+  strnatcmp.c
   str_util.c
+  rc4.c
+  report_err.c
+  swar.c
+  tempfile.c
   type_util.c
+  u3.c
   ${WSUTIL_PLATFORM_FILES}
 )
 
 set(wsutil_LIBS
   ${GLIB2_LIBRARIES}
+  ${GCRYPT_LIBRARIES}
 )
 
+set(CLEAN_FILES
+  ${WSUTIL_FILES}
+)
+
+if (WERROR)
+  set_source_files_properties(
+    ${CLEAN_FILES}
+    PROPERTIES
+    COMPILE_FLAGS -Werror
+  )
+endif()
+
 add_library(wsutil ${LINK_MODE_LIB}
   ${WSUTIL_FILES}
 )
+
+set(FULL_SO_VERSION "0.0.0")
+
+set_target_properties(wsutil PROPERTIES COMPILE_DEFINITIONS "WS_BUILD_DLL")
 set_target_properties(wsutil PROPERTIES LINK_FLAGS "${WS_LINK_FLAGS}")
+set_target_properties(wsutil 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)
+
+# 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)
+
+add_custom_command(OUTPUT libwsutil.abi.tar.gz
+       COMMAND cp ../config.h abi-check-headers/
+       COMMAND abi-compliance-checker -l libwsutil -v1 ${FULL_SO_VERSION}
+               -relpath ${CMAKE_CURRENT_BINARY_DIR} -dump-abi abi-descriptor.xml
+               || cat logs/libwsutil/[0-9]*/log.txt
+       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})