[breeze-gtk] /: Properly install GTK+ theme depending on version

Luca Beltrame lbeltrame at kde.org
Sun Jun 5 13:51:17 UTC 2016


Git commit 93eb6e6ebcb825cd7b740069f02bc6ea3995aa19 by Luca Beltrame.
Committed on 05/06/2016 at 13:46.
Pushed by lbeltrame into branch 'master'.

Properly install GTK+ theme depending on version

Currently, even if the theme was updated, CMakeLists.txt would still
pick data from an old "gtk-3.0" directory, instead of the newer
"gtk-3.18" (for GTK+ <= 3.18) or "gtk-3.20" (for GTK+ 3.20 or newer).

This patch fixes it by setting a runtime option ("-DWITH_GTK3_VERSION")
which is set to 3.18 as default (same behavior as before). If one sets
-DWITH_GTK3_VERSION=3.20 or anything higher, CMake will install the
GTK+ 3.20 version.

Thus, (fellow) packagers, bear this in mind: the next version of Plasma
(5.7) will require -DGTK3_VERSION=3.20 added to your CMake setup command
if you use GTK+ 3.20, otherwise, nothing will be needed.

Both Breeze and Breeze-Dark have been adjusted for this.

This was done as opposed to having a version check to not require the
GTK+3 development package just to check the version.

CCMAIL: plasma-devel at kde.org
CCMAIL: kde-distro-packagers at kde.org

M  +6    -2    Breeze-dark-gtk/CMakeLists.txt
M  +6    -2    Breeze-gtk/CMakeLists.txt
M  +3    -0    CMakeLists.txt

http://commits.kde.org/breeze-gtk/93eb6e6ebcb825cd7b740069f02bc6ea3995aa19

diff --git a/Breeze-dark-gtk/CMakeLists.txt b/Breeze-dark-gtk/CMakeLists.txt
index 45aa2c6..fb99f60 100644
--- a/Breeze-dark-gtk/CMakeLists.txt
+++ b/Breeze-dark-gtk/CMakeLists.txt
@@ -1,4 +1,8 @@
 install(DIRECTORY gtk-2.0 DESTINATION ${KDE_INSTALL_FULL_DATAROOTDIR}/themes/Breeze-Dark
     ${directory_EXCLUDES})
-install(DIRECTORY gtk-3.0 DESTINATION ${KDE_INSTALL_FULL_DATAROOTDIR}/themes/Breeze-Dark
-    ${directory_EXCLUDES})
+
+if (WITH_GTK3_VERSION VERSION_LESS "3.20")
+install(FILES gtk-3.18/gtk.css DESTINATION ${KDE_INSTALL_FULL_DATAROOTDIR}/themes/Breeze-Dark/gtk-3.0/)
+else()
+install(FILES gtk-3.20/gtk.css DESTINATION ${KDE_INSTALL_FULL_DATAROOTDIR}/themes/Breeze-Dark/gtk-3.0/)
+endif()
diff --git a/Breeze-gtk/CMakeLists.txt b/Breeze-gtk/CMakeLists.txt
index f629e15..4b2e8e6 100644
--- a/Breeze-gtk/CMakeLists.txt
+++ b/Breeze-gtk/CMakeLists.txt
@@ -1,4 +1,8 @@
 install(DIRECTORY gtk-2.0 DESTINATION ${KDE_INSTALL_FULL_DATAROOTDIR}/themes/Breeze
     ${directory_EXCLUDES})
-install(DIRECTORY gtk-3.0 DESTINATION ${KDE_INSTALL_FULL_DATAROOTDIR}/themes/Breeze
-    ${directory_EXCLUDES})
+
+if (WITH_GTK3_VERSION VERSION_LESS "3.20")
+install(FILES gtk-3.18/gtk.css DESTINATION ${KDE_INSTALL_FULL_DATAROOTDIR}/themes/Breeze/gtk-3.0/)
+else()
+install(FILES gtk-3.20/gtk.css DESTINATION ${KDE_INSTALL_FULL_DATAROOTDIR}/themes/Breeze/gtk-3.0/)
+endif()
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b38e4c9..c5abafe 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -7,6 +7,9 @@ cmake_minimum_required(VERSION 2.8.12)
 find_package(ECM 0.0.9 REQUIRED NO_MODULE)
 include(FeatureSummary)
 
+set(WITH_GTK3_VERSION 3.18 CACHE STRING
+    "Use the theme for the specified GTK+3 version (default: 3.18)")
+
 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR} "${CMAKE_SOURCE_DIR}/cmake")
 include(KDEInstallDirs)
 


More information about the Plasma-devel mailing list