CMakeLists.txt 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. # This file is part of Desktop App Toolkit,
  2. # a set of libraries for developing nice desktop applications.
  3. #
  4. # For license and copyright information please follow this link:
  5. # https://github.com/desktop-app/legal/blob/master/LEGAL
  6. add_library(external_kcoreaddons INTERFACE IMPORTED GLOBAL)
  7. add_library(desktop-app::external_kcoreaddons ALIAS external_kcoreaddons)
  8. if (DESKTOP_APP_USE_PACKAGED)
  9. if (DESKTOP_APP_USE_PACKAGED_LAZY)
  10. find_package(KF${QT_VERSION_MAJOR}CoreAddons QUIET)
  11. else()
  12. find_package(KF${QT_VERSION_MAJOR}CoreAddons)
  13. endif()
  14. if (KF${QT_VERSION_MAJOR}CoreAddons_FOUND)
  15. target_link_libraries(external_kcoreaddons INTERFACE KF${QT_VERSION_MAJOR}::CoreAddons)
  16. return()
  17. endif()
  18. endif()
  19. add_library(external_kcoreaddons_bundled STATIC)
  20. init_target(external_kcoreaddons_bundled "(external)")
  21. set(kcoreaddons_loc ${third_party_loc}/kcoreaddons)
  22. set(kcoreaddons_src ${kcoreaddons_loc}/src/lib)
  23. nice_target_sources(external_kcoreaddons_bundled ${kcoreaddons_src}
  24. PRIVATE
  25. io/kurlmimedata.cpp
  26. io/kurlmimedata.h
  27. util/ksandbox.cpp
  28. util/ksandbox.h
  29. util/kshell.cpp
  30. util/kshell.h
  31. util/kshell_p.h
  32. util/kshell_unix.cpp
  33. util/kuser.h
  34. util/kuser_unix.cpp
  35. )
  36. if (NOT LINUX)
  37. remove_target_sources(external_kcoreaddons_bundled ${kcoreaddons_src}
  38. util/kshell.cpp
  39. util/kshell.h
  40. util/kshell_p.h
  41. util/kshell_unix.cpp
  42. util/kuser.h
  43. util/kuser_unix.cpp
  44. )
  45. endif()
  46. if (LINUX AND TARGET Qt::DBus)
  47. set_source_files_properties(${kcoreaddons_src}/io/org.freedesktop.portal.FileTransfer.xml PROPERTIES INCLUDE ${kcoreaddons_src}/io/dbustypes_p.h)
  48. qt_add_dbus_interface(_dbus_SRCS ${kcoreaddons_src}/io/org.freedesktop.portal.FileTransfer.xml org.freedesktop.portal.FileTransfer)
  49. set_source_files_properties(${kcoreaddons_src}/io/org.kde.KIOFuse.VFS.xml PROPERTIES NO_NAMESPACE TRUE)
  50. qt_add_dbus_interface(_dbus_SRCS ${kcoreaddons_src}/io/org.kde.KIOFuse.VFS.xml org.kde.KIOFuse.VFS)
  51. target_sources(external_kcoreaddons_bundled PRIVATE ${_dbus_SRCS})
  52. target_compile_definitions(external_kcoreaddons_bundled
  53. PRIVATE
  54. HAVE_QTDBUS
  55. )
  56. endif()
  57. target_compile_definitions(external_kcoreaddons_bundled
  58. PUBLIC
  59. KCOREADDONS_EXPORT=
  60. PRIVATE
  61. ACCOUNTS_SERVICE_ICON_DIR="/var/lib/AccountsService/icons"
  62. )
  63. target_include_directories(external_kcoreaddons_bundled SYSTEM
  64. PUBLIC
  65. ${kcoreaddons_src}/io
  66. ${kcoreaddons_src}/util
  67. ${CMAKE_CURRENT_SOURCE_DIR}/headers/public
  68. PRIVATE
  69. ${CMAKE_CURRENT_SOURCE_DIR}/headers/private
  70. ${CMAKE_CURRENT_BINARY_DIR}
  71. )
  72. target_link_libraries(external_kcoreaddons_bundled
  73. PRIVATE
  74. desktop-app::external_qt
  75. )
  76. target_link_libraries(external_kcoreaddons
  77. INTERFACE
  78. external_kcoreaddons_bundled
  79. )