granite: various cleanups
This is just stuff that's in #48637 already that I wanted to sync. In detail it's: - Patching in the use of meson - Add wrapGAppsHook and hicolor-icon-theme There's a demo application and granite provides some generic icons. - Included patches so third party apps still work
This commit is contained in:
parent
9f06d1885d
commit
ea331218a0
@ -0,0 +1,129 @@
|
||||
From 698e34dd6e8d98a1818ae00d3313b69a86340771 Mon Sep 17 00:00:00 2001
|
||||
From: Fabio Valentini <decathorpe@gmail.com>
|
||||
Date: Mon, 17 Dec 2018 14:58:14 +0100
|
||||
Subject: DateTime: include "clock-format" gsettings key here
|
||||
|
||||
---
|
||||
data/io.elementary.granite.gschema.xml | 15 +++++++++++++++
|
||||
data/meson.build | 4 ++++
|
||||
lib/DateTime.vala | 4 ++--
|
||||
meson.build | 11 +++++++++++
|
||||
meson/post_install.py | 5 +++++
|
||||
5 files changed, 37 insertions(+), 2 deletions(-)
|
||||
create mode 100644 data/io.elementary.granite.gschema.xml
|
||||
create mode 100644 data/meson.build
|
||||
|
||||
diff --git a/data/io.elementary.granite.gschema.xml b/data/io.elementary.granite.gschema.xml
|
||||
new file mode 100644
|
||||
index 0000000..1540fb0
|
||||
--- /dev/null
|
||||
+++ b/data/io.elementary.granite.gschema.xml
|
||||
@@ -0,0 +1,15 @@
|
||||
+<?xml version="1.0" encoding="UTF-8"?>
|
||||
+<schemalist>
|
||||
+ <enum id="io.elementary.granite.clock-formats">
|
||||
+ <value nick="12h" value="0" />
|
||||
+ <value nick="24h" value="1" />
|
||||
+ <value nick="ISO8601" value="2" />
|
||||
+ </enum>
|
||||
+ <schema id="io.elementary.granite" path="/io/elementary/granite/">
|
||||
+ <key name="clock-format" enum="io.elementary.granite.clock-formats">
|
||||
+ <default>"12h"</default>
|
||||
+ <summary>Whether the clock displays in 12h or 24h format</summary>
|
||||
+ <description>Whether the clock displays in 12h or 24h format</description>
|
||||
+ </key>
|
||||
+ </schema>
|
||||
+</schemalist>
|
||||
diff --git a/data/meson.build b/data/meson.build
|
||||
new file mode 100644
|
||||
index 0000000..96cc3b1
|
||||
--- /dev/null
|
||||
+++ b/data/meson.build
|
||||
@@ -0,0 +1,4 @@
|
||||
+install_data(
|
||||
+ rdnn + '.gschema.xml',
|
||||
+ install_dir: schema_dir
|
||||
+)
|
||||
diff --git a/lib/DateTime.vala b/lib/DateTime.vala
|
||||
index aea2ec6..3d81191 100644
|
||||
--- a/lib/DateTime.vala
|
||||
+++ b/lib/DateTime.vala
|
||||
@@ -104,13 +104,13 @@ namespace Granite.DateTime {
|
||||
}
|
||||
|
||||
/**
|
||||
- * Gets the //clock-format// key from //org.gnome.desktop.interface// schema
|
||||
+ * Gets the //clock-format// key from //io.elementary.granite// schema
|
||||
* and determines if the clock format is 12h based
|
||||
*
|
||||
* @return true if the clock format is 12h based, false otherwise.
|
||||
*/
|
||||
private static bool is_clock_format_12h () {
|
||||
- var h24_settings = new Settings ("io.elementary.desktop.wingpanel.datetime");
|
||||
+ var h24_settings = new Settings ("io.elementary.granite");
|
||||
var format = h24_settings.get_string ("clock-format");
|
||||
return (format.contains ("12h"));
|
||||
}
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 8b98eeb..f0abcdf 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -4,6 +4,8 @@ project(
|
||||
version: '5.2.2'
|
||||
)
|
||||
|
||||
+rdnn = 'io.elementary.' + meson.project_name()
|
||||
+
|
||||
if meson.get_compiler('vala').version().version_compare('<0.40.0')
|
||||
error('vala compiler version 0.40.0 or newer is required.')
|
||||
endif
|
||||
@@ -52,10 +54,18 @@ icons_dir = join_paths(
|
||||
'hicolor'
|
||||
)
|
||||
|
||||
+schema_dir = join_paths(
|
||||
+ get_option('prefix'),
|
||||
+ get_option('datadir'),
|
||||
+ 'glib-2.0',
|
||||
+ 'schemas'
|
||||
+)
|
||||
+
|
||||
pkgconfig = import('pkgconfig')
|
||||
i18n = import('i18n')
|
||||
|
||||
subdir('lib')
|
||||
+subdir('data')
|
||||
subdir('demo')
|
||||
subdir('icons')
|
||||
subdir('po')
|
||||
@@ -68,5 +78,6 @@ endif
|
||||
meson.add_install_script(
|
||||
join_paths(meson.current_source_dir(), 'meson', 'post_install.py'),
|
||||
'--iconsdir', icons_dir,
|
||||
+ '--schemadir', schema_dir,
|
||||
)
|
||||
|
||||
diff --git a/meson/post_install.py b/meson/post_install.py
|
||||
index 1864515..5313f96 100755
|
||||
--- a/meson/post_install.py
|
||||
+++ b/meson/post_install.py
|
||||
@@ -6,11 +6,16 @@ import subprocess
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("--iconsdir", action="store", required=True)
|
||||
+parser.add_argument("--schemadir", action="store", required=True)
|
||||
args = vars(parser.parse_args())
|
||||
|
||||
icons_dir = args["iconsdir"]
|
||||
+schema_dir = args["schemadir"]
|
||||
|
||||
if not os.environ.get('DESTDIR'):
|
||||
print('Compiling icon cache ...')
|
||||
subprocess.run(['gtk-update-icon-cache', icons_dir])
|
||||
|
||||
+ print('Compiling GSettings schemas ...')
|
||||
+ subprocess.run(['glib-compile-schemas', schema_dir])
|
||||
+
|
||||
--
|
||||
2.20.1
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, ninja, vala_0_40, pkgconfig, gobject-introspection, gnome3, gtk3, glib, gettext }:
|
||||
{ stdenv, fetchFromGitHub, fetchpatch, python3, meson, ninja, vala_0_40, pkgconfig, gobject-introspection, gnome3, gtk3, glib, gettext, hicolor-icon-theme, wrapGAppsHook }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "granite";
|
||||
@ -11,26 +11,44 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "1zp0pp5v3j8k6ail724p7h5jj2zmznj0a2ybwfw5sspfdw5bfydh";
|
||||
};
|
||||
|
||||
cmakeFlags = [
|
||||
"-DINTROSPECTION_GIRDIR=share/gir-1.0/"
|
||||
"-DINTROSPECTION_TYPELIBDIR=lib/girepository-1.0"
|
||||
patches = [
|
||||
# Add Meson support that hit after 5.2.2
|
||||
(fetchpatch {
|
||||
url = "https://github.com/elementary/granite/commit/2066b377226cf327cb2d5399b6b40a2d36d47b11.patch";
|
||||
sha256 = "1bxjgq8wvl1sb79cwhmh9kwawnkkfn7c5q67cyz1fjxmamwyyi85";
|
||||
})
|
||||
(fetchpatch {
|
||||
url = "https://github.com/elementary/granite/commit/f1b29f52e3aaf0f5d6bba44c42617da265f679c8.patch";
|
||||
sha256 = "0cdp9ny6fj1lpcirab641p1qn1rbsvnsaa03hnr6zsdpim96jlvs";
|
||||
})
|
||||
# Resolve the circular dependency between granite and the datetime wingpanel indicator
|
||||
# See: https://github.com/elementary/granite/pull/242
|
||||
./02-datetime-clock-format-gsettings.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
gettext
|
||||
gobject-introspection
|
||||
meson
|
||||
ninja
|
||||
pkgconfig
|
||||
python3
|
||||
vala_0_40 # should be `elementary.vala` when elementary attribute set is merged
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
glib
|
||||
gnome3.libgee
|
||||
gtk3
|
||||
hicolor-icon-theme
|
||||
gnome3.libgee
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson/post_install.py
|
||||
patchShebangs meson/post_install.py
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "An extension to GTK+ used by elementary OS";
|
||||
longDescription = ''
|
||||
|
Loading…
Reference in New Issue
Block a user