# SPDX-FileCopyrightText: 2024 UnionTech Software Technology Co., Ltd.
#
# SPDX-License-Identifier: GPL-3.0-or-later

cmake_minimum_required(VERSION 3.16)

project(dde-graphics-driver-applet VERSION 1.0.0 LANGUAGES CXX)

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

find_package(Qt6 REQUIRED COMPONENTS Core Quick DBus LinguistTools)
find_package(Dtk6 REQUIRED COMPONENTS Core)

# 插件 ID
set(PLUGIN_ID "org.deepin.ds.graphics-driver")

# 翻译源文件目录
set(TRANSLATIONS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/translations)

# 翻译文件列表
set(TS_FILES
    ${TRANSLATIONS_DIR}/${PLUGIN_ID}_zh_CN.ts
    ${TRANSLATIONS_DIR}/${PLUGIN_ID}_zh_TW.ts
)

# 生成 .qm 编译翻译文件
set(QM_FILES
    ${CMAKE_CURRENT_BINARY_DIR}/${PLUGIN_ID}_zh_CN.qm
    ${CMAKE_CURRENT_BINARY_DIR}/${PLUGIN_ID}_zh_TW.qm
)

add_custom_command(
    OUTPUT ${QM_FILES}
    COMMAND /usr/lib/qt6/bin/lrelease ${TRANSLATIONS_DIR}/${PLUGIN_ID}_zh_CN.ts -qm ${CMAKE_CURRENT_BINARY_DIR}/${PLUGIN_ID}_zh_CN.qm
    COMMAND /usr/lib/qt6/bin/lrelease ${TRANSLATIONS_DIR}/${PLUGIN_ID}_zh_TW.ts -qm ${CMAKE_CURRENT_BINARY_DIR}/${PLUGIN_ID}_zh_TW.qm
    DEPENDS ${TS_FILES}
    COMMENT "Compiling translations to .qm files"
)

# 手动更新翻译源文件（不加入 ALL，仅在需要时手动 make update_translations）
add_custom_target(update_translations
    COMMAND /usr/lib/qt6/bin/lupdate ${CMAKE_CURRENT_SOURCE_DIR}/package -ts ${TS_FILES}
    COMMENT "Updating translation source files"
)

add_library(org.deepin.ds.graphics-driver SHARED
    graphicsdriverapplet.h
    graphicsdriverapplet.cpp
    ${QM_FILES}
)

set_target_properties(org.deepin.ds.graphics-driver PROPERTIES PREFIX "")

target_include_directories(org.deepin.ds.graphics-driver PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}
    /usr/include/dde-shell
)

target_link_libraries(org.deepin.ds.graphics-driver PRIVATE
    Qt6::Core
    Qt6::Quick
    Qt6::DBus
    Dtk6::Core
)

# 安装到dde-shell插件目录
install(TARGETS org.deepin.ds.graphics-driver DESTINATION /usr/lib/x86_64-linux-gnu/dde-shell)
install(FILES package/metadata.json DESTINATION /usr/share/dde-shell/${PLUGIN_ID})
install(FILES package/driverview.qml DESTINATION /usr/share/dde-shell/${PLUGIN_ID})
install(FILES ${QM_FILES} DESTINATION /usr/share/dde-shell/${PLUGIN_ID}/translations)
