-
Notifications
You must be signed in to change notification settings - Fork 359
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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
- Loading branch information
Showing
6 changed files
with
63 additions
and
80 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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() | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters