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

cmake_minimum_required(VERSION 3.16)

project(user_plugin LANGUAGES CXX)

set(PLUGIN_NAME "plugin-immutable-err-notifier")
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC OFF)
set(CMAKE_AUTORCC OFF)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(QT_VERSION_MAJOR 6)
set(DTK_VERSION_MAJOR 6)
set(QT_REQUIRED_COMPONENTS Core DBus LinguistTools)

find_package(Qt${QT_VERSION_MAJOR} QUIET COMPONENTS ${QT_REQUIRED_COMPONENTS})
find_package(Dtk${DTK_VERSION_MAJOR} REQUIRED Core)

file(GLOB USER_PLUGIN_SOURCES "*.cpp" "*.h")

add_library(${PROJECT_NAME} MODULE
	${USER_PLUGIN_SOURCES}
)

set_target_properties(${PROJECT_NAME} PROPERTIES
	OUTPUT_NAME "${PLUGIN_NAME}"
)

target_include_directories(${PROJECT_NAME} PRIVATE
	${CMAKE_CURRENT_SOURCE_DIR}
)

target_link_libraries(${PROJECT_NAME}
	Qt${QT_VERSION_MAJOR}::Core
	Qt${QT_VERSION_MAJOR}::DBus
	Dtk${DTK_VERSION_MAJOR}::Core
)

# can use qt_standard_project_setup(I18N_TRANSLATED_LANGUAGES xx xx) from Qt6.7
set(TRANSLATION_LANGUAGES
    af am_ET ar ast az bg bn bo ca cs da de el en_AU en_GB eo es et fa fi fr gl_ES
    he hi_IN hr hu hy id it ja ko ku_IQ lo lt ml mn ms nb ne nl pl pt_BR pt ro ru
    si sk sl sq sr sv sw ta tr pam ug uk vi zh_CN zh_HK zh_TW
)

set(TRANSLATION_FILES "")
list(APPEND TRANSLATION_FILES "translations/${PLUGIN_NAME}.ts")
foreach(LANG ${TRANSLATION_LANGUAGES})
    list(APPEND TRANSLATION_FILES "translations/${PLUGIN_NAME}_${LANG}.ts")
endforeach()

qt_add_translations(${PROJECT_NAME}
	TS_FILES ${TRANSLATION_FILES}
	# RESOURCE_PREFIX "/translations"
	SOURCES ${USER_PLUGIN_SOURCES}
	QM_FILES_OUTPUT_VARIABLE TR_QM_FILES
)

## qm files
install(FILES ${TR_QM_FILES} DESTINATION share/deepin-immutable-eventd/translations)

install(TARGETS ${PROJECT_NAME}
	DESTINATION ${CMAKE_INSTALL_LIBDIR}/deepin-service-manager/
)

install(FILES
	${CMAKE_SOURCE_DIR}/misc/usr/share/deepin-service-manager/user/${PLUGIN_NAME}.json
	DESTINATION share/deepin-service-manager/user/
)

# Install DSG config
install(FILES
	${CMAKE_SOURCE_DIR}/misc/usr/share/dsg/configs/org.deepin.immutable.eventd/org.deepin.immutable.err-notifier.json
	DESTINATION share/dsg/configs/org.deepin.immutable.eventd/
)
