CMakeLists.txt 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. cmake_minimum_required(VERSION 3.0.0)
  2. project(fancontroller)
  3. include(FeatureSummary)
  4. option(NO_SYSTEMD "Compile without Systemd support. Reduces functionality significantly!")
  5. option(BUILD_CORE "Compile the shared library")
  6. option(BUILD_GUI "Compile the GUI")
  7. #Find Qt5
  8. find_package(Qt5 COMPONENTS Widgets Qml Quick REQUIRED)
  9. include_directories(${Qt5Widgets_INCLUDE_DIRS}
  10. ${Qt5Qml_INCLUDE_DIRS}
  11. ${Qt5Quick_INCLUDE_DIRS}
  12. ${CMAKE_CURRENT_BINARY_DIR})
  13. add_definitions(${Qt5Widgets_DEFINITIONS})
  14. set(CMAKE_AUTOMOC ON)
  15. # Silence a warning
  16. cmake_policy(SET CMP0037 OLD)
  17. #Find KF5
  18. find_package(ECM REQUIRED)
  19. set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR})
  20. find_package(KF5 COMPONENTS Auth Config I18n Declarative REQUIRED)
  21. find_package(Qt5DBus)
  22. feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
  23. include(KDEInstallDirs)
  24. include(KDECMakeSettings)
  25. include(KDECompilerSettings)
  26. #Systemd
  27. find_library(SYSTEMD_FOUND NAMES systemd)
  28. if(NOT NO_SYSTEMD AND SYSTEMD_FOUND AND Qt5DBus_FOUND)
  29. message(STATUS "Compiling for Systemd")
  30. include_directories(${Qt5DBus_INCLUDE_DIRS})
  31. else(NOT NO_SYSTEMD AND SYSTEMD_FOUND AND Qt5DBus_FOUND)
  32. message(STATUS "Compiling without Systemd")
  33. set(NO_SYSTEMD true)
  34. endif(NOT NO_SYSTEMD AND SYSTEMD_FOUND AND Qt5DBus_FOUND)
  35. if(BUILD_CORE)
  36. message(STATUS "Compile core")
  37. add_subdirectory(helper)
  38. add_subdirectory(share)
  39. endif(BUILD_CORE)
  40. if(BUILD_GUI)
  41. message(STATUS "Compile GUI")
  42. add_subdirectory(fancontrol-gui)
  43. endif(BUILD_GUI)
  44. #translations
  45. FILE(GLOB MO_FILES po/*.mo)
  46. set(catalogname fancontrol-gui)
  47. FOREACH(MO_FILE ${MO_FILES})
  48. GET_FILENAME_COMPONENT(_moFileName ${MO_FILE} NAME)
  49. STRING(REGEX REPLACE "^${catalogname}_?" "" _langCode ${_moFileName} )
  50. STRING(REGEX REPLACE "\\.mo$" "" _langCode ${_langCode} )
  51. IF( _langCode )
  52. INSTALL(FILES ${MO_FILE} DESTINATION ${LOCALE_INSTALL_DIR}/${_langCode}/LC_MESSAGES/ RENAME ${catalogname}.mo)
  53. LIST(APPEND GMO_FILES ${_gmoFile})
  54. ENDIF( _langCode )
  55. ENDFOREACH(MO_FILE ${MO_FILES})