cmake_minimum_required(VERSION 3.21)

project(pgLab LANGUAGES C CXX)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

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

add_compile_definitions(BOOST_ENABLE_ASSERT_HANDLER QT_DEPRECATED_WARNINGS)
if(WIN32)
    add_compile_definitions(WIN32_LEAN_AND_MEAN NOMINMAX)
endif()

find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets Sql Concurrent)

option(BUILD_TESTS "Build the gtest executables and register them with ctest" ON)

add_subdirectory(core)
add_subdirectory(pgsql)
add_subdirectory(pglablib)
add_subdirectory(pglab)

if(BUILD_TESTS)
    enable_testing()
    add_subdirectory(tests)
endif()
