cmake_minimum_required(VERSION 3.21)
project(aucdtect_linux VERSION 0.1.0 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

find_package(Qt6 QUIET COMPONENTS Widgets Concurrent)
if(Qt6_FOUND)
    set(QT_PACKAGE Qt6)
else()
    find_package(Qt5 REQUIRED COMPONENTS Widgets Concurrent)
    set(QT_PACKAGE Qt5)
endif()

add_library(aucdtect_core
    src/AudioAnalyzer.cpp
    src/AudioAnalyzer.h
)

target_link_libraries(aucdtect_core PRIVATE ${QT_PACKAGE}::Core)

add_executable(aucdtect_linux
    src/main.cpp
    src/MainWindow.cpp
    src/MainWindow.h
    assets/aucdtect_linux.qrc
)

target_link_libraries(aucdtect_linux PRIVATE aucdtect_core ${QT_PACKAGE}::Widgets ${QT_PACKAGE}::Concurrent)

add_executable(aucdtect
    src/cli_main.cpp
)

target_link_libraries(aucdtect PRIVATE aucdtect_core ${QT_PACKAGE}::Core)

install(TARGETS aucdtect_linux aucdtect RUNTIME DESTINATION bin)
install(FILES packaging/aucdtect-linux.desktop DESTINATION share/applications)
install(FILES assets/aucdtect-linux.svg DESTINATION share/icons/hicolor/scalable/apps)
install(FILES assets/aucdtect-linux.png DESTINATION share/icons/hicolor/256x256/apps)
