diff options
author | João Valverde <joao.valverde@tecnico.ulisboa.pt> | 2018-08-23 22:03:28 +0100 |
---|---|---|
committer | João Valverde <j@v6e.pt> | 2018-08-25 18:07:21 +0000 |
commit | d0b97a420d557042938ac5d6bf075fcd84df9371 (patch) | |
tree | 4075a2072c60cf242d25b2706ce08ebd6f78750a /CMakeLists.txt | |
parent | e75905a583432e8b20cecdde71c41d17cb781392 (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.txt | 45 |
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 |