From 715c9fffa63f621229bb0ea49edfa8c444d47b68 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Wed, 14 Jun 2023 22:51:06 -0700 Subject: [PATCH 1/4] build: build libsodium from source when not found --- CMakeLists.txt | 49 +++++++++++++++++++++++----------- builds/cmake/Modules/CPM.cmake | 33 +++++++++++++++++++++++ 2 files changed, 67 insertions(+), 15 deletions(-) create mode 100644 builds/cmake/Modules/CPM.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 03462271e9..791190fe3e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -266,23 +266,42 @@ option(ENABLE_CURVE "Enable CURVE security" OFF) if(ENABLE_CURVE) if(WITH_LIBSODIUM) find_package("sodium") - if(SODIUM_FOUND) - message(STATUS "Using libsodium for CURVE security") - include_directories(${SODIUM_INCLUDE_DIRS}) - link_directories(${SODIUM_LIBRARY_DIRS}) - if(WITH_LIBSODIUM_STATIC) - add_compile_definitions(SODIUM_STATIC) - endif() - set(ZMQ_USE_LIBSODIUM 1) - set(ZMQ_HAVE_CURVE 1) - if (ENABLE_LIBSODIUM_RANDOMBYTES_CLOSE) - set(ZMQ_LIBSODIUM_RANDOMBYTES_CLOSE 1) + if(NOT SODIUM_FOUND) + include(CPM) + if (WITH_LIBSODIUM_STATIC) + set(CPM_LIBSODIUM_SHARED OFF) + else() + set(CPM_LIBSODIUM_SHARED ON) endif() - else() - message( - ERROR - "libsodium not installed, you may want to install libsodium and run cmake again" + CPMAddPackage( + NAME libsodium + GITHUB_REPOSITORY robinlinden/libsodium-cmake + GIT_TAG f568ff0 + OPTIONS + SODIUM_DISABLE_TESTS ON + BUILD_SHARED_LIBS ${CPM_LIBSODIUM_SHARED} ) + set(SODIUM_FOUND ON) + set(SODIUM_LIBRARIES sodium) + list(APPEND target_outputs sodium) + + get_target_property(SODIUM_INCLUDE_DIRS sodium INTERFACE_INCLUDE_DIRECTORIES) + set_target_properties(sodium PROPERTIES INTERFACE_INCLUDE_DIRECTORIES + "$" + ) + include_directories($) + else() + include_directories(${SODIUM_INCLUDE_DIRS}) + link_directories(${SODIUM_LIBRARY_DIRS}) + endif() + message(STATUS "Using libsodium for CURVE security") + if(WITH_LIBSODIUM_STATIC) + add_compile_definitions(SODIUM_STATIC) + endif() + set(ZMQ_USE_LIBSODIUM 1) + set(ZMQ_HAVE_CURVE 1) + if (ENABLE_LIBSODIUM_RANDOMBYTES_CLOSE) + set(ZMQ_LIBSODIUM_RANDOMBYTES_CLOSE 1) endif() endif() else() diff --git a/builds/cmake/Modules/CPM.cmake b/builds/cmake/Modules/CPM.cmake new file mode 100644 index 0000000000..a3086b791b --- /dev/null +++ b/builds/cmake/Modules/CPM.cmake @@ -0,0 +1,33 @@ +set(CPM_DOWNLOAD_VERSION 0.38.1) + +if(CPM_SOURCE_CACHE) + set(CPM_DOWNLOAD_LOCATION "${CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake") +elseif(DEFINED ENV{CPM_SOURCE_CACHE}) + set(CPM_DOWNLOAD_LOCATION "$ENV{CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake") +else() + set(CPM_DOWNLOAD_LOCATION "${CMAKE_BINARY_DIR}/cmake/CPM_${CPM_DOWNLOAD_VERSION}.cmake") +endif() + +# Expand relative path. This is important if the provided path contains a tilde (~) +get_filename_component(CPM_DOWNLOAD_LOCATION ${CPM_DOWNLOAD_LOCATION} ABSOLUTE) + +function(download_cpm) + message(STATUS "Downloading CPM.cmake to ${CPM_DOWNLOAD_LOCATION}") + file(DOWNLOAD + https://github.com/cpm-cmake/CPM.cmake/releases/download/v${CPM_DOWNLOAD_VERSION}/CPM.cmake + ${CPM_DOWNLOAD_LOCATION} + ) +endfunction() + +if(NOT (EXISTS ${CPM_DOWNLOAD_LOCATION})) + download_cpm() +else() + # resume download if it previously failed + file(READ ${CPM_DOWNLOAD_LOCATION} check) + if("${check}" STREQUAL "") + download_cpm() + endif() + unset(check) +endif() + +include(${CPM_DOWNLOAD_LOCATION}) From f59d0d2217ed2fc40c485e7ccd5b78d16510150d Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 15 Jun 2023 00:59:10 -0700 Subject: [PATCH 2/4] build: use the official Findsodium CMake module --- CMakeLists.txt | 6 +- builds/cmake/Modules/Findsodium.cmake | 332 ++++++++++++++++++++++---- 2 files changed, 296 insertions(+), 42 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 791190fe3e..44b1ed6998 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -266,7 +266,11 @@ option(ENABLE_CURVE "Enable CURVE security" OFF) if(ENABLE_CURVE) if(WITH_LIBSODIUM) find_package("sodium") - if(NOT SODIUM_FOUND) + if (sodium_FOUND) + set(SODIUM_LIBRARIES sodium) + get_target_property(SODIUM_INCLUDE_DIRS sodium INTERFACE_INCLUDE_DIRECTORIES) + include_directories(${SODIUM_INCLUDE_DIRS}) + elseif(NOT SODIUM_FOUND) include(CPM) if (WITH_LIBSODIUM_STATIC) set(CPM_LIBSODIUM_SHARED OFF) diff --git a/builds/cmake/Modules/Findsodium.cmake b/builds/cmake/Modules/Findsodium.cmake index 9ec36d1da5..35c0813ca7 100644 --- a/builds/cmake/Modules/Findsodium.cmake +++ b/builds/cmake/Modules/Findsodium.cmake @@ -1,48 +1,298 @@ -################################################################################ -# THIS FILE IS 100% GENERATED BY ZPROJECT; DO NOT EDIT EXCEPT EXPERIMENTALLY # -# Please refer to the README for information about making permanent changes. # -################################################################################ - -if (NOT MSVC) -find_package(PkgConfig REQUIRED) -pkg_check_modules(PC_SODIUM "libsodium") -if (PC_SODIUM_FOUND) - set(pkg_config_names_private "${pkg_config_names_private} libsodium") -endif() -if (NOT PC_SODIUM_FOUND) - pkg_check_modules(PC_SODIUM "sodium") - if (PC_SODIUM_FOUND) - set(pkg_config_names_private "${pkg_config_names_private} sodium") - endif() -endif (NOT PC_SODIUM_FOUND) -if (PC_SODIUM_FOUND) - set(SODIUM_INCLUDE_HINTS ${PC_SODIUM_INCLUDE_DIRS} ${PC_SODIUM_INCLUDE_DIRS}/*) - set(SODIUM_LIBRARY_HINTS ${PC_SODIUM_LIBRARY_DIRS} ${PC_SODIUM_LIBRARY_DIRS}/*) +# From https://github.com/aminya/libsodium/blob/patch-1/contrib/Findsodium.cmake + +# Written in 2016 by Henrik Steffen Gaßmann +# +# To the extent possible under law, the author(s) have dedicated all copyright +# and related and neighboring rights to this software to the public domain +# worldwide. This software is distributed without any warranty. +# +# You should have received a copy of the CC0 Public Domain Dedication along with +# this software. If not, see +# +# http://creativecommons.org/publicdomain/zero/1.0/ +# +# ############################################################################## +# Tries to find the local libsodium installation. +# +# On Windows the sodium_DIR environment variable is used as a default hint which +# can be overridden by setting the corresponding cmake variable. +# +# Once done the following variables will be defined: +# +# sodium_FOUND sodium_INCLUDE_DIR sodium_LIBRARY_DEBUG sodium_LIBRARY_RELEASE +# sodium_VERSION_STRING +# +# Furthermore an imported "sodium" target is created. +# + +if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang") + set(_GCC_COMPATIBLE 1) +endif() + +# static library option +if(NOT DEFINED sodium_USE_STATIC_LIBS) + option(sodium_USE_STATIC_LIBS "enable to statically link against sodium" OFF) +endif() +if(NOT (sodium_USE_STATIC_LIBS EQUAL sodium_USE_STATIC_LIBS_LAST)) + unset(sodium_LIBRARY CACHE) + unset(sodium_LIBRARY_DEBUG CACHE) + unset(sodium_LIBRARY_RELEASE CACHE) + unset(sodium_DLL_DEBUG CACHE) + unset(sodium_DLL_RELEASE CACHE) + set(sodium_USE_STATIC_LIBS_LAST + ${sodium_USE_STATIC_LIBS} + CACHE INTERNAL "internal change tracking variable") +endif() + +# ############################################################################## +# UNIX +if(UNIX) + # import pkg-config + find_package(PkgConfig QUIET) + if(PKG_CONFIG_FOUND) + pkg_check_modules(sodium_PKG QUIET libsodium) + endif() + + if(sodium_USE_STATIC_LIBS) + if(sodium_PKG_STATIC_LIBRARIES) + foreach(_libname ${sodium_PKG_STATIC_LIBRARIES}) + if(NOT _libname MATCHES "^lib.*\\.a$") # ignore strings already ending + # with .a + list(INSERT sodium_PKG_STATIC_LIBRARIES 0 "lib${_libname}.a") + endif() + endforeach() + list(REMOVE_DUPLICATES sodium_PKG_STATIC_LIBRARIES) + else() + # if pkgconfig for libsodium doesn't provide static lib info, then + # override PKG_STATIC here.. + set(sodium_PKG_STATIC_LIBRARIES libsodium.a) + endif() + + set(XPREFIX sodium_PKG_STATIC) + else() + if(sodium_PKG_LIBRARIES STREQUAL "") + set(sodium_PKG_LIBRARIES sodium) + endif() + + set(XPREFIX sodium_PKG) + endif() + + find_path(sodium_INCLUDE_DIR sodium.h HINTS ${${XPREFIX}_INCLUDE_DIRS}) + find_library(sodium_LIBRARY_DEBUG + NAMES ${${XPREFIX}_LIBRARIES} + HINTS ${${XPREFIX}_LIBRARY_DIRS}) + find_library(sodium_LIBRARY_RELEASE + NAMES ${${XPREFIX}_LIBRARIES} + HINTS ${${XPREFIX}_LIBRARY_DIRS}) + + # ############################################################################ + # Windows +elseif(WIN32) + set(sodium_DIR "$ENV{sodium_DIR}" CACHE FILEPATH "sodium install directory") + mark_as_advanced(sodium_DIR) + + find_path(sodium_INCLUDE_DIR sodium.h + HINTS ${sodium_DIR} + PATH_SUFFIXES include) + + if(MSVC) + # detect target architecture + file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/arch.c" [=[ + #if defined _M_IX86 + #error ARCH_VALUE x86_32 + #elif defined _M_X64 + #error ARCH_VALUE x86_64 + #endif + #error ARCH_VALUE unknown + ]=]) + try_compile(_UNUSED_VAR "${CMAKE_CURRENT_BINARY_DIR}" + "${CMAKE_CURRENT_BINARY_DIR}/arch.c" + OUTPUT_VARIABLE _COMPILATION_LOG) + string(REGEX + REPLACE ".*ARCH_VALUE ([a-zA-Z0-9_]+).*" + "\\1" + _TARGET_ARCH + "${_COMPILATION_LOG}") + + # construct library path + if(_TARGET_ARCH STREQUAL "x86_32") + string(APPEND _PLATFORM_PATH "Win32") + elseif(_TARGET_ARCH STREQUAL "x86_64") + string(APPEND _PLATFORM_PATH "x64") + else() + message( + FATAL_ERROR + "the ${_TARGET_ARCH} architecture is not supported by Findsodium.cmake." + ) + endif() + string(APPEND _PLATFORM_PATH "/$$CONFIG$$") + + if(MSVC_VERSION LESS 1900) + math(EXPR _VS_VERSION "${MSVC_VERSION} / 10 - 60") + else() + math(EXPR _VS_VERSION "${MSVC_VERSION} / 10 - 50") + endif() + string(APPEND _PLATFORM_PATH "/v${_VS_VERSION}") + + if(sodium_USE_STATIC_LIBS) + string(APPEND _PLATFORM_PATH "/static") + else() + string(APPEND _PLATFORM_PATH "/dynamic") + endif() + + string(REPLACE "$$CONFIG$$" + "Debug" + _DEBUG_PATH_SUFFIX + "${_PLATFORM_PATH}") + string(REPLACE "$$CONFIG$$" + "Release" + _RELEASE_PATH_SUFFIX + "${_PLATFORM_PATH}") + + find_library(sodium_LIBRARY_DEBUG libsodium.lib + HINTS ${sodium_DIR} + PATH_SUFFIXES ${_DEBUG_PATH_SUFFIX}) + find_library(sodium_LIBRARY_RELEASE libsodium.lib + HINTS ${sodium_DIR} + PATH_SUFFIXES ${_RELEASE_PATH_SUFFIX}) + if(NOT sodium_USE_STATIC_LIBS) + set(CMAKE_FIND_LIBRARY_SUFFIXES_BCK ${CMAKE_FIND_LIBRARY_SUFFIXES}) + set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll") + find_library(sodium_DLL_DEBUG libsodium + HINTS ${sodium_DIR} + PATH_SUFFIXES ${_DEBUG_PATH_SUFFIX}) + find_library(sodium_DLL_RELEASE libsodium + HINTS ${sodium_DIR} + PATH_SUFFIXES ${_RELEASE_PATH_SUFFIX}) + set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_BCK}) + endif() + + elseif(_GCC_COMPATIBLE) + if(sodium_USE_STATIC_LIBS) + find_library(sodium_LIBRARY_DEBUG libsodium.a + HINTS ${sodium_DIR} + PATH_SUFFIXES lib) + find_library(sodium_LIBRARY_RELEASE libsodium.a + HINTS ${sodium_DIR} + PATH_SUFFIXES lib) + else() + find_library(sodium_LIBRARY_DEBUG libsodium.dll.a + HINTS ${sodium_DIR} + PATH_SUFFIXES lib) + find_library(sodium_LIBRARY_RELEASE libsodium.dll.a + HINTS ${sodium_DIR} + PATH_SUFFIXES lib) + + file(GLOB _DLL + LIST_DIRECTORIES false + RELATIVE "${sodium_DIR}/bin" + "${sodium_DIR}/bin/libsodium*.dll") + find_library(sodium_DLL_DEBUG ${_DLL} libsodium + HINTS ${sodium_DIR} + PATH_SUFFIXES bin) + find_library(sodium_DLL_RELEASE ${_DLL} libsodium + HINTS ${sodium_DIR} + PATH_SUFFIXES bin) + endif() + else() + message(FATAL_ERROR "this platform is not supported by FindSodium.cmake") + endif() + + # ############################################################################ + # unsupported else() - set(pkg_config_libs_private "${pkg_config_libs_private} -lsodium") + message(FATAL_ERROR "this platform is not supported by FindSodium.cmake") endif() -endif (NOT MSVC) -# some libraries install the headers is a subdirectory of the include dir -# returned by pkg-config, so use a wildcard match to improve chances of finding -# headers and libraries. -find_path( - SODIUM_INCLUDE_DIRS - NAMES sodium.h - HINTS ${SODIUM_INCLUDE_HINTS} -) +# ############################################################################## +# common stuff -find_library( - SODIUM_LIBRARIES - NAMES libsodium sodium - HINTS ${SODIUM_LIBRARY_HINTS} -) +# extract sodium version +if(sodium_INCLUDE_DIR) + set(_VERSION_HEADER "${sodium_INCLUDE_DIR}/sodium/version.h") + if(EXISTS "${_VERSION_HEADER}") + file(READ "${_VERSION_HEADER}" _VERSION_HEADER_CONTENT) + string( + REGEX + REPLACE + ".*define[ \t]+SODIUM_VERSION_STRING[^\"]+\"([^\"]+)\".*" + "\\1" + sodium_VERSION_STRING + "${_VERSION_HEADER_CONTENT}") + set(sodium_VERSION_STRING "${sodium_VERSION_STRING}") + endif() +endif() +# communicate results include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(sodium DEFAULT_MSG SODIUM_LIBRARIES SODIUM_INCLUDE_DIRS) -mark_as_advanced(SODIUM_FOUND SODIUM_LIBRARIES SODIUM_INCLUDE_DIRS) +find_package_handle_standard_args(sodium + REQUIRED_VARS + sodium_LIBRARY_RELEASE + sodium_LIBRARY_DEBUG + sodium_INCLUDE_DIR + VERSION_VAR + sodium_VERSION_STRING) +if (NOT sodium_FOUND) + return() +endif() -################################################################################ -# THIS FILE IS 100% GENERATED BY ZPROJECT; DO NOT EDIT EXCEPT EXPERIMENTALLY # -# Please refer to the README for information about making permanent changes. # -################################################################################ +# mark file paths as advanced +mark_as_advanced(sodium_INCLUDE_DIR) +mark_as_advanced(sodium_LIBRARY_DEBUG) +mark_as_advanced(sodium_LIBRARY_RELEASE) +if(WIN32) + mark_as_advanced(sodium_DLL_DEBUG) + mark_as_advanced(sodium_DLL_RELEASE) +endif() + +# create imported target +if(sodium_USE_STATIC_LIBS) + set(_LIB_TYPE STATIC) +else() + set(_LIB_TYPE SHARED) +endif() +add_library(sodium ${_LIB_TYPE} IMPORTED) + +set_target_properties(sodium + PROPERTIES INTERFACE_INCLUDE_DIRECTORIES + "${sodium_INCLUDE_DIR}" + IMPORTED_LINK_INTERFACE_LANGUAGES + "C") + +if(sodium_USE_STATIC_LIBS) + set_target_properties(sodium + PROPERTIES INTERFACE_COMPILE_DEFINITIONS + "SODIUM_STATIC" + IMPORTED_LOCATION + "${sodium_LIBRARY_RELEASE}" + IMPORTED_LOCATION_DEBUG + "${sodium_LIBRARY_DEBUG}") +else() + if(UNIX) + set_target_properties(sodium + PROPERTIES IMPORTED_LOCATION + "${sodium_LIBRARY_RELEASE}" + IMPORTED_LOCATION_DEBUG + "${sodium_LIBRARY_DEBUG}") + elseif(WIN32) + set_target_properties(sodium + PROPERTIES IMPORTED_IMPLIB + "${sodium_LIBRARY_RELEASE}" + IMPORTED_IMPLIB_DEBUG + "${sodium_LIBRARY_DEBUG}") + if(NOT (sodium_DLL_DEBUG MATCHES ".*-NOTFOUND")) + set_target_properties(sodium + PROPERTIES IMPORTED_LOCATION_DEBUG + "${sodium_DLL_DEBUG}") + endif() + if(NOT (sodium_DLL_RELEASE MATCHES ".*-NOTFOUND")) + set_target_properties(sodium + PROPERTIES IMPORTED_LOCATION_RELWITHDEBINFO + "${sodium_DLL_RELEASE}" + IMPORTED_LOCATION_MINSIZEREL + "${sodium_DLL_RELEASE}" + IMPORTED_LOCATION_RELEASE + "${sodium_DLL_RELEASE}") + endif() + endif() +endif() From 1b58f5f9d24ff50259775b7bd3779c048c40e522 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 15 Jun 2023 01:06:26 -0700 Subject: [PATCH 3/4] build: set static finding options for sodium --- CMakeLists.txt | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 44b1ed6998..e4f905d60c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -265,18 +265,21 @@ option(ENABLE_CURVE "Enable CURVE security" OFF) if(ENABLE_CURVE) if(WITH_LIBSODIUM) + if (WITH_LIBSODIUM_STATIC) + set(sodium_USE_STATIC_LIBS ON) + set(CPM_LIBSODIUM_SHARED OFF) + else() + set(sodium_USE_STATIC_LIBS OFF) + set(CPM_LIBSODIUM_SHARED ON) + endif() find_package("sodium") if (sodium_FOUND) + set(SODIUM_FOUND ON) set(SODIUM_LIBRARIES sodium) get_target_property(SODIUM_INCLUDE_DIRS sodium INTERFACE_INCLUDE_DIRECTORIES) include_directories(${SODIUM_INCLUDE_DIRS}) elseif(NOT SODIUM_FOUND) include(CPM) - if (WITH_LIBSODIUM_STATIC) - set(CPM_LIBSODIUM_SHARED OFF) - else() - set(CPM_LIBSODIUM_SHARED ON) - endif() CPMAddPackage( NAME libsodium GITHUB_REPOSITORY robinlinden/libsodium-cmake From 5f73eefe507253f80b774f98714077c81be0d8df Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 15 Jun 2023 13:37:38 -0700 Subject: [PATCH 4/4] build: add opt-in option for downloading - fork and hash libsodium-cmake --- CMakeLists.txt | 26 +++++++++++++++----------- builds/cmake/Modules/Findsodium.cmake | 2 +- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e4f905d60c..6141a5a367 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -260,6 +260,7 @@ endif() option(WITH_LIBSODIUM "Use libsodium" OFF) option(WITH_LIBSODIUM_STATIC "Use static libsodium library" OFF) +option(DOWNLOAD_LIBSODIUM "Download and build libsodium from the source" OFF) option(ENABLE_LIBSODIUM_RANDOMBYTES_CLOSE "Automatically close libsodium randombytes. Not threadsafe without getrandom()" ON) option(ENABLE_CURVE "Enable CURVE security" OFF) @@ -272,18 +273,13 @@ if(ENABLE_CURVE) set(sodium_USE_STATIC_LIBS OFF) set(CPM_LIBSODIUM_SHARED ON) endif() - find_package("sodium") - if (sodium_FOUND) - set(SODIUM_FOUND ON) - set(SODIUM_LIBRARIES sodium) - get_target_property(SODIUM_INCLUDE_DIRS sodium INTERFACE_INCLUDE_DIRECTORIES) - include_directories(${SODIUM_INCLUDE_DIRS}) - elseif(NOT SODIUM_FOUND) + if (DOWNLOAD_LIBSODIUM) include(CPM) CPMAddPackage( NAME libsodium - GITHUB_REPOSITORY robinlinden/libsodium-cmake - GIT_TAG f568ff0 + GITHUB_REPOSITORY zeromq/libsodium-cmake + GIT_TAG f568ff02f1bed155ea598c0e803ef3c9db2703d2 + URL_HASH SHA256=4e9e745844f406c420d8b03658d30e0ea3647e31f8eb5e51687f5481251e21f8 OPTIONS SODIUM_DISABLE_TESTS ON BUILD_SHARED_LIBS ${CPM_LIBSODIUM_SHARED} @@ -298,8 +294,16 @@ if(ENABLE_CURVE) ) include_directories($) else() - include_directories(${SODIUM_INCLUDE_DIRS}) - link_directories(${SODIUM_LIBRARY_DIRS}) + find_package("sodium") + if (sodium_FOUND) + set(SODIUM_FOUND ON) + set(SODIUM_LIBRARIES sodium) + get_target_property(SODIUM_INCLUDE_DIRS sodium INTERFACE_INCLUDE_DIRECTORIES) + include_directories(${SODIUM_INCLUDE_DIRS}) + else() + message(ERROR + "libsodium not installed, you may want to install libsodium or enable DOWNLOAD_LIBSODIUM and run cmake again") + endif() endif() message(STATUS "Using libsodium for CURVE security") if(WITH_LIBSODIUM_STATIC) diff --git a/builds/cmake/Modules/Findsodium.cmake b/builds/cmake/Modules/Findsodium.cmake index 35c0813ca7..7be3e08884 100644 --- a/builds/cmake/Modules/Findsodium.cmake +++ b/builds/cmake/Modules/Findsodium.cmake @@ -1,4 +1,4 @@ -# From https://github.com/aminya/libsodium/blob/patch-1/contrib/Findsodium.cmake +# From https://github.com/jedisct1/libsodium/blob/a1348978e6fd4df033f4a0a719c1aa196d18c842/contrib/Findsodium.cmake#L1 # Written in 2016 by Henrik Steffen Gaßmann #