Merge pull request #5055 from elms/cmake/out_of_src

This commit is contained in:
Hayden Roche
2022-04-20 11:16:50 -07:00
committed by GitHub
3 changed files with 40 additions and 16 deletions

View File

@ -1683,7 +1683,22 @@ add_definitions("-DWOLFSSL_IGNORE_FILE_WARN")
# Generate user options header # Generate user options header
message("Generating user options header...") message("Generating user options header...")
set(OPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/wolfssl/options.h") if (${CMAKE_DISABLE_SOURCE_CHANGES})
set(WOLFSSL_BUILD_OUT_OF_TREE_DEFAULT "${CMAKE_DISABLE_SOURCE_CHANGES}")
else()
set(WOLFSSL_BUILD_OUT_OF_TREE_DEFAULT "no")
endif()
add_option("WOLFSSL_BUILD_OUT_OF_TREE"
"Don't generate files in the source tree (default: ${WOLFSSL_BUILD_OUT_OF_TREE_DEFAULT})"
"${WOLFSSL_BUILD_OUT_OF_TREE_DEFAULT}" "yes;no")
if (${WOLFSSL_BUILD_OUT_OF_TREE})
set(WOLFSSL_OUTPUT_BASE ${CMAKE_CURRENT_BINARY_DIR})
else()
set(WOLFSSL_OUTPUT_BASE ${CMAKE_CURRENT_SOURCE_DIR})
endif()
set(OPTION_FILE "${WOLFSSL_OUTPUT_BASE}/wolfssl/options.h")
set(CYASSL_OPTION_FILE "${WOLFSSL_OUTPUT_BASE}/cyassl/options.h")
file(REMOVE ${OPTION_FILE}) file(REMOVE ${OPTION_FILE})
file(APPEND ${OPTION_FILE} "/* wolfssl options.h\n") file(APPEND ${OPTION_FILE} "/* wolfssl options.h\n")
@ -1713,7 +1728,6 @@ file(APPEND ${OPTION_FILE} "#endif\n\n\n")
file(APPEND ${OPTION_FILE} "#endif /* WOLFSSL_OPTIONS_H */\n\n") file(APPEND ${OPTION_FILE} "#endif /* WOLFSSL_OPTIONS_H */\n\n")
# backwards compatibility for those who have included options or version # backwards compatibility for those who have included options or version
set(CYASSL_OPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/cyassl/options.h")
file(REMOVE ${CYASSL_OPTION_FILE}) file(REMOVE ${CYASSL_OPTION_FILE})
file(APPEND ${CYASSL_OPTION_FILE} "/* cyassl options.h\n") file(APPEND ${CYASSL_OPTION_FILE} "/* cyassl options.h\n")
file(APPEND ${CYASSL_OPTION_FILE} " * generated from wolfssl/options.h\n") file(APPEND ${CYASSL_OPTION_FILE} " * generated from wolfssl/options.h\n")
@ -1753,7 +1767,7 @@ endif()
target_include_directories(wolfssl target_include_directories(wolfssl
PUBLIC PUBLIC
$<INSTALL_INTERFACE:wolfssl> $<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}>
) )
@ -1786,7 +1800,7 @@ if(WOLFSSL_EXAMPLES)
target_link_libraries(client wolfssl) target_link_libraries(client wolfssl)
set_property(TARGET client set_property(TARGET client
PROPERTY RUNTIME_OUTPUT_DIRECTORY PROPERTY RUNTIME_OUTPUT_DIRECTORY
${CMAKE_CURRENT_SOURCE_DIR}/examples/client) ${WOLFSSL_OUTPUT_BASE}/examples/client)
# Build wolfSSL server example # Build wolfSSL server example
add_executable(server add_executable(server
@ -1794,7 +1808,7 @@ if(WOLFSSL_EXAMPLES)
target_link_libraries(server wolfssl) target_link_libraries(server wolfssl)
set_property(TARGET server set_property(TARGET server
PROPERTY RUNTIME_OUTPUT_DIRECTORY PROPERTY RUNTIME_OUTPUT_DIRECTORY
${CMAKE_CURRENT_SOURCE_DIR}/examples/server) ${WOLFSSL_OUTPUT_BASE}/examples/server)
# Build echo client example # Build echo client example
add_executable(echoclient add_executable(echoclient
@ -1804,7 +1818,7 @@ if(WOLFSSL_EXAMPLES)
target_link_libraries(echoclient wolfssl) target_link_libraries(echoclient wolfssl)
set_property(TARGET echoclient set_property(TARGET echoclient
PROPERTY RUNTIME_OUTPUT_DIRECTORY PROPERTY RUNTIME_OUTPUT_DIRECTORY
${CMAKE_CURRENT_SOURCE_DIR}/examples/echoclient) ${WOLFSSL_OUTPUT_BASE}/examples/echoclient)
# Build echo server example # Build echo server example
add_executable(echoserver add_executable(echoserver
@ -1814,7 +1828,7 @@ if(WOLFSSL_EXAMPLES)
target_link_libraries(echoserver wolfssl) target_link_libraries(echoserver wolfssl)
set_property(TARGET echoserver set_property(TARGET echoserver
PROPERTY RUNTIME_OUTPUT_DIRECTORY PROPERTY RUNTIME_OUTPUT_DIRECTORY
${CMAKE_CURRENT_SOURCE_DIR}/examples/echoserver) ${WOLFSSL_OUTPUT_BASE}/examples/echoserver)
if(NOT WIN32) if(NOT WIN32)
# Build TLS benchmark example # Build TLS benchmark example
@ -1824,7 +1838,7 @@ if(WOLFSSL_EXAMPLES)
target_link_libraries(tls_bench Threads::Threads) target_link_libraries(tls_bench Threads::Threads)
set_property(TARGET tls_bench set_property(TARGET tls_bench
PROPERTY RUNTIME_OUTPUT_DIRECTORY PROPERTY RUNTIME_OUTPUT_DIRECTORY
${CMAKE_CURRENT_SOURCE_DIR}/examples/benchmark) ${WOLFSSL_OUTPUT_BASE}/examples/benchmark)
endif() endif()
# Build unit tests # Build unit tests
@ -1843,7 +1857,7 @@ if(WOLFSSL_EXAMPLES)
target_link_libraries(unit_test Threads::Threads) target_link_libraries(unit_test Threads::Threads)
set_property(TARGET unit_test set_property(TARGET unit_test
PROPERTY RUNTIME_OUTPUT_DIRECTORY PROPERTY RUNTIME_OUTPUT_DIRECTORY
${CMAKE_CURRENT_SOURCE_DIR}/tests/) ${WOLFSSL_OUTPUT_BASE}/tests/)
set_property(TARGET unit_test set_property(TARGET unit_test
PROPERTY RUNTIME_OUTPUT_NAME PROPERTY RUNTIME_OUTPUT_NAME
unit.test) unit.test)
@ -1876,7 +1890,7 @@ if(WOLFSSL_CRYPT_TESTS)
target_link_libraries(wolfcrypttest wolfssl) target_link_libraries(wolfcrypttest wolfssl)
set_property(TARGET wolfcrypttest set_property(TARGET wolfcrypttest
PROPERTY RUNTIME_OUTPUT_DIRECTORY PROPERTY RUNTIME_OUTPUT_DIRECTORY
${CMAKE_CURRENT_SOURCE_DIR}/wolfcrypt/test) ${WOLFSSL_OUTPUT_BASE}/wolfcrypt/test)
set_property(TARGET wolfcrypttest set_property(TARGET wolfcrypttest
PROPERTY RUNTIME_OUTPUT_NAME PROPERTY RUNTIME_OUTPUT_NAME
testwolfcrypt) testwolfcrypt)
@ -1889,7 +1903,7 @@ if(WOLFSSL_CRYPT_TESTS)
target_link_libraries(wolfcryptbench wolfssl) target_link_libraries(wolfcryptbench wolfssl)
set_property(TARGET wolfcryptbench set_property(TARGET wolfcryptbench
PROPERTY RUNTIME_OUTPUT_DIRECTORY PROPERTY RUNTIME_OUTPUT_DIRECTORY
${CMAKE_CURRENT_SOURCE_DIR}/wolfcrypt/benchmark) ${WOLFSSL_OUTPUT_BASE}/wolfcrypt/benchmark)
set_property(TARGET wolfcryptbench set_property(TARGET wolfcryptbench
PROPERTY RUNTIME_OUTPUT_NAME PROPERTY RUNTIME_OUTPUT_NAME
benchmark) benchmark)
@ -2034,10 +2048,20 @@ set(INSTALLED_EXAMPLES
# Install the library # Install the library
install(TARGETS wolfssl install(TARGETS wolfssl
DESTINATION ${CMAKE_INSTALL_LIBDIR}
EXPORT wolfssl-targets EXPORT wolfssl-targets
LIBRARY) LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION bin
)
# Install the headers # Install the headers
install(DIRECTORY ${WOLFSSL_OUTPUT_BASE}/wolfssl/
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/wolfssl
FILES_MATCHING PATTERN "*.h"
REGEX ${EXCLUDED_HEADERS_REGEX} EXCLUDE)
install(DIRECTORY ${WOLFSSL_OUTPUT_BASE}/cyassl/
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/cyassl
FILES_MATCHING PATTERN "*.h"
REGEX ${EXCLUDED_HEADERS_REGEX} EXCLUDE)
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/wolfssl/ install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/wolfssl/
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/wolfssl DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/wolfssl
FILES_MATCHING PATTERN "*.h" FILES_MATCHING PATTERN "*.h"

View File

@ -2835,7 +2835,7 @@ THREAD_RETURN WOLFSSL_THREAD server_test(void* args)
wolfSSL_CTX_EnableOCSP(ctx, WOLFSSL_OCSP_NO_NONCE); wolfSSL_CTX_EnableOCSP(ctx, WOLFSSL_OCSP_NO_NONCE);
} }
#ifndef NO_RSA #ifndef NO_RSA
/* All the OSCP Stapling test certs are RSA. */ /* All the OCSP Stapling test certs are RSA. */
#if defined(HAVE_CERTIFICATE_STATUS_REQUEST) \ #if defined(HAVE_CERTIFICATE_STATUS_REQUEST) \
|| defined(HAVE_CERTIFICATE_STATUS_REQUEST_V2) || defined(HAVE_CERTIFICATE_STATUS_REQUEST_V2)
{ /* scope start */ { /* scope start */

View File

@ -31065,10 +31065,10 @@ int InitOcspRequest(OcspRequest* req, DecodedCert* cert, byte useNonce,
ret = wc_InitRng(&rng); ret = wc_InitRng(&rng);
#endif #endif
if (ret != 0) { if (ret != 0) {
WOLFSSL_MSG("\tCannot initialize RNG. Skipping the OSCP Nonce."); WOLFSSL_MSG("\tCannot initialize RNG. Skipping the OCSP Nonce.");
} else { } else {
if (wc_RNG_GenerateBlock(&rng, req->nonce, MAX_OCSP_NONCE_SZ) != 0) if (wc_RNG_GenerateBlock(&rng, req->nonce, MAX_OCSP_NONCE_SZ) != 0)
WOLFSSL_MSG("\tCannot run RNG. Skipping the OSCP Nonce."); WOLFSSL_MSG("\tCannot run RNG. Skipping the OCSP Nonce.");
else else
req->nonceSz = MAX_OCSP_NONCE_SZ; req->nonceSz = MAX_OCSP_NONCE_SZ;