diff options
-rw-r--r-- | CMakeLists.txt | 2 | ||||
-rw-r--r-- | CMakeOptions.txt | 2 | ||||
-rw-r--r-- | cmake/modules/COPYING-CMAKE-SCRIPTS | 27 | ||||
-rw-r--r-- | cmake/modules/FindGLIB2.cmake | 372 | ||||
-rw-r--r-- | cmake/modules/FindGMODULE2.cmake | 59 | ||||
-rw-r--r-- | wiretap/CMakeLists.txt | 1 |
6 files changed, 288 insertions, 175 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index c6e314b641..db8b5004e6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -221,7 +221,7 @@ endif() # - set HAVE_XXX #The minimum package list -set(PACKAGELIST GLIB2 PCAP M LEX YACC Perl SH PythonInterp HtmlViewer ${PACKAGELIST}) +set(PACKAGELIST GLIB2 GMODULE2 PCAP M LEX YACC Perl SH PythonInterp HtmlViewer ${PACKAGELIST}) #Build the gui ? if(BUILD_wireshark) diff --git a/CMakeOptions.txt b/CMakeOptions.txt index 9314b5ec70..4d71095a22 100644 --- a/CMakeOptions.txt +++ b/CMakeOptions.txt @@ -25,7 +25,7 @@ option(ENABLE_PLUGINS "Build with plugins" ON) option(ENABLE_GUIDES "Build Guides" OFF) option(ENABLE_ADNS "Build with adns support" ON) -option(ENABLE_PCRE "Build with pcre support" ON) +option(ENABLE_PCRE "Build with pcre support" OFF) option(ENABLE_PORTAUDIO "Build with portaudio support" ON) option(ENABLE_ZLIB "Build with zlib compression support" ON) option(ENABLE_LUA "Build with lua dissector support" ON) diff --git a/cmake/modules/COPYING-CMAKE-SCRIPTS b/cmake/modules/COPYING-CMAKE-SCRIPTS new file mode 100644 index 0000000000..948814a2bb --- /dev/null +++ b/cmake/modules/COPYING-CMAKE-SCRIPTS @@ -0,0 +1,27 @@ +Copyright notice for the files copied from +http://www.opensync.org/browser/branches/3rd-party-cmake-modules/modules + +$Id$ + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/cmake/modules/FindGLIB2.cmake b/cmake/modules/FindGLIB2.cmake index c00932f22c..0db72abb72 100644 --- a/cmake/modules/FindGLIB2.cmake +++ b/cmake/modules/FindGLIB2.cmake @@ -1,16 +1,22 @@ # # $Id$ # -# Try to find GLIB2 +# - Try to find GLib2 # Once done this will define # -# GLIB2_FOUND - system has GLIB2 -# GLIB2_INCLUDE_DIRS - the GLIB2 include directory -# GLIB2_LIBRARIES - Link these to use GLIB2 -# GLIB2_DEFINITIONS - Compiler switches required for using GLIB2 +# GLIB2_FOUND - system has GLib2 +# GLIB2_INCLUDE_DIRS - the GLib2 include directory +# GLIB2_LIBRARIES - Link these to use GLib2 +# +# HAVE_GLIB_GREGEX_H glib has gregex.h header and +# supports g_regex_match_simple # # Copyright (c) 2006 Andreas Schneider <mail@cynapses.org> # Copyright (c) 2006 Philippe Bernery <philippe.bernery@gmail.com> +# Copyright (c) 2007 Daniel Gollub <gollub@b1-systems.de> +# Copyright (c) 2007 Alban Browaeys <prahal@yahoo.com> +# Copyright (c) 2008 Michael Bell <michael.bell@web.de> +# Copyright (c) 2008-2009 Bjoern Ricks <bjoern.ricks@googlemail.com> # # Redistribution and use is allowed according to the terms of the New # BSD license. @@ -18,195 +24,215 @@ # -if (GLIB2_LIBRARIES AND GLIB2_INCLUDE_DIRS) +IF (GLIB2_LIBRARIES AND GLIB2_INCLUDE_DIRS ) # in cache already - set(GLIB2_FOUND TRUE) -else (GLIB2_LIBRARIES AND GLIB2_INCLUDE_DIRS) - # use pkg-config to get the directories and then use these values - # in the FIND_PATH() and FIND_LIBRARY() calls - include(UsePkgConfig) - - ## GLibConfig - find_path(GLIBCONFIG_INCLUDE_DIR - NAMES - glibconfig.h - PATHS - ${_GLIB2IncDir} - /opt/gnome/lib64/glib-2.0/include - /opt/gnome/lib/glib-2.0/include - /opt/lib/glib-2.0/include - /usr/lib64/glib-2.0/include - /usr/lib/glib-2.0/include - /opt/local/lib/glib-2.0/include - /sw/lib/glib-2.0/include - ) - ## - - ## Glib - pkgconfig(glib-2.0 _GLIB2IncDir _GLIB2LinkDir _GLIB2LinkFlags _GLIB2Cflags) + SET(GLIB2_FOUND TRUE) +ELSE (GLIB2_LIBRARIES AND GLIB2_INCLUDE_DIRS ) - set(GLIB2_DEFINITIONS ${_GLIB2Cflags}) + INCLUDE(FindPkgConfig) - find_path(GLIB2_INCLUDE_DIR - NAMES - glib.h - PATHS - ${_GLIB2IncDir} - /opt/gnome/include/glib-2.0 - /usr/include/glib-2.0 - /usr/local/include/glib-2.0 - /opt/local/include/glib-2.0 - /sw/include/glib-2.0 - ) - - find_library(GLIB2_LIBRARY + ## Glib + IF ( GLIB2_FIND_REQUIRED ) + SET( _pkgconfig_REQUIRED "REQUIRED" ) + ELSE ( GLIB2_FIND_REQUIRED ) + SET( _pkgconfig_REQUIRED "" ) + ENDIF ( GLIB2_FIND_REQUIRED ) + + IF ( GLIB2_MIN_VERSION ) + PKG_SEARCH_MODULE( GLIB2 ${_pkgconfig_REQUIRED} glib-2.0>=${GLIB2_MIN_VERSION} ) + ELSE ( GLIB2_MIN_VERSION ) + PKG_SEARCH_MODULE( GLIB2 ${_pkgconfig_REQUIRED} glib-2.0 ) + ENDIF ( GLIB2_MIN_VERSION ) + IF ( PKG_CONFIG_FOUND ) + IF ( GLIB2_FOUND ) + SET ( GLIB2_CORE_FOUND TRUE ) + ELSE ( GLIB2_FOUND ) + SET ( GLIB2_CORE_FOUND FALSE ) + ENDIF ( GLIB2_FOUND ) + ENDIF ( PKG_CONFIG_FOUND ) + + # Look for glib2 include dir and libraries w/o pkgconfig + IF ( NOT GLIB2_FOUND AND NOT PKG_CONFIG_FOUND ) + FIND_PATH( + _glibconfig_include_DIR NAMES - glib-2.0 + glibconfig.h PATHS - ${_GLIB2LinkDir} + /opt/gnome/lib64 /opt/gnome/lib - /usr/lib - /usr/local/lib + /opt/lib/ /opt/local/lib - /sw/lib - ) - - set(GLIB2_LIBRARIES ${GLIB2_LIBRARY}) - set(GLIB2_INCLUDE_DIRS ${GLIB2_INCLUDE_DIR}) - ## - - ## GModule - pkgconfig(gmodule-2.0 _GMODULE2IncDir _GMODULE2LinkDir _GMODULE2LinkFlags _GMODULE2Cflags) - - set(GMODULE2_DEFINITIONS ${_GMODULE2Cflags}) + /sw/lib/ + /usr/lib64 + /usr/lib + /usr/local/include + ${CMAKE_LIBRARY_PATH} + PATH_SUFFIXES + glib-2.0/include + ) - find_path(GMODULE2_INCLUDE_DIR - NAMES - gmodule.h - PATHS - ${_GMODULE2IncDir} - /opt/gnome/include/glib-2.0 - /usr/include/glib-2.0 - /usr/local/include/glib-2.0 - /opt/local/include/glib-2.0 - /sw/include/glib-2.0 - ) - - find_library(GMODULE2_LIBRARY + FIND_PATH( + _glib2_include_DIR NAMES - gmodule-2.0 + glib.h PATHS - ${_GMODULE2LinkDir} - /opt/gnome/lib - /usr/lib - /usr/local/lib - /opt/local/lib - /sw/lib - ) - if (GMODULE2_LIBRARY AND GMODULE2_INCLUDE_DIR) - set(GMODULE2_FOUND TRUE) - endif (GMODULE2_LIBRARY AND GMODULE2_INCLUDE_DIR) - ## - - ## GThread - pkgconfig(gthread-2.0 _GTHREAD2IncDir _GTHREAD2LinkDir _GTHREAD2LinkFlags _GTHREAD2Cflags) + /opt/gnome/include + /opt/local/include + /sw/include + /usr/include + /usr/local/include + PATH_SUFFIXES + glib-2.0 + ) - set(GTHREAD2_DEFINITIONS ${_GTHREAD2Cflags}) + #MESSAGE(STATUS "Glib headers: ${_glib2_include_DIR}") - find_path(GTHREAD2_INCLUDE_DIR + FIND_LIBRARY( + _glib2_link_DIR NAMES - gthread.h - PATHS - ${_GTHREAD2IncDir} - /opt/gnome/include/glib-2.0 - /usr/include/glib-2.0 - /usr/local/include/glib-2.0 - /opt/local/include/glib-2.0 - /sw/include/glib-2.0 - PATH_SUFFIXES + glib-2.0 glib - ) - - find_library(GTHREAD2_LIBRARY - NAMES - gthread-2.0 PATHS - ${_GTHREAD2LinkDir} /opt/gnome/lib - /usr/lib - /usr/local/lib /opt/local/lib /sw/lib - ) - - if (GTHREAD2_LIBRARY AND GTHREAD2_INCLUDE_DIR) - set(GTHREAD2_FOUND TRUE) - endif (GTHREAD2_LIBRARY AND GTHREAD2_INCLUDE_DIR) - ## - - ## libintl - find_path(LIBINTL_INCLUDE_DIR - NAMES - libintl.h - PATHS - /opt/gnome/include/glib-2.0 - /usr/include/glib-2.0 - /usr/local/include/glib-2.0 - /opt/local/include/glib-2.0 - /sw/include/glib-2.0 - ) - - find_library(LIBINTL_LIBRARY - NAMES - intl - PATHS - /opt/gnome/lib /usr/lib /usr/local/lib - /opt/local/lib - /sw/lib - ) - - if (LIBINTL_LIBRARY AND LIBINTL_INCLUDE_DIR) - set(LIBINTL_FOUND TRUE) - endif (LIBINTL_LIBRARY AND LIBINTL_INCLUDE_DIR) + ) + IF ( _glib2_include_DIR AND _glib2_link_DIR ) + SET ( _glib2_FOUND TRUE ) + ENDIF ( _glib2_include_DIR AND _glib2_link_DIR ) + + + IF ( _glib2_FOUND ) + SET ( GLIB2_INCLUDE_DIRS ${_glib2_include_DIR} ${_glibconfig_include_DIR} ) + SET ( GLIB2_LIBRARIES ${_glib2_link_DIR} ) + SET ( GLIB2_CORE_FOUND TRUE ) + ELSE ( _glib2_FOUND ) + SET ( GLIB2_CORE_FOUND FALSE ) + ENDIF ( _glib2_FOUND ) + + # Handle dependencies + # libintl + IF ( NOT LIBINTL_FOUND ) + FIND_PATH(LIBINTL_INCLUDE_DIR + NAMES + libintl.h + PATHS + /opt/gnome/include + /opt/local/include + /sw/include + /usr/include + /usr/local/include + ) + + FIND_LIBRARY(LIBINTL_LIBRARY + NAMES + intl + PATHS + /opt/gnome/lib + /opt/local/lib + /sw/lib + /usr/local/lib + /usr/lib + ) + + IF (LIBINTL_LIBRARY AND LIBINTL_INCLUDE_DIR) + SET (LIBINTL_FOUND TRUE) + ENDIF (LIBINTL_LIBRARY AND LIBINTL_INCLUDE_DIR) + ENDIF ( NOT LIBINTL_FOUND ) + + # libiconv + IF ( NOT LIBICONV_FOUND ) + FIND_PATH(LIBICONV_INCLUDE_DIR + NAMES + iconv.h + PATHS + /opt/gnome/include + /opt/local/include + /opt/local/include + /sw/include + /sw/include + /usr/local/include + /usr/include + PATH_SUFFIXES + glib-2.0 + ) + + FIND_LIBRARY(LIBICONV_LIBRARY + NAMES + iconv + PATHS + /opt/gnome/lib + /opt/local/lib + /sw/lib + /usr/lib + /usr/local/lib + ) + + IF (LIBICONV_LIBRARY AND LIBICONV_INCLUDE_DIR) + SET (LIBICONV_FOUND TRUE) + ENDIF (LIBICONV_LIBRARY AND LIBICONV_INCLUDE_DIR) + ENDIF ( NOT LIBICONV_FOUND ) + + IF (LIBINTL_FOUND) + SET (GLIB2_LIBRARIES ${GLIB2_LIBRARIES} ${LIBINTL_LIBRARY}) + SET (GLIB2_INCLUDE_DIRS ${GLIB2_INCLUDE_DIRS} ${LIBINTL_INCLUDE_DIR}) + ENDIF (LIBINTL_FOUND) + + IF (LIBICONV_FOUND) + SET (GLIB2_LIBRARIES ${GLIB2_LIBRARIES} ${LIBICONV_LIBRARY}) + SET (GLIB2_INCLUDE_DIRS ${GLIB2_INCLUDE_DIRS} ${LIBICONV_INCLUDE_DIR}) + ENDIF (LIBICONV_FOUND) + + ENDIF ( NOT GLIB2_FOUND AND NOT PKG_CONFIG_FOUND ) ## - set(GLIB2_INCLUDE_DIRS - ${GLIB_INCLUDE_DIR} - ${GLIBCONFIG_INCLUDE_DIR} - ) - - if (GMODULE2_FOUND) - set(GLIB2_LIBRARIES ${GLIB2_LIBRARIES} ${GMODULE2_LIBRARY}) - set(GLIB2_INCLUDE_DIRS ${GLIB2_INCLUDE_DIRS} ${GMODULE2_INCLUDE_DIR}) - endif (GMODULE2_FOUND) - - if (GTHREAD2_FOUND) - set(GLIB2_LIBRARIES ${GLIB2_LIBRARIES} ${GTHREAD2_LIBRARY}) - set(GLIB2_INCLUDE_DIRS ${GLIB2_INCLUDE_DIRS} ${GTHREAD2_INCLUDE_DIR}) - endif (GTHREAD2_FOUND) - - if (LIBINTL_FOUND) - set(GLIB2_LIBRARIES ${GLIB2_LIBRARIES} ${LIBINTL_LIBRARY}) - set(GLIB2_INCLUDE_DIRS ${GLIB2_INCLUDE_DIRS} ${LIBINTL_INCLUDE_DIR}) - endif (LIBINTL_FOUND) - - if (GLIB2_INCLUDE_DIRS AND GLIB2_LIBRARIES) - set(GLIB2_FOUND TRUE) - endif (GLIB2_INCLUDE_DIRS AND GLIB2_LIBRARIES) - - if (GLIB2_FOUND) - if (NOT GLIB2_FIND_QUIETLY) - message(STATUS "Found GLIB2: ${GLIB2_LIBRARIES}") - endif (NOT GLIB2_FIND_QUIETLY) - else (GLIB2_FOUND) - if (GLIB2_FIND_REQUIRED) - message(FATAL_ERROR "Could not find GLIB2") - endif (GLIB2_FIND_REQUIRED) - endif (GLIB2_FOUND) + IF (GLIB2_CORE_FOUND AND GLIB2_INCLUDE_DIRS AND GLIB2_LIBRARIES) + SET (GLIB2_FOUND TRUE) + ENDIF (GLIB2_CORE_FOUND AND GLIB2_INCLUDE_DIRS AND GLIB2_LIBRARIES) - # show the GLIB2_INCLUDE_DIRS and GLIB2_LIBRARIES variables only in the advanced view - mark_as_advanced(GLIB2_INCLUDE_DIRS GLIB2_LIBRARIES) + IF (GLIB2_FOUND) + IF (NOT GLIB2_FIND_QUIETLY) + MESSAGE (STATUS "Found GLib2: ${GLIB2_LIBRARIES} ${GLIB2_INCLUDE_DIRS}") + ENDIF (NOT GLIB2_FIND_QUIETLY) + ELSE (GLIB2_FOUND) + IF (GLIB2_FIND_REQUIRED) + MESSAGE (SEND_ERROR "Could not find GLib2") + ENDIF (GLIB2_FIND_REQUIRED) + ENDIF (GLIB2_FOUND) -endif (GLIB2_LIBRARIES AND GLIB2_INCLUDE_DIRS) + # show the GLIB2_INCLUDE_DIRS and GLIB2_LIBRARIES variables only in the advanced view + MARK_AS_ADVANCED(GLIB2_INCLUDE_DIRS GLIB2_LIBRARIES) + MARK_AS_ADVANCED(LIBICONV_INCLUDE_DIR LIBICONV_LIBRARY) + MARK_AS_ADVANCED(LIBINTL_INCLUDE_DIR LIBINTL_LIBRARY) + +ENDIF (GLIB2_LIBRARIES AND GLIB2_INCLUDE_DIRS) + +IF ( WIN32 ) + # include libiconv for win32 + IF ( NOT LIBICONV_FOUND ) + FIND_PATH(LIBICONV_INCLUDE_DIR iconv.h PATH_SUFFIXES glib-2.0) + + FIND_LIBRARY(LIBICONV_LIBRARY NAMES iconv) + + IF (LIBICONV_LIBRARY AND LIBICONV_INCLUDE_DIR) + SET (LIBICONV_FOUND TRUE) + ENDIF (LIBICONV_LIBRARY AND LIBICONV_INCLUDE_DIR) + ENDIF ( NOT LIBICONV_FOUND ) + IF (LIBICONV_FOUND) + SET (GLIB2_LIBRARIES ${GLIB2_LIBRARIES} ${LIBICONV_LIBRARY}) + SET (GLIB2_INCLUDE_DIRS ${GLIB2_INCLUDE_DIRS} ${LIBICONV_INCLUDE_DIR}) + ENDIF (LIBICONV_FOUND) +ENDIF ( WIN32 ) + +IF ( GLIB2_FOUND ) + # Check if system has a newer version of glib + # which supports g_regex_match_simple + INCLUDE( CheckIncludeFiles ) + SET( CMAKE_REQUIRED_INCLUDES ${GLIB2_INCLUDE_DIRS} ) + CHECK_INCLUDE_FILES ( glib/gregex.h HAVE_GLIB_GREGEX_H ) + CHECK_INCLUDE_FILES ( glib/gchecksum.h HAVE_GLIB_GCHECKSUM_H ) + # Reset CMAKE_REQUIRED_INCLUDES + SET( CMAKE_REQUIRED_INCLUDES "" ) +ENDIF( GLIB2_FOUND ) diff --git a/cmake/modules/FindGMODULE2.cmake b/cmake/modules/FindGMODULE2.cmake new file mode 100644 index 0000000000..bb99067a02 --- /dev/null +++ b/cmake/modules/FindGMODULE2.cmake @@ -0,0 +1,59 @@ +# +# $Id$ +# +# - Try to find GModule2 +# Find GModule headers, libraries and the answer to all questions. +# +# GMODULE2_FOUND True if GMODULE2 got found +# GMODULE2_INCLUDE_DIRS Location of GMODULE2 headers +# GMODULE2_LIBRARIES List of libraries to use GMODULE2 +# +# Copyright (c) 2008 Bjoern Ricks <bjoern.ricks@googlemail.com> +# +# Redistribution and use is allowed according to the terms of the New +# BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +# + +INCLUDE( FindPkgConfig ) + +IF ( GMODULE2_FIND_REQUIRED ) + SET( _pkgconfig_REQUIRED "REQUIRED" ) +ELSE( GMODULE2_FIND_REQUIRED ) + SET( _pkgconfig_REQUIRED "" ) +ENDIF ( GMODULE2_FIND_REQUIRED ) + +IF ( GMODULE2_MIN_VERSION ) + PKG_SEARCH_MODULE( GMODULE2 ${_pkgconfig_REQUIRED} gmodule-2.0>=${GMODULE2_MIN_VERSION} ) +ELSE ( GMODULE2_MIN_VERSION ) + PKG_SEARCH_MODULE( GMODULE2 ${_pkgconfig_REQUIRED} gmodule-2.0 ) +ENDIF ( GMODULE2_MIN_VERSION ) + + +IF( NOT GMODULE2_FOUND AND NOT PKG_CONFIG_FOUND ) + FIND_PATH( GMODULE2_INCLUDE_DIRS gmodule.h PATH_SUFFIXES glib-2.0 ) + + IF ( APPLE ) + FIND_LIBRARY( GMODULE2_LIBRARIES glib ) + ELSE ( APPLE ) + FIND_LIBRARY( GMODULE2_LIBRARIES NAMES gmodule-2.0 gmodule ) + ENDIF (APPLE) + + # Report results + IF ( GMODULE2_LIBRARIES AND GMODULE2_INCLUDE_DIRS ) + SET( GMODULE2_FOUND 1 ) + IF ( NOT GMODULE2_FIND_QUIETLY ) + MESSAGE( STATUS "Found GMODULE2: ${GMODULE2_LIBRARIES} ${GMODULE2_INCLUDE_DIRS}" ) + ENDIF ( NOT GMODULE2_FIND_QUIETLY ) + ELSE ( GMODULE2_LIBRARIES AND GMODULE2_INCLUDE_DIRS ) + IF ( GMODULE2_FIND_REQUIRED ) + MESSAGE( SEND_ERROR "Could NOT find GMODULE2" ) + ELSE ( GMODULE2_FIND_REQUIRED ) + IF ( NOT GMODULE2_FIND_QUIETLY ) + MESSAGE( STATUS "Could NOT find GMODULE2" ) + ENDIF ( NOT GMODULE2_FIND_QUIETLY ) + ENDIF ( GMODULE2_FIND_REQUIRED ) + ENDIF ( GMODULE2_LIBRARIES AND GMODULE2_INCLUDE_DIRS ) +ENDIF( NOT GMODULE2_FOUND AND NOT PKG_CONFIG_FOUND ) + +MARK_AS_ADVANCED( GMODULE2_LIBRARIES GMODULE2_INCLUDE_DIRS ) diff --git a/wiretap/CMakeLists.txt b/wiretap/CMakeLists.txt index 7de25299f5..6d416d2a0f 100644 --- a/wiretap/CMakeLists.txt +++ b/wiretap/CMakeLists.txt @@ -94,6 +94,7 @@ add_yacc_files(WIRETAP_FILES set(wiretap_LIBS ${GLIB2_LIBRARIES} + ${GMODULE2_LIBRARIES} ${ZLIB_LIBRARIES} wsutil ) |