diff --git a/ksmserver/screenlocker/CMakeLists.txt b/ksmserver/screenlocker/CMakeLists.txt index a5f819bf8..d2bcec0a6 100644 --- a/ksmserver/screenlocker/CMakeLists.txt +++ b/ksmserver/screenlocker/CMakeLists.txt @@ -4,9 +4,19 @@ add_definitions(-DTRANSLATION_DOMAIN=\"kscreenlocker\") # adjusting CMAKE_C_FLAGS to get wayland protocols to compile set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu90") +include(ECMSetupVersion) +include(ECMGenerateHeaders) + +ecm_setup_version(${PROJECT_VERSION} VARIABLE_PREFIX KSCREENLOCKER + VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kscreenlocker_version.h" + PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KScreenLockerConfigVersion.cmake" + SOVERSION 5) + configure_file(config-kscreenlocker.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kscreenlocker.h) include_directories(${CMAKE_CURRENT_BINARY_DIR}) +set(KSLD_INCLUDEDIR "${CMAKE_INSTALL_INCLUDEDIR}/KScreenLocker") + add_subdirectory(kcheckpass) add_subdirectory(greeter) add_subdirectory(kcm) @@ -35,9 +45,9 @@ ecm_add_wayland_server_protocol(ksld_SRCS BASENAME ksld ) -add_library(ksld SHARED ${ksld_SRCS}) +add_library(KScreenLocker SHARED ${ksld_SRCS}) -target_link_libraries(ksld +target_link_libraries(KScreenLocker PUBLIC Qt5::Core Qt5::X11Extras @@ -59,28 +69,59 @@ PRIVATE ) if (X11_Xinput_FOUND) - target_link_libraries(ksld PRIVATE ${X11_Xinput_LIB}) + target_link_libraries(KScreenLocker PRIVATE ${X11_Xinput_LIB}) endif() +target_include_directories(KScreenLocker INTERFACE "$") + # Needed to compile on Arm target. -set_target_properties(ksld PROPERTIES COMPILE_FLAGS "-fPIC") +set_target_properties(KScreenLocker PROPERTIES COMPILE_FLAGS "-fPIC") -generate_export_header(ksld - BASE_NAME ksld - EXPORT_MACRO_NAME KSLD_EXPORT +add_library(PW::KScreenLocker ALIAS KScreenLocker) + +generate_export_header(KScreenLocker + BASE_NAME KScreenLocker + EXPORT_MACRO_NAME KSCREENLOCKER_EXPORT + EXPORT_FILE_NAME KScreenLocker/kscreenlocker_export.h ) -set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/ScreenSaverDBusInterface") ecm_configure_package_config_file(ScreenSaverDBusInterfaceConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/ScreenSaverDBusInterfaceConfig.cmake PATH_VARS KDE_INSTALL_DBUSINTERFACEDIR - INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}) + INSTALL_DESTINATION "${CMAKECONFIG_INSTALL_PREFIX}/ScreenSaverDBusInterface") + +set_target_properties(KScreenLocker PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR}) -set_target_properties(ksld PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR}) -install(TARGETS ksld ${INSTALL_TARGETS_DEFAULT_ARGS} LIBRARY) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ScreenSaverDBusInterfaceConfig.cmake - DESTINATION ${CMAKECONFIG_INSTALL_DIR}) + DESTINATION "${CMAKECONFIG_INSTALL_PREFIX}/ScreenSaverDBusInterface") + +ecm_configure_package_config_file("${CMAKE_CURRENT_SOURCE_DIR}/KScreenLockerConfig.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/KScreenLockerConfig.cmake" + INSTALL_DESTINATION "${CMAKECONFIG_INSTALL_PREFIX}/KScreenLocker") + +install(TARGETS KScreenLocker EXPORT KScreenLockerTargets ${INSTALL_TARGETS_DEFAULT_ARGS} LIBRARY) +install(EXPORT KScreenLockerTargets DESTINATION "${CMAKECONFIG_INSTALL_PREFIX}/KScreenLocker" FILE KScreenLockerTargets.cmake NAMESPACE PW::) + +ecm_generate_headers(KScreenLocker_CamelCase_HEADERS + HEADER_NAMES + KsldApp + REQUIRED_HEADERS KScreenLocker_HEADERS) + +install( + FILES + ${CMAKE_CURRENT_BINARY_DIR}/KScreenLocker/kscreenlocker_export.h + ${KScreenLocker_CamelCase_HEADERS} + ${KScreenLocker_HEADERS} + DESTINATION + ${KSLD_INCLUDEDIR}/KScreenLocker + COMPONENT Devel) + +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/KScreenLockerConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/KScreenLockerConfigVersion.cmake" + DESTINATION "${CMAKECONFIG_INSTALL_PREFIX}/KScreenLocker" + COMPONENT Devel) + install(FILES kscreenlocker.notifyrc DESTINATION ${KDE_INSTALL_KNOTIFY5RCDIR} RENAME ksmserver.notifyrc) install(FILES ${screensaver_dbusXML} DESTINATION ${KDE_INSTALL_DBUSINTERFACEDIR} @@ -91,6 +132,5 @@ install(FILES updaters/kscreenlocker.upd DESTINATION ${KDE_INSTALL_DATADIR}/kc install(PROGRAMS updaters/ksreenlocker_5_3_separate_autologin.pl DESTINATION ${KDE_INSTALL_DATADIR}/kconf_update) - add_subdirectory(autotests) add_subdirectory(tests) diff --git a/ksmserver/screenlocker/KScreenLockerConfig.cmake.in b/ksmserver/screenlocker/KScreenLockerConfig.cmake.in new file mode 100644 index 000000000..16b77c6c5 --- /dev/null +++ b/ksmserver/screenlocker/KScreenLockerConfig.cmake.in @@ -0,0 +1,7 @@ +@PACKAGE_INIT@ + +find_dependency(Qt5Core @REQUIRED_QT_VERSION@) +find_dependency(Qt5X11Extras @REQUIRED_QT_VERSION@) + + +include("${CMAKE_CURRENT_LIST_DIR}/KScreenLockerTargets.cmake") diff --git a/ksmserver/screenlocker/autotests/CMakeLists.txt b/ksmserver/screenlocker/autotests/CMakeLists.txt index 73a340de2..becbbbeee 100644 --- a/ksmserver/screenlocker/autotests/CMakeLists.txt +++ b/ksmserver/screenlocker/autotests/CMakeLists.txt @@ -18,7 +18,7 @@ ecm_mark_as_test(logindTest) # KSldTest ####################################### add_executable(ksldTest ksldtest.cpp) -target_link_libraries(ksldTest Qt5::Test ksld) +target_link_libraries(ksldTest Qt5::Test KScreenLocker) add_test(ksmserver-ksldTest ksldTest) ecm_mark_as_test(ksldTest) diff --git a/ksmserver/screenlocker/ksldapp.h b/ksmserver/screenlocker/ksldapp.h index bc3482015..c281e118d 100644 --- a/ksmserver/screenlocker/ksldapp.h +++ b/ksmserver/screenlocker/ksldapp.h @@ -26,7 +26,7 @@ along with this program. If not, see . #include #include -#include +#include // forward declarations class GlobalAccel; @@ -46,7 +46,7 @@ enum class EstablishLock { class AbstractLocker; class WaylandServer; -class KSLD_EXPORT KSldApp : public QObject +class KSCREENLOCKER_EXPORT KSldApp : public QObject { Q_OBJECT Q_CLASSINFO("D-Bus Interface", "org.kde.ksld.App") diff --git a/ksmserver/screenlocker/tests/CMakeLists.txt b/ksmserver/screenlocker/tests/CMakeLists.txt index 2f8983b16..fb64b2c03 100644 --- a/ksmserver/screenlocker/tests/CMakeLists.txt +++ b/ksmserver/screenlocker/tests/CMakeLists.txt @@ -1,3 +1,3 @@ add_executable(kscreenlocker_test kscreenlocker_main.cpp) -target_link_libraries(kscreenlocker_test ksld Qt5::Widgets KF5::I18n) +target_link_libraries(kscreenlocker_test KScreenLocker Qt5::Widgets KF5::I18n) ecm_mark_as_test(kscreenlocker_test)