cmake_minimum_required(VERSION 3.16)

project(restapi LANGUAGES CXX)

set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core HttpServer Sql Network)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core HttpServer Sql Network)

add_executable(restapi
    src/main.cpp

    src/include/objectMethods.h
    src/include/apiroutes.h
    src/include/types.h

    src/include/isValidGeoJsonObject.h
    src/include/dbConnection.h

    config/db_config.json
    config/private.key
    config/server.crt

    src/include/dbQuery.h

    src/include/isValidReplayObject.h


    src/include/replayMethods.h

    src/include/authMethods.h
    src/include/setupSslCertificate.h

)
target_link_libraries(restapi Qt${QT_VERSION_MAJOR}::Core  Qt${QT_VERSION_MAJOR}::HttpServer Qt${QT_VERSION_MAJOR}::Sql Qt${QT_VERSION_MAJOR}::Network)

include(GNUInstallDirs)
install(TARGETS restapi
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
