summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.cmake2
-rw-r--r--cmake/modules/FindGTK3.cmake66
2 files changed, 47 insertions, 21 deletions
diff --git a/README.cmake b/README.cmake
index 0dd9f153bb..db17806664 100644
--- a/README.cmake
+++ b/README.cmake
@@ -66,7 +66,7 @@ How to do out of tree build (Win32/64):
2) Install cmake
3) mkdir c:\wireshark\build
4) cd c:\wireshark\build
-5) cmake -G "NMake Makefiles" -DENABLE_GTK3=OFF path\to\sources
+5) cmake -G "NMake Makefiles" path\to\sources
(i.e. in case your sources are located at c:\wireshark\trunk, use "..\trunk")
5a) cmake path\to\sources (this will build for the latest Visual Studio version found)
6) nmake /X- VERBOSE=1 (or cmake --build . -- VERBOSE=1 )
diff --git a/cmake/modules/FindGTK3.cmake b/cmake/modules/FindGTK3.cmake
index bc92316c60..fb1d28165b 100644
--- a/cmake/modules/FindGTK3.cmake
+++ b/cmake/modules/FindGTK3.cmake
@@ -21,7 +21,7 @@
# (To distribute this file outside of CMake, substitute the full
# License text for the above reference.)
-INCLUDE( FindWSWinLibs )
+include( FindWSWinLibs )
FindWSWinLibs( "gtk3" "GTK3_HINTS" )
if( DEFINED GTK3_HINTS )
set( GTK3_PKG_CONFIG_PATH "${GTK3_HINTS}/lib/pkgconfig" )
@@ -36,20 +36,38 @@ endif()
# use pkg-config to get the directories and then use these values
# in the FIND_PATH() and FIND_LIBRARY() calls
-FIND_PACKAGE(PkgConfig)
-PKG_CHECK_MODULES(PC_GTK3 gtk+-3.0 QUIET)
+find_package( PkgConfig )
+pkg_check_modules( PC_GTK3 gtk+-3.0 QUIET )
-# MESSAGE(STATUS "PC_GTK3_INCLUDEDIR: ${PC_GTK3_INCLUDEDIR}")
-# MESSAGE(STATUS "PC_GTK3_INCLUDE_DIRS: ${PC_GTK3_INCLUDE_DIRS}")
-# MESSAGE(STATUS "PC_GTK3_LIBRARIES: ${PC_GTK3_LIBRARIES}")
-# MESSAGE(STATUS "PC_GTK3_LIBRARY_DIRS: ${PC_GTK3_LIBRARY_DIRS}")
-MESSAGE(STATUS "PC_GTK3_LDFLAGS: ${PC_GTK3_LDFLAGS}")
-# MESSAGE(STATUS "PC_GTK3_LDFLAGS_OTHER: ${PC_GTK3_LDFLAGS_OTHER}")
+# Hack around broken .pc files in Windows GTK bundle
+if( DEFINED GTK3_HINTS )
+ string( REGEX REPLACE "/.*/include" "${GTK3_HINTS}/include" PC_GTK3_INCLUDEDIR "${PC_GTK3_INCLUDEDIR}" )
+ string( REGEX REPLACE "/.*/include" "${GTK3_HINTS}/include" PC_GTK3_INCLUDE_DIRS "${PC_GTK3_INCLUDE_DIRS}" )
+ string( REGEX REPLACE "/.*/lib" "${GTK3_HINTS}/lib" PC_GTK3_LIBRARY_DIRS "${PC_GTK3_LIBRARY_DIRS}" )
+ set( PC_GTK3_CFLAGS )
+ set( PC_GTK3_CFLAGS_OTHER )
+ file( GLOB _SUBDIRS "${PC_GTK3_INCLUDEDIR}/*" )
+ foreach( _ENTRY ${_SUBDIRS} )
+ if( IS_DIRECTORY ${_ENTRY} )
+ file( TO_NATIVE_PATH ${_ENTRY} _N_ENTRY )
+ set( PC_GTK3_INCLUDE_DIRS ${PC_GTK3_INCLUDE_DIRS} ${_N_ENTRY} )
+ endif()
+ endforeach()
+endif()
+
+#message( STATUS "PC_GTK3_INCLUDEDIR: ${PC_GTK3_INCLUDEDIR}" )
+#message( STATUS "PC_GTK3_INCLUDE_DIRS: ${PC_GTK3_INCLUDE_DIRS}" )
+#message( STATUS "PC_GTK3_LIBRARIES: ${PC_GTK3_LIBRARIES}" )
+#message( STATUS "PC_GTK3_LIBRARY_DIRS: ${PC_GTK3_LIBRARY_DIRS}" )
+#message( STATUS "PC_GTK3_CFLAGS: ${PC_GTK3_CFLAGS}")
+#message( STATUS "PC_GTK3_CFLAGS_OTHER: ${PC_GTK3_CFLAGS_OTHER}" )
+#message( STATUS "PC_GTK3_LDFLAGS: ${PC_GTK3_LDFLAGS}" )
+#message( STATUS "PC_GTK3_LDFLAGS_OTHER: ${PC_GTK3_LDFLAGS_OTHER}" )
-SET(GTK3_DEFINITIONS ${PC_GTK3_CFLAGS_OTHER})
+set( GTK3_DEFINITIONS ${PC_GTK3_CFLAGS_OTHER} )
if( NOT PC_GTK3_FOUND )
- FIND_PATH(GTK3_INCLUDE_DIR
+ find_path( GTK3_INCLUDE_DIR
NAMES
"gtk/gtk.h"
HINTS
@@ -59,22 +77,30 @@ if( NOT PC_GTK3_FOUND )
PATH_SUFFIXES
"gtk-3.0"
)
- FIND_LIBRARY(GTK3_LIBRARY
+else()
+ set( GTK3_INCLUDE_DIR ${PC_GTK3_INCLUDEDIR} ${PC_GTK3_INCLUDE_DIRS} )
+endif()
+
+set( _C 1 )
+foreach( _LIB_NAME gtk-3 gtk3 ${PC_GTK3_LIBRARIES} )
+ find_library( _LIBRARY_${_C}
NAMES
- gtk-3 gtk3
+ ${_LIB_NAME}
HINTS
${GTK3_HINTS}/lib
${PC_GTK3_LIBDIR}
${PC_GTK3_LIBRARY_DIRS}
)
-else()
- set( GTK3_LIBRARY ${PC_GTK3_LIBRARIES} ${PC_GTK3_LIBRARY_DIRS} )
- set( GTK3_INCLUDE_DIR ${PC_GTK3_INCLUDEDIR} ${PC_GTK3_INCLUDE_DIRS} )
-endif()
+ if( _LIBRARY_${_C} )
+ set( GTK3_LIBRARY ${GTK3_LIBRARY} ${_LIBRARY_${_C}} )
+ endif()
+ math( EXPR _C "${_C} + 1" )
+endforeach()
+
# handle the QUIETLY and REQUIRED arguments and set GTK3_FOUND to TRUE if
# all listed variables are TRUE
-INCLUDE(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK3 DEFAULT_MSG GTK3_LIBRARY GTK3_INCLUDE_DIR)
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(GTK3 DEFAULT_MSG GTK3_LIBRARY GTK3_INCLUDE_DIR)
if( GTK3_FOUND )
set( GTK3_LIBRARIES ${GTK3_LIBRARY} )
@@ -84,5 +110,5 @@ else()
set( GTK3_INCLUDE_DIRS )
endif()
-MARK_AS_ADVANCED(GTK3_INCLUDE_DIRS GTK3_LIBRARIES)
+mark_as_advanced(GTK3_INCLUDE_DIRS GTK3_LIBRARIES)