summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorGerald Combs <gerald@wireshark.org>2015-01-12 14:44:42 -0800
committerGerald Combs <gerald@wireshark.org>2015-01-13 19:25:10 +0000
commita988253fef15e6a0ddd05b0fb06e18ccde00082b (patch)
tree8f702426b7d49b13bb388b14869b36b96bf6a020 /CMakeLists.txt
parent42e40404294837b60af756dfbe0e6bb55cebaa21 (diff)
downloadwireshark-a988253fef15e6a0ddd05b0fb06e18ccde00082b.tar.gz
CMake: Copy libwireshark dependent DLLs to the target directory.
Add a "copy_cli_dlls" target which copies the DLLs required to run our command line programs to the run directory. Fix the spelling of "KERBEROS". Start filling in variables so that we can populate config.nsh. Change-Id: I9b3ed912dfbffecbf09f2893efa2c9d82e709521 Reviewed-on: https://code.wireshark.org/review/6513 Reviewed-by: Gerald Combs <gerald@wireshark.org>
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt128
1 files changed, 128 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1a7ec440e0..3f15cee152 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1112,6 +1112,134 @@ set(LIBEPAN_LIBS
${WINSPARKLE_LIBRARIES}
)
+if(WIN32)
+ # According to http://stackoverflow.com/questions/14474659/cmake-how-to-have-a-target-for-copying-files
+ # we can't just use "set(_dll_output_dir "$<TARGET_FILE_DIR:epan>")"
+ get_target_property(_libwireshark_location epan LOCATION)
+ get_filename_component(_dll_output_dir "${_libwireshark_location}" PATH)
+ add_custom_target(copy_cli_dlls)
+ add_custom_command(TARGET copy_cli_dlls PRE_BUILD
+ COMMAND ${CMAKE_COMMAND} -E make_directory "${_dll_output_dir}"
+ )
+
+ # XXX Can (and should) we iterate over these similar to the way
+ # the top-level CMakeLists.txt iterates over the package list?
+
+ # Required
+ foreach( _dll ${GLIB2_DLLS} )
+ add_custom_command(TARGET copy_cli_dlls PRE_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ "${GLIB2_DLL_DIR}/${_dll}"
+ "${_dll_output_dir}"
+ )
+ endforeach(_dll)
+
+ # Optional
+ if (AIRPCAP_FOUND)
+ add_custom_command(TARGET copy_cli_dlls PRE_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ "${AIRPCAP_DLL_DIR}/${AIRPCAP_DLL}"
+ "${_dll_output_dir}"
+ )
+ endif(AIRPCAP_FOUND)
+ if (CARES_FOUND)
+ add_custom_command(TARGET copy_cli_dlls PRE_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ "${CARES_DLL_DIR}/${CARES_DLL}"
+ "${_dll_output_dir}"
+ )
+ endif(CARES_FOUND)
+ if (GEOIP_FOUND)
+ add_custom_command(TARGET copy_cli_dlls PRE_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ "${GEOIP_DLL_DIR}/${GEOIP_DLL}"
+ "${_dll_output_dir}"
+ )
+ endif(GEOIP_FOUND)
+ if(GCRYPT_FOUND)
+ foreach( _dll ${GCRYPT_DLLS} )
+ add_custom_command(TARGET copy_cli_dlls PRE_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ "${GCRYPT_DLL_DIR}/${_dll}"
+ "${_dll_output_dir}"
+ )
+ endforeach(_dll)
+ endif(GCRYPT_FOUND)
+ if(GNUTLS_FOUND)
+ foreach( _dll ${GNUTLS_DLLS} )
+ add_custom_command(TARGET copy_cli_dlls PRE_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ "${GNUTLS_DLL_DIR}/${_dll}"
+ "${_dll_output_dir}"
+ )
+ endforeach(_dll)
+ endif(GNUTLS_FOUND)
+ if(KERBEROS_FOUND)
+ foreach( _dll ${KERBEROS_DLLS} )
+ add_custom_command(TARGET copy_cli_dlls PRE_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ "${KERBEROS_DLL_DIR}/${_dll}"
+ "${_dll_output_dir}"
+ )
+ endforeach(_dll)
+ endif(KERBEROS_FOUND)
+ if (LUA_FOUND)
+ add_custom_command(TARGET copy_cli_dlls PRE_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ "${LUA_DLL_DIR}/${LUA_DLL}"
+ "${_dll_output_dir}"
+ )
+ endif(LUA_FOUND)
+ if (SMI_FOUND)
+ add_custom_command(TARGET copy_cli_dlls PRE_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ "${SMI_DLL_DIR}/${SMI_DLL}"
+ "${_dll_output_dir}"
+ COMMAND ${CMAKE_COMMAND} -E make_directory
+ "${_dll_output_dir}/snmp"
+ COMMAND ${CMAKE_COMMAND} -E make_directory
+ "${_dll_output_dir}/snmp/mibs"
+ COMMAND ${CMAKE_COMMAND} -E copy_directory
+ "${SMI_SHARE_DIR}/${SMI_DLL}/mibs/iana"
+ "${_dll_output_dir}/snmp/mibs"
+ COMMAND ${CMAKE_COMMAND} -E copy_directory
+ "${SMI_SHARE_DIR}/${SMI_DLL}/mibs/ietf"
+ "${_dll_output_dir}/snmp/mibs"
+ COMMAND ${CMAKE_COMMAND} -E copy_directory
+ "${SMI_SHARE_DIR}/${SMI_DLL}/mibs/irtf"
+ "${_dll_output_dir}/snmp/mibs"
+ COMMAND ${CMAKE_COMMAND} -E copy_directory
+ "${SMI_SHARE_DIR}/${SMI_DLL}/mibs/site"
+ "${_dll_output_dir}/snmp/mibs"
+ COMMAND ${CMAKE_COMMAND} -E copy_directory
+ "${SMI_SHARE_DIR}/${SMI_DLL}/mibs/tubs"
+ "${_dll_output_dir}/snmp/mibs"
+ COMMAND ${CMAKE_COMMAND} -E copy_directory
+ "${SMI_SHARE_DIR}/${SMI_DLL}/pibs"
+ "${_dll_output_dir}/snmp/mibs"
+ COMMAND ${CMAKE_COMMAND} -E copy_directory
+ "${SMI_SHARE_DIR}/${SMI_DLL}/yang"
+ "${_dll_output_dir}/snmp/mibs"
+ )
+ endif(SMI_FOUND)
+ if (WINSPARKLE_FOUND)
+ add_custom_command(TARGET copy_cli_dlls PRE_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ "${WINSPARKLE_DLL_DIR}/${WINSPARKLE_DLL}"
+ "${_dll_output_dir}"
+ )
+ endif(WINSPARKLE_FOUND)
+ if (ZLIB_FOUND)
+ add_custom_command(TARGET copy_cli_dlls PRE_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ "${ZLIB_DLL_DIR}/${ZLIB_DLL}"
+ "${_dll_output_dir}"
+ )
+ endif(ZLIB_FOUND)
+
+ add_dependencies(epan copy_cli_dlls)
+endif()
+
if( (BUILD_wireshark AND QT_FOUND) OR (BUILD_wireshark_gtk AND GTK_FOUND) )
set(WIRESHARK_SRC
capture_info.c