From 86fde7857f30d4fe1300047b5a12a8d656b46e7f Mon Sep 17 00:00:00 2001 From: Gerald Combs Date: Tue, 13 Jan 2015 10:15:18 -0800 Subject: CMake: Copy wireshark-gtk dependent DLLs to the target directory. Add a "copy_gtk_dlls" target similar to "copy_cli_dlls". Change-Id: Id1df1d0ec00c46fccec90c4b8c0c8a2d2a14766a Reviewed-on: https://code.wireshark.org/review/6527 Petri-Dish: Gerald Combs Tested-by: Petri Dish Buildbot Reviewed-by: Graham Bloice Reviewed-by: Gerald Combs --- cmake/modules/FindGTK2.cmake | 58 +++++++++++++++++++++++++++++++++++++++++++- cmake/modules/FindGTK3.cmake | 42 +++++++++++++++++++++++++++++++- 2 files changed, 98 insertions(+), 2 deletions(-) (limited to 'cmake') diff --git a/cmake/modules/FindGTK2.cmake b/cmake/modules/FindGTK2.cmake index 0491b8050b..f879b88d1c 100644 --- a/cmake/modules/FindGTK2.cmake +++ b/cmake/modules/FindGTK2.cmake @@ -35,6 +35,13 @@ # GTK2_INCLUDE_DIRS - All include directories # GTK2_LIBRARIES - All libraries # GTK2_DEFINITIONS - Additional compiler flags +# GTK2_DLL_DIR - (Windows) Path to required GTK2 DLLS +# GTK2_DLLS - (Windows) List of required GTK2 DLLS +# GTK2_ETC_DIR - (Windows) Path to GTK2 configuration files +# GTK2_LIB_DIR - (Windows) Path to additional GTK2 library files +# GTK2_ENGINES_DLL_DIR - (Windows) Path to required GTK2 theme engine DLLS +# GTK2_ENGINES_DLLS - (Windows) List of required GTK2 theme engine DLLS +# GTK2_THEMES_DIR - (Windows) Path to GTK2 theme files # # # @@ -894,6 +901,49 @@ endforeach() if(_GTK2_did_we_find_everything AND NOT GTK2_VERSION_CHECK_FAILED) set(GTK2_FOUND true) + if(WIN32) + set(GTK2_DLL_DIR "${GTK2_HINTS}/bin" + CACHE PATH "Path to GTK+ 2 DLLS") + file( GLOB _gtk2_dlls RELATIVE "${GTK2_DLL_DIR}" + "${GTK2_DLL_DIR}/libgtk-win32-*.dll" + "${GTK2_DLL_DIR}/libgdk-win32-*.dll" + "${GTK2_DLL_DIR}/libgdk_pixbuf-*.dll" + "${GTK2_DLL_DIR}/libatk-*.dll" + "${GTK2_DLL_DIR}/libpango-*.dll" + "${GTK2_DLL_DIR}/libpangowin32-*.dll" + "${GTK2_DLL_DIR}/libcairo-*.dll" + "${GTK2_DLL_DIR}/libpangocairo-*.dll" + "${GTK2_DLL_DIR}/libexpat-*.dll" + "${GTK2_DLL_DIR}/libffi-*.dll" + "${GTK2_DLL_DIR}/libfontconfig-*.dll" + "${GTK2_DLL_DIR}/libpangoft2-*.dll" + "${GTK2_DLL_DIR}/libfreetype-*.dll" + "${GTK2_DLL_DIR}/libharfbuzz-*.dll" + "${GTK2_DLL_DIR}/libjasper-*.dll" + "${GTK2_DLL_DIR}/libjpeg-*.dll" + "${GTK2_DLL_DIR}/liblzma-*.dll" + "${GTK2_DLL_DIR}/libpixman-*.dll" + "${GTK2_DLL_DIR}/libpng??-*.dll" + "${GTK2_DLL_DIR}/libtiff-*.dll" + "${GTK2_DLL_DIR}/libxml2-*.dll" + ) + set(GTK2_DLLS "${_gtk2_dlls}" + CACHE PATH "List of GTK+ 2 DLLS") + set(GTK2_ETC_DIR "${GTK2_HINTS}/etc" + CACHE PATH "Path to GTK+ 2 configuration files") + set(GTK2_LIB_DIR "${GTK2_HINTS}/lib/gtk-2.0" + CACHE PATH "Path to additional GTK+ 2 library files") + set(GTK2_ENGINES_DLL_DIR "${GTK2_LIB_DIR}/2.10.0/engines" + CACHE PATH "Path to GTK+ 2 theme engine DLLS") + file( GLOB _gtk2_engines_dlls RELATIVE "${GTK2_ENGINES_DLL_DIR}" + "${GTK2_ENGINES_DLL_DIR}/lib*.dll" + ) + set(GTK2_ENGINES_DLLS "${_gtk2_engines_dlls}" + CACHE PATH "List of GTK+ 2 theme engine DLLS") + set(GTK2_THEMES_DIR "${GTK2_HINTS}/share/themes/MS-Windows/gtk-2.0" + CACHE PATH "Path to GTK+ 2 theme files") + mark_as_advanced(GTK2_DLL_DIR GTK2_DLLS GTK2_ETC_DIR GTK2_LIB_DIR GTK2_ENGINES_DLL_DIR GTK2_ENGINES_DLLS) + endif() else() # Unset our variables. set(GTK2_FOUND false) @@ -904,9 +954,15 @@ else() set(GTK2_INCLUDE_DIRS) set(GTK2_LIBRARIES) set(GTK2_DEFINITIONS) + set(GTK2_DLL_DIR) + set(GTK2_DLLS) + set(GTK2_ETC_DIR) + set(GTK2_LIB_DIR) + set(GTK2_ENGINES_DLL_DIR) + set(GTK2_ENGINES_DLLS) + set(GTK2_THEMES_DIR) endif() if(GTK2_INCLUDE_DIRS) list(REMOVE_DUPLICATES GTK2_INCLUDE_DIRS) endif() - diff --git a/cmake/modules/FindGTK3.cmake b/cmake/modules/FindGTK3.cmake index b66aa3e722..2a79f6a822 100644 --- a/cmake/modules/FindGTK3.cmake +++ b/cmake/modules/FindGTK3.cmake @@ -6,6 +6,10 @@ # GTK3_INCLUDE_DIRS - The GTK3 include directory # GTK3_LIBRARIES - The libraries needed to use GTK3 # GTK3_DEFINITIONS - Compiler switches required for using GTK3 +# GTK3_DLL_DIR - (Windows) Path to required GTK2 DLLS +# GTK3_DLLS - (Windows) List of required GTK3 DLLS +# GTK3_ETC_DIR - (Windows) Path to GTK3 configuration files +# GTK3_LIB_DIR - (Windows) Path to additional GTK3 library files #============================================================================= # Copyright 2011 Duncan Mac-Vicar P. # @@ -103,10 +107,46 @@ find_package_handle_standard_args(GTK3 DEFAULT_MSG GTK3_LIBRARY GTK3_INCLUDE_DIR if( GTK3_FOUND ) set( GTK3_LIBRARIES ${GTK3_LIBRARY} ) set( GTK3_INCLUDE_DIRS ${GTK3_INCLUDE_DIR} ) + if(WIN32) + set(GTK3_DLL_DIR "${GTK3_HINTS}/bin" + CACHE PATH "Path to GTK+ 3 DLLS") + file( GLOB _gtk3_dlls RELATIVE "${GTK3_DLL_DIR}" + "${GTK3_DLL_DIR}/libgtk-*.dll" + "${GTK3_DLL_DIR}/libgdk-*.dll" + "${GTK3_DLL_DIR}/libgdk_pixbuf-*.dll" + "${GTK3_DLL_DIR}/libatk-*.dll" + "${GTK3_DLL_DIR}/libpango-*.dll" + "${GTK3_DLL_DIR}/libpangowin32-*.dll" + "${GTK3_DLL_DIR}/libcairo-*.dll" + "${GTK3_DLL_DIR}/libpangocairo-*.dll" + "${GTK3_DLL_DIR}/libexpat-*.dll" + "${GTK3_DLL_DIR}/libffi-*.dll" + "${GTK3_DLL_DIR}/libfontconfig-*.dll" + "${GTK3_DLL_DIR}/libpangoft2-*.dll" + "${GTK3_DLL_DIR}/libfreetype-*.dll" + "${GTK3_DLL_DIR}/libharfbuzz-*.dll" + "${GTK3_DLL_DIR}/libjasper-*.dll" + "${GTK3_DLL_DIR}/libjpeg-*.dll" + "${GTK3_DLL_DIR}/liblzma-*.dll" + "${GTK3_DLL_DIR}/libpixman-*.dll" + "${GTK3_DLL_DIR}/libpng??-*.dll" + "${GTK3_DLL_DIR}/libtiff-*.dll" + "${GTK3_DLL_DIR}/libxml2-*.dll" + ) + set(GTK3_DLLS "${_gtk3_dlls}" + CACHE PATH "List of GTK+ 3 DLLS") + set(GTK3_ETC_DIR "${GTK3_HINTS}/etc" + CACHE PATH "Path to GTK+ 3 configuration files") + set(GTK3_LIB_DIR "${GTK3_HINTS}/lib/gtk-3.0" + CACHE PATH "Path to additional GTK+ 3 library files") + endif() else() set( GTK3_LIBRARIES ) set( GTK3_INCLUDE_DIRS ) + set( GTK3_DLL_DIR ) + set( GTK3_DLLS ) + set( GTK3_ETC_DIR ) + set( GTK3_LIB_DIR ) endif() mark_as_advanced(GTK3_INCLUDE_DIRS GTK3_LIBRARIES) - -- cgit v1.2.1