mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-31 03:07:29 +02:00
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:
@ -44,7 +44,9 @@ set(LIBTOOL_FULL_VERSION ${LIBTOOL_SO_VERSION}.${LIBTOOL_AGE}.${LIBTOOL_REVISION
|
|||||||
|
|
||||||
set(WOLFSSL_DEFINITIONS)
|
set(WOLFSSL_DEFINITIONS)
|
||||||
set(WOLFSSL_LINK_LIBS)
|
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)
|
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/functions.cmake)
|
||||||
|
|
||||||
####################################################
|
####################################################
|
||||||
@ -377,6 +379,24 @@ endif()
|
|||||||
|
|
||||||
set(WOLFSSL_SLOW_MATH "yes")
|
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
|
# TODO: - Lean PSK
|
||||||
# - Lean TLS
|
# - Lean TLS
|
||||||
# - Low resource
|
# - Low resource
|
||||||
@ -1803,6 +1823,7 @@ target_include_directories(wolfssl
|
|||||||
$<INSTALL_INTERFACE:include>
|
$<INSTALL_INTERFACE:include>
|
||||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
|
||||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_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)
|
if(WOLFSSL_XCHACHA OR WOLFSSL_USER_SETTINGS)
|
||||||
set(BUILD_XCHACHA "yes" PARENT_SCOPE)
|
set(BUILD_XCHACHA "yes" PARENT_SCOPE)
|
||||||
endif()
|
endif()
|
||||||
|
if(WOLFSSL_OQS OR WOLFSSL_USER_SETTINGS)
|
||||||
|
set(BUILD_FALCON "yes" PARENT_SCOPE)
|
||||||
|
endif()
|
||||||
set(BUILD_INLINE ${WOLFSSL_INLINE} PARENT_SCOPE)
|
set(BUILD_INLINE ${WOLFSSL_INLINE} PARENT_SCOPE)
|
||||||
if(WOLFSSL_OCSP OR WOLFSSL_USER_SETTINGS)
|
if(WOLFSSL_OCSP OR WOLFSSL_USER_SETTINGS)
|
||||||
set(BUILD_OCSP "yes" PARENT_SCOPE)
|
set(BUILD_OCSP "yes" PARENT_SCOPE)
|
||||||
@ -788,6 +791,10 @@ function(generate_lib_src_list LIB_SOURCES)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(BUILD_FALCON)
|
||||||
|
list(APPEND LIB_SOURCES wolfcrypt/src/falcon.c)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(BUILD_LIBZ)
|
if(BUILD_LIBZ)
|
||||||
list(APPEND LIB_SOURCES wolfcrypt/src/compress.c)
|
list(APPEND LIB_SOURCES wolfcrypt/src/compress.c)
|
||||||
endif()
|
endif()
|
||||||
|
@ -1,2 +1,3 @@
|
|||||||
EXTRA_DIST += cmake/config.in
|
EXTRA_DIST += cmake/config.in
|
||||||
EXTRA_DIST += cmake/functions.cmake
|
EXTRA_DIST += cmake/functions.cmake
|
||||||
|
EXTRA_DIST += cmake/modules/FindOQS.cmake
|
||||||
|
20
cmake/modules/FindOQS.cmake
Normal file
20
cmake/modules/FindOQS.cmake
Normal file
@ -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)
|
Reference in New Issue
Block a user