Warning, /plasma/oxygen-gtk/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 project( oxygen-gtk ) 0002 0003 cmake_minimum_required(VERSION 3.16) 0004 0005 ########################### 0006 # Define package generation 0007 ########################### 0008 0009 set( CPACK_PACKAGE_NAME "oxygen-gtk2" ) 0010 set( CPACK_SOURCE_PACKAGE_NAME "oxygen-gtk2" ) 0011 set( CPACK_SOURCE_GENERATOR TBZ2 ) 0012 set( CPACK_PACKAGE_DESCRIPTION_SUMMARY "Oxygen Gtk2 theme" ) 0013 set( CPACK_PACKAGE_VENDOR "hugo.pereira@free.fr" ) 0014 set( CPACK_PACKAGE_VERSION_MAJOR "1" ) 0015 set( CPACK_PACKAGE_VERSION_MINOR "4" ) 0016 set( CPACK_PACKAGE_VERSION_PATCH "50" ) 0017 set( CPACK_SOURCE_IGNORE_FILES "build" "^${PROJECT_SOURCE_DIR}.*/.git/" ) 0018 0019 ################################## 0020 # Define oxygen-gtk version string 0021 ################################## 0022 if( EXISTS "${CMAKE_SOURCE_DIR}/.git" ) 0023 execute_process(COMMAND sh -c "cd ${CMAKE_SOURCE_DIR} && git describe 2>/dev/null" 0024 OUTPUT_VARIABLE OXYGEN_VERSION 0025 OUTPUT_STRIP_TRAILING_WHITESPACE) 0026 endif( EXISTS "${CMAKE_SOURCE_DIR}/.git" ) 0027 STRING(COMPARE NOTEQUAL "${OXYGEN_VERSION}" "" OXYGEN_VERSION_DETECTED ) 0028 if( NOT OXYGEN_VERSION_DETECTED ) 0029 set( OXYGEN_VERSION ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH} ) 0030 endif( NOT OXYGEN_VERSION_DETECTED ) 0031 message( "Detected oxygen version string: ${OXYGEN_VERSION}" ) 0032 0033 set( CPACK_SOURCE_PACKAGE_FILE_NAME "oxygen-gtk2-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}" ) 0034 include( CPack ) 0035 ######################## 0036 # Package specific flags 0037 ######################## 0038 0039 option(ENABLE_DEMO "Build the demo." ON) 0040 0041 # Set to 1 to enable debugging information 0042 if( NOT DEFINED OXYGEN_DEBUG ) 0043 set( OXYGEN_DEBUG 0 ) 0044 endif( NOT DEFINED OXYGEN_DEBUG ) 0045 0046 # Set to 1 to disable all signal hooks used for various features 0047 if( NOT DEFINED DISABLE_SIGNAL_HOOKS ) 0048 set( DISABLE_SIGNAL_HOOKS 0 ) 0049 endif( NOT DEFINED DISABLE_SIGNAL_HOOKS ) 0050 0051 # Set to 1 to enable debug logs regarding inner shadows 0052 if( NOT DEFINED OXYGEN_DEBUG_INNERSHADOWS ) 0053 set( OXYGEN_DEBUG_INNERSHADOWS 0 ) 0054 endif( NOT DEFINED OXYGEN_DEBUG_INNERSHADOWS ) 0055 0056 # Set to 1 to build windeco test app (normal users rarely need this) 0057 if( NOT DEFINED BUILD_DECO_TEST ) 0058 set( BUILD_DECO_TEST 0 ) 0059 endif( NOT DEFINED BUILD_DECO_TEST ) 0060 0061 # Set to 1 to replace gtk stock icons 0062 # with oxygen-icons 0063 if( NOT DEFINED OXYGEN_ICON_HACK ) 0064 set( OXYGEN_ICON_HACK 1 ) 0065 endif( NOT DEFINED OXYGEN_ICON_HACK ) 0066 0067 # Set to 1 to force KDE icons and fonts when running in non-KDE 0068 if( NOT DEFINED OXYGEN_FORCE_KDE_ICONS_AND_FONTS ) 0069 set( OXYGEN_FORCE_KDE_ICONS_AND_FONTS 1 ) 0070 endif( NOT DEFINED OXYGEN_FORCE_KDE_ICONS_AND_FONTS ) 0071 0072 # Set to 1 to resize combobox list to compensate for combobox button glow width 0073 # (may result in flicker on combo popup) 0074 if( NOT DEFINED ENABLE_COMBOBOX_LIST_RESIZE ) 0075 set( ENABLE_COMBOBOX_LIST_RESIZE 1 ) 0076 endif( NOT DEFINED ENABLE_COMBOBOX_LIST_RESIZE ) 0077 0078 # Set to 0 to disable inner shadows hack 0079 # Note this flag is automatically set to 0 if GTK version is too old (< 2.24.2) 0080 if( NOT DEFINED ENABLE_INNER_SHADOWS_HACK ) 0081 set( ENABLE_INNER_SHADOWS_HACK 1 ) 0082 endif( NOT DEFINED ENABLE_INNER_SHADOWS_HACK ) 0083 0084 # set to 0 to disable groupbox hack 0085 if( NOT DEFINED ENABLE_GROUPBOX_HACK ) 0086 set( ENABLE_GROUPBOX_HACK 1 ) 0087 endif( NOT DEFINED ENABLE_GROUPBOX_HACK ) 0088 0089 ############## 0090 # Requirements 0091 ############## 0092 0093 # install prefix 0094 include( FindPkgConfig ) 0095 if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) 0096 0097 exec_program( 0098 ${PKG_CONFIG_EXECUTABLE} 0099 ARGS --variable=prefix gtk+-2.0 0100 OUTPUT_VARIABLE GTK_PREFIX ) 0101 0102 message( "Info: using PKG_CONFIG_EXECUTABLE to set the installation prefix" ) 0103 set(CMAKE_INSTALL_PREFIX 0104 ${GTK_PREFIX} CACHE PATH "GTK install prefix" FORCE 0105 ) 0106 endif() 0107 0108 # X11 0109 find_package( X11 REQUIRED ) 0110 0111 # PKG_CONFIG 0112 find_package(PkgConfig REQUIRED ) 0113 0114 # GTK 0115 pkg_check_modules( GTK REQUIRED gtk+-2.0 ) 0116 add_definitions( ${GTK_CFLAGS_OTHER} ) 0117 0118 # Cairo 0119 pkg_check_modules( CAIRO REQUIRED cairo ) 0120 add_definitions( ${CAIRO_CFLAGS_OTHER} ) 0121 0122 ########################## 0123 # installation directories 0124 ########################## 0125 exec_program( 0126 ${PKG_CONFIG_EXECUTABLE} 0127 ARGS --variable=gtk_binary_version gtk+-2.0 0128 OUTPUT_VARIABLE GTK_BIN_VERSION ) 0129 0130 if( DEFINED LIB_SUFFIX OR NOT CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT ) 0131 0132 message( "Info: using LIB_SUFFIX to set the theme engine installation path" ) 0133 set( INSTALL_PATH_GTK_ENGINES "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/gtk-2.0/${GTK_BIN_VERSION}/engines" CACHE PATH "The directory in which to install the theme engine library( eg. /usr/lib/gtk-2.0/2.4.0/engines )" ) 0134 0135 else() 0136 0137 exec_program( 0138 ${PKG_CONFIG_EXECUTABLE} 0139 ARGS --variable=libdir gtk+-2.0 0140 OUTPUT_VARIABLE GTK_LIBDIR_PREFIX ) 0141 0142 message( "Info: using PKG_CONFIG_EXECUTABLE to set the theme engine installation path" ) 0143 set( INSTALL_PATH_GTK_ENGINES "${GTK_LIBDIR_PREFIX}/gtk-2.0/${GTK_BIN_VERSION}/engines" CACHE PATH "The directory in which to install the theme engine library( eg. /usr/lib/gtk-2.0/2.4.0/engines )" ) 0144 0145 endif() 0146 0147 set( INSTALL_PATH_GTK_THEMES "${CMAKE_INSTALL_PREFIX}/share/themes" CACHE PATH "The directory in which to install the theme data( eg. /usr/share/themes )" ) 0148 set( GTK_THEME_DIR ${INSTALL_PATH_GTK_THEMES}/oxygen-gtk ) 0149 0150 # First emit all warnings in one place 0151 # Adjust flags based on gtk version and warn user if needed 0152 if( ENABLE_INNER_SHADOWS_HACK AND GTK_VERSION VERSION_LESS 2.24.2 ) 0153 message( "Warning: disabling inner shadows hack because GTK version is too old (needed 2.24.2, found ${GTK_VERSION})" ) 0154 set( ENABLE_INNER_SHADOWS_HACK 0 ) 0155 endif( ENABLE_INNER_SHADOWS_HACK AND GTK_VERSION VERSION_LESS 2.24.2 ) 0156 0157 ######### 0158 # summary 0159 ######### 0160 message( "Flags: " ) 0161 message( " OXYGEN_DEBUG ${OXYGEN_DEBUG}" ) 0162 message( " DISABLE_SIGNAL_HOOKS ${DISABLE_SIGNAL_HOOKS}" ) 0163 message( " BUILD_DECO_TEST ${BUILD_DECO_TEST}" ) 0164 message( " OXYGEN_DEBUG_INNERSHADOWS ${OXYGEN_DEBUG_INNERSHADOWS}" ) 0165 message( " OXYGEN_ICON_HACK ${OXYGEN_ICON_HACK}" ) 0166 message( " OXYGEN_FORCE_KDE_ICONS_AND_FONTS ${OXYGEN_FORCE_KDE_ICONS_AND_FONTS}" ) 0167 message( " ENABLE_COMBOBOX_LIST_RESIZE ${ENABLE_COMBOBOX_LIST_RESIZE}" ) 0168 message( " ENABLE_INNER_SHADOWS_HACK ${ENABLE_INNER_SHADOWS_HACK}" ) 0169 message( " ENABLE_GROUPBOX_HACK ${ENABLE_GROUPBOX_HACK}" ) 0170 message( "" ) 0171 message( "Paths: " ) 0172 message( " Installing the GTK theme engine library to: ${INSTALL_PATH_GTK_ENGINES}" ) 0173 message( " Installing the GTK theme engine data to: ${GTK_THEME_DIR}" ) 0174 message( "" ) 0175 0176 ################## 0177 # uninstall target 0178 ################## 0179 configure_file( 0180 "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" 0181 "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" 0182 IMMEDIATE @ONLY) 0183 0184 add_custom_target(uninstall 0185 COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) 0186 0187 0188 ###################################################################### 0189 # Setup definitions and directories to be used for linking and include 0190 ###################################################################### 0191 link_directories( ${GTK_LIBRARY_DIRS} ${CAIRO_LIBRARY_DIRS} ) 0192 include_directories( ${GTK_INCLUDE_DIRS} ${CAIRO_INCLUDE_DIRS} ${X11_X11_INCLUDE_PATH} ) 0193 0194 ############################# 0195 # generate configuration file 0196 ############################# 0197 configure_file( config.h.cmake ${CMAKE_BINARY_DIR}/config.h ) 0198 0199 ################ 0200 # Subdirectories 0201 ################ 0202 add_subdirectory( src ) 0203 add_subdirectory( rc ) 0204 add_subdirectory( special-icons ) 0205 if( ENABLE_DEMO ) 0206 add_subdirectory( demo ) 0207 endif( ENABLE_DEMO ) 0208