summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorPanu Matilainen <pmatilai@redhat.com>2022-11-25 16:01:00 +0200
committerPanu Matilainen <pmatilai@redhat.com>2022-11-28 11:31:21 +0200
commit71fe36cdc55588ec6776839b0efd058977eaac2e (patch)
tree5f6b7e4415c7f2270987d2f4d46ae0c661efd9a5 /plugins
parent17eb3a457a2d9f33ec7e9f031ccf7a951318cc7c (diff)
downloadrpm-71fe36cdc55588ec6776839b0efd058977eaac2e.tar.gz
Use cmake imported targets to let it sort out the compiler flag details
These imported targets passed to target_link_library() are supposed to handle all the pesky compilation, linkage etc details behind the scenes. I was pretty sure I was missing a trick with this, but this sure isn't exactly underlined in the documentation. Unroll the supposedly helpful loop for handling plugins: turns out doing this cmake native way is plenty shorter and more obvious too. The unroll kinda belongs to a separate commit but that'd be rather painful for very little if any gain. Fixes: #2269 and a whole class of similar cases, allegedly
Diffstat (limited to 'plugins')
-rw-r--r--plugins/CMakeLists.txt45
1 files changed, 18 insertions, 27 deletions
diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt
index b662ed2c7..3309c964e 100644
--- a/plugins/CMakeLists.txt
+++ b/plugins/CMakeLists.txt
@@ -1,51 +1,42 @@
-set(plugins prioreset syslog)
+add_library(prioreset MODULE prioreset.c)
+add_library(syslog MODULE syslog.c)
if(WITH_SELINUX)
- set(selinux_libs ${SELINUX_LDFLAGS})
- set(selinux_flags ${SELINUX_CFLAGS})
- list(APPEND plugins selinux)
+ add_library(selinux MODULE selinux.c)
+ target_link_libraries(selinux PRIVATE PkgConfig::SELINUX)
endif()
if(WITH_DBUS)
- pkg_check_modules(DBUS dbus-1 REQUIRED)
- set(systemd_inhibit_libs ${DBUS_LDFLAGS})
- set(systemd_inhibit_flags ${DBUS_CFLAGS})
- set(dbus_announce_libs ${DBUS_LDFLAGS})
- set(dbus_announce_flags ${DBUS_CFLAGS})
- list(APPEND plugins systemd_inhibit dbus_announce)
+ pkg_check_modules(DBUS REQUIRED IMPORTED_TARGET dbus-1)
+ add_library(systemd_inhibit MODULE systemd_inhibit.c)
+ target_link_libraries(systemd_inhibit PRIVATE PkgConfig::DBUS)
+ add_library(dbus_announce MODULE dbus_announce.c)
+ target_link_libraries(dbus_announce PRIVATE PkgConfig::DBUS)
endif()
-if(WITH_IMA)
- set(ima_libs imaevm)
- list(APPEND plugins ima)
+if(WITH_IMAEVM)
+ add_library(ima MODULE ima.c)
+ target_link_libraries(ima PRIVATE imaevm)
endif()
if(WITH_FAPOLICYD)
- list(APPEND plugins fapolicyd)
+ add_library(fapolicyd MODULE fapolicyd.c)
endif()
if(WITH_AUDIT)
- set(audit_libs ${AUDIT_LDFLAGS})
- list(APPEND plugins audit)
+ add_library(audit MODULE audit.c)
+ target_link_libraries(audit PRIVATE PkgConfig::AUDIT)
endif()
if(WITH_FSVERITY)
- set(fsverity_libs ${FSVERITY_LDFLAGS})
- list(APPEND plugins fsverity)
+ add_library(fsverity MODULE fsverity.c)
+ target_link_libraries(fsverity PRIVATE PkgConfig::FSVERITY)
endif()
set(plugindir ${CMAKE_INSTALL_FULL_LIBDIR}/rpm-plugins)
+get_property(plugins DIRECTORY PROPERTY BUILDSYSTEM_TARGETS)
foreach(plugin ${plugins})
- add_library(${plugin} MODULE ${plugin}.c)
- set(ln ${plugin}_libs)
- if (${ln})
- target_link_libraries(${plugin} PRIVATE ${${ln}})
- endif()
- set(fn ${plugin}_flags)
- if (${fn})
- target_compile_options(${plugin} PRIVATE ${${fn}})
- endif()
install(TARGETS ${plugin} DESTINATION ${plugindir})
endforeach()