2026-05-15 19:33:59 +05:00
|
|
|
CMAKE_MINIMUM_REQUIRED(VERSION 3.16)
|
|
|
|
|
|
2026-05-15 17:39:36 +00:00
|
|
|
PROJECT(octo-encryption-cpp)
|
|
|
|
|
set(CMAKE_DEBUG_POSTFIX "d")
|
2026-05-15 19:33:59 +05:00
|
|
|
|
|
|
|
|
# Add CMake options to path
|
|
|
|
|
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/)
|
|
|
|
|
INCLUDE(ConfigOptions)
|
|
|
|
|
|
|
|
|
|
# set libray dimention_name accessible to outer cmake files
|
|
|
|
|
set(ENCRYPT-LIB ${PROJECT_NAME} CACHE INTERNAL "")
|
|
|
|
|
|
|
|
|
|
#FIND_PACKAGE(OpenSSL REQUIRED CONFIG)
|
|
|
|
|
FIND_PACKAGE(OpenSSL REQUIRED)
|
|
|
|
|
|
|
|
|
|
# Library definition
|
|
|
|
|
ADD_LIBRARY(${PROJECT_NAME} STATIC
|
|
|
|
|
src/base64.cpp
|
|
|
|
|
src/secure-random.cpp
|
|
|
|
|
src/digests/ssl/ssl-digest.cpp
|
|
|
|
|
src/encryptors/encryptor.cpp
|
|
|
|
|
src/encryptors/sym-encrypt-layer-strategy.cpp
|
|
|
|
|
src/encryptors/ssl/ssl-cipher.cpp
|
|
|
|
|
src/encryptors/ssl/ssl-encryptor.cpp
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
|
|
|
|
set(OS "Windows")
|
|
|
|
|
|
|
|
|
|
set(lib_path C:/msys64/mingw64/lib)
|
|
|
|
|
|
|
|
|
|
file(GLOB libraries
|
|
|
|
|
${lib_path}/libssl.dll.a
|
|
|
|
|
${lib_path}/libcrypto.dll.a
|
|
|
|
|
)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
# Alias
|
|
|
|
|
ADD_LIBRARY(core::${PROJECT_NAME} ALIAS ${PROJECT_NAME})
|
|
|
|
|
|
|
|
|
|
# Properties
|
|
|
|
|
SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES CXX_STANDARD 17 POSITION_INDEPENDENT_CODE ON)
|
|
|
|
|
|
|
|
|
|
TARGET_COMPILE_OPTIONS(${PROJECT_NAME}
|
|
|
|
|
PRIVATE
|
|
|
|
|
$<$<NOT:$<PLATFORM_ID:Windows>>:-Werror=return-type>
|
|
|
|
|
$<$<NOT:$<PLATFORM_ID:Windows>>:-Werror=switch>
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
TARGET_INCLUDE_DIRECTORIES(${PROJECT_NAME}
|
|
|
|
|
PUBLIC
|
|
|
|
|
# Logger includes
|
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
TARGET_LINK_LIBRARIES(${PROJECT_NAME}
|
|
|
|
|
# System libraries
|
|
|
|
|
${libraries}
|
|
|
|
|
OpenSSL::SSL
|
|
|
|
|
OpenSSL::Crypto
|
|
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# Installation of the logger
|
|
|
|
|
#INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/
|
|
|
|
|
# DESTINATION include
|
|
|
|
|
#)
|
|
|
|
|
|
|
|
|
|
#INSTALL(TARGETS ${PROJECT_NAME}
|
|
|
|
|
# LIBRARY DESTINATION lib
|
|
|
|
|
# ARCHIVE DESTINATION lib
|
|
|
|
|
#)
|
|
|
|
|
|
|
|
|
|
# Unittests
|
|
|
|
|
#ADD_SUBDIRECTORY(unittests)
|
|
|
|
|
#IF(DISABLE_TESTS AND NOT WIN32)
|
|
|
|
|
# message(STATUS "-- TESTS ENABLED")
|
|
|
|
|
# ENABLE_TESTING()
|
|
|
|
|
# ADD_SUBDIRECTORY(unittests)
|
|
|
|
|
#ENDIF()
|