cmake_minimum_required(VERSION 3.16)

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake)

project(qyouradio VERSION 0.1 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(Qt6 REQUIRED COMPONENTS Core Quick Multimedia)
find_package(DiscordSDK)

qt_standard_project_setup(REQUIRES 6.8)

configure_file(buildFlags.h.in buildFlags.h)

qt_add_executable(appqyouradio
    main.cpp
    buildFlags.h
    player.cpp player.h
    resources/qyouradio.rc
    resources/resource.h
)

qt_add_resources(appqyouradio "resources"
    PREFIX "/"
    FILES
        resources/logo.png
)

set_source_files_properties(Player.qml
    PROPERTIES QT_QML_SINGLETON_TYPE TRUE)

qt_add_qml_module(appqyouradio
    URI qyouradio
    VERSION 1.0
    QML_FILES
        Main.qml
        # Player.qml
        ViewPlayer.qml
        ViewSettings.qml
)

# Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1.
# If you are developing for iOS or macOS you should consider setting an
# explicit, fixed bundle identifier manually though.
set_target_properties(appqyouradio PROPERTIES
#    MACOSX_BUNDLE_GUI_IDENTIFIER com.example.appqyouradio
    MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
    MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
    MACOSX_BUNDLE TRUE
    WIN32_EXECUTABLE TRUE
)

target_include_directories(appqyouradio PRIVATE "${CMAKE_CURRENT_BINARY_DIR}")

target_link_libraries(appqyouradio
    PUBLIC Qt6::Quick Qt6::Multimedia
)

if (DiscordSDK_FOUND)
    target_link_libraries(appqyouradio
        PRIVATE DiscordSDK::DiscordSDK
    )
endif()

include(GNUInstallDirs)
install(TARGETS appqyouradio
    BUNDLE DESTINATION .
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)

qt_generate_deploy_app_script(
    TARGET appqyouradio
    OUTPUT_SCRIPT deploy_script
    NO_UNSUPPORTED_PLATFORM_ERROR
)
install(SCRIPT ${deploy_script})

add_subdirectory(QYRComponents)
