X-Git-Url: http://wagner.pp.ru/gitweb/?a=blobdiff_plain;f=CMakeLists.txt;h=d86737a90e97b4dc7a5475a8d75bda691048a30a;hb=739f957615eb33a33a6485ae7cf29c7c679fd59a;hp=21f5b193f10af2999b467eea1517bca81e6bc7a2;hpb=1aac48068eca9316ec259af27e8a63260f24d473;p=openssl-gost%2Fengine.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 21f5b19..d86737a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0 FATAL_ERROR) +cmake_minimum_required(VERSION 3.18 FATAL_ERROR) project(gost-engine LANGUAGES C) include(GNUInstallDirs) @@ -49,34 +49,38 @@ else() add_definitions(-DL_ENDIAN) endif() -check_c_source_runs(" - #ifdef _MSC_VER - # include - #else - # include - #endif - int main(void) { - unsigned long long x = -1, y = 1, r; - unsigned char cf; - cf = _addcarry_u64(1, x, y, &r); - return !(cf == 1 && r == 1); - } - " ADDCARRY_U64) -if (ADDCARRY_U64) - add_definitions(-DHAVE_ADDCARRY_U64) -endif() - -check_c_source_runs(" - int main(void) { - char buf[16] = { 0, 1, 2 }; - int *p = (int *)(buf + 1); - int *q = (int *)(buf + 2); - return (*p == *q); - } - " RELAXED_ALIGNMENT) -if (NOT RELAXED_ALIGNMENT) - add_definitions(-DSTRICT_ALIGNMENT) -endif() +if (NOT CMAKE_CROSSCOMPILING) + check_c_source_runs(" + #ifdef _MSC_VER + # include + #else + # include + #endif + int main(void) { + unsigned long long x = -1, y = 1, r; + unsigned char cf; + cf = _addcarry_u64(1, x, y, &r); + return !(cf == 1 && r == 1); + } + " ADDCARRY_U64) + if (ADDCARRY_U64) + add_definitions(-DHAVE_ADDCARRY_U64) + endif() +endif(NOT CMAKE_CROSSCOMPILING) + +if (NOT CMAKE_CROSSCOMPILING) + check_c_source_runs(" + int main(void) { + char buf[16] = { 0, 1, 2 }; + int *p = (int *)(buf + 1); + int *q = (int *)(buf + 2); + return (*p == *q); + } + " RELAXED_ALIGNMENT) + if (NOT RELAXED_ALIGNMENT) + add_definitions(-DSTRICT_ALIGNMENT) + endif() +endif(NOT CMAKE_CROSSCOMPILING) set(BIN_DIRECTORY bin) @@ -178,48 +182,46 @@ set(GOST_ENGINE_SOURCE_FILES gost_md.c gost_md2012.c gost_pmeth.c - gost_omac.c - gost_omac_acpkm.c ) add_executable(test_digest test_digest.c) -target_link_libraries(test_digest ${OPENSSL_CRYPTO_LIBRARIES}) +target_link_libraries(test_digest OpenSSL::Crypto) add_test(NAME digest COMMAND test_digest) add_executable(test_curves test_curves.c) -target_link_libraries(test_curves gost_engine gost_core) +target_link_libraries(test_curves gost_engine OpenSSL::Crypto) add_test(NAME curves COMMAND test_curves) add_executable(test_params test_params.c) -target_link_libraries(test_params ${OPENSSL_CRYPTO_LIBRARIES}) +target_link_libraries(test_params OpenSSL::Crypto) add_test(NAME parameters COMMAND test_params) add_executable(test_sign test_sign.c) -target_link_libraries(test_sign ${OPENSSL_CRYPTO_LIBRARIES}) +target_link_libraries(test_sign OpenSSL::Crypto) add_test(NAME sign/verify COMMAND test_sign) add_executable(test_tls test_tls.c) -target_link_libraries(test_tls ${OPENSSL_SSL_LIBRARIES} ${OPENSSL_CRYPTO_LIBRARIES}) +target_link_libraries(test_tls OpenSSL::SSL) add_test(NAME TLS COMMAND test_tls) add_executable(test_context test_context.c) -target_link_libraries(test_context gost_engine gost_core ${OPENSSL_CRYPTO_LIBRARIES}) +target_link_libraries(test_context gost_engine OpenSSL::Crypto) add_test(NAME context COMMAND test_context) add_executable(test_grasshopper test_grasshopper.c) -target_link_libraries(test_grasshopper gost_engine gost_core ${OPENSSL_CRYPTO_LIBRARY} dl z pthread) +target_link_libraries(test_grasshopper gost_engine OpenSSL::Crypto) add_test(NAME grasshopper COMMAND test_grasshopper) add_executable(test_keyexpimp test_keyexpimp.c) #target_compile_definitions(test_keyexpimp PUBLIC -DOPENSSL_LOAD_CONF) -target_link_libraries(test_keyexpimp gost_engine gost_core) +target_link_libraries(test_keyexpimp gost_engine OpenSSL::Crypto) add_test(NAME keyexpimp COMMAND test_keyexpimp) @@ -261,7 +263,7 @@ set_property(TARGET ${BINARY_TESTS_TARGETS} APPEND PROPERTY COMPILE_DEFINITIONS add_library(gost_core STATIC ${GOST_LIB_SOURCE_FILES}) set_target_properties(gost_core PROPERTIES POSITION_INDEPENDENT_CODE ON) -target_link_libraries(gost_core PRIVATE ${OPENSSL_CRYPTO_LIBRARIES}) +target_link_libraries(gost_core PRIVATE OpenSSL::Crypto) add_library(gost_engine SHARED ${GOST_ENGINE_SOURCE_FILES}) set_target_properties(gost_engine PROPERTIES PREFIX "" OUTPUT_NAME "gost") @@ -297,16 +299,18 @@ add_custom_target(tcl_tests WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/tcl_tests) add_executable(test_tlstree test_tlstree.c) -target_link_libraries(test_tlstree PUBLIC ${OPENSSL_CRYPTO_LIBRARIES}) +target_link_libraries(test_tlstree PUBLIC OpenSSL::Crypto) # install -set(OPENSSL_MAN_INSTALL_DIR ${CMAKE_INSTALL_MANDIR}/man1) - -install(TARGETS gost_engine gostsum gost12sum EXPORT GostEngineConfig - LIBRARY DESTINATION ${OPENSSL_ENGINES_DIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) -install(FILES gostsum.1 gost12sum.1 DESTINATION ${OPENSSL_MAN_INSTALL_DIR}) -if (MSVC) - install(FILES $ DESTINATION ${OPENSSL_ENGINES_DIR} OPTIONAL) - install(FILES $ $ DESTINATION ${CMAKE_INSTALL_BINDIR} OPTIONAL) +if (NOT CMAKE_SKIP_INSTALL_RULES) + set(OPENSSL_MAN_INSTALL_DIR ${CMAKE_INSTALL_MANDIR}/man1) + + install(TARGETS gost_engine gostsum gost12sum EXPORT GostEngineConfig + LIBRARY DESTINATION ${OPENSSL_ENGINES_DIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + install(FILES gostsum.1 gost12sum.1 DESTINATION ${OPENSSL_MAN_INSTALL_DIR}) + if (MSVC) + install(FILES $ DESTINATION ${OPENSSL_ENGINES_DIR} OPTIONAL) + install(FILES $ $ DESTINATION ${CMAKE_INSTALL_BINDIR} OPTIONAL) + endif() endif()