Nest OpenSSL compat headers under MatrixSSL include root

This commit is contained in:
Mario Fetka
2026-06-03 11:24:26 +00:00
parent c2dccd2f13
commit 684e265a0c
2 changed files with 12 additions and 6 deletions

View File

@@ -42,7 +42,7 @@ if(MATRIXSSL_INSTALL_INCLUDE_SUBDIR STREQUAL "")
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_BUILD_OPENSSL_INCLUDE_DIR "${MATRIXSSL_BUILD_PUBLIC_INCLUDE_DIR}/openssl")
set(MATRIXSSL_CONFIG_DIR "${CMAKE_CURRENT_SOURCE_DIR}/configs/${MATRIXSSL_CONFIG}")
if(NOT EXISTS "${MATRIXSSL_CONFIG_DIR}/cryptoConfig.h" OR
@@ -74,6 +74,8 @@ 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}/crypto/cryptoConfig.h"
"${MATRIXSSL_BUILD_PUBLIC_INCLUDE_DIR}/crypto/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/"
@@ -548,11 +550,6 @@ endif()
install(DIRECTORY "${MATRIXSSL_BUILD_PUBLIC_INCLUDE_DIR}/"
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${MATRIXSSL_INSTALL_INCLUDE_SUBDIR}
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)

View File

@@ -80,3 +80,12 @@ Sensitive emails can be encrypted using the public key in this directory [pgp.as
+ Example client and server code included
+ Clean, heavily commented code in portable C
+ User and developer documentation
### CMake OpenSSL compatibility include layout
When the reduced OpenSSL compatibility layer is enabled, its headers are exported
inside the MatrixSSL include root. With the default include directory this means
`matrixssl/openssl/*.h`; with `-DMATRIXSSL_LIBRARY_PREFIX=nw` this becomes
`nwmatrixssl/openssl/*.h`. Consumers may add the MatrixSSL include root itself
and still include compatibility headers as `<openssl/ssl.h>`, without installing
a top-level `include/openssl` directory that could conflict with system OpenSSL.