find_package(ECM REQUIRED NO_MODULE)
list(APPEND CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
include(KDEInstallDirs)

find_package(Qt5 COMPONENTS Core DBus REQUIRED)
find_package(KF5Auth REQUIRED)
find_package(Botan REQUIRED)

list(APPEND PROCESS_MONITOR_SRC
  pmon/processmonitor.cpp
  pmon/procpidsolver.cpp
  pmon/nlprocexecsocket.cpp
  pmon/nlprocexecmonitor.cpp
  pmon/processregistry.cpp
  pmon/appregistry.cpp
  pmon/msgdispatcher.cpp
)

list(APPEND SYSTEM_CONTROL_SRC
  sysctl/sysfswriter.cpp
  sysctl/msgreceiver.cpp
)

set(CMAKE_AUTOMOC ON)
add_executable(corectrl_helperkiller
  helperkiller.cpp
)
set(CMAKE_AUTOMOC OFF)

target_compile_features(corectrl_helperkiller PRIVATE ${TARGET_COMMON_COMPILE_FEATURES})
target_compile_definitions(corectrl_helperkiller PRIVATE ${3RDPARTY_COMMON_DEFINITIONS})
target_link_libraries(corectrl_helperkiller PRIVATE
  Qt5::Core
  KF5::Auth
)

kauth_install_helper_files(corectrl_helperkiller org.corectrl.helperkiller root)
kauth_install_actions(org.corectrl.helperkiller org.corectrl.helperkiller.actions.ini)
install(TARGETS corectrl_helperkiller DESTINATION ${KAUTH_HELPER_INSTALL_DIR})


set(CMAKE_AUTOMOC ON)
add_executable(corectrl_helper
  helper.cpp
  ${3RDPARTY_COMMON_SRC}
  ${COMMON_SRC}
  ${PROCESS_MONITOR_SRC}
  ${SYSTEM_CONTROL_SRC}
)
set(CMAKE_AUTOMOC OFF)

target_include_directories(corectrl_helper PRIVATE
  ${Botan_INCLUDE_DIRS}
  ${3RDPARTY_INCLUDE_DIRECTORIES}
  ${PROJECT_SOURCE_DIR}/src
)
target_compile_features(corectrl_helper PRIVATE ${TARGET_COMMON_COMPILE_FEATURES})
target_compile_definitions(corectrl_helper PRIVATE ${3RDPARTY_COMMON_DEFINITIONS})
target_link_libraries(corectrl_helper PRIVATE
  Qt5::Core
  Qt5::DBus
  KF5::Auth
  stdc++fs
  pthread
  ${Botan_LIBRARIES}
)

kauth_install_helper_files(corectrl_helper org.corectrl.helper root)
kauth_install_actions(org.corectrl.helper org.corectrl.helper.actions.ini)
install(TARGETS corectrl_helper DESTINATION ${KAUTH_HELPER_INSTALL_DIR})
# Replace the generic config file generated by kauth_install_helper_files with our own config
install(FILES org.corectrl.helper.conf DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/dbus-1/system.d)
