From 096eb54edbeea7ba4cbc443627013818c4d35179 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=AE=D1=80?= =?UTF-8?q?=D1=8C=D0=B5=D0=B2=D0=B8=D1=87=20=D0=9D=D0=B5=D1=81=D1=82=D0=B5?= =?UTF-8?q?=D1=80=D0=B5=D0=BD=D0=BA=D0=BE?= <anesterenko@hse.ru> Date: Fri, 15 Nov 2024 19:23:23 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=BE=D0=BF=D1=86=D0=B8=D1=8F=20AK=5FBASE=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20=D1=81=D0=B1=D0=BE=D1=80=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=B5=D0=B4=D0=B8=D0=BD=D0=BE=D0=B9=20=D0=B1=D0=B8=D0=B1=D0=BB?= =?UTF-8?q?=D0=B8=D0=BE=D1=82=D0=B5=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 141 +++++++++++++++++++--------- Changelog.md | 4 +- aktool/aktool.1 | 2 +- cmake/DetectFlags.cmake | 2 + cmake/DetectLibraries.cmake | 18 ++-- cmake/MakeAktool.cmake | 32 +++++-- doc/20-install-guide.rst | 17 ++++ examples/tests/test-mpzn-password.c | 2 +- 8 files changed, 151 insertions(+), 67 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 81b2a423..3aee7e98 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,6 +21,7 @@ project( libakrypt C ) # -------------------------------------------------------------------------------------------------- # # Перечень доступных опций для СЃР±РѕСЂРєРё библиотеки +option( AK_BASE "Build two separate libraries - libkrypt and libakrypt-base" OFF ) option( AK_SHARED_LIB "Build the shared library" ON ) option( AK_STATIC_LIB "Build the static library" OFF ) option( AK_EXAMPLES "Build examples for libakrypt" OFF ) @@ -112,11 +113,11 @@ string( COMPARE EQUAL ${CMAKE_SIZEOF_VOID_P} "4" AK_SIZEOF_VOID_P_IS_4 ) string( COMPARE EQUAL ${CMAKE_SIZEOF_VOID_P} "8" AK_SIZEOF_VOID_P_IS_8 ) if( AK_SIZEOF_VOID_P_IS_4 ) - message("-- Using 32-bit architecture") + message( STATUS "Using 32-bit architecture") set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DAK_SIZEOF_VOID_P_IS_4" ) endif() if( AK_SIZEOF_VOID_P_IS_8 ) - message("-- Using 64-bit architecture") + message( STATUS "Using 64-bit architecture") set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DAK_SIZEOF_VOID_P_IS_8" ) endif() @@ -133,7 +134,7 @@ include( GNUInstallDirs ) # -------------------------------------------------------------------------------------------------- # # Вырабатываем заголовочный файл (РІ каталоге СЃР±РѕСЂРєРё) configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/source/libakrypt-base.h.in ${CMAKE_CURRENT_BINARY_DIR}/libakrypt-base.h @ONLY ) -message("-- Generation of libakrypt-base.h is done") +message( STATUS "Generation of libakrypt-base.h is done") # -------------------------------------------------------------------------------------------------- # # Определяем место хранения файла СЃ настройками библиотеки @@ -147,7 +148,7 @@ else() set( AK_CONFIG_PATH "C:\\\\Program Files\\\\Akrypt" ) endif() endif() -message("-- Path for libakrypt.conf is ${AK_CONFIG_PATH}") +message( STATUS "Path for libakrypt.conf is ${AK_CONFIG_PATH}") # -------------------------------------------------------------------------------------------------- # # Определяем место хранения доверенных сертификатов библиотеки @@ -161,7 +162,7 @@ else() set( AK_CA_PATH "C:\\\\Program Files\\\\Akrypt\\\\ca-certificates" ) endif() endif() -message("-- Path for ca-certificates is ${AK_CA_PATH}") +message( STATUS "Path for ca-certificates is ${AK_CA_PATH}") # -------------------------------------------------------------------------------------------------- # # Определем процедуры СЃР±РѕСЂРєРё библиотек - статической или динамической @@ -172,39 +173,61 @@ add_compile_options( -DLIBAKRYPT_VERSION="${FULL_VERSION}" ) add_compile_options( -DLIBAKRYPT_COMPILER_NAME="${CMAKE_C_COMPILER_ID}" ) add_compile_options( -DLIBAKRYPT_COMPILER_VERSION="${CMAKE_C_COMPILER_VERSION}" ) add_compile_options( -DLIBAKRYPT_CA_PATH="${AK_CA_PATH}" ) -message("-- Used compile flags ${CMAKE_C_FLAGS}") +message( STATUS "Used compile flags ${CMAKE_C_FLAGS}") if( CMAKE_BUILD_TYPE STREQUAL Release ) - message("-- Used release compile flags ${CMAKE_C_FLAGS_RELEASE}") + message( STATUS "Used release compile flags ${CMAKE_C_FLAGS_RELEASE}") endif() # -------------------------------------------------------------------------------------------------- # # формируем команды для СЃР±РѕСЂРєРё библиотеки +if( AK_BASE ) + message( STATUS "Options AK_BASE is ON" ) +else() + message( STATUS "Options AK_BASE is OFF" ) +endif() + if( AK_SHARED_LIB ) - add_library( akbase-shared SHARED ${MAIN_HEADERS} ${AKBASE_SOURCES} - cmake/MakeAktool.cmake ) - set_target_properties( akbase-shared PROPERTIES VERSION ${MAJOR_VERSION} SOVERSION ${FULL_VERSION} ) - set_target_properties( akbase-shared PROPERTIES OUTPUT_NAME akrypt-base CLEAN_DIRECT_CUSTOM 1 ) - target_link_libraries( akbase-shared ${LIBAKRYPT_LIBS} ) - message( "-- Building libakrypt-base: shared library" ) - - add_library( akrypt-shared SHARED ${MAIN_HEADERS} ${AKRYPT_SOURCES} ) - set_target_properties( akrypt-shared PROPERTIES VERSION ${MAJOR_VERSION} SOVERSION ${FULL_VERSION} ) - set_target_properties( akrypt-shared PROPERTIES OUTPUT_NAME akrypt CLEAN_DIRECT_CUSTOM 1 ) - target_link_libraries( akrypt-shared akbase-shared ${LIBAKRYPT_LIBS} ) - message( "-- Building libakrypt: shared library" ) + if( AK_BASE ) + add_library( akbase-shared SHARED ${MAIN_HEADERS} ${AKBASE_SOURCES} ) + set_target_properties( akbase-shared PROPERTIES VERSION ${MAJOR_VERSION} SOVERSION ${FULL_VERSION} ) + set_target_properties( akbase-shared PROPERTIES OUTPUT_NAME akrypt-base CLEAN_DIRECT_CUSTOM 1 ) + target_link_libraries( akbase-shared ${LIBAKRYPT_LIBS} ) + message( STATUS "Building libakrypt-base: shared library" ) + + add_library( akrypt-shared SHARED ${MAIN_HEADERS} ${AKRYPT_SOURCES} ) + set_target_properties( akrypt-shared PROPERTIES VERSION ${MAJOR_VERSION} SOVERSION ${FULL_VERSION} ) + set_target_properties( akrypt-shared PROPERTIES OUTPUT_NAME akrypt CLEAN_DIRECT_CUSTOM 1 ) + target_link_libraries( akrypt-shared akbase-shared ${LIBAKRYPT_LIBS} ) + message( STATUS "Building libakrypt: shared library" ) + else() + + add_library( akrypt-shared SHARED ${MAIN_HEADERS} ${AKBASE_SOURCES} ${AKRYPT_SOURCES} ) + set_target_properties( akrypt-shared PROPERTIES VERSION ${MAJOR_VERSION} SOVERSION ${FULL_VERSION} ) + set_target_properties( akrypt-shared PROPERTIES OUTPUT_NAME akrypt CLEAN_DIRECT_CUSTOM 1 ) + target_link_libraries( akrypt-shared ${LIBAKRYPT_LIBS} ) + message( STATUS "Building libakrypt: shared library" ) + endif() endif() # if( AK_STATIC_LIB ) - add_library( akbase-static STATIC ${MAIN_HEADERS} ${AKBASE_SOURCES} ) - set_target_properties( akbase-static PROPERTIES OUTPUT_NAME akrypt-base CLEAN_DIRECT_CUSTOM 1 ) - target_link_libraries( akbase-static ${LIBAKRYPT_LIBS} ) - message( "-- Building libakrypt-base: static library" ) - - add_library( akrypt-static STATIC ${MAIN_HEADERS} ${AKRYPT_SOURCES} ) - set_target_properties( akrypt-static PROPERTIES OUTPUT_NAME akrypt CLEAN_DIRECT_CUSTOM 1 ) - target_link_libraries( akrypt-static akbase-static ${LIBAKRYPT_LIBS} ) - message( "-- Building libakrypt: static library" ) + if( AK_BASE ) + add_library( akbase-static STATIC ${MAIN_HEADERS} ${AKBASE_SOURCES} ) + set_target_properties( akbase-static PROPERTIES OUTPUT_NAME akrypt-base CLEAN_DIRECT_CUSTOM 1 ) + target_link_libraries( akbase-static ${LIBAKRYPT_LIBS} ) + message( STATUS "Building libakrypt-base: static library" ) + + add_library( akrypt-static STATIC ${MAIN_HEADERS} ${AKRYPT_SOURCES} ) + set_target_properties( akrypt-static PROPERTIES OUTPUT_NAME akrypt CLEAN_DIRECT_CUSTOM 1 ) + target_link_libraries( akrypt-static akbase-static ${LIBAKRYPT_LIBS} ) + message( STATUS "Building libakrypt: static library" ) + else() + + add_library( akrypt-static STATIC ${MAIN_HEADERS} ${AKBASE_SOURCES} ${AKRYPT_SOURCES} ) + set_target_properties( akrypt-static PROPERTIES OUTPUT_NAME akrypt CLEAN_DIRECT_CUSTOM 1 ) + target_link_libraries( akrypt-static ${LIBAKRYPT_LIBS} ) + message( STATUS "Building libakrypt: static library" ) + endif() endif() # -------------------------------------------------------------------------------------------------- # @@ -233,37 +256,53 @@ set( EXAMPLES_LIST ) if( AK_EXAMPLES ) - message("-- Akbase examples (now \"make test\" enabled):" ) + message( STATUS "Akbase examples (now \"make test\" enabled):" ) enable_testing() foreach( programm ${BASE_EXAMPLES_LIST} ) if( AK_STATIC_LIB ) add_executable( example-${programm} examples/akbase/example-${programm}.c ) - target_link_libraries( example-${programm} akbase-static ${LIBAKRYPT_LIBS} ) - message(" example-${programm}" ) + if( AK_BASE ) + target_link_libraries( example-${programm} akbase-static ${LIBAKRYPT_LIBS} ) + else() + target_link_libraries( example-${programm} akrypt-static ${LIBAKRYPT_LIBS} ) + endif() + message( NOTICE " example-${programm}" ) add_test( NAME example-${programm} COMMAND example-${programm} ) endif() if( AK_SHARED_LIB ) add_executable( example-shared-${programm} examples/akbase/example-${programm}.c ) - target_link_libraries( example-shared-${programm} akbase-shared ${LIBAKRYPT_LIBS} ) - message(" example-shared-${programm}" ) + if( AK_BASE ) + target_link_libraries( example-shared-${programm} akbase-shared ${LIBAKRYPT_LIBS} ) + else() + target_link_libraries( example-shared-${programm} akrypt-shared ${LIBAKRYPT_LIBS} ) + endif() + message( NOTICE " example-shared-${programm}" ) add_test( NAME example-shared-${programm} COMMAND example-shared-${programm} ) endif() endforeach() # теперь то Р¶Рµ самое, РЅРѕ РёР· РґСЂСѓРіРѕРіРѕ каталога + дополнительные зависимости - message("-- FAQ examples:" ) + message( STATUS "FAQ examples:" ) enable_testing() foreach( programm ${EXAMPLES_LIST} ) if( AK_STATIC_LIB ) add_executable( example-${programm} examples/faq/example-${programm}.c ) - target_link_libraries( example-${programm} akbase-static akrypt-static ${LIBAKRYPT_LIBS} ) - message(" example-${programm}" ) + if( AK_BASE ) + target_link_libraries( example-${programm} akbase-static akrypt-static ${LIBAKRYPT_LIBS} ) + else() + target_link_libraries( example-${programm} akrypt-static ${LIBAKRYPT_LIBS} ) + endif() + message( NOTICE " example-${programm}" ) add_test( NAME example-static-${programm} COMMAND example-${programm} ) endif() if( AK_SHARED_LIB ) add_executable( example-shared-${programm} examples/faq/example-${programm}.c ) - target_link_libraries( example-shared-${programm} akbase-shared akrypt-shared ${LIBAKRYPT_LIBS} ) - message(" example-shared-${programm}" ) + if( AK_BASE ) + target_link_libraries( example-shared-${programm} akbase-shared akrypt-shared ${LIBAKRYPT_LIBS} ) + else() + target_link_libraries( example-shared-${programm} akrypt-shared ${LIBAKRYPT_LIBS} ) + endif() + message( NOTICE " example-shared-${programm}" ) add_test( NAME example-shared-${programm} COMMAND example-shared-${programm} ) endif() endforeach() @@ -312,16 +351,24 @@ endif() if( AK_TESTS ) enable_testing() - message("-- Internal tests (now \"make test\" enabled):" ) + message( STATUS "Internal tests (now \"make test\" enabled):" ) foreach( programm ${ARITHMETIC_TESTS_LIST} ) add_executable( test-${programm} examples/tests/test-${programm}.c ) if( AK_STATIC_LIB ) - target_link_libraries( test-${programm} akrypt-static akbase-static ${LIBAKRYPT_LIBS} ) + if( AK_BASE ) + target_link_libraries( test-${programm} akrypt-static akbase-static ${LIBAKRYPT_LIBS} ) + else() + target_link_libraries( test-${programm} akrypt-static ${LIBAKRYPT_LIBS} ) + endif() else() - target_link_libraries( test-${programm} akrypt-shared akbase-shared ${LIBAKRYPT_LIBS} ) + if( AK_BASE ) + target_link_libraries( test-${programm} akrypt-shared akbase-shared ${LIBAKRYPT_LIBS} ) + else() + target_link_libraries( test-${programm} akrypt-shared ${LIBAKRYPT_LIBS} ) + endif() endif() add_test( NAME test-${programm} COMMAND test-${programm} ) - message(" test-${programm}" ) + message( NOTICE " test-${programm}" ) endforeach() endif() @@ -347,15 +394,19 @@ set( LIBAKRYPT_DOCUMENTATION # -------------------------------------------------------------------------------------------------- # # инсталляция библиотеки (только для UNIX) -message("-- Install path:" ${CMAKE_INSTALL_PREFIX} ) +message( STATUS "Install path:" ${CMAKE_INSTALL_PREFIX} ) if( CMAKE_HOST_UNIX ) if( AK_STATIC_LIB ) - install( TARGETS akbase-static LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) + if( AK_BASE ) + install( TARGETS akbase-static LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) + endif() install( TARGETS akrypt-static LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) endif() if( AK_SHARED_LIB ) - install( TARGETS akbase-shared LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) + if( AK_BASE ) + install( TARGETS akbase-shared LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) + endif() install( TARGETS akrypt-shared LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) endif() diff --git a/Changelog.md b/Changelog.md index 6ba1fdf9..8eb318e1 100644 --- a/Changelog.md +++ b/Changelog.md @@ -3,7 +3,9 @@ ## Рзменения РІ версии 0.9.17 - - добавлена опция cmake AK_TOOL + - добавлены опции cmake + - AK_TOOL для включения/отключения СЃР±РѕСЂРєРё консольной утилиты + - AK_BASE для СЃР±РѕСЂРєРё библиотеки РІ РІРёРґРµ РѕРґРЅРѕРіРѕ или РґРІСѓС… исполняемых модулей - изменения РІ утилите aktool icode - добавлена опция -n, --no-database - добавлены опции --offset, --size для контроля целостности фрагментов файлов diff --git a/aktool/aktool.1 b/aktool/aktool.1 index 7f8e0f08..22d2297c 100644 --- a/aktool/aktool.1 +++ b/aktool/aktool.1 @@ -28,7 +28,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "AKTOOL" "1" "РѕРєС‚. 23, 2024" "версия библиотеки 0.9.15" "libakrypt" +.TH "AKTOOL" "1" "РЅРѕСЏР±. 15, 2024" "версия библиотеки 0.9.17" "libakrypt" .SH NAME aktool \- Правила пользования .sp diff --git a/cmake/DetectFlags.cmake b/cmake/DetectFlags.cmake index 2dda151c..ea51871a 100644 --- a/cmake/DetectFlags.cmake +++ b/cmake/DetectFlags.cmake @@ -35,7 +35,9 @@ if( MSVC ) else() # набор Unix'овых флагов try_append_c_flag( "-Wall" CMAKE_C_FLAGS ) + try_append_c_flag( "-Wextra" CMAKE_C_FLAGS ) try_append_c_flag( "-Wparentheses" CMAKE_C_FLAGS ) + try_append_c_flag( "-Wpedantic" CMAKE_C_FLAGS ) try_append_c_flag( "-pedantic-errors" CMAKE_C_FLAGS ) try_append_c_flag( "-O3" CMAKE_C_FLAGS ) try_append_c_flag( "-pipe" CMAKE_C_FLAGS ) diff --git a/cmake/DetectLibraries.cmake b/cmake/DetectLibraries.cmake index 3f30a9bf..1eabf358 100644 --- a/cmake/DetectLibraries.cmake +++ b/cmake/DetectLibraries.cmake @@ -6,7 +6,7 @@ if( WIN32 ) set( AKRYPT_SOURCES ${AKRYPT_SOURCES} ${CMAKE_CURRENT_BINARY_DIR}/libakrypt.rc ) set( AKBASE_SOURCES ${AKBASE_SOURCES} ${CMAKE_CURRENT_BINARY_DIR}/libakrypt-base.rc ) set( CMAKE_BUILD_TYPE "Release" ) - message("-- Generation of ${CMAKE_CURRENT_BINARY_DIR}/libakrypt.rc is done") + message( STATUS "Generation of ${CMAKE_CURRENT_BINARY_DIR}/libakrypt.rc is done") endif() # -------------------------------------------------------------------------------------------------- # @@ -23,11 +23,11 @@ if( AK_TESTS_GMP ) set( LIBAKRYPT_LIBS ${LIBAKRYPT_LIBS} gmp ) set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DAK_HAVE_GMP_H" ) else() - message("-- gmp.h not found") + message( WARNING "gmp.h not found") return() endif() else() - message("-- libgmp or gmp.h not found") + message( WARNING "libgmp or gmp.h not found") set( LIBAKRYPT_GMP_TESTS OFF ) return() endif() @@ -40,10 +40,10 @@ if( WIN32 ) # ищем реализацию сокетов find_library( LIBAKRYPT_WS2_32 ws2_32 ) if( LIBAKRYPT_WS2_32 ) - message("-- Searching ws2_32 - done ") + message( STATUS "Searching ws2_32 - done ") set( LIBAKRYPT_LIBS ws2_32 ) else() - message("-- ws2_32 not found") + message( WARNING "ws2_32 not found") return() endif() endif() @@ -55,7 +55,7 @@ if( MSVC ) # РІ начале ищем библиотеки, если нет - выходим find_library( LIBAKRYPT_PTHREAD pthreadVC2 ) if( LIBAKRYPT_PTHREAD ) - message("-- Searching pthreadVC2 - done ") + message( STATUS "Searching pthreadVC2 - done ") set( LIBAKRYPT_LIBS ${LIBAKRYPT_LIBS} pthreadVC2 ) # потом ищем заголовочный файл, если нет - выходим @@ -76,11 +76,11 @@ if( MSVC ) endif() else() - message("-- pthread.h not found") + message( WARNING "pthread.h not found") return() endif() else() - message("-- pthreadVC2 not found") + message( WARNING "pthreadVC2 not found") return() endif() else() @@ -88,7 +88,7 @@ else() find_library( LIBAKRYPT_PTHREAD pthread ) if( LIBAKRYPT_PTHREAD ) - message("-- Searching pthread - done ") + message( STATUS "Searching pthread - done ") set( LIBAKRYPT_LIBS ${LIBAKRYPT_LIBS} pthread ) set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DAK_HAVE_PTHREAD_H" ) endif() diff --git a/cmake/MakeAktool.cmake b/cmake/MakeAktool.cmake index e668d5fa..5790601f 100644 --- a/cmake/MakeAktool.cmake +++ b/cmake/MakeAktool.cmake @@ -1,5 +1,5 @@ # -------------------------------------------------------------------------------------------------- # -# Copyright (c) 2014 - 2023 by Axel Kenzo, axelkenzo@mail.ru +# Copyright (c) 2014 - 2024 by Axel Kenzo, axelkenzo@mail.ru # # MakeAktool.cmake # -------------------------------------------------------------------------------------------------- # @@ -27,9 +27,9 @@ else() endif() # -------------------------------------------------------------------------------------------------- # -message("-- Sources for aktool utility:" ) +message( STATUS "Sources for aktool utility:" ) foreach( filename ${AKTOOL_SOURCES} ) - message(" ${filename}" ) + message( NOTICE " ${filename}" ) endforeach() # -------------------------------------------------------------------------------------------------- # @@ -43,7 +43,7 @@ else() set( AK_LOCALE_PATH "/usr/share/locale" ) endif() add_compile_options( -DLIBAKRYPT_LOCALE_PATH="${AK_LOCALE_PATH}" ) - message("-- Locale path is ${AK_LOCALE_PATH}" ) + message( STATUS "Locale path is ${AK_LOCALE_PATH}" ) endif() endif() @@ -57,13 +57,13 @@ macro( try_aktool_lib _lib _header ) find_library( LIB${_lib}_LIB lib${_lib}.so ) endif() if( LIB${_lib}_LIB ) - message("-- lib${_lib} found (${LIB${_lib}_LIB})" ) + message( STATUS "lib${_lib} found (${LIB${_lib}_LIB})" ) find_file( AK_HAVE_${_header}_H ${_header}.h ) if( AK_HAVE_${_header}_H ) - message("-- ${_header}.h found") + message( STATUS "${_header}.h found") set( LIBAKRYPT_LIBS ${LIBAKRYPT_LIBS} ${LIB${_lib}_LIB} ) set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D${AKTOOL_LIB_HEADER}" ) - message(" added compile flag -D${AKTOOL_LIB_HEADER}") + message( STATUS "Added compile flag -D${AKTOOL_LIB_HEADER}") endif() endif() endmacro( try_aktool_lib ) @@ -78,16 +78,24 @@ try_aktool_lib( intl libintl ) try_aktool_lib( iconv iconv ) if( LIBAKRYPT_LIBS ) - message("-- Additional libraries for aktool is ${LIBAKRYPT_LIBS}") + message( STATUS "Additional libraries for aktool is ${LIBAKRYPT_LIBS}") endif() add_executable( aktool ${AKTOOL_SOURCES} ) target_include_directories( aktool PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/aktool" ) if( AK_STATIC_LIB ) - target_link_libraries( aktool akrypt-static akbase-static ${LIBAKRYPT_LIBS} ) + if( AK_BASE ) + target_link_libraries( aktool akrypt-static akbase-static ${LIBAKRYPT_LIBS} ) + else() + target_link_libraries( aktool akrypt-static ${LIBAKRYPT_LIBS} ) + endif() else() - target_link_libraries( aktool akrypt-shared akbase-shared ${LIBAKRYPT_LIBS} ) + if( AK_BASE ) + target_link_libraries( aktool akrypt-shared akbase-shared ${LIBAKRYPT_LIBS} ) + else() + target_link_libraries( aktool akrypt-shared ${LIBAKRYPT_LIBS} ) + endif() endif() # -------------------------------------------------------------------------------------------------- # @@ -116,3 +124,7 @@ if( GZIP ) else() install( FILES ${CMAKE_CURRENT_SOURCE_DIR}/aktool/aktool.1 DESTINATION ${AK_MAN_PATH} ) endif() + +# -------------------------------------------------------------------------------------------------- # +# Aktool.cmake # +# -------------------------------------------------------------------------------------------------- # diff --git a/doc/20-install-guide.rst b/doc/20-install-guide.rst index e6dcba22..2fd1a7f1 100644 --- a/doc/20-install-guide.rst +++ b/doc/20-install-guide.rst @@ -420,6 +420,23 @@ Cтабильная версия библиотеки распространяе cmake -L ../libakrypt-0.x +AK_BASE +~~~~~~~ + +Опция `AK_BASE` определяется РІ `CMakeLists.txt` следующим образом:: + + option( AK_BASE "Build two separate libraries - libkrypt and libakrypt-base" OFF ) + +Опция `AK_BASE` устанавливает должна ли библиотека собираться РІ РІРёРґРµ РѕРґРЅРѕРіРѕ или РґРІСѓС… исполняемых +(объектных) файлов. Если опция включена (значение `ON`), то РїСЂРё СЃР±РѕСЂРєРµ сознаются РґРІР° файла +libakrypt-base.so(.a) Рё libakrypt.so(.a), первый РёР· которых содержит реализацию +вспомогательных преобразований, Р° второй только криптографические преобразования. + +*Принимаемые значения*: `ON`, `OFF`. + +*Значение РїРѕ-умолчанию*: `OFF`. + + AK_CA_PATH ~~~~~~~~~~ diff --git a/examples/tests/test-mpzn-password.c b/examples/tests/test-mpzn-password.c index 2bda1824..7de30215 100644 --- a/examples/tests/test-mpzn-password.c +++ b/examples/tests/test-mpzn-password.c @@ -3,7 +3,7 @@ #include <gmp.h> #include <libakrypt.h> - const static ak_uint8 prime[32] = { + static const ak_uint8 prime[32] = { 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233 }; -- GitLab