aboutsummaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorJoão Valverde <joao.valverde@tecnico.ulisboa.pt>2018-08-23 22:03:28 +0100
committerJoão Valverde <j@v6e.pt>2018-08-25 18:07:21 +0000
commitd0b97a420d557042938ac5d6bf075fcd84df9371 (patch)
tree4075a2072c60cf242d25b2706ce08ebd6f78750a /CMakeLists.txt
parente75905a583432e8b20cecdde71c41d17cb781392 (diff)
CMake: Modernize config-file package support
A CMake config-file package provides support for downstreams using CMake and Wireshark libraries to easily configure the libwireshark dependency with: find_package(Wireshark CONFIG [REQUIRED]) target_link_libraries(foo epan) The FindWireshark.cmake file is no longer needed. See cmake-package(7) for more details on CMake's package system. Change-Id: Ie8af1d44417a99dd08d37959f7b2ffca88572ec2 Reviewed-on: https://code.wireshark.org/review/29208 Petri-Dish: João Valverde <j@v6e.pt> Tested-by: Petri Dish Buildbot Reviewed-by: João Valverde <j@v6e.pt>
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt45
1 files changed, 40 insertions, 5 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e3c72076dc..aecc22b6b0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2140,6 +2140,7 @@ if(BUILD_wireshark AND QT_FOUND)
ui
capchild
caputils
+ wiretap
${QT_LIBRARIES}
${GTHREAD2_LIBRARIES}
wscodecs
@@ -2261,6 +2262,7 @@ if(BUILD_tshark)
ui
capchild
caputils
+ wiretap
${LIBEPAN_LIBS}
${APPLE_CORE_FOUNDATION_LIBRARY}
${APPLE_SYSTEM_CONFIGURATION_LIBRARY}
@@ -2284,6 +2286,7 @@ endif()
if(BUILD_tfshark)
set(tfshark_LIBS
ui
+ wiretap
${LIBEPAN_LIBS}
${APPLE_CORE_FOUNDATION_LIBRARY}
${APPLE_SYSTEM_CONFIGURATION_LIBRARY}
@@ -2305,6 +2308,7 @@ if(BUILD_rawshark AND PCAP_FOUND)
set(rawshark_LIBS
caputils
ui
+ wiretap
${LIBEPAN_LIBS}
${APPLE_CORE_FOUNDATION_LIBRARY}
${APPLE_SYSTEM_CONFIGURATION_LIBRARY}
@@ -2325,6 +2329,7 @@ if(BUILD_sharkd)
set(sharkd_LIBS
ui
wscodecs
+ wiretap
${LIBEPAN_LIBS}
${APPLE_CORE_FOUNDATION_LIBRARY}
${APPLE_SYSTEM_CONFIGURATION_LIBRARY}
@@ -2345,6 +2350,7 @@ endif()
if(BUILD_dftest)
set(dftest_LIBS
ui
+ wiretap
${LIBEPAN_LIBS}
)
set(dftest_FILES
@@ -2380,6 +2386,7 @@ endif()
if(BUILD_fuzzshark)
set(fuzzshark_LIBS
+ wiretap
${LIBEPAN_LIBS}
)
set(fuzzshark_FILES
@@ -2893,22 +2900,50 @@ install(
)
set(CMAKE_INSTALL_MODULES_DIR "${CMAKE_INSTALL_LIBDIR}/${CPACK_PACKAGE_NAME}/cmake")
-configure_file("${CMAKE_MODULE_PATH}/WiresharkConfig.cmake.in" "${CMAKE_BINARY_DIR}/WiresharkConfig.cmake" @ONLY)
-configure_file("${CMAKE_MODULE_PATH}/WiresharkConfigVersion.cmake.in" "${CMAKE_BINARY_DIR}/WiresharkConfigVersion.cmake" @ONLY)
install(
FILES
${CMAKE_MODULE_PATH}/FindGLIB2.cmake
- ${CMAKE_MODULE_PATH}/FindWireshark.cmake
${CMAKE_MODULE_PATH}/FindWSWinLibs.cmake
${CMAKE_MODULE_PATH}/UseAsn2Wrs.cmake
${CMAKE_MODULE_PATH}/LocatePythonModule.cmake
${CMAKE_MODULE_PATH}/UseMakePluginReg.cmake
- ${CMAKE_BINARY_DIR}/WiresharkConfig.cmake
- ${CMAKE_BINARY_DIR}/WiresharkConfigVersion.cmake
DESTINATION
${CMAKE_INSTALL_MODULES_DIR}
)
+include(CMakePackageConfigHelpers)
+
+configure_package_config_file(WiresharkConfig.cmake.in
+ ${CMAKE_BINARY_DIR}/WiresharkConfig.cmake
+ INSTALL_DESTINATION ${CMAKE_INSTALL_MODULES_DIR}
+ PATH_VARS
+ CMAKE_INSTALL_LIBDIR
+ CMAKE_INSTALL_INCLUDEDIR
+ PLUGIN_INSTALL_VERSION_LIBDIR
+ EXTCAP_INSTALL_LIBDIR
+)
+
+write_basic_package_version_file(
+ ${CMAKE_BINARY_DIR}/WiresharkConfigVersion.cmake
+ COMPATIBILITY AnyNewerVersion
+)
+
+# XXX On Windows wsutil depends on a CMake zlib target for which there are no
+# exports.
+if(NOT WIN32)
+ install(
+ FILES
+ ${CMAKE_BINARY_DIR}/WiresharkConfig.cmake
+ ${CMAKE_BINARY_DIR}/WiresharkConfigVersion.cmake
+ DESTINATION
+ ${CMAKE_INSTALL_MODULES_DIR}
+ )
+
+ install(EXPORT WiresharkTargets
+ DESTINATION ${CMAKE_INSTALL_MODULES_DIR}
+ )
+endif()
+
if (DOXYGEN_EXECUTABLE)
# API reference
# We don't have a good way of tracking dependencies, so we simply