cmake_minimum_required(VERSION 3.24)

project(musicviewer)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/")

find_package(Qt6 REQUIRED COMPONENTS Core Gui Network WebSockets)
qt_standard_project_setup()

# PulseAudio (top-level project already finds it, but be explicit for standalone builds)
find_package(PulseAudio REQUIRED)

include_directories(
    ${Qt6Core_INCLUDE_DIRS}
    ${Qt6Gui_INCLUDE_DIRS}
    ${Qt6Network_INCLUDE_DIRS}
    ${Qt6WebSockets_INCLUDE_DIRS}
    ${PULSEAUDIO_INCLUDE_DIR}
)

set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall -ggdb")

set(musicviewer_SRC
    musicviewer.cpp
    visualizer.cpp
    mpriscontroller.cpp
    browsercontroller.cpp
    ../../gscreen.cpp
    ../../plugininterface.hpp
)

qt_add_resources(musicviewer_QRC musicviewer.qrc)

qt_add_library(musicviewer SHARED ${musicviewer_SRC} ${musicviewer_QRC})
target_link_libraries(musicviewer
    ${Qt6Core_LIBRARIES}
    ${Qt6Gui_LIBRARIES}
    Qt6::Network Qt6::DBus
    Qt6::WebSockets
    ${PULSEAUDIO_LIBRARY}
    ${PULSEAUDIO_MAINLOOP_LIBRARY}
)

message("Plugins dir ${PLUGINS_DIR}")
install(TARGETS musicviewer LIBRARY DESTINATION ${PLUGINS_DIR})
