Warning, /system/qtcurve/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 ## Setup 0002 cmake_minimum_required(VERSION 3.0 FATAL_ERROR) 0003 0004 project(QtCurve) 0005 0006 include(FeatureSummary) 0007 0008 ## Temporary 0009 function(translate_add_sources) 0010 endfunction() 0011 0012 set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" 0013 "${CMAKE_CURRENT_SOURCE_DIR}/cmake") 0014 0015 include(CMakeCMacros) 0016 0017 ## Version 0018 set(QTCURVE_VERSION_MAJOR "1") 0019 set(QTCURVE_VERSION_MINOR "9") 0020 set(QTCURVE_VERSION_PATCH "0-rc1") 0021 set(QTCURVE_VERSION "${QTCURVE_VERSION_MAJOR}.${QTCURVE_VERSION_MINOR}") 0022 set(QTCURVE_VERSION_FULL "${QTCURVE_VERSION}.${QTCURVE_VERSION_PATCH}") 0023 0024 find_package(Git QUIET) 0025 add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/version.cpp" 0026 DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/tools/gen-version.sh" 0027 WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}") 0028 add_custom_target(gen-git-ver ALL 0029 COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/tools/gen-version.sh" 0030 "${CMAKE_CURRENT_BINARY_DIR}/version.cpp" "${QTCURVE_VERSION_FULL}" 0031 "${GIT_EXECUTABLE}" 0032 DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/version.cpp") 0033 0034 ## Options 0035 function(qtc_option name doc def_val) 0036 if(DEFINED "${name}") 0037 set("${name}_DEFINED" On PARENT_SCOPE) 0038 else() 0039 set("${name}_DEFINED" Off PARENT_SCOPE) 0040 set("${name}" "${def_val}" PARENT_SCOPE) 0041 endif() 0042 endfunction() 0043 qtc_option(ENABLE_QT4 "Building Qt4 theme." On) 0044 qtc_option(ENABLE_QT5 "Building Qt5 theme." On) 0045 qtc_option(ENABLE_GTK2 "Building Gtk2 theme." On) 0046 # option(ENABLE_GTK3 "Building Gtk3 theme." On) 0047 option(BUILD_TESTING "Enable testing." On) 0048 option(QTC_ENABLE_X11 "Enable X11" On) 0049 option(QTC_INSTALL_PO "Install translation files." On) 0050 0051 if(ENABLE_QT4) 0052 qtc_option(QTC_QT4_ENABLE_KDE "Building Qt4 style with KDE4 support." On) 0053 else() 0054 qtc_option(QTC_QT4_ENABLE_KDE "Building Qt4 style with KDE4 support." Off) 0055 endif() 0056 if(ENABLE_QT5) 0057 qtc_option(QTC_QT5_ENABLE_KDE 0058 "Building Qt5 style with KDE Frameworks 5 support." On) 0059 else() 0060 qtc_option(QTC_QT5_ENABLE_KDE 0061 "Building Qt5 style with KDE Frameworks 5 support." Off) 0062 endif() 0063 0064 option(QTC_QT4_STYLE_SUPPORT 0065 "Qt4 support for creating a style for each QtCurve theme." Off) 0066 0067 ## Common settings. 0068 # support an infix argument to have different qtcurve-utils libraries, e.g. for 0069 # GTk2, Qt4 and Qt5 0070 qtc_option(QTC_UTILSLIB_INFIX "Infix for having multiple qtcurve-utils's" "") 0071 qtc_option(QTC_KDE4_DEFAULT_HOME 0072 "Path of kde4 home (relative to user home), for reading old theme files only" 0073 ".kde4") 0074 0075 if((QTC_KDE4_DEFAULT_HOME STREQUAL ".kde4") OR 0076 (QTC_KDE4_DEFAULT_HOME STREQUAL ".kde") OR 0077 (QTC_KDE4_DEFAULT_HOME STREQUAL ".kde4/") OR 0078 (QTC_KDE4_DEFAULT_HOME STREQUAL ".kde/") OR 0079 (QTC_KDE4_DEFAULT_HOME STREQUAL "")) 0080 set(QTC_KDE4_DEFAULT_HOME_DEFAULT True) 0081 else() 0082 set(QTC_KDE4_DEFAULT_HOME_DEFAULT False) 0083 endif() 0084 0085 # set compiler flags earlier to prevent potential failure running find_package(KDE4) 0086 # glibc 2.20 warns about _BSD_SOURCE if _DEFAULT_SOURCE is not defined. 0087 cmake_c_add_flags(CMAKE_C_FLAGS -Wall -Wextra -Wno-cast-align 0088 -std=gnu99 -D_DEFAULT_SOURCE) 0089 # Register storage class is deprecated in C++11 but is still used in Qt. 0090 # Use compiler option (-Wno-deprecated-register) to suppress 0091 # the warning in clang++. 0092 # We use `override` in certain Qt Classes but the QObject macro does not use it 0093 # Use compiler option (-Wno-inconsistent-missing-override) to suppress 0094 # the warning in clang++ 3.6+. 0095 cmake_c_add_flags(CMAKE_CXX_FLAGS -Wall -Wextra 0096 -Wno-deprecated-register -Wno-cast-align 0097 -Wno-inconsistent-missing-override) 0098 if(NOT APPLE) 0099 # -std=c++0x is deprecated but gcc < 4.7 do not recognise c++11 .... 0100 cmake_c_add_flags(CMAKE_CXX_FLAGS -std=c++0x -D_DEFAULT_SOURCE) 0101 cmake_c_add_flags(CMAKE_SHARED_LINKER_FLAGS -Wl,--as-needed -Wl,--no-undefined) 0102 cmake_c_add_flags(CMAKE_MODULE_LINKER_FLAGS -Wl,--as-needed -Wl,--no-undefined) 0103 else() 0104 cmake_c_add_flags(CMAKE_CXX_FLAGS -std=c++11) 0105 endif() 0106 0107 if(QTC_QT4_ENABLE_KDE) 0108 find_package(KDE4 QUIET) 0109 set(KDE4_KDECONFIG_EXECUTABLE) 0110 find_program(KDE4_KDECONFIG_EXECUTABLE NAMES kde4-config 0111 PATHS "${CMAKE_INSTALL_PREFIX}/bin" ${_KDEDIRS} /opt/kde4/bin 0112 NO_DEFAULT_PATH) 0113 if(NOT KDE4_KDECONFIG_EXECUTABLE) 0114 find_program(KDE4_KDECONFIG_EXECUTABLE NAMES kde4-config) 0115 endif() 0116 endif() 0117 0118 function(get_cmd_var varname def cmd) 0119 if(DEFINED ${varname}) 0120 return() 0121 endif() 0122 if(cmd) 0123 execute_process(COMMAND "${cmd}" ${ARGN} OUTPUT_VARIABLE _cmd_out 0124 RESULT_VARIABLE _cmd_res) 0125 if("${_cmd_res}" EQUAL 0) 0126 string(STRIP "${_cmd_out}" _cmd_out) 0127 else() 0128 set(_cmd_out "${def}") 0129 endif() 0130 else() 0131 set(_cmd_out "${def}") 0132 endif() 0133 set("${varname}" "${_cmd_out}" PARENT_SCOPE) 0134 endfunction() 0135 0136 function(get_kde_var var def) 0137 get_cmd_var(_output "${def}" "${KDE4_KDECONFIG_EXECUTABLE}" ${ARGN}) 0138 set(${var} "${_output}" PARENT_SCOPE) 0139 endfunction() 0140 0141 get_kde_var(QTC_KDE4_PREFIX "${CMAKE_INSTALL_PREFIX}" --prefix) 0142 get_kde_var(QTC_KDE4_ICONS_PREFIX "${QTC_KDE4_PREFIX}/share/icons" 0143 --install icon) 0144 0145 ## Handle options 0146 find_package(Libexecinfo) 0147 if(LIBEXECINFO_LIB_FOUND) 0148 set(QTC_ENABLE_BACKTRACE On) 0149 else() 0150 set(QTC_ENABLE_BACKTRACE Off) 0151 endif() 0152 0153 if(QTC_ENABLE_X11) 0154 macro(qtc_check_x11) 0155 find_package(PkgConfig) 0156 if(NOT PKG_CONFIG_FOUND) 0157 message(WARNING "Cannot find pkg-config, disable x11 support.") 0158 set(QTC_ENABLE_X11 Off) 0159 set(QTC_X11_FOUND Off) 0160 return() 0161 endif() 0162 unset(__pkg_config_checked_QTC_X11 CACHE) 0163 # pkg_check_modules(QTC_X11 xcb x11-xcb xrender) 0164 if(QTC_ENABLE_X11) 0165 pkg_check_modules(QTC_X11 xcb x11-xcb) 0166 else() 0167 pkg_check_modules(QTC_X11 xcb) 0168 endif() 0169 if(NOT QTC_X11_FOUND AND QTC_ENABLE_X11) 0170 message(WARNING 0171 "Cannot find required modules for x11, disable x11 support.") 0172 set(QTC_ENABLE_X11 Off) 0173 return() 0174 endif() 0175 endmacro() 0176 qtc_check_x11() 0177 else() 0178 set(QTC_X11_FOUND Off) 0179 endif() 0180 0181 if(QTC_X11_FOUND) 0182 include_directories(${QTC_X11_INCLUDE_DIRS}) 0183 add_definitions(${QTC_X11_CFLAGS}) 0184 else() 0185 include_directories(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/lib/xcb-defs") 0186 endif() 0187 0188 if(ENABLE_GTK2 AND NOT ENABLE_GTK2_DEFINED) 0189 find_package(PkgConfig) 0190 if(NOT PKG_CONFIG_FOUND) 0191 message(WARNING "pkg-config not found, disable Gtk2 build.") 0192 set(ENABLE_GTK2 Off) 0193 else() 0194 unset(__pkg_config_checked_GTK2 CACHE) 0195 pkg_check_modules(GTK2 gtk+-2.0) 0196 if(NOT GTK2_FOUND) 0197 message(WARNING "gtk+-2.0 not found, disable Gtk2 build.") 0198 set(ENABLE_GTK2 Off) 0199 endif() 0200 endif() 0201 endif() 0202 0203 if(ENABLE_GTK2) 0204 find_package(PkgConfig REQUIRED) 0205 unset(__pkg_config_checked_GTK2 CACHE) 0206 pkg_check_modules(GTK2 REQUIRED gtk+-2.0) 0207 if(GTK2_THEME_PREFIX) 0208 set(GTK2_PREFIX "${GTK2_THEME_PREFIX}") 0209 elseif(NOT GTK2_PREFIX) 0210 set(GTK2_PREFIX "${CMAKE_INSTALL_PREFIX}") 0211 endif() 0212 if(NOT GTK2_LIBDIR) 0213 set(GTK2_LIBDIR "${GTK2_PREFIX}/lib") 0214 endif() 0215 _pkgconfig_invoke(gtk+-2.0 GTK2 BIN_VERSION "" --variable=gtk_binary_version) 0216 set(GTK2_THEME_DIR ${GTK2_PREFIX}/share/themes/QtCurve) 0217 endif() 0218 0219 configure_file(config.h.in config.h @ONLY) 0220 0221 include_directories("${CMAKE_CURRENT_BINARY_DIR}") 0222 cmake_c_fix_include_path(lib/utils qtcurve-utils) 0223 cmake_c_fix_include_path(lib/cairo qtcurve-cairo) 0224 add_definitions("-D_GNU_SOURCE -pthread") 0225 0226 if(NOT DEFINED LIB_INSTALL_DIR) 0227 set(LIB_INSTALL_DIR lib) 0228 endif() 0229 0230 cmake_c_include_fix_path() 0231 if(ENABLE_QT4 OR ENABLE_QT5 OR ENABLE_GTK2) 0232 add_subdirectory(lib) 0233 add_subdirectory(tools) 0234 endif() 0235 if(ENABLE_QT4) 0236 add_subdirectory(qt4) 0237 endif() 0238 if(ENABLE_QT5) 0239 add_subdirectory(qt5) 0240 endif() 0241 if(ENABLE_GTK2) 0242 add_subdirectory(gtk2) 0243 endif() 0244 if(BUILD_TESTING) 0245 enable_testing() 0246 add_subdirectory(test) 0247 endif() 0248 0249 if(QTC_INSTALL_PO) 0250 find_package(ECM 1.2.0 REQUIRED NO_MODULE) 0251 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH}) 0252 0253 find_package(KF5 REQUIRED COMPONENTS 0254 I18n) 0255 ki18n_install(po) 0256 endif() 0257 feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)