Files
octo-encryption-cpp/CMakeLists.txt

86 lines
2.0 KiB
CMake
Raw Normal View History

2026-05-15 19:33:59 +05:00
CMAKE_MINIMUM_REQUIRED(VERSION 3.16)
set(crypt-lib octo-encryption-cpp)
if (${CMAKE_BUILD_TYPE} MATCHES "Debug")
set(crypt-lib ${crypt-lib}d)
endif()
PROJECT(${crypt-lib})
# 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()