From 552e73bfe5d102d6a2b49cdaa43bc211e0cfb65d Mon Sep 17 00:00:00 2001 From: Kolan Sh Date: Sat, 24 Oct 2015 19:38:22 +0300 Subject: [PATCH] Config added. --- cmake/backbone | 2 +- config/CMakeLists.txt | 5 ++++- config/Config.vapi | 6 ++++++ config/config.h.in | 3 +++ config/ws.backbone.gschema-test.gschema.xml | 2 +- src/CMakeLists.txt | 4 +++- src/GLib.Settings.vala | 7 ++----- 7 files changed, 20 insertions(+), 9 deletions(-) create mode 100644 config/Config.vapi create mode 100644 config/config.h.in diff --git a/cmake/backbone b/cmake/backbone index 972b5e5..4b74a70 160000 --- a/cmake/backbone +++ b/cmake/backbone @@ -1 +1 @@ -Subproject commit 972b5e5d882bb590fb5eee248c92cdc13ff19c5f +Subproject commit 4b74a70c2806e160ac2ae1cfe8a960cee8d490d4 diff --git a/config/CMakeLists.txt b/config/CMakeLists.txt index 0176ae1..dc8cd84 100644 --- a/config/CMakeLists.txt +++ b/config/CMakeLists.txt @@ -1,2 +1,5 @@ -SET (GSchemaFile "ws.backbone.gschema-test.gschema.xml") +SET (GSchemaFile "ws.backbone.gschema-test") INCLUDE (GSchemaCommonRules) + +CONFIGURE_FILE ("${CMAKE_CURRENT_SOURCE_DIR}/config.h.in" + "${CMAKE_CURRENT_BINARY_DIR}/config.h") diff --git a/config/Config.vapi b/config/Config.vapi new file mode 100644 index 0000000..24a890f --- /dev/null +++ b/config/Config.vapi @@ -0,0 +1,6 @@ +[CCode (cheader_filename = "config.h")] +namespace Config { + static const int VERSION_MAJOR; + static const int VERSION_MINOR; + static const int VERSION_PATCH; +} diff --git a/config/config.h.in b/config/config.h.in new file mode 100644 index 0000000..3c66f33 --- /dev/null +++ b/config/config.h.in @@ -0,0 +1,3 @@ +#define CONFIG_VERSION_MAJOR @MAJOR@ +#define CONFIG_VERSION_MINOR @MINOR@ +#define CONFIG_VERSION_PATCH @PATCH@ diff --git a/config/ws.backbone.gschema-test.gschema.xml b/config/ws.backbone.gschema-test.gschema.xml index 17b1268..b581fd2 100644 --- a/config/ws.backbone.gschema-test.gschema.xml +++ b/config/ws.backbone.gschema-test.gschema.xml @@ -1,5 +1,5 @@ - + "Hello, earthlings" diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 256c86c..e703755 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,6 +1,8 @@ -SET (BinName gschema-test) +SET (BinName gschema-test-${MAJOR}) FILE (GLOB_RECURSE BinSources RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} GLib.Settings.vala) SET (BinPackages gio-2.0) SET (BinPkgModules gio-2.0) +SET (BinCustomVapis ${CMAKE_SOURCE_DIR}/config/Config.vapi) +INCLUDE_DIRECTORIES ("${CMAKE_BINARY_DIR}/config") SET (BinInstall ON) INCLUDE (ValaBinCommonRules) diff --git a/src/GLib.Settings.vala b/src/GLib.Settings.vala index a22f509..87f13cb 100644 --- a/src/GLib.Settings.vala +++ b/src/GLib.Settings.vala @@ -12,7 +12,7 @@ public static int main (string[] args) { Intl.bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); SettingsSchemaSource sss = new SettingsSchemaSource.from_directory (settings_dir, null, false); - SettingsSchema schema = sss.lookup ("ws.backbone.gschema-test", false); + SettingsSchema schema = sss.lookup ("ws.backbone.gschema-test-"+Config.VERSION_MAJOR.to_string(), false); if (sss.lookup == null) { stdout.printf ("ID not found."); return 0; @@ -20,9 +20,6 @@ public static int main (string[] args) { Settings settings = new Settings.full (schema, null, null); - // Default location: (XDG_DATA_DIRS) - // Settings settings = new Settings ("org.example.glib-settings-schema-source"); - // Output: ``Hello, earthlings`` string greeting = settings.get_string ("greeting"); stdout.printf ("%s\n", greeting); @@ -56,7 +53,7 @@ public static int main (string[] args) { settings.set_boolean ("lighting", !lighting); settings.set_string ("greeting", "hello, world"); - stdout.puts ("\nPlease start 'dconf-editor' and edit keys in /ws/backbone/gschema-test/\n"); + stdout.puts ("\nPlease start 'dconf-editor' and edit keys in /ws/backbone/gschema-test-"+Config.VERSION_MAJOR.to_string()+"/\n"); new MainLoop ().run (); } catch (Error e) { stdout.printf ("Error: %s\n", e.message);