cmake_minimum_required(VERSION 3.21) if (WIN32 AND (NOT VCPKG_TARGET_TRIPLET)) set(VCPKG_TARGET_TRIPLET x64-windows-static) endif (WIN32 AND (NOT VCPKG_TARGET_TRIPLET)) #set(VCPKG_LIBRARY_LINKAGE static) project(backend) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED YES) add_executable(backend src/main.cpp src/dto/dto.h src/dto/responses.cpp src/db/db.h src/db/db.cpp src/controllers/controllers.h src/controllers/admin.cpp src/controllers/fs.cpp src/controllers/user.cpp src/controllers/auth/auth_common.cpp src/controllers/auth/auth_basic.cpp src/controllers/auth/auth_2fa.cpp src/controllers/auth/auth_gitlab.cpp src/filters/filters.h src/filters/filters.cpp model/Inode.cc model/Inode.h model/Tokens.cc model/Tokens.h model/User.cc model/User.h SMTPMail-drogon-master/SMTPMail.cc ) find_package(Drogon CONFIG REQUIRED) find_package(OpenSSL REQUIRED) find_package(OpenCV CONFIG REQUIRED) find_package(kubazip CONFIG REQUIRED) find_path(JWT_CPP_INCLUDE_DIRS "jwt-cpp/base.h") find_path(BOTAN_INCLUDE_DIRS "botan/botan.h") find_path(QR_INCLUDE_DIRS "qrcodegen.hpp") find_library(BOTAN_LIBRARY NAMES botan-2 botan) find_library(QR_LIBRARY nayuki-qr-code-generator) target_include_directories(backend PRIVATE src model shl SMTPMail-drogon-master ${OpenCV_INCLUDE_DIRS} ${JWT_CPP_INCLUDE_DIRS} ${BOTAN_INCLUDE_DIRS} ${QR_INCLUDE_DIRS} ) target_link_libraries(backend Drogon::Drogon OpenSSL::SSL kubazip::kubazip ${OpenCV_LIBS} ${BOTAN_LIBRARY} ${QR_LIBRARY} ) set_property(TARGET backend PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") install(TARGETS backend RUNTIME_DEPENDENCY_SET backend_deps DESTINATION .) install(RUNTIME_DEPENDENCY_SET backend_deps) if(NOT MSVC) target_compile_options(backend PRIVATE $<$:-g -Wall -Wno-unknown-pragmas> $<$:-O3> ) else() target_compile_options(backend PRIVATE /W4 /wd4068) endif(NOT MSVC) if(WIN32) target_link_libraries(backend iphlpapi) target_compile_definitions(backend PRIVATE NOMINMAX _WIN32_WINNT=0x0A00) endif()