r21656 - gnucash/trunk/src/core-utils - [Testing] Provide for gnc_path_get_reportdir() and gnc_path_get_stdreportsdir() to return build-directory paths

John Ralls jralls at code.gnucash.org
Fri Dec 2 17:00:05 EST 2011


Author: jralls
Date: 2011-12-02 17:00:05 -0500 (Fri, 02 Dec 2011)
New Revision: 21656
Trac: http://svn.gnucash.org/trac/changeset/21656

Modified:
   gnucash/trunk/src/core-utils/gnc-path.c
Log:
[Testing] Provide for gnc_path_get_reportdir() and gnc_path_get_stdreportsdir() to return build-directory paths

As with engine, in response to environment variables GNC_UNINSTALLED and GNC_BUILDDIR.
GNC_UNINSTALLED is intended to be set via g_setenv() or (setenv) at the beginning of a test program. GNC_BUILDDIR is intended to be set with
GNC_BUILDDIR=`cd ${top_builddir} && pwd`
as part of the TESTS_ENVIRONMENT variable in test Makefiles.

Modified: gnucash/trunk/src/core-utils/gnc-path.c
===================================================================
--- gnucash/trunk/src/core-utils/gnc-path.c	2011-12-02 21:59:56 UTC (rev 21655)
+++ gnucash/trunk/src/core-utils/gnc-path.c	2011-12-02 22:00:05 UTC (rev 21656)
@@ -154,10 +154,19 @@
  * @returns A newly allocated string. */
 gchar *gnc_path_get_reportdir()
 {
-    gchar *pkgdatadir = gnc_path_get_pkgdatadir ();
-    gchar *result = g_build_filename (pkgdatadir, "guile-modules",
+    gchar *result;
+    const gchar *builddir = g_getenv ("GNC_BUILDDIR");
+    if (g_getenv ("GNC_UNINSTALLED") && builddir)
+    {
+	result = g_build_filename (builddir, "src", "report", NULL);
+    }
+    else
+    {
+	gchar *pkgdatadir = gnc_path_get_pkgdatadir ();
+	result = g_build_filename (pkgdatadir, "guile-modules",
                                       "gnucash", "report", (char*)NULL);
-    g_free (pkgdatadir);
+	g_free (pkgdatadir);
+    }
     //printf("Returning stdreportsdir %s\n", result);
     return result;
 }
@@ -169,8 +178,17 @@
  * @returns A newly allocated string. */
 gchar *gnc_path_get_stdreportsdir()
 {
+    gchar *result;
     gchar *reportdir = gnc_path_get_reportdir ();
-    gchar *result = g_build_filename (reportdir, "standard-reports", (char*)NULL);
+    if (g_getenv ("GNC_UNINSTALLED"))
+    {
+	result = g_build_filename (reportdir, "standard-reports", "gnucash",
+				   "report", "standard-reports", NULL);
+    }
+    else
+    {
+	result = g_build_filename (reportdir, "standard-reports", NULL);
+    }
     g_free (reportdir);
     //printf("Returning stdreportsdir %s\n", result);
     return result;



More information about the gnucash-changes mailing list