2013-01-27 05:40:28 -08:00
|
|
|
cmake_minimum_required(VERSION 2.8.8)
|
2013-01-17 16:46:14 -08:00
|
|
|
|
2013-01-27 07:31:31 -08:00
|
|
|
project(SDDM)
|
2013-01-17 16:46:14 -08:00
|
|
|
|
2013-01-27 07:31:31 -08:00
|
|
|
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake;${CMAKE_MODULE_PATH}")
|
|
|
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
|
|
|
set(CMAKE_AUTOMOC ON)
|
2013-01-17 16:46:14 -08:00
|
|
|
|
2013-02-05 13:30:54 -08:00
|
|
|
add_definitions(-Wall -march=native -std=c++11)
|
|
|
|
|
|
|
|
if(NOT CMAKE_BUILD_TYPE)
|
2013-02-11 11:40:03 -08:00
|
|
|
set(CMAKE_BUILD_TYPE Release)
|
2013-02-05 13:30:54 -08:00
|
|
|
endif()
|
|
|
|
|
|
|
|
if(CMAKE_BUILD_TYPE MATCHES [Dd]ebug)
|
2013-02-11 11:40:03 -08:00
|
|
|
message(STATUS "Debug build")
|
|
|
|
add_definitions(-DDEBUG)
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0")
|
2013-02-05 13:30:54 -08:00
|
|
|
else()
|
2013-02-11 11:40:03 -08:00
|
|
|
message(STATUS "Release build")
|
|
|
|
add_definitions(-DNDEBUG)
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2")
|
2013-02-05 13:30:54 -08:00
|
|
|
endif()
|
2013-01-17 16:46:14 -08:00
|
|
|
|
2013-01-27 07:31:31 -08:00
|
|
|
set(SOURCES
|
2013-01-29 04:57:46 -08:00
|
|
|
src/Application.cpp
|
2013-01-17 16:46:14 -08:00
|
|
|
src/Authenticator.cpp
|
|
|
|
src/Configuration.cpp
|
|
|
|
src/Cookie.cpp
|
|
|
|
src/DisplayManager.cpp
|
2013-01-24 17:07:35 -08:00
|
|
|
src/LockFile.cpp
|
2013-01-17 16:46:14 -08:00
|
|
|
src/Main.cpp
|
|
|
|
src/SessionManager.cpp
|
2013-02-11 16:27:50 -08:00
|
|
|
src/SessionModel.cpp
|
2013-02-10 15:59:09 -08:00
|
|
|
src/UserModel.cpp
|
2013-01-29 14:44:30 -08:00
|
|
|
src/Util.cpp
|
2013-01-17 16:46:14 -08:00
|
|
|
)
|
|
|
|
|
2013-01-27 07:31:31 -08:00
|
|
|
# PAM
|
|
|
|
find_package(PAM REQUIRED)
|
|
|
|
|
|
|
|
# X11
|
|
|
|
find_package(X11 REQUIRED)
|
|
|
|
|
|
|
|
if (USE_QT5)
|
|
|
|
find_package(Qt5Core REQUIRED)
|
|
|
|
|
|
|
|
add_executable(sddm ${SOURCES})
|
|
|
|
target_link_libraries(sddm ${PAM_LIBRARIES} ${X11_X11_LIB})
|
|
|
|
|
2013-02-10 02:18:20 -08:00
|
|
|
qt5_use_modules(sddm Quick)
|
2013-02-09 13:42:21 -08:00
|
|
|
|
2013-02-15 06:14:44 -08:00
|
|
|
# find qt5 imports dir
|
|
|
|
get_target_property(QMAKE_EXECUTABLE Qt5::qmake LOCATION)
|
|
|
|
exec_program(${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_IMPORTS" RETURN_VALUE return_code OUTPUT_VARIABLE QT_IMPORTS_DIR)
|
|
|
|
|
|
|
|
set(COMPONENTS_VERSION 2.0)
|
2013-01-27 07:31:31 -08:00
|
|
|
else()
|
|
|
|
find_package(Qt4 REQUIRED)
|
2013-01-28 04:43:32 -08:00
|
|
|
set(QT_USE_QTNETWORK TRUE)
|
2013-01-27 07:31:31 -08:00
|
|
|
set(QT_USE_QTDECLARATIVE TRUE)
|
|
|
|
include(${QT_USE_FILE})
|
|
|
|
|
|
|
|
add_executable(sddm ${SOURCES})
|
|
|
|
target_link_libraries(sddm ${PAM_LIBRARIES} ${X11_X11_LIB} ${QT_LIBRARIES})
|
2013-02-09 13:42:21 -08:00
|
|
|
|
2013-02-15 06:14:44 -08:00
|
|
|
set(COMPONENTS_VERSION 1.1)
|
2013-01-27 07:31:31 -08:00
|
|
|
endif(USE_QT5)
|
2013-02-06 10:24:42 -08:00
|
|
|
|
2013-02-16 17:09:40 -08:00
|
|
|
# include pkg-config
|
|
|
|
find_package(PkgConfig)
|
|
|
|
|
|
|
|
# check systemd
|
|
|
|
pkg_check_modules(SYSTEMD "libsystemd-login libsystemd-daemon" REQUIRED)
|
|
|
|
|
|
|
|
# find systemd unit dir
|
|
|
|
execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=systemdsystemunitdir systemd OUTPUT_VARIABLE SYSTEMD_SYSTEM_UNIT_DIR)
|
|
|
|
string(REGEX REPLACE "[ \t\n]+" \; SYSTEMD_SYSTEM_UNIT_DIR "${SYSTEMD_SYSTEM_UNIT_DIR}")
|
|
|
|
|
2013-02-11 11:40:03 -08:00
|
|
|
# set paths
|
|
|
|
set(BIN_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/bin)
|
|
|
|
set(DATA_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/share/apps/sddm)
|
|
|
|
|
2013-02-15 06:14:44 -08:00
|
|
|
# configure config file
|
2013-02-11 11:40:03 -08:00
|
|
|
configure_file(${CMAKE_SOURCE_DIR}/sddm.conf.cmake sddm.conf)
|
2013-02-09 13:42:21 -08:00
|
|
|
|
2013-02-15 06:14:44 -08:00
|
|
|
#configure themes
|
|
|
|
configure_file(${CMAKE_SOURCE_DIR}/data/themes/circles/Main.qml data/themes/circles/Main.qml)
|
|
|
|
configure_file(${CMAKE_SOURCE_DIR}/data/themes/circles/metadata.desktop data/themes/circles/metadata.desktop)
|
|
|
|
|
|
|
|
configure_file(${CMAKE_SOURCE_DIR}/data/themes/elarun/Main.qml data/themes/elarun/Main.qml)
|
|
|
|
configure_file(${CMAKE_SOURCE_DIR}/data/themes/elarun/metadata.desktop data/themes/elarun/metadata.desktop)
|
|
|
|
|
|
|
|
configure_file(${CMAKE_SOURCE_DIR}/data/themes/maldives/Main.qml data/themes/maldives/Main.qml)
|
|
|
|
configure_file(${CMAKE_SOURCE_DIR}/data/themes/maldives/metadata.desktop data/themes/maldives/metadata.desktop)
|
|
|
|
|
|
|
|
configure_file(${CMAKE_SOURCE_DIR}/data/themes/maui/Main.qml data/themes/maui/Main.qml)
|
|
|
|
configure_file(${CMAKE_SOURCE_DIR}/data/themes/maui/metadata.desktop data/themes/maui/metadata.desktop)
|
|
|
|
|
2013-02-06 10:24:42 -08:00
|
|
|
# install binary
|
2013-02-11 11:40:03 -08:00
|
|
|
install(TARGETS sddm DESTINATION ${BIN_INSTALL_DIR})
|
|
|
|
|
2013-02-06 10:24:42 -08:00
|
|
|
# install config file
|
2013-02-09 13:42:21 -08:00
|
|
|
install(FILES ${CMAKE_BINARY_DIR}/sddm.conf DESTINATION /etc)
|
2013-02-11 11:40:03 -08:00
|
|
|
install(FILES ${CMAKE_BINARY_DIR}/sddm.conf DESTINATION /etc RENAME sddm.conf.sample)
|
|
|
|
|
2013-02-16 17:09:40 -08:00
|
|
|
# install pam service file
|
2013-02-11 11:40:03 -08:00
|
|
|
install(FILES ${CMAKE_SOURCE_DIR}/services/sddm.pam DESTINATION /etc/pam.d RENAME sddm)
|
2013-02-16 17:09:40 -08:00
|
|
|
|
|
|
|
# install systemd service file
|
|
|
|
if(SYSTEMD_SYSTEM_UNIT_DIR)
|
|
|
|
install(FILES ${CMAKE_SOURCE_DIR}/services/sddm.systemd DESTINATION ${SYSTEMD_SYSTEM_UNIT_DIR} RENAME sddm.service)
|
|
|
|
endif(SYSTEMD_SYSTEM_UNIT_DIR)
|
2013-02-11 11:40:03 -08:00
|
|
|
|
2013-02-15 06:14:44 -08:00
|
|
|
# install components
|
|
|
|
if(USE_QT5)
|
2013-02-15 09:42:08 -08:00
|
|
|
install(DIRECTORY ${CMAKE_SOURCE_DIR}/components/2.0/ DESTINATION ${QT_IMPORTS_DIR}/SddmComponents)
|
2013-02-15 06:14:44 -08:00
|
|
|
else()
|
2013-02-15 09:42:08 -08:00
|
|
|
install(DIRECTORY ${CMAKE_SOURCE_DIR}/components/1.1/ DESTINATION ${QT_IMPORTS_DIR}/SddmComponents)
|
2013-02-15 06:14:44 -08:00
|
|
|
endif(USE_QT5)
|
|
|
|
|
2013-02-11 11:40:03 -08:00
|
|
|
# install data files
|
|
|
|
install(DIRECTORY ${CMAKE_SOURCE_DIR}/data/faces DESTINATION ${DATA_INSTALL_DIR})
|
|
|
|
install(DIRECTORY ${CMAKE_SOURCE_DIR}/data/themes DESTINATION ${DATA_INSTALL_DIR})
|
2013-02-15 06:14:44 -08:00
|
|
|
install(DIRECTORY ${CMAKE_BINARY_DIR}/data/themes DESTINATION ${DATA_INSTALL_DIR})
|
2013-02-11 11:40:03 -08:00
|
|
|
|
|
|
|
# install scripts
|
|
|
|
install(FILES ${CMAKE_SOURCE_DIR}/data/scripts/Xsession
|
|
|
|
DESTINATION ${DATA_INSTALL_DIR}/scripts
|
2013-02-06 16:45:31 -08:00
|
|
|
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE
|
2013-02-11 11:40:03 -08:00
|
|
|
GROUP_READ GROUP_EXECUTE
|
2013-02-06 16:45:31 -08:00
|
|
|
WORLD_READ WORLD_EXECUTE)
|