some smaller changes by me.
- README.cmake
Document how to (one day) run on Windows
- CMakeLists.txt
Use MSVC compiler flags for MSVC instead of gcc flags
- FindWSWinLibs.cmake
New: Creates HINTS for finding includes and libraries
inside the Wireshark support library installation.
- FindXXX.cmake
Make use of HINTS generated by FindWSWinLibs.cmake
This has not really been tested on Windows as my installation seems to have
automagically downloaded some fixes and is in an inconsistent state since.
Will probably need to reinstall.
svn path=/trunk/; revision=52194
include(CMakeOptions.txt)
-
-set(WIRESHARK_C_FLAGS
- -O2
- -g
- -Wall
- -W
- -Wextra
- -Wendif-labels
- -Wpointer-arith
- -Warray-bounds
- -Wformat-security
- -Wshorten-64-to-32
- -Wvla
- -Waddress
- -Warray-bounds
- -Wattributes
- -Wdiv-by-zero
- -Wignored-qualifiers
- -Wno-overlength-strings
- -Wwrite-strings
- -Wno-long-long
- -Wpragmas
-)
-
-set(WIRESHARK_C_ONLY_FLAGS
- # The following are C only, not C++
- -Wc++-compat
- -Wdeclaration-after-statement
- -Wshadow
- -Wno-pointer-sign
- -Wold-style-definition
- -Wstrict-prototypes
- -Wlogical-op
- -Wjump-misses-init
-)
-
-set(WIRESHARK_EXTRA_C_FLAGS
- -pedantic
- -Woverflow
- -fstrict-overflow -Wstrict-overflow=4
- -Wunreachable-code
- -Wunsafe-loop-optimizations
- -Wcast-align
- -Wcast-qual
- -Wformat-security
- -Wredundant-decls
- # All the registration functions block these for now.
- -Wmissing-declarations
-)
-
-set(WIRESHARK_EXTRA_C_ONLY_FLAGS
- # The following are C only, not C++
- -Wbad-function-cast
- # All the registration functions block these for now.
- -Wmissing-prototypes
-)
-
-# With clang some tests don't fail properly during testing but only
-# during real compiles
-
-if(NOT CMAKE_C_COMPILER_ID MATCHES "Clang")
-
- set(WIRESHARK_C_FLAGS ${WIRESHARK_C_FLAGS}
- -fexcess-precision=fast
- )
-
- set(WIRESHARK_C_ONLY_FLAGS ${WIRESHARK_C_ONLY_FLAGS}
- )
-endif()
-
-if(ENABLE_EXTRA_GCC_CHECKS) # This overrides -Werror
- set(WIRESHARK_C_FLAGS ${WIRESHARK_C_FLAGS} ${WIRESHARK_EXTRA_C_FLAGS})
- set(WIRESHARK_C_ONLY_FLAGS ${WIRESHARK_C_ONLY_FLAGS} ${WIRESHARK_EXTRA_C_ONLY_FLAGS})
+if( CMAKE_C_COMPILER_ID MATCHES "MSVC")
+ set(LOCAL_CFLAGS
+ /Zi
+ /W3
+ /MD
+ /DWIN32_LEAN_AND_MEAN
+ "/DMSC_VER_REQUIRED=${MSC_VER_REQUIRED}"
+ /D_CRT_SECURE_NO_DEPRECATE
+ /D_CRT_NONSTDC_NO_DEPRECATE
+ /MP
+ )
+
+ if(NOT WIN64)
+ set(LOCAL_CFLAGS ${LOCAL_CFLAGS} "/D_BIND_TO_CURRENT_CRT_VERSION=1")
+ endif()
+
+ # Additional compiler warnings to be treated as "Level 3"
+ # when compiling Wireshark sources. (Selected from "level 4" warnings).
+ ## 4295: array is too small to include a terminating null character
+ set(WARNINGS_CFLAGS "/w34295")
+
+ set(WIRESHARK_C_FLAGS
+ "/DPCAP_VERSION=${PCAP_VERSION}"
+ ${LOCAL_CFLAGS}
+ ${WARNINGS_CFLAGS}
+ )
+else()
+ set(WIRESHARK_C_FLAGS
+ -O2
+ -g
+ -Wall
+ -W
+ -Wextra
+ -Wendif-labels
+ -Wpointer-arith
+ -Warray-bounds
+ -Wformat-security
+ -Wshorten-64-to-32
+ -Wvla
+ -Waddress
+ -Warray-bounds
+ -Wattributes
+ -Wdiv-by-zero
+ -Wignored-qualifiers
+ -Wno-overlength-strings
+ -Wwrite-strings
+ -Wno-long-long
+ -Wpragmas
+ )
+
+ set(WIRESHARK_C_ONLY_FLAGS
+ # The following are C only, not C++
+ -Wc++-compat
+ -Wdeclaration-after-statement
+ -Wshadow
+ -Wno-pointer-sign
+ -Wold-style-definition
+ -Wstrict-prototypes
+ -Wlogical-op
+ -Wjump-misses-init
+ )
+
+ set(WIRESHARK_EXTRA_C_FLAGS
+ -pedantic
+ -Woverflow
+ -fstrict-overflow -Wstrict-overflow=4
+ -Wunreachable-code
+ -Wunsafe-loop-optimizations
+ -Wcast-align
+ -Wcast-qual
+ -Wformat-security
+ -Wredundant-decls
+ # All the registration functions block these for now.
+ -Wmissing-declarations
+ )
+
+ set(WIRESHARK_EXTRA_C_ONLY_FLAGS
+ # The following are C only, not C++
+ -Wbad-function-cast
+ # All the registration functions block these for now.
+ -Wmissing-prototypes
+ )
+
+ # With clang some tests don't fail properly during testing but only
+ # during real compiles
+
+ if(NOT CMAKE_C_COMPILER_ID MATCHES "Clang")
+
+ set(WIRESHARK_C_FLAGS ${WIRESHARK_C_FLAGS}
+ -fexcess-precision=fast
+ )
+
+ set(WIRESHARK_C_ONLY_FLAGS ${WIRESHARK_C_ONLY_FLAGS}
+ )
+ endif()
+
+ if(ENABLE_EXTRA_GCC_CHECKS) # This overrides -Werror
+ set(WIRESHARK_C_FLAGS ${WIRESHARK_C_FLAGS} ${WIRESHARK_EXTRA_C_FLAGS})
+ set(WIRESHARK_C_ONLY_FLAGS ${WIRESHARK_C_ONLY_FLAGS} ${WIRESHARK_EXTRA_C_ONLY_FLAGS})
+ endif()
+
+ add_definitions(
+ -DG_DISABLE_DEPRECATED
+ -DG_DISABLE_SINGLE_INCLUDES
+ )
endif()
-add_definitions(
- -DG_DISABLE_DEPRECATED
- -DG_DISABLE_SINGLE_INCLUDES
-)
-
# Counterhack to work around some cache magic in CHECK_C_SOURCE_COMPILES
include(CheckCCompilerFlag)
3) mkdir build
4) cd build
5) cmake ../<Name_of_WS_source_dir>
-6) make
-6) (as root) umask 0022 && make install
+6) make (or cmake --build .)
+7) (as root) umask 0022 && make install
Note 1:
in step 5), you may override the defaults for features:
http://public.kitware.com/Bug/view.php?id=9620
To get predictable results please set umask explicitly.
+How to do out of tree build (Win32/64):
+[This is early alpha and the build will most likely die during the cmake
+ stage - don't waste your time testing unless you are willing to fix things
+ yourself]
+1) Follow http://www.wireshark.org/docs/wsdg_html_chunked/ChSetupWin32.html
+ Steps 1-9
+1a) Set WIRESHARK_BASE_DIR=c:\wireshark (the parent directory of the
+ library directory).
+2) Install cmake
+3) mkdir c:\wireshark\build
+4) cd c:\wireshark\build
+5) cmake -G "NMake Makefiles" .. (if the sources are in c:\wireshark)
+6) make (or cmake --build .)
+7) (as root) umask 0022 && make install
+
Why cmake?
==========
- Can create project files for some MS and Apple IDEs.
SET(CARES_FIND_QUIETLY TRUE)
ENDIF (CARES_INCLUDE_DIRS)
-FIND_PATH(CARES_INCLUDE_DIR ares.h)
+INCLUDE(FindWSWinLibs)
+FindWSWinLibs("c-ares-.*" "CARES_HINTS")
-SET(CARES_NAMES cares)
-FIND_LIBRARY(CARES_LIBRARY NAMES ${CARES_NAMES} )
+FIND_PATH(CARES_INCLUDE_DIR ares.h HINTS "${CARES_HINTS}/include" )
+
+SET(CARES_NAMES cares libcares-2)
+FIND_LIBRARY(CARES_LIBRARY NAMES ${CARES_NAMES} HINTS "${CARES_HINTS}/lib" )
# handle the QUIETLY and REQUIRED arguments and set CARES_FOUND to TRUE if
# all listed variables are TRUE
SET(GCRYPT_FIND_QUIETLY TRUE)
ENDIF (GCRYPT_INCLUDE_DIRS)
-FIND_PATH(GCRYPT_INCLUDE_DIR gcrypt.h)
+INCLUDE(FindWSWinLibs)
+FindWSWinLibs("gnutls-.*" "GCRYPT_HINTS")
-SET(GCRYPT_NAMES gcrypt)
-FIND_LIBRARY(GCRYPT_LIBRARY NAMES ${GCRYPT_NAMES} )
-FIND_LIBRARY(GCRYPT_ERROR_LIBRARY NAMES gpg-error )
+FIND_PATH(GCRYPT_INCLUDE_DIR gcrypt.h HINTS "${GCRYPT_HINTS}/include")
+
+SET(GCRYPT_NAMES gcrypt libgcrypt-11)
+FIND_LIBRARY(GCRYPT_LIBRARY NAMES ${GCRYPT_NAMES} HINTS "${GCRYPT_HINTS}/bin")
+FIND_LIBRARY(GCRYPT_ERROR_LIBRARY NAMES gpg-error libgpg-error-0 HINTS "${GCRYPT_HINTS}/bin")
# handle the QUIETLY and REQUIRED arguments and set GCRYPT_FOUND to TRUE if
# all listed variables are TRUE
SET(GEOIP_FIND_QUIETLY TRUE)
ENDIF (GEOIP_INCLUDE_DIRS)
-FIND_PATH(GEOIP_INCLUDE_DIR GeoIP.h)
+INCLUDE(FindWSWinLibs)
+FindWSWinLibs("GeoIP-.*" "GEOIP_HINTS")
-SET(GEOIP_NAMES GeoIP)
-FIND_LIBRARY(GEOIP_LIBRARY NAMES ${GEOIP_NAMES} )
+FIND_PATH(GEOIP_INCLUDE_DIR GeoIP.h HINTS "${GEOIP_HINTS}/include" )
+
+SET(GEOIP_NAMES GeoIP libGeoIP-1)
+FIND_LIBRARY(GEOIP_LIBRARY NAMES ${GEOIP_NAMES} HINTS "${GEOIP_HINTS}/lib" )
# handle the QUIETLY and REQUIRED arguments and set GEOIP_FOUND to TRUE if
# all listed variables are TRUE
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
#
+INCLUDE(FindWSWinLibs)
+FindWSWinLibs("gtk2" "GLIB2_HINTS")
IF (GLIB2_LIBRARIES AND GLIB2_INCLUDE_DIRS )
# in cache already
${CMAKE_LIBRARY_PATH}
PATH_SUFFIXES
glib-2.0/include
+ HINTS
+ "${GLIB2_HINTS}/lib"
)
FIND_PATH(
/usr/local/include
PATH_SUFFIXES
glib-2.0
+ HINTS
+ "${GLIB2_HINTS}/include"
)
#MESSAGE(STATUS "Glib headers: ${_glib2_include_DIR}")
/sw/lib
/usr/lib
/usr/local/lib
+ HINTS
+ "${GLIB2_HINTS}/lib"
)
IF ( _glib2_include_DIR AND _glib2_link_DIR )
SET ( _glib2_FOUND TRUE )
#
# $Id$
#
-# - Try to find GModule2
+# - 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
+# GMODULE2_INCLUDE_DIRS Location of GMODULE2 headers
+# GMODULE2_LIBRARIES List of libraries to use GMODULE2
#
# Copyright (c) 2008 Bjoern Ricks <bjoern.ricks@googlemail.com>
#
IF ( GMODULE2_FIND_REQUIRED )
SET( _pkgconfig_REQUIRED "REQUIRED" )
ELSE( GMODULE2_FIND_REQUIRED )
- SET( _pkgconfig_REQUIRED "" )
+ SET( _pkgconfig_REQUIRED "" )
ENDIF ( GMODULE2_FIND_REQUIRED )
IF ( GMODULE2_MIN_VERSION )
IF( NOT GMODULE2_FOUND AND NOT PKG_CONFIG_FOUND )
- FIND_PATH( GMODULE2_INCLUDE_DIRS gmodule.h PATH_SUFFIXES glib-2.0 )
+
+ INCLUDE(FindWSWinLibs)
+ FindWSWinLibs("gtk2" "GMODULE2_HINTS")
+
+ FIND_PATH( GMODULE2_INCLUDE_DIRS gmodule.h PATH_SUFFIXES glib-2.0 HINTS "${GMODULE2_HINTS}/include" )
IF ( APPLE )
FIND_LIBRARY( GMODULE2_LIBRARIES glib )
ELSE ( APPLE )
- FIND_LIBRARY( GMODULE2_LIBRARIES NAMES gmodule-2.0 gmodule )
+ FIND_LIBRARY( GMODULE2_LIBRARIES NAMES gmodule-2.0 gmodule HINTS "${GMODULE2_HINTS}/lib" )
ENDIF (APPLE)
# Report results
- IF ( GMODULE2_LIBRARIES AND GMODULE2_INCLUDE_DIRS )
+ 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 )
+ 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" )
+ MESSAGE( STATUS "Could NOT find GMODULE2" )
ENDIF ( NOT GMODULE2_FIND_QUIETLY )
ENDIF ( GMODULE2_FIND_REQUIRED )
ENDIF ( GMODULE2_LIBRARIES AND GMODULE2_INCLUDE_DIRS )
SET(GNUTLS_FIND_QUIETLY TRUE)
ENDIF (GNUTLS_INCLUDE_DIRS)
+INCLUDE(FindWSWinLibs)
+FindWSWinLibs("gnutls-.*" "GNUTLS_HINTS")
+
FIND_PATH(GNUTLS_INCLUDE_DIR
NAMES
gnutls.h
gnutls/gnutls.h
# PATHS
+ HINTS "${GNUTLS_HINTS}/include"
)
-SET(GNUTLS_NAMES gnutls)
-FIND_LIBRARY(GNUTLS_LIBRARY NAMES ${GNUTLS_NAMES} )
+SET(GNUTLS_NAMES gnutls libgnutls-26)
+FIND_LIBRARY(GNUTLS_LIBRARY NAMES ${GNUTLS_NAMES} HINTS "${GNUTLS_HINTS}/bin" )
# handle the QUIETLY and REQUIRED arguments and set GNUTLS_FOUND to TRUE if
# all listed variables are TRUE
-# - Try to find GThread2
+# - Try to find GThread2
#
# $Id$
#
# Find GThread headers, libraries and the answer to all questions.
#
# GTHREAD2_FOUND True if GTHREAD2 got found
-# GTHREAD2_INCLUDE_DIRS Location of GTHREAD2 headers
-# GTHREAD2_LIBRARIES List of libraries to use GTHREAD2
+# GTHREAD2_INCLUDE_DIRS Location of GTHREAD2 headers
+# GTHREAD2_LIBRARIES List of libraries to use GTHREAD2
#
# Copyright (c) 2008 Bjoern Ricks <bjoern.ricks@googlemail.com>
#
IF ( GTHREAD2_FIND_REQUIRED )
SET( _pkgconfig_REQUIRED "REQUIRED" )
ELSE( GTHREAD2_FIND_REQUIRED )
- SET( _pkgconfig_REQUIRED "" )
+ SET( _pkgconfig_REQUIRED "" )
ENDIF ( GTHREAD2_FIND_REQUIRED )
IF ( GTHREAD2_MIN_VERSION )
IF( NOT GTHREAD2_FOUND AND NOT PKG_CONFIG_FOUND )
- FIND_PATH( GTHREAD2_INCLUDE_DIRS gthread.h PATH_SUFFIXES glib-2.0 glib GLib.framework/Headers/glib )
- IF ( APPLE )
+
+ INCLUDE(FindWSWinLibs)
+ FindWSWinLibs("gtk2" "GTHREAD2_HINTS")
+
+ FIND_PATH( GTHREAD2_INCLUDE_DIRS gthread.h PATH_SUFFIXES glib-2.0 glib GLib.framework/Headers/glib glib-2.0/glib HINTS "${GTHREAD2_HINTS}/include" )
+ IF ( APPLE )
FIND_LIBRARY( GTHREAD2_LIBRARIES glib )
ELSE ( APPLE )
- FIND_LIBRARY( GTHREAD2_LIBRARIES gthread-2.0 )
+ FIND_LIBRARY( GTHREAD2_LIBRARIES gthread-2.0 HINTS "${GTHREAD2_HINTS}/lib" )
ENDIF ( APPLE )
-
+
#MESSAGE( STATUS "Gthread headers: ${GTHREAD2_INCLUDE_DIRS}" )
#MESSAGE( STATUS "Gthread libs: ${GTHREAD2_LIBRARIES}" )
-
+
# Report results
- IF ( GTHREAD2_LIBRARIES AND GTHREAD2_INCLUDE_DIRS )
+ IF ( GTHREAD2_LIBRARIES AND GTHREAD2_INCLUDE_DIRS )
SET( GTHREAD2_FOUND 1 )
IF ( NOT GTHREAD2_FIND_QUIETLY )
MESSAGE( STATUS "Found GTHREAD2: ${GTHREAD2_LIBRARIES} ${GTHREAD2_INCLUDE_DIRS}" )
ENDIF ( NOT GTHREAD2_FIND_QUIETLY )
- ELSE ( GTHREAD2_LIBRARIES AND GTHREAD2_INCLUDE_DIRS )
+ ELSE ( GTHREAD2_LIBRARIES AND GTHREAD2_INCLUDE_DIRS )
IF ( GTHREAD2_FIND_REQUIRED )
MESSAGE( SEND_ERROR "Could NOT find GTHREAD2" )
ELSE ( GTHREAD2_FIND_REQUIRED )
IF ( NOT GTHREAD2_FIND_QUIETLY )
- MESSAGE( STATUS "Could NOT find GTHREAD2" )
+ MESSAGE( STATUS "Could NOT find GTHREAD2" )
ENDIF ( NOT GTHREAD2_FIND_QUIETLY )
ENDIF ( GTHREAD2_FIND_REQUIRED )
ENDIF ( GTHREAD2_LIBRARIES AND GTHREAD2_INCLUDE_DIRS )
# Version 0.5 (12/19/08)
# Second release to cmake mailing list
+INCLUDE(FindWSWinLibs)
+FindWSWinLibs("gtk2" "GTK2_HINTS")
+
#=============================================================
# _GTK2_GET_VERSION
# Internal function to parse the version number in gtkversion.h
[HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib
PATH_SUFFIXES
${_suffixes}
+ HINTS
+ "${GTK2_HINTS}/include"
+ "${GTK2_HINTS}/lib"
)
if(${_var})
$ENV{GTKMM_BASEPATH}/lib
[HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/lib
[HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib
+ HINTS
+ "${GTK2_HINTS}/lib"
)
if(_expand_vc AND MSVC)
find_package(Freetype)
list(APPEND GTK2_INCLUDE_DIRS ${FREETYPE_INCLUDE_DIRS})
-list(APPEND GTK2_LIBRARIES ${FREETYPE_LIBRARIES})
+if(NOT WIN32)
+ list(APPEND GTK2_LIBRARIES ${FREETYPE_LIBRARIES})
+endif(NOT WIN32)
foreach(_GTK2_component ${GTK2_FIND_COMPONENTS})
if(_GTK2_component STREQUAL "gtk")
SET(KERBEROS_FIND_QUIETLY TRUE)
ENDIF (KERBEROS_INCLUDE_DIRS)
-FIND_PATH(KERBEROS_INCLUDE_DIR krb5.h)
+INCLUDE(FindWSWinLibs)
+FindWSWinLibs("kfw-.*" "KERBOROS_HINTS")
-SET(KERBEROS_NAMES krb5)
-FIND_LIBRARY(KERBEROS_LIBRARY NAMES ${KERBEROS_NAMES} )
+FIND_PATH(KERBEROS_INCLUDE_DIR krb5.h HINTS "${KERBOROS_HINTS}/include" )
+
+SET(KERBEROS_NAMES krb5 krb5_32)
+FIND_LIBRARY(KERBEROS_LIBRARY NAMES ${KERBEROS_NAMES} HINTS "${KERBOROS_HINTS}/lib" )
# handle the QUIETLY and REQUIRED arguments and set KERBEROS_FOUND to TRUE if
# all listed variables are TRUE
# This is because, the lua location is not standardized and may exist
# in locations other than lua/
+INCLUDE(FindWSWinLibs)
+FindWSWinLibs("lua5*" "LUA_HINTS")
FIND_PATH(LUA_INCLUDE_DIR lua.h
HINTS
$ENV{LUA_DIR}
+ ${LUA_HINTS}
PATH_SUFFIXES include/lua52 include/lua5.2 include/lua51 include/lua5.1 include/lua include
PATHS
~/Library/Frameworks
NAMES lua${LUA_INC_SUFFIX} lua52 lua5.2 lua51 lua5.1 lua
HINTS
$ENV{LUA_DIR}
+ ${LUA_HINTS}
PATH_SUFFIXES lib64 lib
PATHS
~/Library/Frameworks
ELSE(EXISTS $ENV{PCAPDIR})
+
+ INCLUDE(FindWSWinLibs)
+ FindWSWinLibs("WpdPack" "PCAP_HINTS")
+
FIND_PATH(PCAP_INCLUDE_DIR
NAMES
pcap/pcap.h
pcap.h
+ HINTS
+ "${PCAP_HINTS}/include"
)
FIND_LIBRARY(PCAP_LIBRARY
NAMES
pcap
+ wpcap
+ HINTS
+ "${PCAP_HINTS}/lib"
)
ENDIF(EXISTS $ENV{PCAPDIR})
SET(PORTAUDIO_FIND_QUIETLY TRUE)
ENDIF (PORTAUDIO_INCLUDE_DIRS)
-FIND_PATH(PORTAUDIO_INCLUDE_DIR portaudio.h)
+INCLUDE(FindWSWinLibs)
+FindWSWinLibs("portaudio_.*" "PORTAUDIO_HINTS")
+
+FIND_PATH(PORTAUDIO_INCLUDE_DIR portaudio.h HINTS "${PORTAUDIO_HINTS}/include" )
SET(PORTAUDIO_NAMES portaudio)
FIND_LIBRARY(PORTAUDIO_LIBRARY NAMES ${PORTAUDIO_NAMES} )
SET(SMI_FIND_QUIETLY TRUE)
ENDIF (SMI_INCLUDE_DIR)
-FIND_PATH(SMI_INCLUDE_DIR smi.h)
+INCLUDE(FindWSWinLibs)
+FindWSWinLibs("libsmi-.*" "SMI_HINTS")
-SET(SMI_NAMES smi)
-FIND_LIBRARY(SMI_LIBRARY NAMES ${SMI_NAMES} )
+FIND_PATH(SMI_INCLUDE_DIR smi.h HINTS "${SMI_HINTS}/include" )
+
+SET(SMI_NAMES smi libsmi-2)
+FIND_LIBRARY(SMI_LIBRARY NAMES ${SMI_NAMES} HINTS "${SMI_HINTS}/lib" )
# handle the QUIETLY and REQUIRED arguments and set SMI_FOUND to TRUE if
# all listed variables are TRUE
--- /dev/null
+#
+# $Id$
+#
+# - Find WSWin Libs
+# Due to the layout of the Wireshark Win support libs,
+# CMake needs some support to find them
+#
+# The function is passed the directory name to search for and the variable
+# to set in the callers scope.
+
+function(FindWSWinLibs _WS_LIB_SEARCH_PATH _LIB_HINT_VAR)
+ if (WIN32)
+ set( _WS_BASE_DIR $ENV{WIRESHARK_BASE_DIR} )
+ set( _WS_TARGET_PLATFORM $ENV{WIRESHARK_TARGET_PLATFORM} )
+ set( _PROJECT_LIB_DIR "${_WS_BASE_DIR}/wireshark-${_WS_TARGET_PLATFORM}-libs" )
+ file( GLOB _SUBDIR "${_PROJECT_LIB_DIR}/*" )
+ foreach( _DIR ${_SUBDIR} )
+ if( IS_DIRECTORY ${dir} )
+ if( "${_DIR}" matches ".*/${_WS_LIB_SEARCH_PATH}" )
+ set( ${_LIB_HINT_VAR} ${_DIR} PARENT_SCOPE )
+ endif()
+ endif()
+ endforeach()
+ endif()
+endfunction(FindWSWinLibs)
+