find_package(OpenSSL 3.0 REQUIRED)
+if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
+ message(STATUS "Setting build type to 'RelWithDebInfo' as none was specified.")
+ set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING "Choose the type of build." FORCE)
+endif()
+
if (NOT DEFINED OPENSSL_ROOT_DIR)
get_filename_component(OPENSSL_ROOT_DIR ${OPENSSL_INCLUDE_DIR} DIRECTORY)
message(STATUS "Setting OpenSSL root: ${OPENSSL_ROOT_DIR}")
add_definitions(-DSTRICT_ALIGNMENT)
endif()
-set(BIN_DIRECTORY bin)
+if(MSVC)
+ set(BIN_DIRECTORY bin/$<CONFIG>/)
+else()
+ set(BIN_DIRECTORY bin)
+endif()
set(OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${BIN_DIRECTORY})
set_tests_properties(sign/verify-with-engine
PROPERTIES ENVIRONMENT "${TEST_ENVIRONMENT_ENGINE}")
-if(NOT MSVC)
- add_executable(test_tls test_tls.c)
- target_link_libraries(test_tls OpenSSL::SSL)
- add_test(NAME TLS-with-engine COMMAND test_tls)
- set_tests_properties(TLS-with-engine
- PROPERTIES ENVIRONMENT "${TEST_ENVIRONMENT_ENGINE}")
-endif()
+add_executable(test_tls test_tls.c)
+target_link_libraries(test_tls OpenSSL::SSL)
+add_test(NAME TLS-with-engine COMMAND test_tls)
+set_tests_properties(TLS-with-engine
+ PROPERTIES ENVIRONMENT "${TEST_ENVIRONMENT_ENGINE}")
add_executable(test_context test_context.c)
target_link_libraries(test_context OpenSSL::Crypto)
target_link_libraries(test_gost89 gost_core gost_err)
add_test(NAME gost89 COMMAND test_gost89)
+add_executable(test_mgm test_mgm.c)
+target_link_libraries(test_mgm OpenSSL::Crypto)
+add_test(NAME mgm-with-engine COMMAND test_mgm)
+set_tests_properties(mgm-with-engine
+ PROPERTIES ENVIRONMENT "${TEST_ENVIRONMENT_ENGINE}")
+add_test(NAME mgm-with-provider COMMAND test_mgm)
+set_tests_properties(mgm-with-provider
+ PROPERTIES ENVIRONMENT "${TEST_ENVIRONMENT_PROVIDER}")
+
if(NOT SKIP_PERL_TESTS)
execute_process(COMMAND perl -MTest2::V0 -e ""
- ERROR_QUIET RESULT_VARIABLE HAVE_TEST2_V0)
- if(NOT HAVE_TEST2_V0)
+ ERROR_QUIET RESULT_VARIABLE MISSING_TEST2_V0)
+ find_program(HAVE_PROVE NAMES prove)
+ if(NOT MISSING_TEST2_V0 AND HAVE_PROVE)
add_test(NAME engine
COMMAND prove --merge -PWrapOpenSSL ${CMAKE_CURRENT_SOURCE_DIR}/test :: engine)
set_tests_properties(engine PROPERTIES ENVIRONMENT "${TEST_ENVIRONMENT_ENGINE}")
test_context
test_keyexpimp
test_gost89
+ test_tls
+ test_mgm
)
-if(NOT MSVC)
- list(APPEND BINARY_TESTS_TARGETS test_tls)
-endif()
set_property(TARGET ${BINARY_TESTS_TARGETS} APPEND PROPERTY COMPILE_DEFINITIONS ENGINE_DIR="${OUTPUT_DIRECTORY}")
add_library(gost_core STATIC ${GOST_LIB_SOURCE_FILES})
install(FILES $<TARGET_PDB_FILE:gost_prov>
EXPORT GostProviderConfig DESTINATION ${OPENSSL_MODULES_DIR} OPTIONAL)
endif()
-install(EXPORT GostEngineConfig DESTINATION GostEngine/share/cmake/GostEngine)
-install(EXPORT GostProviderConfig DESTINATION GostEngine/share/cmake/GostProvider)
+install(EXPORT GostEngineConfig DESTINATION share/cmake/GostEngine)
+install(EXPORT GostProviderConfig DESTINATION share/cmake/GostProvider)