cmake_minimum_required(VERSION 3.1 FATAL_ERROR)
-project(onak VERSION 0.6.0 LANGUAGES C)
+project(onak VERSION 0.6.3 LANGUAGES C)
include(CheckSymbolExists)
include(FindPkgConfig)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
TEST_BIG_ENDIAN(WORDS_BIGENDIAN)
+include(CheckCSourceCompiles)
+check_c_source_compiles(
+ "
+ #include <stdlib.h>
+ static void f(__attribute__((unused))) {}
+ int main(void) { f(); return 0;}
+ "
+ HAVE___ATTRIBUTE__UNUSED
+)
+if (HAVE___ATTRIBUTE__UNUSED)
+ set(UNUSED_ATTRIB "__attribute__((unused))")
+else()
+ set(UNUSED_ATTRIB "")
+endif()
+
# Pick up a git based version number for development builds
find_package(Git)
if (GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/.git")
- EXECUTE_PROCESS(COMMAND ${GIT_EXECUTABLE} describe --tags --dirty
- OUTPUT_VARIABLE GIT_VERSION
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- string(REPLACE "onak-" "" VERSION ${GIT_VERSION})
+ if (EXISTS "${CMAKE_SOURCE_DIR}/.git/refs/tags/onak-0.6.2")
+ EXECUTE_PROCESS(
+ COMMAND ${GIT_EXECUTABLE} describe --tags --dirty
+ OUTPUT_VARIABLE GIT_VERSION
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ string(REPLACE "onak-" "" VERSION ${GIT_VERSION})
+ else()
+ EXECUTE_PROCESS(
+ COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD
+ OUTPUT_VARIABLE VERSION
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ endif()
else()
set(VERSION ${PROJECT_VERSION})
endif()
# Core objects
add_library(libonak STATIC armor.c charfuncs.c cleankey.c cleanup.c decodekey.c
- getcgi.c hash.c keyarray.c keyid.c keyindex.c ll.c log.c marshal.c
- mem.c merge.c onak-conf.c parsekey.c photoid.c rsa.c sigcheck.c sendsync.c
- sha1x.c wordlist.c)
+ hash.c hash-helper.c key-store.c keyarray.c keyid.c keyindex.c
+ ll.c log.c marshal.c mem.c merge.c onak-conf.c parsekey.c photoid.c
+ rsa.c sigcheck.c sendsync.c sha1x.c wordlist.c)
set(LIBONAK_LIBRARIES "")
# Ideally use Nettle, fall back to our own md5/sha1 routines otherwise
CHECK_SYMBOL_EXISTS(nettle_get_secp_521r1 "nettle/ecc-curve.h" HAVE_NETTLE_GET_SECP_521R1)
endif()
+# keyd will use this for socket activation, if it's available
+pkg_check_modules(SYSTEMD libsystemd)
+if (SYSTEMD_FOUND)
+ set(HAVE_SYSTEMD true)
+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"