Warning, /utilities/krusader/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 cmake_minimum_required(VERSION 3.16)
0002
0003 project(krusader)
0004
0005 set(VERSION "2.9.0-dev")
0006 set(RELEASE_NAME "Bleeding Edge")
0007
0008 set(MIN_QT_VERSION 5.12)
0009 set(MIN_KF_VERSION 5.68)
0010
0011
0012 # ===== Packages =====
0013
0014 find_package(ECM ${MIN_KF_VERSION} REQUIRED NO_MODULE)
0015 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
0016 set(KDE_COMPILERSETTINGS_LEVEL "5.68")
0017
0018 include(KDEInstallDirs)
0019 include(KDECMakeSettings)
0020 include(KDECompilerSettings NO_POLICY_SCOPE)
0021 include(KDEClangFormat)
0022 include(KDEGitCommitHooks)
0023
0024 include(ECMInstallIcons)
0025 include(ECMAddAppIcon)
0026
0027 include(FeatureSummary)
0028 include(CheckIncludeFiles)
0029
0030 find_package(Qt5 ${MIN_QT_VERSION} CONFIG REQUIRED
0031 Concurrent
0032 Core
0033 Gui
0034 DBus
0035 Widgets
0036 PrintSupport
0037 Xml
0038 )
0039
0040 find_package(KF5 ${MIN_KF_VERSION} REQUIRED COMPONENTS
0041 Archive
0042 Bookmarks
0043 Codecs
0044 Completion
0045 CoreAddons
0046 Config
0047 DocTools
0048 I18n
0049 IconThemes
0050 ItemViews
0051 KIO
0052 Notifications
0053 Parts
0054 Solid
0055 TextWidgets
0056 Wallet
0057 WidgetsAddons
0058 WindowSystem
0059 XmlGui
0060 GuiAddons
0061 )
0062
0063
0064 # ===== Get GIT revision =====
0065
0066 execute_process(COMMAND git log --pretty=format:%h -n 1
0067 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
0068 OUTPUT_VARIABLE GIT_REVISION
0069 ERROR_QUIET)
0070
0071 # ===== Definitions =====
0072
0073 # Synchronizer is enabled by default, unless disabled from the command line (-DENABLE_SYNCHRONIZER=OFF)
0074 option(ENABLE_SYNCHRONIZER "Enable Synchronizer" ON)
0075
0076 # If an old setting is being used, use the setting that complies with the structure of other Krusader settings.
0077 if(ENABLE_SYNCHRONIZER)
0078 set(SYNCHRONIZER_ENABLED TRUE)
0079 add_definitions(-DSYNCHRONIZER_ENABLED)
0080 else()
0081 set(SYNCHRONIZER_ENABLED FALSE)
0082 endif()
0083
0084 # For security reasons, absolute kdesu path is set at build time and is not configurable.
0085 if(NOT KDESU_PATH)
0086 if(EXISTS "${KDE_INSTALL_FULL_LIBDIR}/kf5/kdesu")
0087 # Used by Arch distribution
0088 set(KDESU_PATH "${KDE_INSTALL_FULL_LIBDIR}/kf5/kdesu")
0089 else()
0090 set(KDESU_PATH "${KDE_INSTALL_FULL_LIBEXECDIR_KF5}/kdesu")
0091 endif()
0092 endif()
0093 add_definitions(-DKDESU_PATH="${KDESU_PATH}")
0094 message(STATUS "kdesu path has been hard-coded: ${KDESU_PATH}")
0095
0096 add_definitions(${QT_DEFINITIONS} ${KF5_DEFINITIONS})
0097
0098 add_definitions(-DKRARC_ENABLED)
0099 add_definitions(-DQT_NO_URL_CAST_FROM_STRING)
0100
0101 # Enable Krarc query, since MIN_KF_VERSION >= 5.23
0102 add_definitions(-DKRARC_QUERY_ENABLED)
0103
0104
0105 # ===== Additional checks =====
0106
0107 if (NOT CMAKE_INSTALL_PREFIX MATCHES "^/usr(/local)?/?$" AND NOT DEFINED KDE_INSTALL_QTPLUGINDIR
0108 AND NOT DEFINED KDE_INSTALL_USE_QT_SYS_PATHS)
0109 message(WARNING "CMAKE_INSTALL_PREFIX is not set to a standard location (/usr or /usr/local), \
0110 krarc:/ protocol may not work. To force installing plugins into standard location \
0111 use -DKDE_INSTALL_USE_QT_SYS_PATHS=true")
0112 endif()
0113
0114
0115 # ===== ACL support =====
0116
0117 check_include_files(attr/libattr.h HAVE_ATTR_LIBATTR_H)
0118 check_include_files(sys/xattr.h HAVE_SYS_XATTR_H)
0119 check_include_files(sys/acl.h HAVE_SYS_ACL_H)
0120 check_include_files(acl/libacl.h HAVE_ACL_LIBACL_H)
0121
0122 if (HAVE_ATTR_LIBATTR_H AND HAVE_SYS_XATTR_H AND HAVE_SYS_ACL_H AND HAVE_ACL_LIBACL_H)
0123 set(ACL_HEADERS_FOUND TRUE)
0124 endif(HAVE_ATTR_LIBATTR_H AND HAVE_SYS_XATTR_H AND HAVE_SYS_ACL_H AND HAVE_ACL_LIBACL_H)
0125
0126 if (ACL_HEADERS_FOUND)
0127 find_library(ACL_LIBS NAMES acl)
0128 find_library(ATTR_LIBS NAMES attr)
0129 endif(ACL_HEADERS_FOUND)
0130
0131 if (ACL_HEADERS_FOUND AND ACL_LIBS AND ATTR_LIBS)
0132 set(ACL_FOUND TRUE)
0133 set(ACL_LIBS ${ACL_LIBS} ${ATTR_LIBS})
0134 message(STATUS "Found ACL support: ${ACL_LIBS}")
0135 add_definitions(-DHAVE_POSIX_ACL)
0136 endif(ACL_HEADERS_FOUND AND ACL_LIBS AND ATTR_LIBS)
0137
0138
0139 # ===== Compile options =====
0140
0141 if (CMAKE_COMPILER_IS_GNUCXX)
0142 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -fno-common -ansi -Wpedantic -Wconversion -Wpointer-arith \
0143 -Wcast-qual -Wcast-align -Wwrite-strings -Wsuggest-override -Wfloat-equal \
0144 -Woverloaded-virtual -Wundef -Wlogical-op -Wuninitialized -Wredundant-decls -Wnoexcept \
0145 -Wnon-virtual-dtor -Wctor-dtor-privacy -Wzero-as-null-pointer-constant" CACHE STRING "" FORCE)
0146 endif()
0147
0148
0149 # ===== Subdirectories =====
0150
0151 add_subdirectory(app)
0152 add_subdirectory(doc/handbook)
0153 add_subdirectory(plugins/iso)
0154 add_subdirectory(plugins/krarc)
0155
0156
0157 # ===== Translations =====
0158
0159 ki18n_install(po)
0160 kdoctools_install(po)
0161
0162 # ==== clang-format target and commit hook ====
0163
0164 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h)
0165 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
0166
0167 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)
0168
0169 # ===== Output configuration =====
0170
0171 feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)