X-Git-Url: http://the.earth.li/gitweb/?a=blobdiff_plain;f=CMakeLists.txt;h=98659b3fac0baee17c49b075245518b1b24a8838;hb=de18b56efecadc4b5d2473904828db9c08cd2162;hp=bf819d7e718453d6a106c73e69ef1b12b3c0d74f;hpb=51c1a7dd950efef6a4d00df1878341777f8064ff;p=onak.git diff --git a/CMakeLists.txt b/CMakeLists.txt index bf819d7..98659b3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,7 @@ cmake_minimum_required(VERSION 3.1 FATAL_ERROR) -project(onak VERSION 0.5.0 LANGUAGES C) +project(onak VERSION 0.6.1 LANGUAGES C) +include(CheckSymbolExists) include(FindPkgConfig) include(GNUInstallDirs) include(TestBigEndian) @@ -10,6 +11,8 @@ if ("x${CMAKE_INSTALL_FULL_RUNSTATEDIR}" STREQUAL "x") ${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/run) endif() +list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) + # Configuration options from the user set(DBTYPE "dynamic" CACHE STRING "Configure the default database backend to use" ) @@ -34,7 +37,7 @@ 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 sigcheck.c sendsync.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 "") @@ -48,6 +51,25 @@ else() target_sources(libonak PRIVATE md5.c sha1.c) endif() +# We need libhogweed and libgmp to be able to do more than hash calculations +pkg_check_modules(HOGWEED hogweed) +if (HOGWEED_FOUND) + find_package(GMP) +endif() +if (GMP_FOUND) + set(HAVE_CRYPTO true) + target_include_directories(libonak SYSTEM PUBLIC + ${GMP_INCLUDE_DIRS} ${HOGWEED_INCLUDE_DIRS}) + LIST(APPEND LIBONAK_LIBRARIES ${GMP_LIBRARY} ${HOGWEED_LIBRARIES}) + + set(CMAKE_REQUIRED_INCLUDES ${NETTLE_INCLUDE_DIRS}) + set(CMAKE_REQUIRED_LIBRARIES ${NETTLE_LIBRARIES} ${HOGWEED_LIBRARIES}) + # API change in later version of Nettle + CHECK_SYMBOL_EXISTS(nettle_get_secp_256r1 "nettle/ecc-curve.h" HAVE_NETTLE_GET_SECP_256R1) + CHECK_SYMBOL_EXISTS(nettle_get_secp_384r1 "nettle/ecc-curve.h" HAVE_NETTLE_GET_SECP_384R1) + CHECK_SYMBOL_EXISTS(nettle_get_secp_521r1 "nettle/ecc-curve.h" HAVE_NETTLE_GET_SECP_521R1) +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"