aboutsummaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorGerald Combs <gerald@wireshark.org>2015-01-13 10:15:18 -0800
committerGerald Combs <gerald@wireshark.org>2015-01-14 17:32:15 +0000
commit86fde7857f30d4fe1300047b5a12a8d656b46e7f (patch)
tree319165939d633a96be9a0c4e8fb77bcab14b1c4e /CMakeLists.txt
parent20e2c05d9b380158bfa27dcb94dd23ba7cad3ec6 (diff)
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 <gerald@wireshark.org> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Graham Bloice <graham.bloice@trihedral.com> Reviewed-by: Gerald Combs <gerald@wireshark.org>
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt70
1 files changed, 70 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3f15cee152..c52c948e7e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1468,6 +1468,76 @@ if(BUILD_wireshark_gtk AND GTK_FOUND)
"${PROJECT_SOURCE_DIR}/ipmap.html"
$<TARGET_FILE_DIR:wireshark-gtk>
)
+
+ if(WIN32)
+ get_target_property(_wsgtk_location wireshark-gtk LOCATION)
+ get_filename_component(_dll_output_dir "${_wsgtk_location}" PATH)
+ add_custom_target(copy_gtk_dlls)
+ add_custom_command(TARGET copy_gtk_dlls PRE_BUILD
+ COMMAND ${CMAKE_COMMAND} -E make_directory "${_dll_output_dir}"
+ )
+
+ if(GTK2_FOUND)
+ set(_gtk_dll_dir "${GTK2_DLL_DIR}")
+ set(_gtk_etc_dir "${GTK2_ETC_DIR}")
+ set(_gtk_dlls "${GTK2_DLLS}")
+ set(_gtk_etc_dir "${GTK2_ETC_DIR}")
+ else()
+ set(_gtk_dll_dir "${GTK3_DLL_DIR}")
+ set(_gtk_dlls "${GTK3_DLLS}")
+ set(_gtk_etc_dir "${GTK3_ETC_DIR}")
+ endif()
+
+ foreach(_dll ${_gtk_dlls})
+ add_custom_command(TARGET copy_gtk_dlls PRE_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ "${_gtk_dll_dir}/${_dll}" "${_dll_output_dir}"
+ )
+ endforeach(_dll)
+
+ # /etc
+ add_custom_command(TARGET copy_gtk_dlls PRE_BUILD
+ COMMAND ${CMAKE_COMMAND} -E make_directory "${_dll_output_dir}/etc"
+ )
+ add_custom_command(TARGET copy_gtk_dlls PRE_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy_directory
+ "${_gtk_etc_dir}" "${_dll_output_dir}/etc"
+ )
+
+ # XXX - Omitting ${GTK2_LIB_DIR}\loaders copying from Makefile.nmake
+ if(GTK2_FOUND)
+ # Engines
+ set (_engines_output_dir "${_dll_output_dir}/lib/gtk-2.0/2.10.0/engines")
+ add_custom_command(TARGET copy_gtk_dlls PRE_BUILD
+ COMMAND ${CMAKE_COMMAND} -E make_directory "${_engines_output_dir}"
+ )
+ foreach(_dll ${GTK2_ENGINES_DLLS})
+ add_custom_command(TARGET copy_gtk_dlls PRE_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ "${GTK2_ENGINES_DLL_DIR}/${_dll}" "${_engines_output_dir}"
+ )
+ endforeach(_dll)
+
+ # Themes
+ add_custom_command(TARGET copy_gtk_dlls PRE_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ "${GTK2_THEMES_DIR}/gtkrc" "${_dll_output_dir}/etc/gtk-2.0"
+ )
+
+ # Modules
+ add_custom_command(TARGET copy_gtk_dlls PRE_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy_directory
+ "${GTK2_LIB_DIR}" "${_dll_output_dir}/lib/gtk-2.0"
+ )
+ else()
+ add_custom_command(TARGET copy_gtk_dlls PRE_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy_directory
+ "${CMAKE_SOURCE_DIR}/ui/win32/settings.ini" "${_dll_output_dir}/etc"
+ )
+ endif()
+
+ add_dependencies(wireshark-gtk copy_gtk_dlls copy_cli_dlls)
+ endif(WIN32)
endif()
register_tap_files(tshark-tap-register.c