project( desqwl ) cmake_minimum_required( VERSION 3.16 ) set( CMAKE_CXX_STANDARD 17 ) set( CMAKE_INCLUDE_CURRENT_DIR ON ) set( CMAKE_BUILD_TYPE Release ) set( PROJECT_VERSION 1.0.0 ) set( PROJECT_VERSION_MAJOR 1 ) set( PROJECT_VERSION_MINOR 0 ) set( PROJECT_VERSION_PATCH 0 ) set( PROJECT_VERSION_MAJOR_MINOR ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} ) add_definitions ( -Wall ) if ( CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT ) set( CMAKE_INSTALL_PREFIX "/usr" CACHE PATH "Location for installing the project" FORCE ) endif() if ( CMAKE_INSTALL_LIBDIR STREQUAL "" OR NOT DEFINED CMAKE_INSTALL_LIBDIR ) message( "-- CMAKE_INSTALL_LIBDIR not set. Trying pkg-config" ) pkg_get_variable( LIBDIR desq-core libdir ) set( CMAKE_INSTALL_LIBDIR ${LIBDIR} ) if ( LIBDIR STREQUAL "" OR NOT DEFINED LIBDIR ) message( "-- Unable to retrieve information from pkg-config." ) set( CMAKE_INSTALL_LIBDIR "@{CMAKE_INSTALL_PREFIX}/lib/x86_64-linux-gnu" ) message( "-- Using default value for CMAKE_INSTALL_LIBDIR: ${CMAKE_INSTALL_LIBDIR}" ) else() message( "-- CMAKE_INSTALL_LIBDIR set to: ${CMAKE_INSTALL_LIBDIR}" ) endif() endif() cmake_policy( SET CMP0071 NEW ) set( CMAKE_AUTOMOC ON ) set( CMAKE_AUTORCC ON ) set( CMAKE_AUTOUIC ON ) find_package( Qt5Widgets REQUIRED ) find_package( Qt5Core REQUIRED ) find_package( Qt5Gui REQUIRED ) find_package( Qt5DBus REQUIRED ) find_package( Qt5Network REQUIRED ) find_package(ECM REQUIRED) set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_FIND_MODULE_DIR} ) find_package( WaylandScanner REQUIRED ) find_package( Wayland 1.18 COMPONENTS Client ) pkg_check_modules( DESQ_CORE REQUIRED desq-core ) ECM_ADD_WAYLAND_CLIENT_PROTOCOL( WL_PROT_SRC PROTOCOL protocols/wayland.xml BASENAME wayland ) ECM_ADD_WAYLAND_CLIENT_PROTOCOL( WL_PROT_SRC PROTOCOL protocols/xdg-shell.xml BASENAME xdg-shell ) ECM_ADD_WAYLAND_CLIENT_PROTOCOL( WL_PROT_SRC PROTOCOL protocols/wayfire-shell-unstable-v2.xml BASENAME wayfire-shell-unstable-v2 ) ECM_ADD_WAYLAND_CLIENT_PROTOCOL( WL_PROT_SRC PROTOCOL protocols/wlr-layer-shell-unstable-v1.xml BASENAME wlr-layer-shell-unstable-v1 ) ECM_ADD_WAYLAND_CLIENT_PROTOCOL( WL_PROT_SRC PROTOCOL protocols/wlr-foreign-toplevel-management-unstable-v1.xml BASENAME wlr-foreign-toplevel-management-unstable-v1 ) ECM_ADD_WAYLAND_CLIENT_PROTOCOL( WL_PROT_SRC PROTOCOL protocols/wlr-input-inhibitor-unstable-v1.xml BASENAME wlr-input-inhibit-unstable-v1 ) # ECM_ADD_WAYLAND_CLIENT_PROTOCOL( # WL_PROT_SRC # PROTOCOL protocols/idle.xml # BASENAME idle # ) include_directories( ${DESQ_CORE_INCLUDE_DIRS} application ) set( HDRS application/WaylandApplication.hpp InputInhibition.hpp LayerShell.hpp Registry.hpp WayfireShell.hpp WindowManager.hpp WlGlobal.hpp ) set( SRCS application/WaylandApplication.cpp InputInhibition.cpp LayerShell.cpp Registry.cpp WayfireShell.cpp WindowManager.cpp WlGlobal.cpp ) add_library( desqwl SHARED ${SRCS} ${HDRS} ${IMPL} ${WL_PROT_SRC} ) set_target_properties( desqwl PROPERTIES VERSION ${PROJECT_VERSION} ) set_target_properties( desqwl PROPERTIES SOVERSION ${PROJECT_VERSION} ) set_target_properties( desqwl PROPERTIES SOVERSION ${PROJECT_VERSION_MAJOR_MINOR} ) set_target_properties( desqwl PROPERTIES SOVERSION ${PROJECT_VERSION_MAJOR} ) target_link_libraries( desqwl Qt5::Core Qt5::Gui Qt5::GuiPrivate Qt5::Widgets Qt5::Network Wayland::Client ${DESQ_CORE_LIBRARIES} ) configure_file( desqwl.pc.in desqwl.pc @ONLY ) install( TARGETS desqwl EXPORT LIBRARY ) install( FILES ${HDRS} DESTINATION include/desqwl/ ) install( FILES ${CMAKE_CURRENT_BINARY_DIR}/desqwl.pc DESTINATION share/pkgconfig )