[screenlocker] Install the cmake configuration and header files

This introduces cmake configuration and header files for the
KScreenLocker library.

REVIEW: 125930
wilder-5.14
Bhushan Shah 11 years ago
parent 2fc947526d
commit f3aa06cc99
  1. 66
      ksmserver/screenlocker/CMakeLists.txt
  2. 7
      ksmserver/screenlocker/KScreenLockerConfig.cmake.in
  3. 2
      ksmserver/screenlocker/autotests/CMakeLists.txt
  4. 4
      ksmserver/screenlocker/ksldapp.h
  5. 2
      ksmserver/screenlocker/tests/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 "$<INSTALL_INTERFACE:${KSLD_INCLUDEDIR}>")
# 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)

@ -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")

@ -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)

@ -26,7 +26,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include <QtCore/QElapsedTimer>
#include <QtCore/QProcess>
#include <ksld_export.h>
#include <KScreenLocker/kscreenlocker_export.h>
// 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")

@ -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)

Loading…
Cancel
Save