Automatically compile and use gsettings schema

This commit is contained in:
Marvin W 2017-03-12 14:42:04 +01:00
parent e8f11178ec
commit dbbe5e39d0
No known key found for this signature in database
GPG Key ID: 072E9235DB996F2A
5 changed files with 22 additions and 4 deletions

View File

@ -4,5 +4,4 @@
##Build
./configure
make
glib-compile-schemas libdino/data
env GSETTINGS_SCHEMA_DIR=libdino/data/ build/dino
build/dino

View File

@ -72,3 +72,15 @@ add_custom_target(dino-vapi
DEPENDS
${CMAKE_BINARY_DIR}/exports/dino.vapi
)
add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/gschemas.compiled
COMMAND
glib-compile-schemas --targetdir=${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/data
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/data/dino.gschema.xml
)
add_custom_target(dino-gsettings-schema-compiled
DEPENDS
${CMAKE_BINARY_DIR}/gschemas.compiled
)

View File

@ -112,5 +112,5 @@ OPTIONS
set(CFLAGS ${VALA_CFLAGS} ${MAIN_CFLAGS})
add_definitions(${CFLAGS})
add_executable(dino ${MAIN_VALA_C} ${MAIN_GRESOURCES_TARGET})
add_dependencies(dino dino-vapi)
add_dependencies(dino dino-vapi dino-gsettings-schema-compiled)
target_link_libraries(dino libdino ${MAIN_LIBRARIES})

View File

@ -5,7 +5,14 @@ namespace Dino {
void main(string[] args) {
try{
Plugins.Loader loader = new Plugins.Loader(args.length > 0 ? args[0] : null);
string? exec_path = args.length > 0 ? args[0] : null;
if (exec_path != null && exec_path.contains(Path.DIR_SEPARATOR_S)) {
string bindir = Path.get_dirname(exec_path);
if (FileUtils.test(Path.build_filename(bindir, "gschemas.compiled"), FileTest.IS_REGULAR)) {
Environment.set_variable("GSETTINGS_SCHEMA_DIR", Path.get_dirname(exec_path), false);
}
}
Plugins.Loader loader = new Plugins.Loader(exec_path);
Gtk.init(ref args);
Dino.Ui.Application app = new Dino.Ui.Application();
foreach (string plugin in new string[]{"omemo", "openpgp"}) {