aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Wu <peter@lekensteyn.nl>2019-01-31 11:34:47 +0100
committerPeter Wu <peter@lekensteyn.nl>2019-01-31 13:15:47 +0000
commit87e5269c69157c071fbe7f62f6b4c0b76cd2c713 (patch)
tree81892d6dfda555d7acf552fcfcbda10fd61d22d6
parent9feb7fb5225765aa2eba97e33b169727a376931d (diff)
CMake: rewrite FindSystemd.cmake file
Clarify that this is only needed for the sdjournal extcap interface and report the found version in the CMake output. Change-Id: I40bc540631bda32d0b92e4fcd59d8c1726606d86 Reviewed-on: https://code.wireshark.org/review/31834 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot Reviewed-by: Peter Wu <peter@lekensteyn.nl>
-rw-r--r--CMakeLists.txt5
-rw-r--r--cmake/modules/FindSystemd.cmake64
-rw-r--r--extcap/CMakeLists.txt3
3 files changed, 35 insertions, 37 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a9482b3a97..7b222c8817 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1473,6 +1473,11 @@ set_package_properties(CARES PROPERTIES
URL "https://c-ares.haxx.se/"
PURPOSE "DNS name resolution for captures"
)
+set_package_properties(Systemd PROPERTIES
+ URL "https://freedesktop.org/wiki/Software/systemd/"
+ DESCRIPTION "System and Service Manager (libraries)"
+ PURPOSE "Support for systemd journal extcap interface (sdjournal)"
+)
string(TOUPPER "${CMAKE_BUILD_TYPE}" _build_type)
message(STATUS "C-Flags: ${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${_build_type}}")
diff --git a/cmake/modules/FindSystemd.cmake b/cmake/modules/FindSystemd.cmake
index 0ddf4f7ff4..6162d0d605 100644
--- a/cmake/modules/FindSystemd.cmake
+++ b/cmake/modules/FindSystemd.cmake
@@ -1,41 +1,37 @@
-# Copied from https://github.com/Cloudef/wlc/blob/master/CMake/FindSystemd.cmake
-#.rst:
-# FindSystemd
-# -------
#
-# Find Systemd library
+# - Find systemd libraries
#
-# Try to find Systemd library on UNIX systems. The following values are defined
-#
-# ::
-#
-# SYSTEMD_FOUND - True if Systemd is available
-# SYSTEMD_INCLUDE_DIRS - Include directories for Systemd
-# SYSTEMD_LIBRARIES - List of libraries for Systemd
-# SYSTEMD_DEFINITIONS - List of definitions for Systemd
-#
-#=============================================================================
-# Copyright (c) 2015 Jari Vetoniemi
-#
-# Distributed under the OSI-approved BSD License (the "License");
-#
-# This software is distributed WITHOUT ANY WARRANTY; without even the
-# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-# See the License for more information.
-#=============================================================================
+# SYSTEMD_INCLUDE_DIRS - where to find systemd/sd-journal.h, etc.
+# SYSTEMD_LIBRARIES - List of libraries when using libsystemd.
+# SYSTEMD_FOUND - True if libsystemd is found.
-include(FeatureSummary)
-set_package_properties(Systemd PROPERTIES
- URL "http://freedesktop.org/wiki/Software/systemd/"
- DESCRIPTION "System and Service Manager")
+pkg_search_module(PC_SYSTEMD QUIET libsystemd)
-find_package(PkgConfig)
-pkg_check_modules(PC_SYSTEMD QUIET libsystemd)
-find_library(SYSTEMD_LIBRARIES NAMES systemd ${PC_SYSTEMD_LIBRARY_DIRS})
-find_path(SYSTEMD_INCLUDE_DIRS systemd/sd-login.h HINTS ${PC_SYSTEMD_INCLUDE_DIRS})
+find_path(SYSTEMD_INCLUDE_DIR
+ NAMES
+ systemd/sd-journal.h
+ HINTS
+ ${PC_SYSTEMD_INCLUDE_DIRS}
+)
-set(SYSTEMD_DEFINITIONS ${PC_SYSTEMD_CFLAGS_OTHER})
+find_library(SYSTEMD_LIBRARY
+ NAMES
+ systemd
+ HINTS
+ ${PC_SYSTEMD_LIBRARY_DIRS}
+)
include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(SYSTEMD DEFAULT_MSG SYSTEMD_LIBRARIES SYSTEMD_INCLUDE_DIRS)
-mark_as_advanced(SYSTEMD_INCLUDE_DIRS SYSTEMD_LIBRARIES SYSTEMD_DEFINITIONS)
+find_package_handle_standard_args(SYSTEMD
+ REQUIRED_VARS SYSTEMD_LIBRARY SYSTEMD_INCLUDE_DIR
+ VERSION_VAR PC_SYSTEMD_VERSION)
+
+if(SYSTEMD_FOUND)
+ set(SYSTEMD_LIBRARIES ${SYSTEMD_LIBRARY})
+ set(SYSTEMD_INCLUDE_DIRS ${SYSTEMD_INCLUDE_DIR})
+else()
+ set(SYSTEMD_LIBRARIES)
+ set(SYSTEMD_INCLUDE_DIRS)
+endif()
+
+mark_as_advanced(SYSTEMD_LIBRARIES SYSTEMD_INCLUDE_DIRS)
diff --git a/extcap/CMakeLists.txt b/extcap/CMakeLists.txt
index d0ae9cbec3..3e59e7df90 100644
--- a/extcap/CMakeLists.txt
+++ b/extcap/CMakeLists.txt
@@ -257,11 +257,8 @@ if(BUILD_sdjournal AND SYSTEMD_FOUND)
set_extcap_executable_properties(sdjournal)
target_link_libraries(sdjournal ${sdjournal_LIBS})
target_include_directories(sdjournal SYSTEM PRIVATE ${SYSTEMD_INCLUDE_DIRS})
- target_compile_definitions(sdjournal PRIVATE ${SYSTEMD_DEFINITIONS})
install(TARGETS sdjournal RUNTIME DESTINATION ${EXTCAP_INSTALL_LIBDIR})
add_dependencies(extcaps sdjournal)
-elseif (BUILD_sdjournal)
- #message( WARNING "Cannot find libsystemd, cannot build sdjournal" )
endif()
#