Warning, /frameworks/kauth/src/ConfigureChecks.cmake is written in an unsupported language. File is not indexed.
0001 ####### checks for kdecore/kauth ############### 0002 0003 set(KAUTH_BACKEND_NAME "" CACHE STRING "Specifies the KAuth backend to build. Current available options are 0004 PolkitQt6-1, Fake, OSX. Not setting this variable will build the most 0005 appropriate backend for your system") 0006 0007 # Case-insensitive 0008 string(TOUPPER "${KAUTH_BACKEND_NAME}" KAUTH_BACKEND_NAME) 0009 0010 set(KAUTH_BACKEND ${KAUTH_BACKEND_NAME}) 0011 0012 set(POLKITQT_MIN_VERSION 0.112.0 PARENT_SCOPE) 0013 0014 ## Check if the user did not specify a backend to be built. If that is the case, 0015 ## we check what is the best backend to build on this system. 0016 if(NOT KAUTH_BACKEND) 0017 # Look for the most appropriate backend 0018 message(STATUS "No backend for KAuth was explicitly specified: probing system to find the best one available") 0019 if(APPLE) 0020 set(KAUTH_BACKEND "OSX") 0021 elseif(UNIX) 0022 find_package(PolkitQt6-1 ${POLKITQT_MIN_VERSION}) 0023 0024 if(PolkitQt6-1_FOUND) 0025 set(KAUTH_BACKEND "POLKITQT6-1") 0026 0027 set_package_properties(PolkitQt6-1 PROPERTIES 0028 URL "http://techbase.kde.org/Polkit-Qt-1" 0029 DESCRIPTION "PolicyKit API for Qt" 0030 TYPE RECOMMENDED 0031 PURPOSE "Support for executing privileged actions in a controlled way (KAuth)" 0032 ) 0033 0034 find_package(KF6WindowSystem ${KF_DEP_VERSION} REQUIRED) 0035 else() 0036 set(KAUTH_BACKEND "FAKE") 0037 endif() 0038 else() 0039 set(KAUTH_BACKEND "FAKE") 0040 endif() 0041 0042 elseif(KAUTH_BACKEND AND NOT KAUTH_BUILD_CODEGENERATOR_ONLY) 0043 # Check if the specified backend is valid. If it is not, we fall back to the FAKE one 0044 if(NOT KAUTH_BACKEND STREQUAL "OSX" 0045 AND NOT KAUTH_BACKEND STREQUAL "POLKITQT6-1" 0046 AND NOT KAUTH_BACKEND STREQUAL "FAKE") 0047 message("WARNING: The KAuth Backend ${KAUTH_BACKEND} you specified does not exist. Falling back to Fake backend") 0048 set(KAUTH_BACKEND "FAKE") 0049 endif() 0050 0051 # Check requirements for each backend. If not, fall back to the fake one 0052 if(KAUTH_BACKEND STREQUAL "OSX" AND NOT APPLE) 0053 message("WARNING: You chose the OSX KAuth backend but your system does not support it. Falling back to Fake backend") 0054 set(KAUTH_BACKEND "FAKE") 0055 endif() 0056 0057 if(KAUTH_BACKEND STREQUAL "POLKITQT6-1") 0058 find_package(PolkitQt6-1 ${POLKITQT_MIN_VERSION}) 0059 set_package_properties(PolkitQt6-1 PROPERTIES 0060 URL "http://techbase.kde.org/Polkit-Qt-1" 0061 DESCRIPTION "PolicyKit API for Qt" 0062 TYPE RECOMMENDED 0063 PURPOSE "Support for executing privileged actions in a controlled way (KAuth). This is required to make KAuth work, and hence enable certain workspace functionalities" 0064 ) 0065 0066 if(NOT PolkitQt6-1_FOUND) 0067 message("WARNING: You chose the PolkitQt6-1 KAuth backend but you don't have PolkitQt6-1 installed. 0068 Falling back to Fake backend") 0069 set(KAUTH_BACKEND "FAKE") 0070 else() 0071 find_package(KF6WindowSystem ${KF_DEP_VERSION} REQUIRED) 0072 endif() 0073 endif() 0074 endif() 0075 0076 set(KAUTH_BACKEND_NAME ${KAUTH_BACKEND} CACHE STRING "Specifies the KAuth backend to build. Current available options are 0077 PolkitQt6-1, Fake, OSX. Not setting this variable will build the most 0078 appropriate backend for your system" FORCE) 0079 0080 # Add the correct libraries depending on the backend, and eventually set the policy files install location 0081 if(KAUTH_BACKEND_NAME STREQUAL "OSX") 0082 find_library(CORE_FOUNDATION_LIBRARY CoreFoundation) 0083 find_library(SECURITY_LIBRARY Security) 0084 0085 message(STATUS "Building OSX KAuth backend") 0086 0087 set(KAUTH_BACKEND_SRCS 0088 backends/mac/AuthServicesBackend.cpp 0089 ) 0090 0091 set(KAUTH_BACKEND_LIBS ${SECURITY_LIBRARY} Qt6::Core KF6::AuthCore) 0092 elseif(KAUTH_BACKEND_NAME STREQUAL "POLKITQT6-1") 0093 message(STATUS "Building PolkitQt6-1 KAuth backend") 0094 0095 include_directories(SYSTEM ${POLKITQT-1_INCLUDE_DIR}) 0096 0097 set(KAUTH_BACKEND_SRCS 0098 backends/polkit-1/Polkit1Backend.cpp 0099 ) 0100 0101 set(KAUTH_BACKEND_LIBS ${POLKITQT-1_CORE_LIBRARY} Qt6::DBus Qt6::Gui KF6::AuthCore KF6::WindowSystem) 0102 0103 # POLKITQT-1_POLICY_FILES_INSTALL_DIR has an absolute pathname, fix that. 0104 if(PolkitQt6-1_FOUND) 0105 string(REPLACE ${POLKITQT-1_INSTALL_DIR} 0106 ${CMAKE_INSTALL_PREFIX} _KAUTH_POLICY_FILES_INSTALL_DIR 0107 ${POLKITQT-1_POLICY_FILES_INSTALL_DIR}) 0108 endif() 0109 0110 set(KAUTH_POLICY_FILES_INSTALL_DIR ${_KAUTH_POLICY_FILES_INSTALL_DIR} CACHE STRING 0111 "Where policy files generated by KAuth will be installed" FORCE) 0112 elseif(KAUTH_BACKEND_NAME STREQUAL "FAKE") 0113 set(KAUTH_COMPILING_FAKE_BACKEND TRUE) 0114 0115 message(STATUS "Building Fake KAuth backend") 0116 message("WARNING: No valid KAuth backends will be built. The library will not work properly unless compiled with 0117 a working backend") 0118 endif() 0119 0120 # KAuth policy generator executable source probing 0121 set(KAUTH_POLICY_GEN_SRCS 0122 policy-gen/policy-gen.cpp) 0123 set(KAUTH_POLICY_GEN_LIBRARIES) 0124 0125 if(KAUTH_BACKEND_NAME STREQUAL "OSX") 0126 set(KAUTH_POLICY_GEN_SRCS ${KAUTH_POLICY_GEN_SRCS} 0127 backends/mac/kauth-policy-gen-mac.cpp) 0128 set(KAUTH_POLICY_GEN_LIBRARIES ${KAUTH_POLICY_GEN_LIBRARIES} ${CORE_FOUNDATION_LIBRARY} ${SECURITY_LIBRARY} Qt6::Core) 0129 elseif(KAUTH_BACKEND_NAME STREQUAL "POLKITQT6-1") 0130 set(KAUTH_POLICY_GEN_SRCS ${KAUTH_POLICY_GEN_SRCS} 0131 backends/polkit-1/kauth-policy-gen-polkit1.cpp) 0132 set(KAUTH_POLICY_GEN_LIBRARIES ${KAUTH_POLICY_GEN_LIBRARIES} 0133 Qt6::Core) 0134 endif() 0135 0136 ######################## 0137 # Helper backend probing 0138 0139 set(KAUTH_HELPER_BACKEND_NAME "" CACHE STRING "Specifies the KAuth helper backend to build. Current available options are 0140 DBus, Fake. Not setting this variable will build the most appropriate backend for your system") 0141 0142 set(KAUTH_HELPER_BACKEND ${KAUTH_HELPER_BACKEND_NAME}) 0143 0144 if(NOT KAUTH_HELPER_BACKEND) 0145 # No checks needed, just set the dbus backend 0146 set(KAUTH_HELPER_BACKEND "DBus") 0147 string(TOUPPER ${KAUTH_HELPER_BACKEND} KAUTH_HELPER_BACKEND_UPPER) 0148 set(KAUTH_HELPER_BACKEND ${KAUTH_HELPER_BACKEND_UPPER}) 0149 else() 0150 # No checks needed here either 0151 string(TOUPPER ${KAUTH_HELPER_BACKEND} KAUTH_HELPER_BACKEND_UPPER) 0152 set(KAUTH_HELPER_BACKEND ${KAUTH_HELPER_BACKEND_UPPER}) 0153 endif() 0154 0155 set(KAUTH_HELPER_BACKEND_NAME ${KAUTH_HELPER_BACKEND} CACHE STRING "Specifies the KAuth helper backend to build. Current 0156 available options are DBus, Fake. Not setting this variable will 0157 build the most appropriate backend for your system" FORCE) 0158 0159 # Add the correct libraries/files depending on the backend 0160 if(KAUTH_HELPER_BACKEND_NAME STREQUAL "DBUS") 0161 qt_add_dbus_adaptor(kauth_dbus_adaptor_SRCS 0162 backends/dbus/org.kde.kf6auth.xml 0163 backends/dbus/DBusHelperProxy.h 0164 KAuth::DBusHelperProxy) 0165 0166 set(KAUTH_HELPER_BACKEND_SRCS 0167 backends/dbus/DBusHelperProxy.cpp 0168 ${kauth_dbus_adaptor_SRCS} 0169 ) 0170 0171 set(KAUTH_HELPER_BACKEND_LIBS Qt6::DBus KF6::AuthCore) 0172 0173 # Install some files as well 0174 install(FILES backends/dbus/org.kde.kf6auth.conf 0175 DESTINATION ${KDE_INSTALL_DBUSDIR}/system.d) 0176 0177 install(FILES backends/dbus/dbus_policy.stub 0178 backends/dbus/dbus_service.stub 0179 DESTINATION ${KDE_INSTALL_DATADIR_KF}/kauth COMPONENT Devel) 0180 elseif(KAUTH_HELPER_BACKEND_NAME STREQUAL "FAKE") 0181 message("WARNING: No valid KAuth helper backends will be built. The library will not work properly unless compiled with 0182 a working backend") 0183 endif() 0184 0185 # Set directories for plugins 0186 if(NOT WIN32) 0187 0188 # ### 0189 # WARNING Copied from KDE4Internal. Decide whether this should be fixed in 0190 # CMake or in ECM: 0191 # ### 0192 0193 # This macro implements some very special logic how to deal with the cache. 0194 # By default the various install locations inherit their value from their "parent" variable 0195 # so if you set CMAKE_INSTALL_PREFIX, then EXEC_INSTALL_PREFIX, PLUGIN_INSTALL_DIR will 0196 # calculate their value by appending subdirs to CMAKE_INSTALL_PREFIX . 0197 # This would work completely without using the cache. 0198 # But if somebody wants e.g. a different EXEC_INSTALL_PREFIX this value has to go into 0199 # the cache, otherwise it will be forgotten on the next cmake run. 0200 # Once a variable is in the cache, it doesn't depend on its "parent" variables 0201 # anymore and you can only change it by editing it directly. 0202 # this macro helps in this regard, because as long as you don't set one of the 0203 # variables explicitly to some location, it will always calculate its value from its 0204 # parents. So modifying CMAKE_INSTALL_PREFIX later on will have the desired effect. 0205 # But once you decide to set e.g. EXEC_INSTALL_PREFIX to some special location 0206 # this will go into the cache and it will no longer depend on CMAKE_INSTALL_PREFIX. 0207 # 0208 # additionally if installing to the same location as kdelibs, the other install 0209 # directories are reused from the installed kdelibs 0210 macro(_SET_FANCY _var _value _comment) 0211 set(predefinedvalue "${_value}") 0212 if(NOT DEFINED ${_var}) 0213 set(${_var} ${predefinedvalue}) 0214 else() 0215 set(${_var} "${${_var}}" CACHE PATH "${_comment}") 0216 endif() 0217 endmacro() 0218 _set_fancy(KAUTH_HELPER_PLUGIN_DIR "kf6/kauth/helper" "Where KAuth's helper plugin will be installed") 0219 _set_fancy(KAUTH_BACKEND_PLUGIN_DIR "kf6/kauth/backend" "Where KAuth's backend plugin will be installed") 0220 #set(KAUTH_OTHER_PLUGIN_DIR "${QT_PLUGINS_DIR}/kauth/plugins") 0221 else() 0222 set(KAUTH_HELPER_PLUGIN_DIR "kf6/kauth/helper") 0223 set(KAUTH_BACKEND_PLUGIN_DIR "kf6/kauth/backend") 0224 endif() 0225 0226 ## End