]> the.earth.li Git - onak.git/blobdiff - CMakeLists.txt
Move key database backends into their own directory
[onak.git] / CMakeLists.txt
index 4b2868860b787f04a840ecbf5c6a3e613b53502f..bf819d7e718453d6a106c73e69ef1b12b3c0d74f 100644 (file)
@@ -48,70 +48,29 @@ else()
        target_sources(libonak PRIVATE md5.c sha1.c)
 endif()
 
-# Backends
-
-# These have no dependencies and can always be compiled
-set(BACKENDS "file" "fs" "keyring" "stacked")
-
-# DB4 backend (add check for existence)
-LIST(APPEND BACKENDS db4)
-set(BACKEND_db4_LIBS db-5.3)
-
-# HKP backend - needs libcurl
-pkg_check_modules(CURL libcurl)
-if (CURL_FOUND)
-       LIST(APPEND BACKENDS hkp)
-       set(BACKEND_hkp_INC ${CURL_INCLUDE_DIRS})
-       set(BACKEND_hkp_LIBS ${CURL_LIBRARIES})
-endif()
-
-# PostgreSQL backend - needs libpq
-pkg_check_modules(POSTGRESQL libpq)
-if (POSTGRESQL_FOUND)
-       LIST(APPEND BACKENDS pg)
-       set(BACKEND_pg_INC ${POSTGRESQL_INCLUDE_DIRS})
-       set(BACKEND_pg_LIBS ${POSTGRESQL_LIBRARIES})
-endif()
+# Build files that have substitutions in them
+include_directories(${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR})
+configure_file("${CMAKE_SOURCE_DIR}/build-config.h.in"
+       "${CMAKE_BINARY_DIR}/build-config.h" @ONLY)
 
-# keyd backend - can be disabled entirely
-if (KEYD STREQUAL "ON")
-       LIST(APPEND BACKENDS keyd)
-
-       add_executable(keyd keyd.c)
-       target_link_libraries(keyd libonak)
-       add_executable(keydctl keydctl.c onak-conf.c)
-       target_link_libraries(keydctl libonak)
-       target_compile_definitions(keydctl PRIVATE
-               CONFIGDIR="${CMAKE_INSTALL_FULL_SYSCONFDIR}")
-
-       pkg_check_modules(SYSTEMD libsystemd)
-       if (SYSTEMD_FOUND)
-               set(HAVE_SYSTEMD true)
-               target_include_directories(keyd SYSTEM PUBLIC
-                       ${SYSTEMD_INCLUDE_DIRS})
-               target_link_libraries(keyd ${SYSTEMD_LIBRARIES})
-       endif()
+configure_file("${CMAKE_SOURCE_DIR}/onak.ini.in"
+       "${CMAKE_BINARY_DIR}/onak.ini" @ONLY)
+install(FILES ${CMAKE_BINARY_DIR}/onak.ini
+       DESTINATION ${CMAKE_INSTALL_SYSCONFDIR})
 
-       install(TARGETS keydctl RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
-       install(TARGETS keyd RUNTIME DESTINATION ${CMAKE_INSTALL_SBINDIR})
-       install(FILES keyd.8 keydctl.8
-               DESTINATION ${CMAKE_INSTALL_MANDIR}/man8/)
-endif()
+configure_file("${CMAKE_SOURCE_DIR}/onak-mail.pl.in"
+       "${CMAKE_BINARY_DIR}/onak-mail.pl" @ONLY)
+install(PROGRAMS ${CMAKE_BINARY_DIR}/onak-mail.pl
+       DESTINATION ${CMAKE_INSTALL_LIBDIR}/onak/)
+install(FILES onak-mail.pl.8 DESTINATION ${CMAKE_INSTALL_MANDIR}/man8/)
 
+# Key database backends
+add_subdirectory(keydb)
 
 # Now we have the DB type confirmed we can tidy up the libonak options
 
 if (DBTYPE STREQUAL "dynamic")
        LIST(APPEND LIBONAK_LIBRARIES "dl")
-       foreach(BACKEND IN LISTS BACKENDS)
-               add_library(keydb_${BACKEND} SHARED keydb_${BACKEND}.c)
-               target_include_directories(keydb_${BACKEND} SYSTEM PUBLIC
-                       ${BACKEND_${BACKEND}_INC})
-               target_link_libraries(keydb_${BACKEND} libonak
-                       ${BACKEND_${BACKEND}_LIBS})
-               install(TARGETS keydb_${BACKEND} LIBRARY DESTINATION
-                       ${CMAKE_INSTALL_LIBDIR}/onak/backends/)
-       endforeach(BACKEND)
 else()
        list (FIND BACKENDS ${DBTYPE} _index)
        if (${_index} LESS 0)
@@ -127,25 +86,9 @@ target_compile_definitions(libonak PRIVATE
        DBINIT=keydb_${DBTYPE}_init)
 
 # DB Backend related options are known, so finish off libonak configuration
-target_sources(libonak PRIVATE keydb_${DBTYPE}.c)
+target_sources(libonak PRIVATE keydb/keydb_${DBTYPE}.c)
 target_link_libraries(libonak ${LIBONAK_LIBRARIES})
 
-# Build files that have substitutions in them
-include_directories(${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR})
-configure_file("${CMAKE_SOURCE_DIR}/build-config.h.in"
-       "${CMAKE_BINARY_DIR}/build-config.h" @ONLY)
-
-configure_file("${CMAKE_SOURCE_DIR}/onak.ini.in"
-       "${CMAKE_BINARY_DIR}/onak.ini" @ONLY)
-install(FILES ${CMAKE_BINARY_DIR}/onak.ini
-       DESTINATION ${CMAKE_INSTALL_SYSCONFDIR})
-
-configure_file("${CMAKE_SOURCE_DIR}/onak-mail.pl.in"
-       "${CMAKE_BINARY_DIR}/onak-mail.pl" @ONLY)
-install(PROGRAMS ${CMAKE_BINARY_DIR}/onak-mail.pl
-       DESTINATION ${CMAKE_INSTALL_LIBDIR}/onak/)
-install(FILES onak-mail.pl.8 DESTINATION ${CMAKE_INSTALL_MANDIR}/man8/)
-
 # CGI directory
 add_subdirectory(cgi)