mirror of https://github.com/wolfSSL/wolfssl
Add liboqs integration to CMake build system (#5407)
* Add liboqs integration to CMake build system * Rephrase WOLFSSL_OQS option * Add new FindOQS.cmake file to cmake/include.am Co-authored-by: Disyer <denialmc1@gmail.com>
This commit is contained in:
parent
60437bba6e
commit
f515916f68
|
@ -44,7 +44,9 @@ set(LIBTOOL_FULL_VERSION ${LIBTOOL_SO_VERSION}.${LIBTOOL_AGE}.${LIBTOOL_REVISION
|
|||
|
||||
set(WOLFSSL_DEFINITIONS)
|
||||
set(WOLFSSL_LINK_LIBS)
|
||||
set(WOLFSSL_INCLUDE_DIRS)
|
||||
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/")
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/functions.cmake)
|
||||
|
||||
####################################################
|
||||
|
@ -377,6 +379,24 @@ endif()
|
|||
|
||||
set(WOLFSSL_SLOW_MATH "yes")
|
||||
|
||||
# liboqs
|
||||
add_option(WOLFSSL_OQS
|
||||
"Enable integration with the OQS (Open Quantum Safe) liboqs library (default: disabled)"
|
||||
"no" "yes;no")
|
||||
|
||||
if (WOLFSSL_OQS)
|
||||
find_package(OQS)
|
||||
|
||||
if (OQS_FOUND)
|
||||
list(APPEND WOLFSSL_LINK_LIBS ${OQS_LIBRARY})
|
||||
list(APPEND WOLFSSL_INCLUDE_DIRS ${OQS_INCLUDE_DIR})
|
||||
set(HAVE_LIBOQS 1)
|
||||
list(APPEND WOLFSSL_DEFINITIONS
|
||||
"-DHAVE_TLS_EXTENSIONS"
|
||||
"-DHAVE_LIBOQS")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# TODO: - Lean PSK
|
||||
# - Lean TLS
|
||||
# - Low resource
|
||||
|
@ -1803,6 +1823,7 @@ target_include_directories(wolfssl
|
|||
$<INSTALL_INTERFACE:include>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
|
||||
${WOLFSSL_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
####################################################
|
||||
|
|
|
@ -190,6 +190,9 @@ function(generate_build_flags)
|
|||
if(WOLFSSL_XCHACHA OR WOLFSSL_USER_SETTINGS)
|
||||
set(BUILD_XCHACHA "yes" PARENT_SCOPE)
|
||||
endif()
|
||||
if(WOLFSSL_OQS OR WOLFSSL_USER_SETTINGS)
|
||||
set(BUILD_FALCON "yes" PARENT_SCOPE)
|
||||
endif()
|
||||
set(BUILD_INLINE ${WOLFSSL_INLINE} PARENT_SCOPE)
|
||||
if(WOLFSSL_OCSP OR WOLFSSL_USER_SETTINGS)
|
||||
set(BUILD_OCSP "yes" PARENT_SCOPE)
|
||||
|
@ -788,6 +791,10 @@ function(generate_lib_src_list LIB_SOURCES)
|
|||
endif()
|
||||
endif()
|
||||
|
||||
if(BUILD_FALCON)
|
||||
list(APPEND LIB_SOURCES wolfcrypt/src/falcon.c)
|
||||
endif()
|
||||
|
||||
if(BUILD_LIBZ)
|
||||
list(APPEND LIB_SOURCES wolfcrypt/src/compress.c)
|
||||
endif()
|
||||
|
|
|
@ -1,2 +1,3 @@
|
|||
EXTRA_DIST += cmake/config.in
|
||||
EXTRA_DIST += cmake/functions.cmake
|
||||
EXTRA_DIST += cmake/modules/FindOQS.cmake
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
# Filename: FindOQS.cmake
|
||||
# Authors: darktohka (27 Jul, 2022)
|
||||
#
|
||||
# Usage:
|
||||
# find_package(OQS [REQUIRED] [QUIET])
|
||||
#
|
||||
# Once done this will define:
|
||||
# OQS_FOUND - system has liboqs
|
||||
# OQS_INCLUDE_DIR - the include directory containing oqs/
|
||||
# OQS_LIBRARY - the path to the liboqs library
|
||||
#
|
||||
|
||||
find_path(OQS_INCLUDE_DIR NAMES "oqs/common.h")
|
||||
|
||||
find_library(OQS_LIBRARY NAMES "oqs")
|
||||
|
||||
mark_as_advanced(OQS_INCLUDE_DIR OQS_LIBRARY)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(OQS DEFAULT_MSG OQS_INCLUDE_DIR OQS_LIBRARY)
|
Loading…
Reference in New Issue