get_property(_cmvr_quic_test_library_dirs DIRECTORY PROPERTY LINK_DIRECTORIES) list(PREPEND _cmvr_quic_test_library_dirs "${CMAKE_BINARY_DIR}" "${CMAKE_BINARY_DIR}/cmvr_compiler_runtime") list(REMOVE_DUPLICATES _cmvr_quic_test_library_dirs) list(JOIN _cmvr_quic_test_library_dirs ":" CMVR_QUIC_TEST_LIBRARY_PATH) add_subdirectory(quic_gateway) if(NOT BUILD_TESTING) return() endif() find_program(CMVR_OPENSSL_EXECUTABLE NAMES openssl) if(NOT CMVR_OPENSSL_EXECUTABLE) message(WARNING "The openssl command was not found; QUIC loopback integration " "tests that require a temporary TLS certificate are skipped") return() endif() set(CMVR_QUIC_TEST_CERTIFICATE_DIR "${CMAKE_CURRENT_BINARY_DIR}/certs") set(CMVR_QUIC_TEST_CERTIFICATE "${CMVR_QUIC_TEST_CERTIFICATE_DIR}/server.crt") set(CMVR_QUIC_TEST_PRIVATE_KEY "${CMVR_QUIC_TEST_CERTIFICATE_DIR}/server.key") add_custom_command( OUTPUT "${CMVR_QUIC_TEST_CERTIFICATE}" "${CMVR_QUIC_TEST_PRIVATE_KEY}" COMMAND "${CMAKE_COMMAND}" -E make_directory "${CMVR_QUIC_TEST_CERTIFICATE_DIR}" COMMAND "${CMVR_OPENSSL_EXECUTABLE}" req -x509 -newkey rsa:2048 -nodes -keyout "${CMVR_QUIC_TEST_PRIVATE_KEY}" -out "${CMVR_QUIC_TEST_CERTIFICATE}" -days 7 -subj "/CN=127.0.0.1" -addext "subjectAltName=IP:127.0.0.1" VERBATIM COMMENT "Generating a development-only loopback QUIC certificate") add_custom_target(cmvr_quic_test_certificate DEPENDS "${CMVR_QUIC_TEST_CERTIFICATE}" "${CMVR_QUIC_TEST_PRIVATE_KEY}") if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/e2e/CMakeLists.txt") add_subdirectory(e2e) endif()