CMAKE_MINIMUM_REQUIRED(VERSION 3.16) PROJECT(octo-encryption-cpp) set(CMAKE_DEBUG_POSTFIX "d") # 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 $<$>:-Werror=return-type> $<$>:-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()