From c7b5061e8f7b6e8debaed5a7e61dbe27233c5e8b Mon Sep 17 00:00:00 2001 From: Geert Janssens Date: Sat, 10 Feb 2018 15:43:40 +0100 Subject: [PATCH] Bug 792884 - cmake: gschemas.compiled missing Fix handling of gschemas.compiled. It should only be called at install time to regenerate gschemas.compiled based on all available gschema files. In the installation directory that can be more than just our own. Note to force the compilation to run after all gschema files themselves are installed, the gnome and gnome-utils gschemas have been moved into a higher-level gschemas directory and the install command is added there. --- gnucash/CMakeLists.txt | 21 +-------- gnucash/gnome-utils/CMakeLists.txt | 8 +--- gnucash/gnome-utils/gschemas/CMakeLists.txt | 7 --- gnucash/gnome/CMakeLists.txt | 3 +- gnucash/gnome/gschemas/CMakeLists.txt | 22 --------- gnucash/gschemas/CMakeLists.txt | 47 +++++++++++++++++++ ...gnucash.dialogs.business.gschema.xml.in.in | 0 ...sh.dialogs.checkprinting.gschema.xml.in.in | 0 ...cash.dialogs.commodities.gschema.xml.in.in | 0 .../org.gnucash.dialogs.gschema.xml.in.in | 0 ...nucash.dialogs.reconcile.gschema.xml.in.in | 0 .../org.gnucash.dialogs.sxs.gschema.xml.in.in | 0 ...org.gnucash.dialogs.totd.gschema.xml.in.in | 0 ...sh.general.finance-quote.gschema.xml.in.in | 0 .../gschemas/org.gnucash.gschema.xml.in.in | 0 .../org.gnucash.history.gschema.xml.in.in | 0 .../org.gnucash.warnings.gschema.xml.in.in | 0 ...indow.pages.account.tree.gschema.xml.in.in | 0 ...org.gnucash.window.pages.gschema.xml.in.in | 0 po/POTFILES.in | 26 +++++----- 20 files changed, 65 insertions(+), 69 deletions(-) delete mode 100644 gnucash/gnome-utils/gschemas/CMakeLists.txt delete mode 100644 gnucash/gnome/gschemas/CMakeLists.txt create mode 100644 gnucash/gschemas/CMakeLists.txt rename gnucash/{gnome => }/gschemas/org.gnucash.dialogs.business.gschema.xml.in.in (100%) rename gnucash/{gnome => }/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in.in (100%) rename gnucash/{gnome => }/gschemas/org.gnucash.dialogs.commodities.gschema.xml.in.in (100%) rename gnucash/{gnome => }/gschemas/org.gnucash.dialogs.gschema.xml.in.in (100%) rename gnucash/{gnome => }/gschemas/org.gnucash.dialogs.reconcile.gschema.xml.in.in (100%) rename gnucash/{gnome => }/gschemas/org.gnucash.dialogs.sxs.gschema.xml.in.in (100%) rename gnucash/{gnome => }/gschemas/org.gnucash.dialogs.totd.gschema.xml.in.in (100%) rename gnucash/{gnome => }/gschemas/org.gnucash.general.finance-quote.gschema.xml.in.in (100%) rename gnucash/{gnome => }/gschemas/org.gnucash.gschema.xml.in.in (100%) rename gnucash/{gnome-utils => }/gschemas/org.gnucash.history.gschema.xml.in.in (100%) rename gnucash/{gnome-utils => }/gschemas/org.gnucash.warnings.gschema.xml.in.in (100%) rename gnucash/{gnome => }/gschemas/org.gnucash.window.pages.account.tree.gschema.xml.in.in (100%) rename gnucash/{gnome => }/gschemas/org.gnucash.window.pages.gschema.xml.in.in (100%) diff --git a/gnucash/CMakeLists.txt b/gnucash/CMakeLists.txt index 25e67aac9c..caa5c5355d 100644 --- a/gnucash/CMakeLists.txt +++ b/gnucash/CMakeLists.txt @@ -27,6 +27,7 @@ ADD_SUBDIRECTORY (import-export) ADD_SUBDIRECTORY (python) ADD_SUBDIRECTORY (register) ADD_SUBDIRECTORY (report) +ADD_SUBDIRECTORY (gschemas) ADD_DEFINITIONS (-DHAVE_CONFIG_H) @@ -242,24 +243,6 @@ IF (WIN32) INSTALL(PROGRAMS ${CMD_FILE} DESTINATION ${CMAKE_INSTALL_BINDIR}) ENDIF(WIN32) - -# Handle gschemas.compiled -set(CMAKE_COMMAND_TMP "") -if (${CMAKE_VERSION} VERSION_GREATER 3.1) - set(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env) -endif() - -add_custom_command( - OUTPUT ${SCHEMADIR_BUILD}/gschemas.compiled - COMMAND ${CMAKE_COMMAND_TMP} ${GLIB_COMPILE_SCHEMAS} ${SCHEMADIR_BUILD} - DEPENDS ${gschema_depends} -) - -add_custom_target(compiled-schemas ALL DEPENDS ${SCHEMADIR_BUILD}/gschemas.compiled) - -install(FILES ${SCHEMADIR_BUILD}/gschemas.compiled DESTINATION ${CMAKE_INSTALL_DATADIR}/glib-2.0/schemas) - - # The GResource Files are absolute paths but SET_LOCAL_DIST requires # relative paths. FOREACH(gres_file ${gresource_files}) @@ -272,6 +255,6 @@ SET_LOCAL_DIST(gnucash_DIST_local CMakeLists.txt environment.in generate-gnc-scr gnucash-bin.c gnucash.rc.in gnucash-valgrind.in gnucash-gresources.xml ${gresource_files} ${gnucash_EXTRA_DIST}) -SET(gnucash_DIST ${gnucash_DIST_local} ${gnome_DIST} ${gnome_search_DIST} +SET(gnucash_DIST ${gnucash_DIST_local} ${gschemas_DIST} ${gnome_DIST} ${gnome_search_DIST} ${gnome_utils_DIST} ${html_DIST} ${import_export_DIST} ${python_DIST} ${register_DIST} ${report_DIST} ${overrides_DIST} ${test_bin_DIST} PARENT_SCOPE) diff --git a/gnucash/gnome-utils/CMakeLists.txt b/gnucash/gnome-utils/CMakeLists.txt index 2ee23803e5..5f1ae9f19b 100644 --- a/gnucash/gnome-utils/CMakeLists.txt +++ b/gnucash/gnome-utils/CMakeLists.txt @@ -1,6 +1,5 @@ # Note that gnucash/gnome-utils CANNOT depend on gnucash/gnome! -ADD_SUBDIRECTORY(gschemas) ADD_SUBDIRECTORY(gtkbuilder) ADD_SUBDIRECTORY(ui) ADD_SUBDIRECTORY(test) @@ -11,10 +10,7 @@ gnc_add_swig_guile_command (swig-gnome-utils-c ${CMAKE_CURRENT_SOURCE_DIR}/gnome-utils.i ) -CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/gschemas/org.gnucash.warnings.gschema.xml.in.in - ${CMAKE_CURRENT_BINARY_DIR}/gschemas/org.gnucash.warnings.gschema.xml.in) - -SET (WARNINGS_SCHEMA gschemas/org.gnucash.warnings.gschema.xml.in) +SET (WARNINGS_SCHEMA ../gschemas/org.gnucash.warnings.gschema.xml.in) SET (GNC_WARNINGS_C ${CMAKE_CURRENT_BINARY_DIR}/gnc-warnings.c) SET (GNC_WARNINGS_H ${CMAKE_CURRENT_BINARY_DIR}/gnc-warnings.h) @@ -274,5 +270,5 @@ ADD_CUSTOM_TARGET(scm-gnome-utils ALL DEPENDS scm-gnome-utils-2 scm-gnome-utils- SET_LOCAL_DIST(gnome_utils_DIST_local CMakeLists.txt ${gnome_utils_SOURCES} ${gnome_utils_HEADERS} ${gnome_utils_noinst_HEADERS} gnome-utils.scm gnome-utils.i gnc-menu-extensions.scm make-gnc-warnings-c.xsl make-gnc-warnings-h.xsl) -SET(gnome_utils_DIST ${gnome_utils_DIST_local} ${gnome_utils_gschema_DIST} ${test_gnome_utils_DIST} +SET(gnome_utils_DIST ${gnome_utils_DIST_local} ${test_gnome_utils_DIST} ${gnome_utils_ui_DIST} ${gnome_utils_gtkbuilder_DIST} PARENT_SCOPE) diff --git a/gnucash/gnome-utils/gschemas/CMakeLists.txt b/gnucash/gnome-utils/gschemas/CMakeLists.txt deleted file mode 100644 index 52015f99aa..0000000000 --- a/gnucash/gnome-utils/gschemas/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ - -SET(gnome_utils_GSCHEMA org.gnucash.history.gschema.xml org.gnucash.warnings.gschema.xml) - -add_gschema_targets("${gnome_utils_GSCHEMA}") - -SET_DIST_LIST(gnome_utils_gschema_DIST CMakeLists.txt org.gnucash.history.gschema.xml.in.in - org.gnucash.warnings.gschema.xml.in.in) diff --git a/gnucash/gnome/CMakeLists.txt b/gnucash/gnome/CMakeLists.txt index 5b54a951a7..111fc49621 100644 --- a/gnucash/gnome/CMakeLists.txt +++ b/gnucash/gnome/CMakeLists.txt @@ -1,5 +1,4 @@ -ADD_SUBDIRECTORY(gschemas) ADD_SUBDIRECTORY(gtkbuilder) ADD_SUBDIRECTORY(ui) @@ -201,4 +200,4 @@ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/gnucash.desktop DESTINATION ${CMAKE_I SET_LOCAL_DIST(gnome_DIST_local CMakeLists.txt gnome.i gnucash.appdata.xml.in gnucash.desktop.in.in ${gnc_gnome_noinst_HEADERS} ${gnc_gnome_SOURCES}) -SET(gnome_DIST ${gnome_DIST_local} ${gnome_ui_DIST} ${gnome_gschema_DIST} ${gnome_gtkbuilder_DIST} PARENT_SCOPE) +SET(gnome_DIST ${gnome_DIST_local} ${gnome_ui_DIST} ${gnome_gtkbuilder_DIST} PARENT_SCOPE) diff --git a/gnucash/gnome/gschemas/CMakeLists.txt b/gnucash/gnome/gschemas/CMakeLists.txt deleted file mode 100644 index 03a5a8760f..0000000000 --- a/gnucash/gnome/gschemas/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ - -SET(gnome_GSCHEMA - org.gnucash.dialogs.gschema.xml - org.gnucash.dialogs.business.gschema.xml - org.gnucash.dialogs.commodities.gschema.xml - org.gnucash.dialogs.checkprinting.gschema.xml - org.gnucash.dialogs.reconcile.gschema.xml - org.gnucash.dialogs.sxs.gschema.xml - org.gnucash.dialogs.totd.gschema.xml - org.gnucash.gschema.xml - org.gnucash.general.finance-quote.gschema.xml - org.gnucash.window.pages.account.tree.gschema.xml - org.gnucash.window.pages.gschema.xml -) - -add_gschema_targets("${gnome_GSCHEMA}") - -SET(gnome_gschema_DIST_local "") -FOREACH(file ${gnome_GSCHEMA}) - LIST(APPEND gnome_gschema_DIST_local ${file}.in.in) -ENDFOREACH() -SET_DIST_LIST(gnome_gschema_DIST CMakeLists.txt ${gnome_gschema_DIST_local}) diff --git a/gnucash/gschemas/CMakeLists.txt b/gnucash/gschemas/CMakeLists.txt new file mode 100644 index 0000000000..cb8d62ab94 --- /dev/null +++ b/gnucash/gschemas/CMakeLists.txt @@ -0,0 +1,47 @@ + +SET(gschema_SOURCES + org.gnucash.dialogs.gschema.xml + org.gnucash.dialogs.business.gschema.xml + org.gnucash.dialogs.commodities.gschema.xml + org.gnucash.dialogs.checkprinting.gschema.xml + org.gnucash.dialogs.reconcile.gschema.xml + org.gnucash.dialogs.sxs.gschema.xml + org.gnucash.dialogs.totd.gschema.xml + org.gnucash.gschema.xml + org.gnucash.general.finance-quote.gschema.xml + org.gnucash.history.gschema.xml + org.gnucash.warnings.gschema.xml + org.gnucash.window.pages.account.tree.gschema.xml + org.gnucash.window.pages.gschema.xml +) + +add_gschema_targets("${gschema_SOURCES}") + +# Handle gschemas.compiled +set(CMAKE_COMMAND_TMP "") +if (${CMAKE_VERSION} VERSION_GREATER 3.1) + set(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env) +endif() + +add_custom_command( + OUTPUT ${SCHEMADIR_BUILD}/gschemas.compiled + COMMAND ${CMAKE_COMMAND_TMP} ${GLIB_COMPILE_SCHEMAS} ${SCHEMADIR_BUILD} + DEPENDS ${gschema_depends} +) + +add_custom_target(compiled-schemas ALL DEPENDS ${SCHEMADIR_BUILD}/gschemas.compiled) + + +file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/compile_schemas.sh +"set -e +echo \"Compiling gschema files in $DESTDIR${CMAKE_INSTALL_FULL_DATADIR}/glib-2.0/schemas\" +${GLIB_COMPILE_SCHEMAS} $DESTDIR${CMAKE_INSTALL_FULL_DATADIR}/glib-2.0/schemas") + + +install(CODE "execute_process(COMMAND ${SHELL} ${CMAKE_CURRENT_BINARY_DIR}/compile_schemas.sh)") + +SET(gschemas_DIST_local "") +FOREACH(file ${gschema_SOURCES}) + LIST(APPEND gschemas_DIST_local ${file}.in.in) +ENDFOREACH() +SET_DIST_LIST(gschemas_DIST CMakeLists.txt ${gschemas_DIST_local}) diff --git a/gnucash/gnome/gschemas/org.gnucash.dialogs.business.gschema.xml.in.in b/gnucash/gschemas/org.gnucash.dialogs.business.gschema.xml.in.in similarity index 100% rename from gnucash/gnome/gschemas/org.gnucash.dialogs.business.gschema.xml.in.in rename to gnucash/gschemas/org.gnucash.dialogs.business.gschema.xml.in.in diff --git a/gnucash/gnome/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in.in b/gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in.in similarity index 100% rename from gnucash/gnome/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in.in rename to gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in.in diff --git a/gnucash/gnome/gschemas/org.gnucash.dialogs.commodities.gschema.xml.in.in b/gnucash/gschemas/org.gnucash.dialogs.commodities.gschema.xml.in.in similarity index 100% rename from gnucash/gnome/gschemas/org.gnucash.dialogs.commodities.gschema.xml.in.in rename to gnucash/gschemas/org.gnucash.dialogs.commodities.gschema.xml.in.in diff --git a/gnucash/gnome/gschemas/org.gnucash.dialogs.gschema.xml.in.in b/gnucash/gschemas/org.gnucash.dialogs.gschema.xml.in.in similarity index 100% rename from gnucash/gnome/gschemas/org.gnucash.dialogs.gschema.xml.in.in rename to gnucash/gschemas/org.gnucash.dialogs.gschema.xml.in.in diff --git a/gnucash/gnome/gschemas/org.gnucash.dialogs.reconcile.gschema.xml.in.in b/gnucash/gschemas/org.gnucash.dialogs.reconcile.gschema.xml.in.in similarity index 100% rename from gnucash/gnome/gschemas/org.gnucash.dialogs.reconcile.gschema.xml.in.in rename to gnucash/gschemas/org.gnucash.dialogs.reconcile.gschema.xml.in.in diff --git a/gnucash/gnome/gschemas/org.gnucash.dialogs.sxs.gschema.xml.in.in b/gnucash/gschemas/org.gnucash.dialogs.sxs.gschema.xml.in.in similarity index 100% rename from gnucash/gnome/gschemas/org.gnucash.dialogs.sxs.gschema.xml.in.in rename to gnucash/gschemas/org.gnucash.dialogs.sxs.gschema.xml.in.in diff --git a/gnucash/gnome/gschemas/org.gnucash.dialogs.totd.gschema.xml.in.in b/gnucash/gschemas/org.gnucash.dialogs.totd.gschema.xml.in.in similarity index 100% rename from gnucash/gnome/gschemas/org.gnucash.dialogs.totd.gschema.xml.in.in rename to gnucash/gschemas/org.gnucash.dialogs.totd.gschema.xml.in.in diff --git a/gnucash/gnome/gschemas/org.gnucash.general.finance-quote.gschema.xml.in.in b/gnucash/gschemas/org.gnucash.general.finance-quote.gschema.xml.in.in similarity index 100% rename from gnucash/gnome/gschemas/org.gnucash.general.finance-quote.gschema.xml.in.in rename to gnucash/gschemas/org.gnucash.general.finance-quote.gschema.xml.in.in diff --git a/gnucash/gnome/gschemas/org.gnucash.gschema.xml.in.in b/gnucash/gschemas/org.gnucash.gschema.xml.in.in similarity index 100% rename from gnucash/gnome/gschemas/org.gnucash.gschema.xml.in.in rename to gnucash/gschemas/org.gnucash.gschema.xml.in.in diff --git a/gnucash/gnome-utils/gschemas/org.gnucash.history.gschema.xml.in.in b/gnucash/gschemas/org.gnucash.history.gschema.xml.in.in similarity index 100% rename from gnucash/gnome-utils/gschemas/org.gnucash.history.gschema.xml.in.in rename to gnucash/gschemas/org.gnucash.history.gschema.xml.in.in diff --git a/gnucash/gnome-utils/gschemas/org.gnucash.warnings.gschema.xml.in.in b/gnucash/gschemas/org.gnucash.warnings.gschema.xml.in.in similarity index 100% rename from gnucash/gnome-utils/gschemas/org.gnucash.warnings.gschema.xml.in.in rename to gnucash/gschemas/org.gnucash.warnings.gschema.xml.in.in diff --git a/gnucash/gnome/gschemas/org.gnucash.window.pages.account.tree.gschema.xml.in.in b/gnucash/gschemas/org.gnucash.window.pages.account.tree.gschema.xml.in.in similarity index 100% rename from gnucash/gnome/gschemas/org.gnucash.window.pages.account.tree.gschema.xml.in.in rename to gnucash/gschemas/org.gnucash.window.pages.account.tree.gschema.xml.in.in diff --git a/gnucash/gnome/gschemas/org.gnucash.window.pages.gschema.xml.in.in b/gnucash/gschemas/org.gnucash.window.pages.gschema.xml.in.in similarity index 100% rename from gnucash/gnome/gschemas/org.gnucash.window.pages.gschema.xml.in.in rename to gnucash/gschemas/org.gnucash.window.pages.gschema.xml.in.in diff --git a/po/POTFILES.in b/po/POTFILES.in index d48e93b26c..f10717e4fe 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -84,17 +84,6 @@ gnucash/gnome/gnc-plugin-register2.c gnucash/gnome/gnc-plugin-register.c gnucash/gnome/gnc-split-reg2.c gnucash/gnome/gnc-split-reg.c -[type: gettext/gsettings]gnucash/gnome/gschemas/org.gnucash.dialogs.business.gschema.xml.in.in -[type: gettext/gsettings]gnucash/gnome/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in.in -[type: gettext/gsettings]gnucash/gnome/gschemas/org.gnucash.dialogs.commodities.gschema.xml.in.in -[type: gettext/gsettings]gnucash/gnome/gschemas/org.gnucash.dialogs.gschema.xml.in.in -[type: gettext/gsettings]gnucash/gnome/gschemas/org.gnucash.dialogs.reconcile.gschema.xml.in.in -[type: gettext/gsettings]gnucash/gnome/gschemas/org.gnucash.dialogs.sxs.gschema.xml.in.in -[type: gettext/gsettings]gnucash/gnome/gschemas/org.gnucash.dialogs.totd.gschema.xml.in.in -[type: gettext/gsettings]gnucash/gnome/gschemas/org.gnucash.general.finance-quote.gschema.xml.in.in -[type: gettext/gsettings]gnucash/gnome/gschemas/org.gnucash.gschema.xml.in.in -[type: gettext/gsettings]gnucash/gnome/gschemas/org.gnucash.window.pages.account.tree.gschema.xml.in.in -[type: gettext/gsettings]gnucash/gnome/gschemas/org.gnucash.window.pages.gschema.xml.in.in gnucash/gnome/gtkbuilder/assistant-acct-period.glade gnucash/gnome/gtkbuilder/assistant-hierarchy.glade gnucash/gnome/gtkbuilder/assistant-loan.glade @@ -225,8 +214,6 @@ gnucash/gnome-utils/gnc-tree-view-split-reg.c gnucash/gnome-utils/gnc-tree-view-sx-list.c gnucash/gnome-utils/gnc-window.c gnucash/gnome-utils/gnome-utils.scm -[type: gettext/gsettings]gnucash/gnome-utils/gschemas/org.gnucash.history.gschema.xml.in.in -[type: gettext/gsettings]gnucash/gnome-utils/gschemas/org.gnucash.warnings.gschema.xml.in.in gnucash/gnome-utils/gtkbuilder/assistant-xml-encoding.glade gnucash/gnome-utils/gtkbuilder/dialog-account.glade gnucash/gnome-utils/gtkbuilder/dialog-book-close.glade @@ -251,6 +238,19 @@ gnucash/gnome-utils/search-param.c gnucash/gnome-utils/tree-view-utils.c gnucash/gnome-utils/window-main-summarybar.c gnucash/gnucash-bin.c +[type: gettext/gsettings]gnucash/gschemas/org.gnucash.dialogs.business.gschema.xml.in.in +[type: gettext/gsettings]gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in.in +[type: gettext/gsettings]gnucash/gschemas/org.gnucash.dialogs.commodities.gschema.xml.in.in +[type: gettext/gsettings]gnucash/gschemas/org.gnucash.dialogs.gschema.xml.in.in +[type: gettext/gsettings]gnucash/gschemas/org.gnucash.dialogs.reconcile.gschema.xml.in.in +[type: gettext/gsettings]gnucash/gschemas/org.gnucash.dialogs.sxs.gschema.xml.in.in +[type: gettext/gsettings]gnucash/gschemas/org.gnucash.dialogs.totd.gschema.xml.in.in +[type: gettext/gsettings]gnucash/gschemas/org.gnucash.general.finance-quote.gschema.xml.in.in +[type: gettext/gsettings]gnucash/gschemas/org.gnucash.gschema.xml.in.in +[type: gettext/gsettings]gnucash/gschemas/org.gnucash.history.gschema.xml.in.in +[type: gettext/gsettings]gnucash/gschemas/org.gnucash.warnings.gschema.xml.in.in +[type: gettext/gsettings]gnucash/gschemas/org.gnucash.window.pages.account.tree.gschema.xml.in.in +[type: gettext/gsettings]gnucash/gschemas/org.gnucash.window.pages.gschema.xml.in.in gnucash/html/gnc-html.c gnucash/html/gnc-html-factory.c gnucash/html/gnc-html-history.c