cmake_minimum_required(VERSION 3.20) 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/db/model/Inode.cc src/db/model/Inode.h src/db/model/Tokens.cc src/db/model/Tokens.h src/db/model/User.cc src/db/model/User.h 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 ) find_package(Drogon CONFIG REQUIRED) find_package(mailio CONFIG REQUIRED) find_package(lodepng CONFIG REQUIRED) find_package(OpenSSL 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 ${JWT_CPP_INCLUDE_DIRS} ${BOTAN_INCLUDE_DIRS} ${QR_INCLUDE_DIRS} ) target_link_libraries(backend Drogon::Drogon mailio lodepng OpenSSL::SSL ${BOTAN_LIBRARY} ${QR_LIBRARY} ) install(TARGETS backend) 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_compile_definitions(backend PRIVATE NOMINMAX _WIN32_WINNT=0x0A00) endif()