From dd4b88c3868b44506f578b1d6909e7e3e31d7fe1 Mon Sep 17 00:00:00 2001 From: Christopher Lam Date: Sat, 5 Dec 2020 00:47:21 +0800 Subject: [PATCH] [modularise] (gnucash gnome-utils) --- gnucash/gnome-utils/CMakeLists.txt | 11 ++-- gnucash/gnome-utils/gnc-menu-extensions.scm | 56 +++++++++------------ gnucash/gnome-utils/gnome-utils.scm | 26 +++------- 3 files changed, 34 insertions(+), 59 deletions(-) diff --git a/gnucash/gnome-utils/CMakeLists.txt b/gnucash/gnome-utils/CMakeLists.txt index ba03bc7f85..908ce932b6 100644 --- a/gnucash/gnome-utils/CMakeLists.txt +++ b/gnucash/gnome-utils/CMakeLists.txt @@ -261,17 +261,16 @@ install(FILES ${gnome_utils_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gnu set(GUILE_DEPENDS gnc-gnome-utils scm-engine scm-app-utils) gnc_add_scheme_targets(scm-gnome-utils-1 - SOURCES gnome-utils.scm - OUTPUT_DIR gnucash - DEPENDS "${GUILE_DEPENDS}") - - -gnc_add_scheme_targets(scm-gnome-utils-2 SOURCES gnc-menu-extensions.scm OUTPUT_DIR "gnucash/gnome-utils" DEPENDS "${GUILE_DEPENDS}" MAKE_LINKS) +gnc_add_scheme_targets(scm-gnome-utils-2 + SOURCES gnome-utils.scm + OUTPUT_DIR gnucash + DEPENDS "scm-gnome-utils-1") + add_custom_target(scm-gnome-utils ALL DEPENDS scm-gnome-utils-2 scm-gnome-utils-1) set_local_dist(gnome_utils_DIST_local CMakeLists.txt ${gnome_utils_SOURCES} ${gnome_utils_HEADERS} diff --git a/gnucash/gnome-utils/gnc-menu-extensions.scm b/gnucash/gnome-utils/gnc-menu-extensions.scm index c395615241..86b4089c32 100644 --- a/gnucash/gnome-utils/gnc-menu-extensions.scm +++ b/gnucash/gnome-utils/gnc-menu-extensions.scm @@ -15,40 +15,30 @@ ;; 51 Franklin Street, Fifth Floor Fax: +1-617-542-2652 ;; Boston, MA 02110-1301, USA gnu@gnu.org -(define (gnc:make-extension - ;; The type of extension item, either 'menu, 'menu-item, or 'separator - type - ;; The name of the extension in the menu - name - ;; The guid of object the menu will refer to - guid - ;; The tooltip - documentation-string - ;; A list of names indicating the menus under which this item is - ;; located. The last item indicates the item *after* which this - ;; extension will go. - path - ;; The script to call when the menu item is selected - script) - (vector type - name - guid - documentation-string - path - script)) +(define-module (gnucash gnome-utils gnc-menu-extensions)) -(define (gnc:extension-type extension) - (vector-ref extension 0)) -(define (gnc:extension-name extension) - (vector-ref extension 1)) -(define (gnc:extension-guid extension) - (vector-ref extension 2)) -(define (gnc:extension-documentation extension) - (vector-ref extension 3)) -(define (gnc:extension-path extension) - (vector-ref extension 4)) -(define (gnc:extension-script extension) - (vector-ref extension 5)) +(use-modules (srfi srfi-9)) + +(export gnc:extension-documentation) +(export gnc:extension-guid) +(export gnc:extension-name) +(export gnc:extension-path) +(export gnc:extension-script) +(export gnc:extension-type) +(export gnc:make-extension) +(export gnc:make-menu) +(export gnc:make-menu-item) +(export gnc:make-separator) + +(define-record-type :extension + (gnc:make-extension type name guid documentation-string path script) + :extension? + (type gnc:extension-type) + (name gnc:extension-name) + (guid gnc:extension-guid) + (documentation-string gnc:extension-documentation) + (path gnc:extension-path) + (script gnc:extension-script)) (define (gnc:make-menu-item name guid documentation-string path script) (gnc:make-extension 'menu-item name guid documentation-string path script)) diff --git a/gnucash/gnome-utils/gnome-utils.scm b/gnucash/gnome-utils/gnome-utils.scm index ced0dc1d58..719c812b3e 100644 --- a/gnucash/gnome-utils/gnome-utils.scm +++ b/gnucash/gnome-utils/gnome-utils.scm @@ -19,30 +19,16 @@ (define-module (gnucash gnome-utils)) +(eval-when (compile load eval expand) + (load-extension "libgnc-gnome-utils" "scm_init_sw_gnome_utils_module")) + +(use-modules (gnucash core-utils)) (use-modules (gnucash engine)) (use-modules (gnucash utilities)) (use-modules (gnucash app-utils)) -(eval-when (compile load eval expand) - (load-extension "libgnc-gnome-utils" "scm_init_sw_gnome_utils_module")) -(use-modules (sw_gnome_utils)) - -; Export the swig-wrapped symbols in the public interface of this module -(let ((i (module-public-interface (current-module)))) - (module-use! i (resolve-interface '(sw_gnome_utils)))) - -;; from gnc-menu-extensions.scm -(export gnc:extension-type) -(export gnc:extension-name) -(export gnc:extension-guid) -(export gnc:extension-documentation) -(export gnc:extension-path) -(export gnc:extension-script) -(export gnc:make-menu-item) -(export gnc:make-menu) -(export gnc:make-separator) - -(load-from-path "gnucash/gnome-utils/gnc-menu-extensions") +(load-and-reexport (sw_gnome_utils) + (gnucash gnome-utils gnc-menu-extensions)) ;; this function will receive 1 boolean argument, and can be used for ;; any UI init/shutdown routines. For now it will set the