Warning, /plasma/lancelot/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 cmake_minimum_required (VERSION 3.11)
0002 
0003 project (lancelot)
0004 
0005 set (PROJECT_VERSION "0.1")
0006 set (PROJECT_VERSION_MAJOR 0)
0007 
0008 set (CMAKE_CXX_STANDARD 17)
0009 add_definitions (-fexceptions -pthread -Werror=unused-result)
0010 
0011 
0012 
0013 if ("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
0014     message (FATAL_ERROR "This project requires an out of source build")
0015 endif ()
0016 
0017 
0018 # There is no using CMake without Extra CMake Modules
0019 
0020 include (FeatureSummary)
0021 find_package (ECM 5.46 NO_MODULE)
0022 
0023 set_package_properties (
0024     ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules."
0025     URL "https://projects.kde.org/projects/kdesupport/extra-cmake-modules"
0026     )
0027 feature_summary (WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES)
0028 
0029 
0030 
0031 # Where to search for the custom CMake modules
0032 
0033 set (
0034     CMAKE_MODULE_PATH
0035     ${CMAKE_MODULE_PATH}
0036     ${ECM_MODULE_PATH}
0037     "${CMAKE_SOURCE_DIR}/cmake/modules"
0038     )
0039 
0040 include (KDEInstallDirs)
0041 include (KDECMakeSettings)
0042 
0043 
0044 # TODO: Move deps to subfolders where they are actually needed
0045 
0046 # Qt and KF5 are needed for the UI
0047 
0048 set (REQUIRED_QT_VERSION 5.10.0)
0049 find_package (
0050     Qt5 REQUIRED
0051     COMPONENTS Gui Qml Quick
0052     )
0053 set (CMAKE_AUTOMOC ON)
0054 
0055 find_package (
0056     KF5 REQUIRED
0057     COMPONENTS Service I18n Baloo Activities Config CoreAddons
0058     )
0059 add_definitions(-DQT_NO_KEYWORDS)
0060 
0061 
0062 # Boost ASIO is needed for the reactive streams event processing
0063 
0064 find_package (
0065     Boost 1.67 REQUIRED
0066     COMPONENTS system filesystem regex thread # asio and process are header-only
0067     )
0068 include_directories (${Boost_INCLUDE_DIR})
0069 
0070 
0071 
0072 # Boost ASIO + ZMQ for the transport
0073 
0074 find_package (
0075     ZMQ REQUIRED
0076     )
0077 set_package_properties (
0078     ZMQ PROPERTIES TYPE REQUIRED DESCRIPTION "ZeroMQ is a high-performance asynchronous messaging library"
0079     URL "http://zeromq.org/"
0080     )
0081 include_directories (${ZMQ_INCLUDE_DIR} "3rdparty/azmq/")
0082 
0083 
0084 
0085 # Capn Proto is used for message serialization
0086 
0087 find_package (
0088     CapnProto REQUIRED
0089     )
0090 set_package_properties (
0091     CapnProto PROPERTIES TYPE REQUIRED DESCRIPTION "Cap'n Proto - efficient data interchange format"
0092     URL "https://capnproto.org/"
0093     )
0094 include_directories (${CAPNP_INCLUDE_DIR})
0095 
0096 # Sources
0097 
0098 add_subdirectory (src)
0099 
0100