From Jiri Engelthaler via
[metze/wireshark/wip.git] / wsutil / CMakeLists.txt
index 9501920acb010a8586ee58ad9955f4ab46ee50b4..7b9093c22eba8ed979819be2f4bc0e71a5f0582f 100644 (file)
@@ -18,7 +18,7 @@
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 #
 
 IF(WIN32)
@@ -35,28 +35,89 @@ 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
   crc16.c
   crc16-plain.c
   crc32.c
   crc6.c
+  crc7.c
   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})