Export prefixed MatrixSSL build include tree
This commit is contained in:
@@ -32,7 +32,17 @@ option(MATRIXSSL_BUILD_TOOLS "Build auxiliary tools available from the legacy ma
|
||||
set(MATRIXSSL_CONFIG "default" CACHE STRING "MatrixSSL configuration directory under configs/")
|
||||
set(MATRIXSSL_LIBRARY_PREFIX "" CACHE STRING "Prefix added to installed library output names, e.g. 'nw' for libnwmatrixssl")
|
||||
set(MATRIXSSL_PROGRAM_PREFIX "${MATRIXSSL_LIBRARY_PREFIX}" CACHE STRING "Prefix added to test, app, and tool executable/module output names. Defaults to MATRIXSSL_LIBRARY_PREFIX")
|
||||
set(MATRIXSSL_INSTALL_INCLUDE_SUBDIR "matrixssl" CACHE STRING "Header install subdirectory below CMAKE_INSTALL_INCLUDEDIR")
|
||||
set(MATRIXSSL_INSTALL_INCLUDE_SUBDIR "" CACHE STRING "Header install subdirectory below CMAKE_INSTALL_INCLUDEDIR. Empty derives from MATRIXSSL_LIBRARY_PREFIX: matrixssl or <prefix>matrixssl")
|
||||
if(MATRIXSSL_INSTALL_INCLUDE_SUBDIR STREQUAL "")
|
||||
if(MATRIXSSL_LIBRARY_PREFIX STREQUAL "")
|
||||
set(MATRIXSSL_INSTALL_INCLUDE_SUBDIR "matrixssl")
|
||||
else()
|
||||
set(MATRIXSSL_INSTALL_INCLUDE_SUBDIR "${MATRIXSSL_LIBRARY_PREFIX}matrixssl")
|
||||
endif()
|
||||
endif()
|
||||
set(MATRIXSSL_BUILD_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/include")
|
||||
set(MATRIXSSL_BUILD_PUBLIC_INCLUDE_DIR "${MATRIXSSL_BUILD_INCLUDE_DIR}/${MATRIXSSL_INSTALL_INCLUDE_SUBDIR}")
|
||||
set(MATRIXSSL_BUILD_OPENSSL_INCLUDE_DIR "${MATRIXSSL_BUILD_INCLUDE_DIR}/openssl")
|
||||
|
||||
set(MATRIXSSL_CONFIG_DIR "${CMAKE_CURRENT_SOURCE_DIR}/configs/${MATRIXSSL_CONFIG}")
|
||||
if(NOT EXISTS "${MATRIXSSL_CONFIG_DIR}/cryptoConfig.h" OR
|
||||
@@ -56,6 +66,28 @@ if(MATRIXSSL_DISABLE_TLS13)
|
||||
endif()
|
||||
file(WRITE "${MATRIXSSL_GENERATED_DIR}/matrixssl/matrixsslConfig.h" "${MATRIXSSL_CONFIG_TEXT}")
|
||||
|
||||
file(MAKE_DIRECTORY
|
||||
"${MATRIXSSL_BUILD_PUBLIC_INCLUDE_DIR}"
|
||||
"${MATRIXSSL_BUILD_PUBLIC_INCLUDE_DIR}/crypto"
|
||||
"${MATRIXSSL_BUILD_OPENSSL_INCLUDE_DIR}")
|
||||
configure_file("${MATRIXSSL_GENERATED_DIR}/core/config/coreConfig.h"
|
||||
"${MATRIXSSL_BUILD_PUBLIC_INCLUDE_DIR}/coreConfig.h" COPYONLY)
|
||||
configure_file("${MATRIXSSL_GENERATED_DIR}/crypto/cryptoConfig.h"
|
||||
"${MATRIXSSL_BUILD_PUBLIC_INCLUDE_DIR}/cryptoConfig.h" COPYONLY)
|
||||
configure_file("${MATRIXSSL_GENERATED_DIR}/matrixssl/matrixsslConfig.h"
|
||||
"${MATRIXSSL_BUILD_PUBLIC_INCLUDE_DIR}/matrixsslConfig.h" COPYONLY)
|
||||
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/core/include/"
|
||||
DESTINATION "${MATRIXSSL_BUILD_PUBLIC_INCLUDE_DIR}"
|
||||
FILES_MATCHING PATTERN "*.h")
|
||||
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/core/osdep/include/"
|
||||
DESTINATION "${MATRIXSSL_BUILD_PUBLIC_INCLUDE_DIR}"
|
||||
FILES_MATCHING PATTERN "*.h")
|
||||
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/crypto/"
|
||||
DESTINATION "${MATRIXSSL_BUILD_PUBLIC_INCLUDE_DIR}/crypto"
|
||||
FILES_MATCHING PATTERN "*.h")
|
||||
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/matrixssl/"
|
||||
DESTINATION "${MATRIXSSL_BUILD_PUBLIC_INCLUDE_DIR}"
|
||||
FILES_MATCHING PATTERN "*.h")
|
||||
set(MATRIXSSL_COMMON_INCLUDE_DIRS
|
||||
"${MATRIXSSL_GENERATED_DIR}/core/config"
|
||||
"${MATRIXSSL_GENERATED_DIR}/crypto"
|
||||
@@ -233,6 +265,12 @@ else()
|
||||
message(STATUS "Building native MatrixSSL API only")
|
||||
endif()
|
||||
|
||||
if(MATRIXSSL_BUILD_OPENSSL_COMPAT AND MATRIXSSL_HAVE_OPENSSL_COMPAT)
|
||||
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/openssl/"
|
||||
DESTINATION "${MATRIXSSL_BUILD_OPENSSL_INCLUDE_DIR}"
|
||||
FILES_MATCHING PATTERN "*.h")
|
||||
endif()
|
||||
|
||||
set(MATRIXSSL_TLS_SOURCES
|
||||
matrixssl/matrixsslGetSet.c
|
||||
matrixssl/cipherSuite.c
|
||||
@@ -295,21 +333,13 @@ endif()
|
||||
function(matrixssl_configure_target target_name)
|
||||
target_sources(${target_name} PRIVATE ${MATRIXSSL_ALL_SOURCES})
|
||||
target_include_directories(${target_name}
|
||||
PUBLIC
|
||||
$<BUILD_INTERFACE:${MATRIXSSL_GENERATED_DIR}/core/config>
|
||||
$<BUILD_INTERFACE:${MATRIXSSL_GENERATED_DIR}/crypto>
|
||||
$<BUILD_INTERFACE:${MATRIXSSL_GENERATED_DIR}/matrixssl>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/crypto/aead/chacha20poly1305ietf>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/crypto/scalarmult/include/sodium>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/crypto/crypto_sign/include/sodium>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/core/include>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/core/osdep/include>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/crypto>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/matrixssl>
|
||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/${MATRIXSSL_INSTALL_INCLUDE_SUBDIR}>
|
||||
PRIVATE
|
||||
${MATRIXSSL_COMMON_INCLUDE_DIRS})
|
||||
${MATRIXSSL_COMMON_INCLUDE_DIRS}
|
||||
INTERFACE
|
||||
$<BUILD_INTERFACE:${MATRIXSSL_BUILD_INCLUDE_DIR}>
|
||||
$<BUILD_INTERFACE:${MATRIXSSL_BUILD_PUBLIC_INCLUDE_DIR}>
|
||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/${MATRIXSSL_INSTALL_INCLUDE_SUBDIR}>)
|
||||
target_compile_features(${target_name} PRIVATE c_std_99)
|
||||
target_compile_definitions(${target_name} PUBLIC MATRIX_CONFIGURATION_INCDIR_FIRST)
|
||||
target_compile_options(${target_name} PRIVATE -ffunction-sections -fdata-sections -fno-math-errno)
|
||||
@@ -515,26 +545,14 @@ if(MATRIXSSL_BUILD_STATIC)
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
endif()
|
||||
|
||||
install(FILES
|
||||
"${MATRIXSSL_GENERATED_DIR}/core/config/coreConfig.h"
|
||||
"${MATRIXSSL_GENERATED_DIR}/crypto/cryptoConfig.h"
|
||||
"${MATRIXSSL_GENERATED_DIR}/matrixssl/matrixsslConfig.h"
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${MATRIXSSL_INSTALL_INCLUDE_SUBDIR})
|
||||
install(DIRECTORY core/include/
|
||||
install(DIRECTORY "${MATRIXSSL_BUILD_PUBLIC_INCLUDE_DIR}/"
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${MATRIXSSL_INSTALL_INCLUDE_SUBDIR}
|
||||
FILES_MATCHING PATTERN "*.h")
|
||||
install(DIRECTORY core/osdep/include/
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${MATRIXSSL_INSTALL_INCLUDE_SUBDIR}
|
||||
FILES_MATCHING PATTERN "*.h")
|
||||
install(DIRECTORY crypto/
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${MATRIXSSL_INSTALL_INCLUDE_SUBDIR}/crypto
|
||||
FILES_MATCHING PATTERN "*.h")
|
||||
install(DIRECTORY matrixssl/
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${MATRIXSSL_INSTALL_INCLUDE_SUBDIR}/matrixssl
|
||||
FILES_MATCHING PATTERN "*.h")
|
||||
install(DIRECTORY openssl/
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${MATRIXSSL_INSTALL_INCLUDE_SUBDIR}/openssl
|
||||
FILES_MATCHING PATTERN "*.h")
|
||||
if(MATRIXSSL_BUILD_OPENSSL_COMPAT AND MATRIXSSL_HAVE_OPENSSL_COMPAT)
|
||||
install(DIRECTORY "${MATRIXSSL_BUILD_OPENSSL_INCLUDE_DIR}/"
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/openssl
|
||||
FILES_MATCHING PATTERN "*.h")
|
||||
endif()
|
||||
install(EXPORT matrixsslTargets
|
||||
NAMESPACE MATRIXSSL::
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/matrixssl)
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
# define _h_MATRIXSSL_API_PRE
|
||||
|
||||
# include "coreApi.h" /* cryptoApi.h and matrixsslApi.h depend on this */
|
||||
# include "../crypto/cryptoApi.h" /* matrixsslApi.h depend on cryptoApi.h. */
|
||||
# include "crypto/cryptoApi.h" /* matrixsslApi.h depend on cryptoApi.h. */
|
||||
|
||||
# ifdef MATRIX_CONFIGURATION_INCDIR_FIRST
|
||||
# include <matrixsslConfig.h> /* Get matrixssl configuration from -I dir. */
|
||||
|
||||
Reference in New Issue
Block a user