cmake_minimum_required(VERSION 3.10)

set(PROJECT_N kylin-system-treasurebox-service)

project(${PROJECT_N} VERSION 1.0)

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

if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-lto -g -Wall -Wextra -Wpedantic -fstack-protector-strong -Wl,-z,noexecstack -Wl,-z,relro -fPIE -pie -Wl,-z,now -D_FORTIFY_SOURCE=2 -ftrapv")
endif()

find_package(PkgConfig)
find_package(Qt5 COMPONENTS Core DBus Network REQUIRED)

file(GLOB SOURCES *.cpp)
add_executable(${PROJECT_N} ${SOURCES})
target_link_libraries(${PROJECT_N} Qt5::Core Qt5::DBus Qt5::Network)

set_target_properties(${PROJECT_N} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)
install(TARGETS ${PROJECT_N} DESTINATION /usr/bin/)
install(FILES ${CMAKE_SOURCE_DIR}/share/client_whitelist.conf
        DESTINATION /usr/share/kylin-treasure-box-service/)