RptCleanup - reorganize stylesheets

- store them in a subdirectory
- reuse the report module loader
- eliminate gncmod-stylesheet, gui bits are now in gnome
This commit is contained in:
Geert Janssens
2019-06-14 09:58:00 +02:00
parent 93489d4ffc
commit 6b5dcc3877
31 changed files with 45 additions and 263 deletions

View File

@@ -905,7 +905,7 @@ set_target_properties(${_MODULES} PROPERTIES
)
if (WIN32)
set_target_properties(gncmod-backend-xml gncmod-stylesheets PROPERTIES
set_target_properties(gncmod-backend-xml PROPERTIES
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
)
endif()

View File

@@ -41,6 +41,7 @@ set (gnc_gnome_noinst_HEADERS
gnc-plugin-business.h
gnc-plugin-register.h
gnc-plugin-register2.h
gnc-plugin-stylesheets.h
gnc-plugin-page-account-tree.h
gnc-plugin-page-budget.h
gnc-plugin-page-invoice.h
@@ -112,6 +113,7 @@ set (gnc_gnome_SOURCES
gnc-plugin-business.c
gnc-plugin-register.c
gnc-plugin-register2.c
gnc-plugin-stylesheets.c
gnc-plugin-page-account-tree.c
gnc-plugin-page-budget.c
gnc-plugin-page-invoice.c

View File

@@ -51,6 +51,7 @@
#include "gnc-splash.h"
#include "gnc-gnome-utils.h"
#include "gnc-plugin-file-history.h"
#include "gnc-plugin-stylesheets.h"
#include "dialog-new-user.h"
#include "gnc-session.h"
#include "engine-helpers-guile.h"
@@ -502,7 +503,6 @@ load_gnucash_modules()
{ "gnucash/import-export/bi-import", 0, TRUE},
{ "gnucash/import-export/customer-import", 0, TRUE},
{ "gnucash/report", 0, FALSE },
{ "gnucash/report/stylesheets", 0, FALSE },
{ "gnucash/report/locale-specific", 0, FALSE },
{ "gnucash/python", 0, TRUE },
};
@@ -635,6 +635,7 @@ inner_main (void *closure, int argc, char **argv)
scm_c_use_module("gnucash report reports");
scm_c_use_module("gnucash report-menus");
scm_c_eval_string("(gnc:report-menu-setup)");
gnc_plugin_stylesheets_create_plugin();
/* TODO: After some more guile-extraction, this should happen even
before booting guile. */

View File

@@ -79,6 +79,7 @@ libgncmod_report_gnc_module_init(int refcount)
if (refcount == 0)
{
scm_c_eval_string("(gnc:reldate-initialize)");
scm_c_eval_string("(report-module-loader (list '(gnucash report stylesheets)))");
}
return TRUE;

View File

@@ -127,5 +127,7 @@ add_custom_target(scm-reports ALL DEPENDS
scm-rpt-reports
scm-reports-locale-specific)
set_local_dist(reports_DIST_local CMakeLists.txt ${reports_SCHEME} ${reports_common_SCHEME} ${reports_standard_SCHEME} ${reports_example_SCHEME})
set(reports_DIST ${reports_DIST_local} ${reports_locale_specific_DIST} ${reports_support_DIST} ${test_reports_standard_DIST} PARENT_SCOPE)
set_local_dist(reports_DIST_local CMakeLists.txt ${reports_SCHEME}
${reports_common_SCHEME} ${reports_standard_SCHEME} ${reports_example_SCHEME})
set(reports_DIST ${reports_DIST_local} ${reports_locale_specific_DIST}
${reports_support_DIST} ${test_reports_standard_DIST} PARENT_SCOPE)

View File

@@ -6,7 +6,7 @@
(use-modules (gnucash report))
(use-modules (gnucash report reports standard budget))
(use-modules (tests test-report-extras))
(use-modules (gnucash report stylesheets))
(use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
(use-modules (tests srfi64-extras))
(use-modules (srfi srfi-1))
(use-modules (srfi srfi-64))

View File

@@ -3,7 +3,7 @@
(use-modules (tests test-engine-extras))
(use-modules (gnucash report reports standard balance-sheet))
(use-modules (gnucash report reports standard income-statement))
(use-modules (gnucash report stylesheets))
(use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
(use-modules (gnucash report))
(use-modules (tests test-report-extras))
(use-modules (srfi srfi-64))

View File

@@ -32,7 +32,7 @@
(use-modules (sw_engine))
(use-modules (gnucash report reports standard budget))
(use-modules (tests test-report-extras))
(use-modules (gnucash report stylesheets))
(use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
(use-modules (tests test-engine-extras))
;; Explicitly set locale to make the report output predictable

View File

@@ -29,7 +29,7 @@
(use-modules (gnucash report))
(use-modules (tests test-report-extras))
(use-modules (gnucash report reports standard cashflow-barchart))
(use-modules (gnucash report stylesheets))
(use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
(use-modules (srfi srfi-1))
(use-modules (srfi srfi-64))

View File

@@ -7,7 +7,7 @@
(use-modules (gnucash report reports standard cashflow-barchart))
(use-modules (gnucash report reports standard price-scatter))
(use-modules (gnucash report reports example daily-reports))
(use-modules (gnucash report stylesheets))
(use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
(use-modules (gnucash report))
(use-modules (tests test-report-extras))
(use-modules (srfi srfi-64))

View File

@@ -2,7 +2,7 @@
(gnc:module-begin-syntax (gnc:module-load "gnucash/app-utils" 0))
(use-modules (tests test-engine-extras))
(use-modules (gnucash report reports standard income-gst-statement))
(use-modules (gnucash report stylesheets))
(use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
(use-modules (gnucash report))
(use-modules (tests test-report-extras))
(use-modules (srfi srfi-64))

View File

@@ -2,7 +2,7 @@
(gnc:module-begin-syntax (gnc:module-load "gnucash/app-utils" 0))
(use-modules (tests test-engine-extras))
(use-modules (gnucash report reports standard invoice))
(use-modules (gnucash report stylesheets))
(use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
(use-modules (gnucash report))
(use-modules (tests test-report-extras))
(use-modules (srfi srfi-1))

View File

@@ -37,7 +37,7 @@
(use-modules (sw_engine))
(use-modules (gnucash report reports standard register))
(use-modules (tests test-report-extras))
(use-modules (gnucash report stylesheets))
(use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
(use-modules (tests test-engine-extras))
;; Explicitly set locale to make the report output predictable

View File

@@ -38,7 +38,7 @@
(use-modules (gnucash report reports standard net-charts))
(use-modules (tests test-report-extras))
(use-modules (gnucash report reports standard category-barchart))
(use-modules (gnucash report stylesheets))
(use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
(use-modules (tests test-engine-extras))
;; Explicitly set locale to make the report output predictable

View File

@@ -23,7 +23,7 @@
(use-modules (sw_engine))
(use-modules (srfi srfi-1))
(use-modules (srfi srfi-64))
(use-modules (gnucash report stylesheets))
(use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
(use-modules (tests test-engine-extras))
(use-modules (tests srfi64-extras))
(use-modules (tests test-report-extras))

View File

@@ -23,7 +23,7 @@
(use-modules (sw_engine))
(use-modules (srfi srfi-1))
(use-modules (srfi srfi-64))
(use-modules (gnucash report stylesheets))
(use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
(use-modules (tests test-engine-extras))
(use-modules (tests srfi64-extras))
(use-modules (tests test-report-extras))

View File

@@ -5,7 +5,7 @@
(gnc:module-begin-syntax (gnc:module-load "gnucash/app-utils" 0))
(use-modules (tests test-engine-extras))
(use-modules (gnucash report reports standard view-column))
(use-modules (gnucash report stylesheets))
(use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
(use-modules (gnucash report reports standard taxinvoice))
(use-modules (gnucash report))
(use-modules (tests test-report-extras))

View File

@@ -3,7 +3,7 @@
(use-modules (tests test-engine-extras))
(use-modules (gnucash report reports standard transaction))
(use-modules (gnucash report reports standard reconcile-report))
(use-modules (gnucash report stylesheets))
(use-modules (gnucash report stylesheets plain)) ; For the default stylesheet, required for rendering
(use-modules (gnucash report))
(use-modules (tests test-report-extras))
(use-modules (srfi srfi-64))

View File

@@ -1,58 +1,13 @@
add_subdirectory(test)
set(stylesheets_SOURCES
gnc-plugin-stylesheets.c
gncmod-stylesheets.c
set(stylesheets_SCHEME
plain.scm
fancy.scm
footer.scm
easy.scm
head-or-tail.scm
)
set(stylesheets_noinst_HEADERS
gnc-plugin-stylesheets.h
)
add_library(gncmod-stylesheets MODULE ${stylesheets_SOURCES} ${stylesheets_noinst_HEADERS})
target_link_libraries(gncmod-stylesheets gnc-gnome gncmod-report gncmod-gnome-utils gnc-module
${GUILE_LDFLAGS} ${GTK3_LDFLAGS} ${GLIB2_LDFLAGS})
target_compile_definitions(gncmod-stylesheets PRIVATE -DG_LOG_DOMAIN=\"gnc.report.core\")
target_include_directories(gncmod-stylesheets
PRIVATE
${CMAKE_SOURCE_DIR}/gnucash/gnome
)
set(LIB_DIR ${CMAKE_INSTALL_LIBDIR}/gnucash)
if (WIN32)
set(LIB_DIR ${CMAKE_INSTALL_BINDIR})
endif(WIN32)
if (APPLE)
set_target_properties (gncmod-stylesheets PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
endif()
install(TARGETS gncmod-stylesheets
LIBRARY DESTINATION ${LIB_DIR}
ARCHIVE DESTINATION ${LIB_DIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
# No headers to install
# Scheme
set(stylesheets_SCHEME_1
stylesheet-plain.scm
stylesheet-fancy.scm
stylesheet-footer.scm
stylesheet-easy.scm
stylesheet-head-or-tail.scm
)
set(stylesheets_SCHEME_2
stylesheets.scm
)
set(GUILE_OUTPUT_DIR gnucash/report)
set(GUILE_OUTPUT_DIR gnucash/report/stylesheets)
set(GUILE_DEPENDS
scm-gnc-module
scm-core-utils
@@ -63,23 +18,14 @@ set(GUILE_DEPENDS
)
gnc_add_scheme_targets(scm-report-stylesheets-1
"${stylesheets_SCHEME_1}"
"${stylesheets_SCHEME}"
${GUILE_OUTPUT_DIR}
"${GUILE_DEPENDS}"
TRUE
)
gnc_add_scheme_targets(scm-report-stylesheets-2
"${stylesheets_SCHEME_2}"
${GUILE_OUTPUT_DIR}
"scm-report-stylesheets-1;${GUILE_DEPENDS}"
TRUE
)
add_custom_target(scm-report-stylesheets ALL DEPENDS scm-report-stylesheets-1)
add_custom_target(scm-report-stylesheets ALL DEPENDS scm-report-stylesheets-1 scm-report-stylesheets-2)
set_local_dist(stylesheets_DIST_local CMakeLists.txt ${stylesheets_SCHEME})
set_local_dist(stylesheets_DIST_local CMakeLists.txt
${stylesheets_SOURCES} ${stylesheets_noinst_HEADERS}
${stylesheets_SCHEME_1} ${stylesheets_SCHEME_2})
set(stylesheets_DIST ${stylesheets_DIST_local} ${test_stylesheets_DIST} PARENT_SCOPE)
set(stylesheets_DIST ${stylesheets_DIST_local} PARENT_SCOPE)

View File

@@ -27,7 +27,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-module (gnucash report stylesheet-easy))
(define-module (gnucash report stylesheets easy))
(use-modules (gnucash utilities))
(use-modules (gnucash gnc-module))

View File

@@ -21,7 +21,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-module (gnucash report stylesheet-fancy))
(define-module (gnucash report stylesheets fancy))
(use-modules (gnucash utilities))
(use-modules (gnucash gnc-module))

View File

@@ -32,7 +32,7 @@
;
(define-module (gnucash report stylesheet-footer))
(define-module (gnucash report stylesheets footer))
(use-modules (gnucash utilities))
(use-modules (gnucash gnc-module))

View File

@@ -1,86 +0,0 @@
/*********************************************************************
* gncmod-stylesheets.c
* module definition/initialization for the standard reports
*
* Copyright (c) 2001 Linux Developers Group, Inc.
*********************************************************************/
/********************************************************************\
* This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License as *
* published by the Free Software Foundation; either version 2 of *
* the License, or (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License*
* along with this program; if not, contact: *
* *
* Free Software Foundation Voice: +1-617-542-5942 *
* 51 Franklin Street, Fifth Floor Fax: +1-617-542-2652 *
* Boston, MA 02110-1301, USA gnu@gnu.org *
* *
\********************************************************************/
#include <config.h>
#include <gmodule.h>
#include <libguile.h>
#include "gnc-module.h"
#include "gnc-module-api.h"
#include "gnc-plugin-stylesheets.h"
GNC_MODULE_API_DECL(libgncmod_stylesheets)
/* version of the gnc module system interface we require */
int libgncmod_stylesheets_gnc_module_system_interface = 0;
/* module versioning uses libtool semantics. */
int libgncmod_stylesheets_gnc_module_current = 0;
int libgncmod_stylesheets_gnc_module_revision = 0;
int libgncmod_stylesheets_gnc_module_age = 0;
char *
libgncmod_stylesheets_gnc_module_path(void)
{
return g_strdup("gnucash/report/stylesheets");
}
char *
libgncmod_stylesheets_gnc_module_description(void)
{
return g_strdup("Standard report stylesheet definitions");
}
int
libgncmod_stylesheets_gnc_module_init(int refcount)
{
/* load the report system */
if (!gnc_module_load("gnucash/report", 0))
{
return FALSE;
}
/* load the report generation scheme code */
if (scm_c_eval_string("(use-modules (gnucash report stylesheets))") ==
SCM_BOOL_F)
{
return FALSE;
}
/* Add menu items with C callbacks */
gnc_plugin_stylesheets_create_plugin();
return TRUE;
}
int
libgncmod_stylesheets_gnc_module_end(int refcount)
{
return TRUE;
}

View File

@@ -33,7 +33,7 @@
;
(define-module (gnucash report stylesheet-head-or-tail))
(define-module (gnucash report stylesheets head-or-tail))
(use-modules (gnucash utilities))
(use-modules (gnucash gnc-module))

View File

@@ -22,7 +22,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-module (gnucash report stylesheet-plain))
(define-module (gnucash report stylesheets plain))
(use-modules (gnucash utilities))
(use-modules (gnucash gnc-module))

View File

@@ -1,34 +0,0 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; stylesheets.scm
;; load the standard stylesheet definitions
;;
;; Copyright (c) 2001 Linux Developers Group, Inc.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; This program is free software; you can redistribute it and/or
;; modify it under the terms of the GNU General Public License as
;; published by the Free Software Foundation; either version 2 of
;; the License, or (at your option) any later version.
;;
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with this program; if not, contact:
;;
;; Free Software Foundation Voice: +1-617-542-5942
;; 51 Franklin Street, Fifth Floor Fax: +1-617-542-2652
;; Boston, MA 02110-1301, USA gnu@gnu.org
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-module (gnucash report stylesheets))
(use-modules (gnucash utilities))
(use-modules (gnucash report stylesheet-plain))
(use-modules (gnucash report stylesheet-fancy))
(use-modules (gnucash report stylesheet-footer))
(use-modules (gnucash report stylesheet-easy))
(use-modules (gnucash report stylesheet-head-or-tail))

View File

@@ -1,25 +0,0 @@
set(GUILE_DEPENDS
scm-test-core
scm-gettext
scm-core-utils
scm-gnc-module
scm-scm
scm-engine
gncmod-backend-xml
scm-gnome-utils
gncmod-html
scm-report
scm-gnome
scm-report-stylesheets
)
gnc_add_scheme_test_targets(scm-test-load-report-stylesheets-module
"test-load-report-stylesheets-module.scm"
"tests"
"${GUILE_DEPENDS}"
FALSE
)
gnc_add_scheme_tests("test-load-report-stylesheets-module.scm")
set_dist_list(test_stylesheets_DIST CMakeLists.txt test-load-report-stylesheets-module.scm)

View File

@@ -1,23 +0,0 @@
(setenv "GNC_UNINSTALLED" "1")
(display " testing stylesheet module load ... ")
(use-modules (tests unittest-support))
(define log-domain "gnc.report.core")
(define check (new-TestErrorStruct))
(define log-level (G-LOG-LEVEL-CRITICAL))
(define msg "gnc_get_default_report_font_family: assertion `top_list != NULL' failed")
(TestErrorStruct-log-domain-set check log-domain)
(TestErrorStruct-log-level-set check log-level)
(TestErrorStruct-msg-set check msg)
(define handler (test-set-checked-handler log-domain log-level check))
(use-modules (gnucash gnc-module))
(gnc:module-system-init)
(if (gnc:module-load "gnucash/report/stylesheets" 0)
(begin
(g-log-remove-handler log-domain handler)
(display "ok\n")
(exit 0))
(begin
(g-log-remove-handler log-domain handler)
(display "failed\n")
(exit -1)))

View File

@@ -91,6 +91,7 @@ gnucash/gnome/gnc-plugin-page-report.c
gnucash/gnome/gnc-plugin-page-sx-list.c
gnucash/gnome/gnc-plugin-register2.c
gnucash/gnome/gnc-plugin-register.c
gnucash/gnome/gnc-plugin-stylesheets.c
gnucash/gnome/gnc-split-reg2.c
gnucash/gnome/gnc-split-reg.c
gnucash/gnome/gnucash.appdata.xml.in
@@ -494,14 +495,11 @@ gnucash/report/reports/support/receipt.eguile.scm
gnucash/report/reports/support/taxinvoice.eguile.scm
gnucash/report/report.scm
gnucash/report/report-utilities.scm
gnucash/report/stylesheets/gncmod-stylesheets.c
gnucash/report/stylesheets/gnc-plugin-stylesheets.c
gnucash/report/stylesheets/stylesheet-easy.scm
gnucash/report/stylesheets/stylesheet-fancy.scm
gnucash/report/stylesheets/stylesheet-footer.scm
gnucash/report/stylesheets/stylesheet-head-or-tail.scm
gnucash/report/stylesheets/stylesheet-plain.scm
gnucash/report/stylesheets/stylesheets.scm
gnucash/report/stylesheets/easy.scm
gnucash/report/stylesheets/fancy.scm
gnucash/report/stylesheets/footer.scm
gnucash/report/stylesheets/head-or-tail.scm
gnucash/report/stylesheets/plain.scm
gnucash/report/trep-engine.scm
libgnucash/app-utils/app-utils.scm
libgnucash/app-utils/business-helpers.c