gnucash master: Multiple changes pushed

Geert Janssens gjanssens at code.gnucash.org
Fri May 4 04:25:44 EDT 2018


Updated	 via  https://github.com/Gnucash/gnucash/commit/52ac539d (commit)
	 via  https://github.com/Gnucash/gnucash/commit/85c7f7d1 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/5aacb581 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/a9f35ed7 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/65c71390 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/92afea59 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/50e109a9 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/02cfd017 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/f2337406 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/52d5f0ba (commit)
	 via  https://github.com/Gnucash/gnucash/commit/85e0a737 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/075c0c4d (commit)
	 via  https://github.com/Gnucash/gnucash/commit/0c6b9295 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/02266d72 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/07a54858 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/1b814f44 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/be9b16c5 (commit)
	from  https://github.com/Gnucash/gnucash/commit/6be7e82b (commit)



commit 52ac539d2334821749241d7e9c8f7bf09116f6cf
Merge: 6be7e82 85c7f7d
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Fri May 4 10:25:38 2018 +0200

    Merge branch 'maint' into master
    
    Handle conflict between version number reset and lowercasing all commands

diff --cc CMakeLists.txt
index 2b1e421,e58f9f1..aad63a8
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@@ -1,28 -1,28 +1,28 @@@
  # CMakeLists.txt for GnuCash
  
- IF (WIN32 OR APPLE)
-   CMAKE_MINIMUM_REQUIRED (VERSION 3.3.2)
- ELSE()
-   CMAKE_MINIMUM_REQUIRED (VERSION 3.0)
- ENDIF()
+ if (WIN32 OR APPLE)
+   cmake_minimum_required (VERSION 3.3.2)
+ else()
+   cmake_minimum_required (VERSION 3.0)
+ endif()
  
- PROJECT (gnucash)
+ project (gnucash)
  
- ENABLE_TESTING()
+ enable_testing()
  
  # Version number of gnucash
- SET (GNUCASH_MAJOR_VERSION 3)
- SET (GNUCASH_MINOR_VERSION 900)
- SET (VERSION "${GNUCASH_MAJOR_VERSION}.${GNUCASH_MINOR_VERSION}")
- SET (GNUCASH_LATEST_STABLE_SERIES 3.x)
- 
- SET (PACKAGE gnucash)
- SET (PACKAGE_NAME GnuCash)
- SET (PACKAGE_VERSION 3.900)
- SET (PACKAGE_BUGREPORT gnucash-devel at gnucash.org)
- SET (PACKAGE_TARNAME ${PACKAGE})
- SET (PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
- SET (PACKAGE_URL "")
+ set (GNUCASH_MAJOR_VERSION 3)
 -set (GNUCASH_MINOR_VERSION 1)
++set (GNUCASH_MINOR_VERSION 900)
+ set (VERSION "${GNUCASH_MAJOR_VERSION}.${GNUCASH_MINOR_VERSION}")
+ set (GNUCASH_LATEST_STABLE_SERIES 3.x)
+ 
+ set (PACKAGE gnucash)
+ set (PACKAGE_NAME GnuCash)
 -set (PACKAGE_VERSION 3.1)
++set (PACKAGE_VERSION 3.900)
+ set (PACKAGE_BUGREPORT gnucash-devel at gnucash.org)
+ set (PACKAGE_TARNAME ${PACKAGE})
+ set (PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
+ set (PACKAGE_URL "")
  
  # Change this in development versions when changing anything that
  # affects stored data structures. Reset to zero when bumping version.

commit 85c7f7d1cbc4aa23292f4b8f117df293165705b7
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Fri May 4 10:22:57 2018 +0200

    Install guile-json on the toplevel scm directory instead of gnucash
    
    It's imported code, not gnucash specific. In addition that's where the json
    script expexts to find it's subfiles.

diff --git a/borrowed/guile-json/CMakeLists.txt b/borrowed/guile-json/CMakeLists.txt
index 1298866..e3fba17 100644
--- a/borrowed/guile-json/CMakeLists.txt
+++ b/borrowed/guile-json/CMakeLists.txt
@@ -2,7 +2,7 @@ add_subdirectory(json)
 
 gnc_add_scheme_targets (guile-json
   json.scm
-  gnucash
+  ""
   ""
   FALSE
 )
diff --git a/borrowed/guile-json/json/CMakeLists.txt b/borrowed/guile-json/json/CMakeLists.txt
index 8250b8a..1b890b0 100644
--- a/borrowed/guile-json/json/CMakeLists.txt
+++ b/borrowed/guile-json/json/CMakeLists.txt
@@ -6,7 +6,7 @@ set (scm-guile-json-details
 
 gnc_add_scheme_targets (guile-json-details
   "${scm-guile-json-details}"
-  gnucash/json
+  json
   ""
   FALSE
 )

commit 5aacb581d781e7dc2cce821ad7a544f438fc9743
Merge: a9f35ed 1b814f4
Author: John Ralls <jralls at ceridwen.us>
Date:   Thu May 3 17:36:10 2018 -0400

    Merge PR116 into maint.

diff --cc gnucash/import-export/ofx/gnc-ofx-import.c
index 47d822c,0000000..b8df83e
mode 100644,000000..100644
--- a/gnucash/import-export/ofx/gnc-ofx-import.c
+++ b/gnucash/import-export/ofx/gnc-ofx-import.c
@@@ -1,1058 -1,0 +1,1075 @@@
 +/*******************************************************************\
 + * 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 at gnu.org                   *
 +\********************************************************************/
 +/** @addtogroup Import_Export
 +    @{ */
 +/** @internal
 +     @file gnc-ofx-import.c
 +     @brief Ofx import module code
 +     @author Copyright (c) 2002 Benoit Grégoire <bock at step.polymtl.ca>
 + */
 +#include <config.h>
 +
 +#include <gtk/gtk.h>
 +#include <glib/gi18n.h>
 +#include <stdio.h>
 +#include <string.h>
 +#include <sys/time.h>
 +#include <math.h>
 +
 +#include <libofx/libofx.h>
 +#include "import-account-matcher.h"
 +#include "import-commodity-matcher.h"
 +#include "import-utilities.h"
 +#include "import-main-matcher.h"
 +
 +#include "Account.h"
 +#include "Transaction.h"
 +#include "engine-helpers.h"
 +#include "gnc-ofx-import.h"
 +#include "gnc-file.h"
 +#include "gnc-engine.h"
 +#include "gnc-ui-util.h"
 +#include "gnc-glib-utils.h"
 +#include "gnc-prefs.h"
 +#include "gnc-ui.h"
 +#include "dialog-account.h"
 +#include "dialog-utils.h"
 +
 +#include "gnc-ofx-kvp.h"
 +
 +#define GNC_PREFS_GROUP "dialogs.import.ofx"
 +#define GNC_PREF_AUTO_COMMODITY "auto-create-commodity"
 +
 +static QofLogModule log_module = GNC_MOD_IMPORT;
 +
 +/********************************************************************\
 + * gnc_file_ofx_import
 + * Entry point
 +\********************************************************************/
 +
 +/* CS: Store the reference to the created importer gui so that the
 +   ofx_proc_transaction_cb can use it. */
 +GNCImportMainMatcher *gnc_ofx_importer_gui = NULL;
 +static gboolean auto_create_commodity = FALSE;
 +static Account *ofx_parent_account = NULL;
 +
 +GList *ofx_created_commodites = NULL;
 +
 +/*
 +int ofx_proc_status_cb(struct OfxStatusData data)
 +{
 +  return 0;
 +}
 +*/
 +
 +int ofx_proc_security_cb(const struct OfxSecurityData data, void * security_user_data);
 +int ofx_proc_transaction_cb (struct OfxTransactionData data, void *user_data);
 +int ofx_proc_account_cb(struct OfxAccountData data, void * account_user_data);
 +static double ofx_get_investment_amount(const struct OfxTransactionData* data);
 +
 +static const gchar *gnc_ofx_ttype_to_string(TransactionType t)
 +{
 +    switch (t)
 +    {
 +    case OFX_CREDIT:
 +        return "Generic credit";
 +    case OFX_DEBIT:
 +        return "Generic debit";
 +    case OFX_INT:
 +        return "Interest earned or paid (Note: Depends on signage of amount)";
 +    case OFX_DIV:
 +        return "Dividend";
 +    case OFX_FEE:
 +        return "FI fee";
 +    case OFX_SRVCHG:
 +        return "Service charge";
 +    case OFX_DEP:
 +        return "Deposit";
 +    case OFX_ATM:
 +        return "ATM debit or credit (Note: Depends on signage of amount)";
 +    case OFX_POS:
 +        return "Point of sale debit or credit (Note: Depends on signage of amount)";
 +    case OFX_XFER:
 +        return "Transfer";
 +    case OFX_CHECK:
 +        return "Check";
 +    case OFX_PAYMENT:
 +        return "Electronic payment";
 +    case OFX_CASH:
 +        return "Cash withdrawal";
 +    case OFX_DIRECTDEP:
 +        return "Direct deposit";
 +    case OFX_DIRECTDEBIT:
 +        return "Merchant initiated debit";
 +    case OFX_REPEATPMT:
 +        return "Repeating payment/standing order";
 +    case OFX_OTHER:
 +        return "Other";
 +    default:
 +        return "Unknown transaction type";
 +    }
 +}
 +
 +static const gchar *gnc_ofx_invttype_to_str(InvTransactionType t)
 +{
 +    switch (t)
 +    {
 +    case OFX_BUYDEBT:
 +        return "BUYDEBT (Buy debt security)";
 +    case OFX_BUYMF:
 +        return "BUYMF (Buy mutual fund)";
 +    case OFX_BUYOPT:
 +        return "BUYOPT (Buy option)";
 +    case OFX_BUYOTHER:
 +        return "BUYOTHER (Buy other security type)";
 +    case OFX_BUYSTOCK:
 +        return "BUYSTOCK (Buy stock))";
 +    case OFX_CLOSUREOPT:
 +        return "CLOSUREOPT (Close a position for an option)";
 +    case OFX_INCOME:
 +        return "INCOME (Investment income is realized as cash into the investment account)";
 +    case OFX_INVEXPENSE:
 +        return "INVEXPENSE (Misc investment expense that is associated with a specific security)";
 +    case OFX_JRNLFUND:
 +        return "JRNLFUND (Journaling cash holdings between subaccounts within the same investment account)";
 +    case OFX_MARGININTEREST:
 +        return "MARGININTEREST (Margin interest expense)";
 +    case OFX_REINVEST:
 +        return "REINVEST (Reinvestment of income)";
 +    case OFX_RETOFCAP:
 +        return "RETOFCAP (Return of capital)";
 +    case OFX_SELLDEBT:
 +        return "SELLDEBT (Sell debt security.  Used when debt is sold, called, or reached maturity)";
 +    case OFX_SELLMF:
 +        return "SELLMF (Sell mutual fund)";
 +    case OFX_SELLOPT:
 +        return "SELLOPT (Sell option)";
 +    case OFX_SELLOTHER:
 +        return "SELLOTHER (Sell other type of security)";
 +    case OFX_SELLSTOCK:
 +        return "SELLSTOCK (Sell stock)";
 +    case OFX_SPLIT:
 +        return "SPLIT (Stock or mutial fund split)";
 +    case OFX_TRANSFER:
 +        return "TRANSFER (Transfer holdings in and out of the investment account)";
 +    default:
 +        return "ERROR, this investment transaction type is unknown.  This is a bug in ofxdump";
 +    }
 +
 +}
 +
 +static gchar*
 +sanitize_string (gchar* str)
 +{
 +    gchar *inval;
 +    const int length = -1; /*Assumes str is null-terminated */
 +    while (!g_utf8_validate (str, length, (const gchar **)(&inval)))
 +	*inval = '@';
 +    return str;
 +}
 +
 +int ofx_proc_security_cb(const struct OfxSecurityData data, void * security_user_data)
 +{
 +    char* cusip = NULL;
 +    char* default_fullname = NULL;
 +    char* default_mnemonic = NULL;
 +
 +    if (data.unique_id_valid)
 +    {
 +        cusip = gnc_utf8_strip_invalid_strdup (data.unique_id);
 +    }
 +    if (data.secname_valid)
 +    {
 +        default_fullname = gnc_utf8_strip_invalid_strdup (data.secname);
 +    }
 +    if (data.ticker_valid)
 +    {
 +        default_mnemonic = gnc_utf8_strip_invalid_strdup (data.ticker);
 +    }
 +
 +    if (auto_create_commodity)
 +    {
 +        gnc_commodity *commodity =
 +            gnc_import_select_commodity(cusip,
 +                                        FALSE,
 +                                        default_fullname,
 +                                        default_mnemonic);
 +
 +        if (!commodity)
 +        {
 +            QofBook *book = gnc_get_current_book();
 +            gnc_quote_source *source;
 +            gint source_selection = 0; // FIXME: This is just a wild guess
 +            char *commodity_namespace = NULL;
 +            int fraction = 1;
 +
 +            if (data.unique_id_type_valid)
 +            {
 +                commodity_namespace = gnc_utf8_strip_invalid_strdup (data.unique_id_type);
 +            }
 +
 +            g_warning("Creating a new commodity, cusip=%s", cusip);
 +            /* Create the new commodity */
 +            commodity = gnc_commodity_new(book,
 +                                          default_fullname,
 +                                          commodity_namespace,
 +                                          default_mnemonic,
 +                                          cusip,
 +                                          fraction);
 +
 +            /* Also set a single quote source */
 +            gnc_commodity_begin_edit(commodity);
 +            gnc_commodity_user_set_quote_flag (commodity, TRUE);
 +            source = gnc_quote_source_lookup_by_ti (SOURCE_SINGLE, source_selection);
 +            gnc_commodity_set_quote_source(commodity, source);
 +            gnc_commodity_commit_edit(commodity);
 +
 +            /* Remember the commodity */
 +            gnc_commodity_table_insert(gnc_get_current_commodities(), commodity);
 +
 +            /* Remember this new commodity for us as well */
 +            ofx_created_commodites = g_list_prepend(ofx_created_commodites, commodity);
 +	    g_free (commodity_namespace);
 +
 +        }
 +    }
 +    else
 +    {
 +        gnc_import_select_commodity(cusip,
 +                                    TRUE,
 +                                    default_fullname,
 +                                    default_mnemonic);
 +    }
 +
 +    g_free (cusip);
 +    g_free (default_mnemonic);
 +    g_free (default_fullname);
 +    return 0;
 +}
 +
 +static void gnc_ofx_set_split_memo(const struct OfxTransactionData* data, Split *split)
 +{
 +    g_assert(data);
 +    g_assert(split);
 +    /* Also put the ofx transaction name in
 +     * the splits memo field, or ofx memo if
 +     * name is unavailable */
 +    if (data->name_valid)
 +    {
 +        xaccSplitSetMemo(split, data->name);
 +    }
 +    else if (data->memo_valid)
 +    {
 +        xaccSplitSetMemo(split, data->memo);
 +    }
 +}
 +static gnc_numeric gnc_ofx_numeric_from_double(double value, const gnc_commodity *commodity)
 +{
 +    return double_to_gnc_numeric (value,
 +                                  gnc_commodity_get_fraction(commodity),
 +                                  GNC_HOW_RND_ROUND_HALF_UP);
 +}
 +static gnc_numeric gnc_ofx_numeric_from_double_txn(double value, const Transaction* txn)
 +{
 +    return gnc_ofx_numeric_from_double(value, xaccTransGetCurrency(txn));
 +}
 +
 +/* Opens the dialog to create a new account with given name, commodity, parent, type.
 + * Returns the new account, or NULL if it couldn't be created.. */
 +static Account *gnc_ofx_new_account(GtkWindow* parent,
 +                                    const char* name,
 +                                    const gnc_commodity * account_commodity,
 +                                    Account *parent_account,
 +                                    GNCAccountType new_account_default_type)
 +{
 +    Account *result;
 +    GList * valid_types = NULL;
 +
 +    g_assert(name);
 +    g_assert(account_commodity);
 +    g_assert(parent_account);
 +
 +    if (new_account_default_type != ACCT_TYPE_NONE)
 +    {
 +        // Passing the types as gpointer
 +        valid_types =
 +            g_list_prepend(valid_types,
 +                           GINT_TO_POINTER(new_account_default_type));
 +        if (!xaccAccountTypesCompatible(xaccAccountGetType(parent_account), new_account_default_type))
 +        {
 +            // Need to add the parent's account type
 +            valid_types =
 +                g_list_prepend(valid_types,
 +                               GINT_TO_POINTER(xaccAccountGetType(parent_account)));
 +        }
 +    }
 +    result = gnc_ui_new_accounts_from_name_with_defaults (parent, name,
 +                                                          valid_types,
 +                                                          account_commodity,
 +                                                          parent_account);
 +    g_list_free(valid_types);
 +    return result;
 +}
 +/* LibOFX has a daylight time handling bug,
 + * https://sourceforge.net/p/libofx/bugs/39/, which causes it to adjust the
 + * timestamp for daylight time even when daylight time is not in
 + * effect. HAVE_OFX_BUG_39 reflects the result of checking for this bug during
 + * configuration, and fix_ofx_bug_39() corrects for it.
 + */
 +static time64
 +fix_ofx_bug_39 (time64 t)
 +{
 +#if HAVE_OFX_BUG_39
 +    struct tm stm;
++
++#ifdef __FreeBSD__
++    time64 now;
++    /*
++     * FreeBSD has it's own libc implementation which differs from glibc. In particular:
++     * There is no daylight global
++     * tzname members are set to the string "   " (three spaces) when not explicitly populated
++     *
++     * To check that the current timezone does not observe DST I check if tzname[1] starts with a space.
++     */
++    now = gnc_time (NULL);
++    gnc_localtime_r(&now, &stm);
++    tzset();
++
++    if (tzname[1][0] != ' ' && !stm.tm_isdst)
++#else
 +    gnc_localtime_r(&t, &stm);
 +    if (daylight && !stm.tm_isdst)
++#endif
 +        t += 3600;
 +#endif
 +    return t;
 +}
 +
 +int ofx_proc_transaction_cb(struct OfxTransactionData data, void *user_data)
 +{
 +    char dest_string[255];
 +    time64 current_time = gnc_time (NULL);
 +    Account *account;
 +    Account *investment_account = NULL;
 +    Account *income_account = NULL;
 +    gchar *investment_account_text, *investment_account_onlineid;
 +    gnc_commodity *currency = NULL;
 +    gnc_commodity *investment_commodity = NULL;
 +    gnc_numeric gnc_amount, gnc_units;
 +    QofBook *book;
 +    Transaction *transaction;
 +    Split *split;
 +    gchar *notes, *tmp;
 +    GtkWindow *parent = GTK_WINDOW (user_data);
 +
 +    g_assert(gnc_ofx_importer_gui);
 +
 +    if (!data.account_id_valid)
 +    {
 +        PERR("account ID for this transaction is unavailable!");
 +        return 0;
 +    }
 +    else
 +	gnc_utf8_strip_invalid (data.account_id);
 +
 +    account = gnc_import_select_account(gnc_gen_trans_list_widget(gnc_ofx_importer_gui),
 +                                        data.account_id,
 +					0, NULL, NULL, ACCT_TYPE_NONE,
 +					NULL, NULL);
 +    if (account == NULL)
 +    {
 +        PERR("Unable to find account for id %s", data.account_id);
 +        return 0;
 +    }
 +    /***** Validate the input strings to ensure utf8 *****/
 +    if (data.name_valid)
 +        gnc_utf8_strip_invalid(data.name);
 +    if (data.memo_valid)
 +        gnc_utf8_strip_invalid(data.memo);
 +    if (data.check_number_valid)
 +        gnc_utf8_strip_invalid(data.check_number);
 +    if (data.reference_number_valid)
 +        gnc_utf8_strip_invalid(data.reference_number);
 +
 +    /***** Create the transaction and setup transaction data *******/
 +    book = gnc_account_get_book(account);
 +    transaction = xaccMallocTransaction(book);
 +    xaccTransBeginEdit(transaction);
 +
 +    /* Note: Unfortunately libofx <= 0.9.5 will not report a missing
 +     * date field as an invalid one. Instead, it will report it as
 +     * valid and return a completely bogus date. Starting with
 +     * libofx-0.9.6 (not yet released as of 2012-09-09), it will still
 +     * be reported as valid but at least the date integer itself is
 +     * just plain zero. */
 +    if (data.date_posted_valid && (data.date_posted != 0))
 +    {
 +        /* The hopeful case: We have a posted_date */
 +        data.date_posted = fix_ofx_bug_39 (data.date_posted);
 +        xaccTransSetDatePostedSecsNormalized(transaction, data.date_posted);
 +    }
 +    else if (data.date_initiated_valid && (data.date_initiated != 0))
 +    {
 +        /* No posted date? Maybe we have an initiated_date */
 +        data.date_initiated = fix_ofx_bug_39 (data.date_initiated);
 +        xaccTransSetDatePostedSecsNormalized(transaction, data.date_initiated);
 +    }
 +    else
 +    {
 +        /* Uh no, no valid date. As a workaround use today's date */
 +        xaccTransSetDatePostedSecsNormalized(transaction, current_time);
 +    }
 +
 +    xaccTransSetDateEnteredSecs(transaction, current_time);
 +
 +    /* Put transaction name in Description, or memo if name unavailable */
 +    if (data.name_valid)
 +    {
 +        xaccTransSetDescription(transaction, data.name);
 +    }
 +    else if (data.memo_valid)
 +    {
 +        xaccTransSetDescription(transaction, data.memo);
 +    }
 +
 +    /* Put everything else in the Notes field */
 +    notes = g_strdup_printf("OFX ext. info: ");
 +
 +    if (data.transactiontype_valid)
 +    {
 +        tmp = notes;
 +        notes = g_strdup_printf("%s%s%s", tmp, "|Trans type:",
 +                                gnc_ofx_ttype_to_string(data.transactiontype));
 +        g_free(tmp);
 +    }
 +
 +    if (data.invtransactiontype_valid)
 +    {
 +        tmp = notes;
 +        notes = g_strdup_printf("%s%s%s", tmp, "|Investment Trans type:",
 +                                gnc_ofx_invttype_to_str(data.invtransactiontype));
 +        g_free(tmp);
 +    }
 +    if (data.memo_valid && data.name_valid) /* Copy only if memo wasn't put in Description */
 +    {
 +        tmp = notes;
 +        notes = g_strdup_printf("%s%s%s", tmp, "|Memo:", data.memo);
 +        g_free(tmp);
 +    }
 +    if (data.date_funds_available_valid)
 +    {
 +        Timespec ts;
 +        timespecFromTime64(&ts, data.date_funds_available);
 +        gnc_timespec_to_iso8601_buff (ts, dest_string);
 +        tmp = notes;
 +        notes = g_strdup_printf("%s%s%s", tmp,
 +				"|Date funds available:", dest_string);
 +        g_free(tmp);
 +    }
 +    if (data.server_transaction_id_valid)
 +    {
 +        tmp = notes;
 +        notes = g_strdup_printf("%s%s%s", tmp,
 +				"|Server trans ID (conf. number):",
 +				sanitize_string (data.server_transaction_id));
 +        g_free(tmp);
 +    }
 +    if (data.standard_industrial_code_valid)
 +    {
 +        tmp = notes;
 +        notes = g_strdup_printf("%s%s%ld", tmp,
 +				"|Standard Industrial Code:",
 +                                data.standard_industrial_code);
 +        g_free(tmp);
 +
 +    }
 +    if (data.payee_id_valid)
 +    {
 +        tmp = notes;
 +        notes = g_strdup_printf("%s%s%s", tmp, "|Payee ID:",
 +				sanitize_string (data.payee_id));
 +        g_free(tmp);
 +    }
 +
 +    //PERR("WRITEME: GnuCash ofx_proc_transaction():Add PAYEE and ADRESS here once supported by libofx! Notes=%s\n", notes);
 +
 +    /* Ideally, gnucash should process the corrected transactions */
 +    if (data.fi_id_corrected_valid)
 +    {
 +        PERR("WRITEME: GnuCash ofx_proc_transaction(): WARNING: This transaction corrected a previous transaction, but we created a new one instead!\n");
 +        tmp = notes;
 +        notes = g_strdup_printf("%s%s%s%s", tmp,
 +				"|This corrects transaction #",
 +				sanitize_string (data.fi_id_corrected),
 +				"but GnuCash didn't process the correction!");
 +        g_free(tmp);
 +    }
 +    xaccTransSetNotes(transaction, notes);
 +    g_free(notes);
 +
 +    if (data.account_ptr && data.account_ptr->currency_valid)
 +    {
 +        DEBUG("Currency from libofx: %s", data.account_ptr->currency);
 +        currency = gnc_commodity_table_lookup( gnc_get_current_commodities (),
 +                                               GNC_COMMODITY_NS_CURRENCY,
 +                                               data.account_ptr->currency);
 +    }
 +    else
 +    {
 +        DEBUG("Currency from libofx unavailable, defaulting to account's default");
 +        currency = xaccAccountGetCommodity(account);
 +    }
 +
 +    xaccTransSetCurrency(transaction, currency);
 +    if (data.amount_valid)
 +    {
 +        if (!data.invtransactiontype_valid)
 +        {
 +            /***** Process a normal transaction ******/
 +            DEBUG("Adding split; Ordinary banking transaction, money flows from or into the source account");
 +            split = xaccMallocSplit(book);
 +            xaccTransAppendSplit(transaction, split);
 +            xaccAccountInsertSplit(account, split);
 +
 +            gnc_amount = gnc_ofx_numeric_from_double_txn(data.amount, transaction);
 +            xaccSplitSetBaseValue(split, gnc_amount, xaccTransGetCurrency(transaction));
 +
 +            /* set tran-num and/or split-action per book option */
 +            if (data.check_number_valid)
 +            {
 +                gnc_set_num_action(transaction, split, data.check_number, NULL);
 +            }
 +            else if (data.reference_number_valid)
 +            {
 +                gnc_set_num_action(transaction, split, data.reference_number, NULL);
 +            }
 +            /* Also put the ofx transaction's memo in the
 +             * split's memo field */
 +            if (data.memo_valid)
 +            {
 +                xaccSplitSetMemo(split, data.memo);
 +            }
 +            if (data.fi_id_valid)
 +            {
 +                gnc_import_set_split_online_id(split,
 +					       sanitize_string (data.fi_id));
 +            }
 +        }
 +
 +        else if (data.unique_id_valid
 +                 && data.security_data_valid
 +                 && data.security_data_ptr != NULL
 +                 && data.security_data_ptr->secname_valid)
 +        {
 +            gboolean choosing_account = TRUE;
 +	    gnc_utf8_strip_invalid (data.unique_id);
 +            /********* Process an investment transaction **********/
 +            /* Note that the ACCT_TYPE_STOCK account type
 +               should be replaced with something derived from
 +               data.invtranstype*/
 +
 +            // We have an investment transaction. First select the correct commodity.
 +            investment_commodity = gnc_import_select_commodity(data.unique_id,
 +                                   FALSE,
 +                                   NULL,
 +                                   NULL);
 +            if (investment_commodity != NULL)
 +            {
 +                // As we now have the commodity, select the account with that commodity.
 +
 +                investment_account_text = g_strdup_printf( /* This string is a default account
 +                                                              name. It MUST NOT contain the
 +                                                              character ':' anywhere in it or
 +                                                              in any translations.  */
 +                                         _("Stock account for security \"%s\""),
 +                             sanitize_string (data.security_data_ptr->secname));
 +
 +                investment_account_onlineid = g_strdup_printf( "%s%s",
 +							       data.account_id,
 +							       data.unique_id);
 +                investment_account = gnc_import_select_account(
 +                                     gnc_gen_trans_list_widget(gnc_ofx_importer_gui),
 +                                     investment_account_onlineid,
 +                                     1,
 +                                     investment_account_text,
 +                                     investment_commodity,
 +                                     ACCT_TYPE_STOCK,
 +                                     NULL,
 +                                     NULL);
 +
 +                // but use it only if that's really the right commodity
 +                if (investment_account
 +                        && xaccAccountGetCommodity(investment_account) != investment_commodity)
 +                    investment_account = NULL;
 +
 +                // Loop until we either have an account, or the user pressed Cancel
 +                while (!investment_account && choosing_account)
 +                {
 +                    // No account with correct commodity automatically found.
 +
 +                    // But are we in auto-create mode and already know a parent?
 +                    if (auto_create_commodity && ofx_parent_account)
 +                    {
 +                        // Yes, so use that as parent when auto-creating the new account below.
 +                        investment_account = ofx_parent_account;
 +                    }
 +                    else
 +                    {
 +                        // Let the user choose an account
 +                        investment_account = gnc_import_select_account(
 +                                                 gnc_gen_trans_list_widget(gnc_ofx_importer_gui),
 +                                                 data.unique_id,
 +                                                 TRUE,
 +                                                 investment_account_text,
 +                                                 investment_commodity,
 +                                                 ACCT_TYPE_STOCK,
 +                                                 NULL,
 +                                                 &choosing_account);
 +                    }
 +                    // Does the chosen account have the right commodity?
 +                    if (investment_account && xaccAccountGetCommodity(investment_account) != investment_commodity)
 +                    {
 +                        if (auto_create_commodity
 +                                && xaccAccountTypesCompatible(xaccAccountGetType(investment_account),
 +                                                              ACCT_TYPE_STOCK))
 +                        {
 +                            // The user chose an account, but it does
 +                            // not have the right commodity. Also,
 +                            // auto-creation is on. Hence, we create a
 +                            // new child account of the selected one,
 +                            // and this one will have the right
 +                            // commodity.
 +                            Account *parent_account = investment_account;
 +                            investment_account =
 +                                gnc_ofx_new_account(parent,
 +                                                    investment_account_text,
 +                                                    investment_commodity,
 +                                                    parent_account,
 +                                                    ACCT_TYPE_STOCK);
 +                            if (investment_account)
 +                            {
 +                                gnc_import_set_acc_online_id(investment_account, data.unique_id);
 +                                choosing_account = FALSE;
 +                                ofx_parent_account = parent_account;
 +                            }
 +                            else
 +                            {
 +                                ofx_parent_account = NULL;
 +                            }
 +                        }
 +                        else
 +                        {
 +                            // No account with matching commodity. Ask the user
 +                            // whether to continue or abort.
 +                            choosing_account =
 +                                gnc_verify_dialog(
 +                                    GTK_WINDOW (gnc_gen_trans_list_widget(gnc_ofx_importer_gui)), TRUE,
 +                                    "The chosen account \"%s\" does not have the correct "
 +                                    "currency/security \"%s\" (it has \"%s\" instead). "
 +                                    "This account cannot be used. "
 +                                    "Do you want to choose again?",
 +                                    xaccAccountGetName(investment_account),
 +                                    gnc_commodity_get_fullname(investment_commodity),
 +                                    gnc_commodity_get_fullname(xaccAccountGetCommodity(investment_account)));
 +                            // We must also delete the online_id that was set in gnc_import_select_account()
 +                            gnc_import_set_acc_online_id(investment_account, "");
 +                            investment_account = NULL;
 +                        }
 +                    }
 +                }
 +                if (!investment_account)
 +                {
 +                    PERR("No investment account found for text: %s\n", investment_account_text);
 +                }
 +                g_free (investment_account_text);
 +                g_free (investment_account_onlineid);
 +                investment_account_text = NULL;
 +
 +                if (investment_account != NULL &&
 +                        data.unitprice_valid &&
 +                        data.units_valid &&
 +                        ( data.invtransactiontype != OFX_INCOME ) )
 +                {
 +                    DEBUG("Adding investment split; Money flows from or into the stock account");
 +                    split = xaccMallocSplit(book);
 +                    xaccTransAppendSplit(transaction, split);
 +                    xaccAccountInsertSplit(investment_account, split);
 +
 +                    gnc_amount = gnc_ofx_numeric_from_double_txn (ofx_get_investment_amount(&data),
 +                                 transaction);
 +                    gnc_units = gnc_ofx_numeric_from_double (data.units, investment_commodity);
 +                    xaccSplitSetAmount(split, gnc_units);
 +                    xaccSplitSetValue(split, gnc_amount);
 +
 +                    /* set tran-num and/or split-action per book option */
 +                    if (data.check_number_valid)
 +                    {
 +                        gnc_set_num_action(transaction, split, data.check_number, NULL);
 +                    }
 +                    else if (data.reference_number_valid)
 +                    {
 +                        gnc_set_num_action(transaction, split,
 +                                           data.reference_number, NULL);
 +                    }
 +                    if (data.security_data_ptr->memo_valid)
 +                    {
 +                        xaccSplitSetMemo(split,
 +                                sanitize_string (data.security_data_ptr->memo));
 +                    }
 +                    if (data.fi_id_valid)
 +                    {
 +                        gnc_import_set_split_online_id(split,
 +                                                 sanitize_string (data.fi_id));
 +                    }
 +                }
 +                else
 +                {
 +                    if (investment_account)
 +                        PERR("The investment account, units or unitprice was not found for the investment transaction");
 +                }
 +            }
 +            else
 +            {
 +                PERR("Commodity not found for the investment transaction");
 +            }
 +
 +            if (data.invtransactiontype_valid && investment_account)
 +            {
 +                if (data.invtransactiontype == OFX_REINVEST
 +                        || data.invtransactiontype == OFX_INCOME)
 +                {
 +                    DEBUG("Now let's find an account for the destination split");
 +
 +                    income_account = gnc_ofx_kvp_get_assoc_account(investment_account);
 +
 +                    if (income_account == NULL)
 +                    {
 +                        DEBUG("Couldn't find an associated income account");
 +                        investment_account_text = g_strdup_printf( /* This string is a default account
 +                                                                      name. It MUST NOT contain the
 +                                                                      character ':' anywhere in it or
 +                                                                      in any translations.  */
 +                                                      _("Income account for security \"%s\""),
 +                                                      sanitize_string (data.security_data_ptr->secname));
 +                        income_account = gnc_import_select_account(
 +                                             gnc_gen_trans_list_widget(gnc_ofx_importer_gui),
 +                                             NULL,
 +                                             1,
 +                                             investment_account_text,
 +                                             currency,
 +                                             ACCT_TYPE_INCOME,
 +                                             NULL,
 +                                             NULL);
 +                        if (income_account != NULL)
 +                        {
 +                            gnc_ofx_kvp_set_assoc_account(investment_account,
 +                                                          income_account);
 +                            DEBUG("KVP written");
 +                        }
 +
 +                    }
 +                    else
 +                    {
 +                        DEBUG("Found at least one associated income account");
 +                    }
 +                }
 +                if (income_account != NULL &&
 +                        data.invtransactiontype == OFX_REINVEST)
 +                {
 +                    DEBUG("Adding investment split; Money flows from the income account");
 +                    split = xaccMallocSplit(book);
 +                    xaccTransAppendSplit(transaction, split);
 +                    xaccAccountInsertSplit(income_account, split);
 +
 +                    gnc_amount = gnc_ofx_numeric_from_double_txn (data.amount, transaction);
 +                    xaccSplitSetBaseValue(split, gnc_amount, xaccTransGetCurrency(transaction));
 +
 +                    // Set split memo from ofx transaction name or memo
 +                    gnc_ofx_set_split_memo(&data, split);
 +                }
 +                if (income_account != NULL &&
 +                        data.invtransactiontype == OFX_INCOME)
 +                {
 +                    DEBUG("Adding investment split; Money flows from the income account");
 +                    split = xaccMallocSplit(book);
 +                    xaccTransAppendSplit(transaction, split);
 +                    xaccAccountInsertSplit(income_account, split);
 +
 +                    gnc_amount = gnc_ofx_numeric_from_double_txn (-data.amount,/*OFX_INCOME amounts come in as positive numbers*/
 +                                 transaction);
 +                    xaccSplitSetBaseValue(split, gnc_amount, xaccTransGetCurrency(transaction));
 +
 +                    // Set split memo from ofx transaction name or memo
 +                    gnc_ofx_set_split_memo(&data, split);
 +                }
 +            }
 +
 +            if (data.invtransactiontype_valid
 +                    && data.invtransactiontype != OFX_REINVEST)
 +            {
 +                DEBUG("Adding investment split; Money flows from or to the cash account");
 +                split = xaccMallocSplit(book);
 +                xaccTransAppendSplit(transaction, split);
 +                xaccAccountInsertSplit(account, split);
 +
 +                gnc_amount = gnc_ofx_numeric_from_double_txn(
 +                                 -ofx_get_investment_amount(&data), transaction);
 +                xaccSplitSetBaseValue(split, gnc_amount,
 +                                      xaccTransGetCurrency(transaction));
 +
 +                // Set split memo from ofx transaction name or memo
 +                gnc_ofx_set_split_memo(&data, split);
 +            }
 +        }
 +
 +        /* Send transaction to importer GUI. */
 +        if (xaccTransCountSplits(transaction) > 0)
 +        {
 +            DEBUG("%d splits sent to the importer gui", xaccTransCountSplits(transaction));
 +            gnc_gen_trans_list_add_trans (gnc_ofx_importer_gui, transaction);
 +        }
 +        else
 +        {
 +            PERR("No splits in transaction (missing account?), ignoring.");
 +            xaccTransDestroy(transaction);
 +            xaccTransCommitEdit(transaction);
 +        }
 +    }
 +    else
 +    {
 +        PERR("The transaction doesn't have a valid amount");
 +        xaccTransDestroy(transaction);
 +        xaccTransCommitEdit(transaction);
 +    }
 +
 +    return 0;
 +}//end ofx_proc_transaction()
 +
 +/*
 +int ofx_proc_statement_cb(struct OfxStatementData data, void * statement_user_data)
 +{
 +  return 0;
 +}//end ofx_proc_statement()
 +*/
 +
 +int ofx_proc_account_cb(struct OfxAccountData data, void * account_user_data)
 +{
 +    gnc_commodity_table * commodity_table;
 +    gnc_commodity * default_commodity;
 +    GNCAccountType default_type = ACCT_TYPE_NONE;
 +    gchar * account_description;
 +    /* In order to trigger a book options display on the creation of a new book,
 +     * we need to detect when we are dealing with a new book. */
 +    gboolean new_book = gnc_is_new_book();
 +
 +    const gchar * account_type_name = _("Unknown OFX account");
 +
 +    if (data.account_id_valid)
 +    {
 +        commodity_table = gnc_get_current_commodities ();
 +        if (data.currency_valid)
 +        {
 +            DEBUG("Currency from libofx: %s", data.currency);
 +            default_commodity = gnc_commodity_table_lookup(commodity_table,
 +                                GNC_COMMODITY_NS_CURRENCY,
 +                                data.currency);
 +        }
 +        else
 +        {
 +            default_commodity = NULL;
 +        }
 +
 +        if (data.account_type_valid)
 +        {
 +            switch (data.account_type)
 +            {
 +            case OFX_CHECKING :
 +                default_type = ACCT_TYPE_BANK;
 +                account_type_name = _("Unknown OFX checking account");
 +                break;
 +            case OFX_SAVINGS :
 +                default_type = ACCT_TYPE_BANK;
 +                account_type_name = _("Unknown OFX savings account");
 +                break;
 +            case OFX_MONEYMRKT :
 +                default_type = ACCT_TYPE_MONEYMRKT;
 +                account_type_name = _("Unknown OFX money market account");
 +                break;
 +            case OFX_CREDITLINE :
 +                default_type = ACCT_TYPE_CREDITLINE;
 +                account_type_name = _("Unknown OFX credit line account");
 +                break;
 +            case OFX_CMA :
 +                default_type = ACCT_TYPE_NONE;
 +                /* Cash Management Account */
 +                account_type_name = _("Unknown OFX CMA account");
 +                break;
 +            case OFX_CREDITCARD :
 +                default_type = ACCT_TYPE_CREDIT;
 +                account_type_name = _("Unknown OFX credit card account");
 +                break;
 +            case OFX_INVESTMENT :
 +                default_type = ACCT_TYPE_BANK;
 +                account_type_name = _("Unknown OFX investment account");
 +                break;
 +            default:
 +                PERR("WRITEME: ofx_proc_account() This is an unknown account type!");
 +                break;
 +            }
 +        }
 +
 +        /* If the OFX importer was started in Gnucash in a 'new_book' situation,
 +         * as described above, the first time the 'ofx_proc_account_cb' function
 +         * is called a book is created. (This happens after the 'new_book' flag
 +         * is set in 'gnc_get_current_commodities', called above.) So, before
 +         * calling 'gnc_import_select_account', allow the user to set book
 +         * options. */
 +        if (new_book)
 +            new_book = gnc_new_book_option_display (GTK_WIDGET (gnc_ui_get_main_window (NULL)));
 +
 +        gnc_utf8_strip_invalid(data.account_name);
 +        gnc_utf8_strip_invalid(data.account_id);
 +        account_description = g_strdup_printf( /* This string is a default account
 +                                                  name. It MUST NOT contain the
 +                                                  character ':' anywhere in it or
 +                                                  in any translation.  */
 +                                  "%s \"%s\"",
 +                                  account_type_name,
 +                                  data.account_name);
 +        gnc_import_select_account(gnc_gen_trans_list_widget(gnc_ofx_importer_gui),
 +                                  data.account_id, 1,
 +                                  account_description, default_commodity,
 +                                  default_type, NULL, NULL);
 +        g_free(account_description);
 +    }
 +    else
 +    {
 +        PERR("account online ID not available");
 +    }
 +
 +    return 0;
 +}
 +
 +double ofx_get_investment_amount(const struct OfxTransactionData* data)
 +{
 +    g_assert(data);
 +    switch (data->invtransactiontype)
 +    {
 +    case OFX_BUYDEBT:
 +    case OFX_BUYMF:
 +    case OFX_BUYOPT:
 +    case OFX_BUYOTHER:
 +    case OFX_BUYSTOCK:
 +        return fabs(data->amount);
 +    case OFX_SELLDEBT:
 +    case OFX_SELLMF:
 +    case OFX_SELLOPT:
 +    case OFX_SELLOTHER:
 +    case OFX_SELLSTOCK:
 +        return -1 * fabs(data->amount);
 +    default:
 +        return -1 * data->amount;
 +    }
 +}
 +
 +void gnc_file_ofx_import (GtkWindow *parent)
 +{
 +    extern int ofx_PARSER_msg;
 +    extern int ofx_DEBUG_msg;
 +    extern int ofx_WARNING_msg;
 +    extern int ofx_ERROR_msg;
 +    extern int ofx_INFO_msg;
 +    extern int ofx_STATUS_msg;
 +    char *selected_filename;
 +    char *default_dir;
 +    LibofxContextPtr libofx_context = libofx_get_new_context();
 +
 +    ofx_PARSER_msg = false;
 +    ofx_DEBUG_msg = false;
 +    ofx_WARNING_msg = true;
 +    ofx_ERROR_msg = true;
 +    ofx_INFO_msg = true;
 +    ofx_STATUS_msg = false;
 +
 +    DEBUG("gnc_file_ofx_import(): Begin...\n");
 +
 +    default_dir = gnc_get_default_directory(GNC_PREFS_GROUP);
 +    selected_filename = gnc_file_dialog(parent,
 +                                        _("Select an OFX/QFX file to process"),
 +                                        NULL,
 +                                        default_dir,
 +                                        GNC_FILE_DIALOG_IMPORT);
 +    g_free(default_dir);
 +
 +    if (selected_filename != NULL)
 +    {
 +#ifdef G_OS_WIN32
 +        gchar *conv_name;
 +#endif
 +
 +        /* Remember the directory as the default. */
 +        default_dir = g_path_get_dirname(selected_filename);
 +        gnc_set_default_directory(GNC_PREFS_GROUP, default_dir);
 +        g_free(default_dir);
 +
 +        /*strncpy(file,selected_filename, 255);*/
 +        DEBUG("Filename found: %s", selected_filename);
 +
 +        /* Create the Generic transaction importer GUI. */
 +        gnc_ofx_importer_gui = gnc_gen_trans_list_new (GTK_WIDGET(parent), NULL, FALSE, 42);
 +
 +        /* Look up the needed preferences */
 +        auto_create_commodity =
 +            gnc_prefs_get_bool (GNC_PREFS_GROUP_IMPORT, GNC_PREF_AUTO_COMMODITY);
 +
 +        /* Initialize libofx */
 +
 +        /*ofx_set_statement_cb(libofx_context, ofx_proc_statement_cb, 0);*/
 +        ofx_set_account_cb(libofx_context, ofx_proc_account_cb, 0);
 +        ofx_set_transaction_cb(libofx_context, ofx_proc_transaction_cb, parent);
 +        ofx_set_security_cb(libofx_context, ofx_proc_security_cb, 0);
 +        /*ofx_set_status_cb(libofx_context, ofx_proc_status_cb, 0);*/
 +
 +#ifdef G_OS_WIN32
 +        conv_name = g_win32_locale_filename_from_utf8(selected_filename);
 +        g_free(selected_filename);
 +        selected_filename = conv_name;
 +#endif
 +
 +        DEBUG("Opening selected file");
 +        libofx_proc_file(libofx_context, selected_filename, AUTODETECT);
 +        g_free(selected_filename);
 +    }
 +
 +    if (ofx_created_commodites)
 +    {
 +        /* FIXME: Present some result window about the newly created
 +         * commodities */
 +        g_warning("Created %d new commodities during import", g_list_length(ofx_created_commodites));
 +        g_list_free(ofx_created_commodites);
 +        ofx_created_commodites = NULL;
 +    }
 +    else
 +    {
 +        //g_warning("No new commodities created");
 +    }
 +}
 +
 +
 +/** @} */

commit a9f35ed7ae8dc50910fd145620585ad51ca911ad
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Thu May 3 23:18:15 2018 +0200

    Lowercase cmake commands
    
    A huge bikeshed fest but it distracted me enough to do it anyway.

diff --git a/CMakeLists.txt b/CMakeLists.txt
index bdb69f7..e58f9f1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,78 +1,78 @@
 # CMakeLists.txt for GnuCash
 
-IF (WIN32 OR APPLE)
-  CMAKE_MINIMUM_REQUIRED (VERSION 3.3.2)
-ELSE()
-  CMAKE_MINIMUM_REQUIRED (VERSION 3.0)
-ENDIF()
+if (WIN32 OR APPLE)
+  cmake_minimum_required (VERSION 3.3.2)
+else()
+  cmake_minimum_required (VERSION 3.0)
+endif()
 
-PROJECT (gnucash)
+project (gnucash)
 
-ENABLE_TESTING()
+enable_testing()
 
 # Version number of gnucash
-SET (GNUCASH_MAJOR_VERSION 3)
-SET (GNUCASH_MINOR_VERSION 1)
-SET (VERSION "${GNUCASH_MAJOR_VERSION}.${GNUCASH_MINOR_VERSION}")
-SET (GNUCASH_LATEST_STABLE_SERIES 3.x)
-
-SET (PACKAGE gnucash)
-SET (PACKAGE_NAME GnuCash)
-SET (PACKAGE_VERSION 3.1)
-SET (PACKAGE_BUGREPORT gnucash-devel at gnucash.org)
-SET (PACKAGE_TARNAME ${PACKAGE})
-SET (PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
-SET (PACKAGE_URL "")
+set (GNUCASH_MAJOR_VERSION 3)
+set (GNUCASH_MINOR_VERSION 1)
+set (VERSION "${GNUCASH_MAJOR_VERSION}.${GNUCASH_MINOR_VERSION}")
+set (GNUCASH_LATEST_STABLE_SERIES 3.x)
+
+set (PACKAGE gnucash)
+set (PACKAGE_NAME GnuCash)
+set (PACKAGE_VERSION 3.1)
+set (PACKAGE_BUGREPORT gnucash-devel at gnucash.org)
+set (PACKAGE_TARNAME ${PACKAGE})
+set (PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
+set (PACKAGE_URL "")
 
 # Change this in development versions when changing anything that
 # affects stored data structures. Reset to zero when bumping version.
 
-SET (GNUCASH_RESAVE_VERSION "19920")
+set (GNUCASH_RESAVE_VERSION "19920")
 
-SET(GETTEXT_PACKAGE "gnucash")
+set(GETTEXT_PACKAGE "gnucash")
 
 # Clear cache variables that will be filled later during the cmake run
 unset(dist_generated CACHE)
 unset(dist_generated_depends CACHE)
 
 # Extra cmake macros
-SET (CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/common/cmake_modules;${CMAKE_MODULE_PATH}")
+set (CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/common/cmake_modules;${CMAKE_MODULE_PATH}")
 # CMake does a non-recursive build that puts the final build product directories in the build root. Some code needs to know this.
 
-INCLUDE (MacroAppendForeach)
-INCLUDE (MacroAddSourceFileCompileFlags)
-INCLUDE (GncAddSwigCommand)
-INCLUDE (CheckIncludeFiles)
-INCLUDE (GncAddSchemeTargets)
-INCLUDE (GncAddGSchemaTargets)
-INCLUDE (GncAddTest)
-INCLUDE (MakeDistFiles)
-INCLUDE (GNUInstallDirs)
+include (MacroAppendForeach)
+include (MacroAddSourceFileCompileFlags)
+include (GncAddSwigCommand)
+include (CheckIncludeFiles)
+include (GncAddSchemeTargets)
+include (GncAddGSchemaTargets)
+include (GncAddTest)
+include (MakeDistFiles)
+include (GNUInstallDirs)
 
 # ############################################################
 # These options are settable from the CMake command line. For example, to disable
 # SQL, put -D WITH_SQL=OFF on the command line.
 
-OPTION (WITH_SQL "Build this project with SQL (libdbi) support" ON)
-OPTION (WITH_AQBANKING "Build this project with aqbanking (online banking) support" ON)
-OPTION (WITH_GNUCASH "Build all of GnuCash, not just the library" ON)
-OPTION (WITH_OFX "compile with ofx support (needs LibOFX)" ON)
-OPTION (WITH_PYTHON "enable python plugin and bindings" OFF)
-OPTION (ENABLE_BINRELOC "compile with binary relocation support" ON)
-OPTION (ENABLE_REGISTER2 "compile with register2 enabled" OFF)
-OPTION (DISABLE_NLS "do not use Native Language Support" OFF)
-OPTION (DISABLE_DEPRECATED_GLIB "don't use deprecated glib functions" OFF)
-OPTION (DISABLE_DEPRECATED_GTK "don't use deprecated gtk, gdk or gdk-pixbuf functions" OFF)
-OPTION (DISABLE_DEPRECATED_GNOME "don't use deprecated gnome functions" OFF)
-OPTION (ALLOW_OLD_GETTEXT "allow to configure build with a gettext version older than 0.19.6. Some files will not be translated!" OFF)
+option (WITH_SQL "Build this project with SQL (libdbi) support" ON)
+option (WITH_AQBANKING "Build this project with aqbanking (online banking) support" ON)
+option (WITH_GNUCASH "Build all of GnuCash, not just the library" ON)
+option (WITH_OFX "compile with ofx support (needs LibOFX)" ON)
+option (WITH_PYTHON "enable python plugin and bindings" OFF)
+option (ENABLE_BINRELOC "compile with binary relocation support" ON)
+option (ENABLE_REGISTER2 "compile with register2 enabled" OFF)
+option (DISABLE_NLS "do not use Native Language Support" OFF)
+option (DISABLE_DEPRECATED_GLIB "don't use deprecated glib functions" OFF)
+option (DISABLE_DEPRECATED_GTK "don't use deprecated gtk, gdk or gdk-pixbuf functions" OFF)
+option (DISABLE_DEPRECATED_GNOME "don't use deprecated gnome functions" OFF)
+option (ALLOW_OLD_GETTEXT "allow to configure build with a gettext version older than 0.19.6. Some files will not be translated!" OFF)
 # ############################################################
 
 # These are also settable from the command line in a similar way.
 
 # Use gsettings-desktop-schemas for a better integration with GNOME
-SET(COMPILE_GSCHEMAS ON CACHE BOOL "Compile the GSettings schema")
+set(COMPILE_GSCHEMAS ON CACHE BOOL "Compile the GSettings schema")
 
-SET(GNUCASH_BUILD_ID "" CACHE STRING "Overrides the GnuCash build identification (Build ID) which defaults to a description of the vcs commit from which gnucash is built. Distributions may want to insert a package management based version number instead")
+set(GNUCASH_BUILD_ID "" CACHE STRING "Overrides the GnuCash build identification (Build ID) which defaults to a description of the vcs commit from which gnucash is built. Distributions may want to insert a package management based version number instead")
 # GENERATE_SWIG_WRAPPERS - Controls whether to generate the swig wrappers for guile and python. If not set the wrappers will only be generated when building from a git worktree, commented out here, but will be evaluated later on in this file
 
 # Check that all of the absolute install paths are inside
@@ -91,168 +91,168 @@ foreach(install_dir ${CMAKE_INSTALL_FULL_BINDIR}
 endforeach()
 
 # GnuCash installs two files in ${CMAKE_INSTALL_SYSCONFDIR}
-SET(BINDIR ${CMAKE_INSTALL_BINDIR} CACHE STRING "user executables")
-SET(SYSCONFDIR ${CMAKE_INSTALL_SYSCONFDIR} CACHE STRING "read-only single-machine data")
-SET(DATAROOTDIR ${CMAKE_INSTALL_DATAROOTDIR} CACHE STRING "read-only arch.-independent data root")
-SET(DATADIR ${CMAKE_INSTALL_DATADIR} CACHE STRING "read-only architecture-independent data")
-SET(LIBDIR ${CMAKE_INSTALL_LIBDIR} CACHE STRING "object code libraries")
-SET(LOCALEDIR ${DATAROOTDIR}/locale CACHE STRING "locale-dependent data")
-SET(GNC_HELPDIR ${DATADIR} CACHE STRING "where to store help files")
-SET(DATADIRNAME share)
-SET(GNC_SYSTEM_XDG_DATA_DIRS /usr/local/share /usr/share)
-SET(GNC_DBD_DIR ${CMAKE_PREFIX_LIBDIR}/dbd CACHE PATH "specify location of libdbi drivers")
-SET(PKGLIBDIR ${CMAKE_INSTALL_LIBDIR}/gnucash)
-SET(TEST_MYSQL_URL "" CACHE STRING "MySQL database URL for testing")
-SET(TEST_PGSQL_URL "" CACHE STRING "PgSQL database URL for testing")
-
-SET(DATADIR_BUILD    ${CMAKE_BINARY_DIR}/${DATADIRNAME})
-STRING(REPLACE ${CMAKE_INSTALL_PREFIX} "" LIBDIR_BUILD ${LIBDIR})
-SET(LIBDIR_BUILD     ${CMAKE_BINARY_DIR}/${LIBDIR_BUILD})
-SET(SYSCONFDIR_BUILD ${CMAKE_BINARY_DIR}/etc)
-SET(LIBEXECDIR_BUILD ${CMAKE_BINARY_DIR}/libexec)
-SET(BINDIR_BUILD     ${CMAKE_BINARY_DIR}/bin)
-
-SET(SHELL_FROM_ENV $ENV{SHELL})
-SET(SHELL /bin/bash)
+set(BINDIR ${CMAKE_INSTALL_BINDIR} CACHE STRING "user executables")
+set(SYSCONFDIR ${CMAKE_INSTALL_SYSCONFDIR} CACHE STRING "read-only single-machine data")
+set(DATAROOTDIR ${CMAKE_INSTALL_DATAROOTDIR} CACHE STRING "read-only arch.-independent data root")
+set(DATADIR ${CMAKE_INSTALL_DATADIR} CACHE STRING "read-only architecture-independent data")
+set(LIBDIR ${CMAKE_INSTALL_LIBDIR} CACHE STRING "object code libraries")
+set(LOCALEDIR ${DATAROOTDIR}/locale CACHE STRING "locale-dependent data")
+set(GNC_HELPDIR ${DATADIR} CACHE STRING "where to store help files")
+set(DATADIRNAME share)
+set(GNC_SYSTEM_XDG_DATA_DIRS /usr/local/share /usr/share)
+set(GNC_DBD_DIR ${CMAKE_PREFIX_LIBDIR}/dbd CACHE PATH "specify location of libdbi drivers")
+set(PKGLIBDIR ${CMAKE_INSTALL_LIBDIR}/gnucash)
+set(TEST_MYSQL_URL "" CACHE STRING "MySQL database URL for testing")
+set(TEST_PGSQL_URL "" CACHE STRING "PgSQL database URL for testing")
+
+set(DATADIR_BUILD    ${CMAKE_BINARY_DIR}/${DATADIRNAME})
+string(REPLACE ${CMAKE_INSTALL_PREFIX} "" LIBDIR_BUILD ${LIBDIR})
+set(LIBDIR_BUILD     ${CMAKE_BINARY_DIR}/${LIBDIR_BUILD})
+set(SYSCONFDIR_BUILD ${CMAKE_BINARY_DIR}/etc)
+set(LIBEXECDIR_BUILD ${CMAKE_BINARY_DIR}/libexec)
+set(BINDIR_BUILD     ${CMAKE_BINARY_DIR}/bin)
+
+set(SHELL_FROM_ENV $ENV{SHELL})
+set(SHELL /bin/bash)
 #We need to distinguish between MinGW.org and MinGW-w64:
 
-IF (MINGW)
-  STRING(FIND ${CMAKE_C_COMPILER} "msys2" IS_MSYS2)
-  IF(${IS_MSYS2} GREATER_EQUAL 0)
-    SET(MINGW64 ON)
-  ENDIF()
-ENDIF(MINGW)
-IF (MINGW AND NOT MINGW64) # /bin/bash will work fine on MinGW
-  SET(SHELL ${CMAKE_PREFIX_PATH}/mingw/msys/1.0/bin/bash.exe)
-ENDIF()
-IF (SHELL_FROM_ENV) # Replacing this with IF ($ENV{SHELL}) doesn't work.
-  SET(SHELL ${SHELL_FROM_ENV})
-ENDIF()
+if (MINGW)
+  string(FIND ${CMAKE_C_COMPILER} "msys2" IS_MSYS2)
+  if(${IS_MSYS2} GREATER_EQUAL 0)
+    set(MINGW64 ON)
+  endif()
+endif(MINGW)
+if (MINGW AND NOT MINGW64) # /bin/bash will work fine on MinGW
+  set(SHELL ${CMAKE_PREFIX_PATH}/mingw/msys/1.0/bin/bash.exe)
+endif()
+if (SHELL_FROM_ENV) # Replacing this with if ($ENV{SHELL}) doesn't work.
+  set(SHELL ${SHELL_FROM_ENV})
+endif()
 
 # Determine whether we are building from a VCS or from a tarball
-EXECUTE_PROCESS(
+execute_process(
   COMMAND ${SHELL} ${CMAKE_SOURCE_DIR}/util/gnc-vcs-info -t ${CMAKE_SOURCE_DIR}
   RESULT_VARIABLE GNC_VCS_INFO_RESULT
   OUTPUT_VARIABLE GNC_VCS_INFO_OUTPUT
   OUTPUT_STRIP_TRAILING_WHITESPACE
 )
 
-SET(BUILDING_FROM_VCS "NO")
-IF (GNC_VCS_INFO_RESULT EQUAL 0)
-  SET(BUILDING_FROM_VCS "YES")
-  # IF building from VCS, we need git
+set(BUILDING_FROM_VCS "NO")
+if (GNC_VCS_INFO_RESULT EQUAL 0)
+  set(BUILDING_FROM_VCS "YES")
+  # if building from VCS, we need git
   find_package(Git)
-  IF (NOT GIT_FOUND)
-    MESSAGE(SEND_ERROR "Looks like we're building from version control, but can't find git executable. Please set GIT_EXECUTABLE.")
-  ENDIF()
-ENDIF()
+  if (NOT GIT_FOUND)
+    message(SEND_ERROR "Looks like we're building from version control, but can't find git executable. Please set GIT_EXECUTABLE.")
+  endif()
+endif()
 
 # Determine whether to generate the swig wrappers.
 # By default they will only be generated when building from a git worktree
 set(GENERATE_SWIG_WRAPPERS ${BUILDING_FROM_VCS} CACHE BOOL "Controls whether to generate the swig wrappers for guile and python. If not set the wrappers will only be generated when building from a git worktree")
 
-IF (WIN32)
+if (WIN32)
   # Help Windows find the various dependencies. We assume here that the standard advice for building
   # GnuCash has been followed and that these dependencies live underneath something like C:/GCDEV, which
   # should be provided as CMAKE_PREFIX_PATH on the CMake command line:
   #      cmake -D CMAKE_PREFIX_PATH=c/gcdev -G "MSYS Makefiles" path/to/gnucash/sources
   #
-  SET(CMAKE_C_IMPLICIT_LINK_LIBRARIES "")
-  SET(CMAKE_FRAMEWORK_PATH_TMP ${CMAKE_PREFIX_PATH})
-  SET(DEV_SUBDIRS aqbanking gnome guile gwenhywfar libgsf libofx libsoup libxslt webkit)
-  FOREACH(subdir ${DEV_SUBDIRS})
-    LIST(APPEND CMAKE_FRAMEWORK_PATH_TMP ${CMAKE_PREFIX_PATH}/${subdir})
-  ENDFOREACH()
+  set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "")
+  set(CMAKE_FRAMEWORK_PATH_TMP ${CMAKE_PREFIX_PATH})
+  set(DEV_SUBDIRS aqbanking gnome guile gwenhywfar libgsf libofx libsoup libxslt webkit)
+  foreach(subdir ${DEV_SUBDIRS})
+    list(APPEND CMAKE_FRAMEWORK_PATH_TMP ${CMAKE_PREFIX_PATH}/${subdir})
+  endforeach()
   # Setting CMAKE_FRAMEWORK_PATH, which is intended for OS X, is a terrible hack here. But I don't
   # want to mess with CMAKE_PREFIX_PATH.
-  SET(CMAKE_FRAMEWORK_PATH "${CMAKE_FRAMEWORK_PATH_TMP}")
-  #SET(PKG_CONFIG_EXECUTABLE ${CMAKE_PREFIX_PATH}/gnome/bin/pkg-config.exe)
-  SET(SWIG_EXECUTABLE swig)
-  #SET(SWIG_EXECUTABLE ${CMAKE_PREFIX_PATH}/swig/swig.exe)
-  FIND_PATH(REGEX_INCLUDE_PATH regex.h)
-  FIND_PATH(REGEX_LIB_PATH libregex.dll.a)
-  SET(REGEX_LDFLAGS "-L${REGEX_LIB_PATH} -lregex")
-  #SET(LIBXSLT_INCLUDE_DIR ${CMAKE_PREFIX_PATH}/libxslt/include)
-  #SET(LIBXSLT_XSLTPROC_EXECUTABLE ${CMAKE_PREFIX_PATH}/libxslt/bin/xsltproc)
+  set(CMAKE_FRAMEWORK_PATH "${CMAKE_FRAMEWORK_PATH_TMP}")
+  #set(PKG_CONFIG_EXECUTABLE ${CMAKE_PREFIX_PATH}/gnome/bin/pkg-config.exe)
+  set(SWIG_EXECUTABLE swig)
+  #set(SWIG_EXECUTABLE ${CMAKE_PREFIX_PATH}/swig/swig.exe)
+  find_path(REGEX_INCLUDE_PATH regex.h)
+  find_path(REGEX_LIB_PATH libregex.dll.a)
+  set(REGEX_LDFLAGS "-L${REGEX_LIB_PATH} -lregex")
+  #set(LIBXSLT_INCLUDE_DIR ${CMAKE_PREFIX_PATH}/libxslt/include)
+  #set(LIBXSLT_XSLTPROC_EXECUTABLE ${CMAKE_PREFIX_PATH}/libxslt/bin/xsltproc)
 #Prevent creating a console window on startup.
-  SET(CMAKE_EXE_LINKER_FLAGS -mwindows)
-ENDIF(WIN32)
+  set(CMAKE_EXE_LINKER_FLAGS -mwindows)
+endif(WIN32)
 
-FIND_PACKAGE(PkgConfig REQUIRED)
+find_package(PkgConfig REQUIRED)
 
 # The default FindPkgConfig.make code has a bug in how the setting of PKG_CONFIG_PATH is handled.
 # The common/cmake_modules/GncFindPkgConfig.cmake file overrides a couple of macros in FindPkgConfig to fix.
 
-INCLUDE (GncFindPkgConfig)
+include (GncFindPkgConfig)
 
-IF (NOT PKG_CONFIG_FOUND)
-   MESSAGE (SEND_ERROR "pkg-config not found, but is required")
-ENDIF (NOT PKG_CONFIG_FOUND)
+if (NOT PKG_CONFIG_FOUND)
+   message (SEND_ERROR "pkg-config not found, but is required")
+endif (NOT PKG_CONFIG_FOUND)
 
 # glib et al.
-GNC_PKG_CHECK_MODULES (GLIB2 REQUIRED glib-2.0>=2.40)
-GNC_PKG_CHECK_MODULES (GIO REQUIRED gio-2.0)
-GNC_PKG_CHECK_MODULES (GOBJECT REQUIRED gobject-2.0>=2.20)
-GNC_PKG_CHECK_MODULES (GMODULE REQUIRED gmodule-2.0>=2.20)
-GNC_PKG_CHECK_MODULES (GTHREAD REQUIRED gthread-2.0>=2.20)
-
-GNC_PKG_CHECK_MODULES (LIBXML2 REQUIRED libxml-2.0>=2.7.0)
-GNC_PKG_CHECK_MODULES (LIBXSLT REQUIRED libxslt)
-IF (WIN32 OR APPLE)
-  GNC_PKG_CHECK_MODULES (WEBKIT1 REQUIRED webkitgtk-3.0)
-  SET(WEBKIT1 1)
-    SET(WEBKIT_CFLAGS ${WEBKIT2_CFLAGS})
-    SET(WEBKIT_INCLUDE_DIRS ${WEBKIT1_INCLUDE_DIRS})
-    SET(WEBKIT_LDFLAGS ${WEBKIT1_LDFLAGS})
-    SET(WEBKIT_LIBRARIES ${WEBKIT1_LIBRARIES})
-ELSE (WIN32 OR APPLE)
-  GNC_PKG_CHECK_MODULES (WEBKIT2_4 webkit2gtk-4.0)
-  IF (NOT WEBKIT2_4_FOUND)
-    GNC_PKG_CHECK_MODULES (WEBKIT2_3 REQUIRED webkit2gtk-3.0)
-    SET(WEBKIT2_3 1)
-    SET(WEBKIT_CFLAGS ${WEBKIT2_3_CFLAGS})
-    SET(WEBKIT_INCLUDE_DIRS ${WEBKIT2_3_INCLUDE_DIRS})
-    SET(WEBKIT_LDFLAGS ${WEBKIT2_3_LDFLAGS})
-    SET(WEBKIT_LIBRARIES ${WEBKIT2_3_LIBRARIES})
-  ELSE (NOT WEBKIT2_4_FOUND)
-    SET(WEBKIT2_4 1)
-    SET(WEBKIT_CFLAGS ${WEBKIT2_4_CFLAGS})
-    SET(WEBKIT_INCLUDE_DIRS ${WEBKIT2_4_INCLUDE_DIRS})
-    SET(WEBKIT_LDFLAGS ${WEBKIT2_4_LDFLAGS})
-    SET(WEBKIT_LIBRARIES ${WEBKIT2_4_LIBRARIES})
-  ENDIF (NOT WEBKIT2_4_FOUND)
-ENDIF (WIN32 OR APPLE)
-
-IF (WITH_GNUCASH)
-  GNC_PKG_CHECK_MODULES (GTK3 REQUIRED gtk+-3.0>=3.10.0)
-ENDIF (WITH_GNUCASH)
-
-GNC_PKG_CHECK_MODULES (ZLIB REQUIRED zlib)
-
-IF (MSVC)
-  MESSAGE (STATUS "Hint: To create the import libraries for the gnome DLLs (e.g. gconf-2.lib), use the dlltool as follows: pexports bin/libgconf-2-4.dll > lib/libgconf-2.def ; dlltool -d lib/libgconf-2.def -D bin/libgconf-2-4.dll -l lib/gconf-2.lib")
+gnc_pkg_check_modules (GLIB2 REQUIRED glib-2.0>=2.40)
+gnc_pkg_check_modules (GIO REQUIRED gio-2.0)
+gnc_pkg_check_modules (GOBJECT REQUIRED gobject-2.0>=2.20)
+gnc_pkg_check_modules (GMODULE REQUIRED gmodule-2.0>=2.20)
+gnc_pkg_check_modules (GTHREAD REQUIRED gthread-2.0>=2.20)
+
+gnc_pkg_check_modules (LIBXML2 REQUIRED libxml-2.0>=2.7.0)
+gnc_pkg_check_modules (LIBXSLT REQUIRED libxslt)
+if (WIN32 OR APPLE)
+  gnc_pkg_check_modules (WEBKIT1 REQUIRED webkitgtk-3.0)
+  set(WEBKIT1 1)
+    set(WEBKIT_CFLAGS ${WEBKIT2_CFLAGS})
+    set(WEBKIT_INCLUDE_DIRS ${WEBKIT1_INCLUDE_DIRS})
+    set(WEBKIT_LDFLAGS ${WEBKIT1_LDFLAGS})
+    set(WEBKIT_LIBRARIES ${WEBKIT1_LIBRARIES})
+else (WIN32 OR APPLE)
+  gnc_pkg_check_modules (WEBKIT2_4 webkit2gtk-4.0)
+  if (NOT WEBKIT2_4_FOUND)
+    gnc_pkg_check_modules (WEBKIT2_3 REQUIRED webkit2gtk-3.0)
+    set(WEBKIT2_3 1)
+    set(WEBKIT_CFLAGS ${WEBKIT2_3_CFLAGS})
+    set(WEBKIT_INCLUDE_DIRS ${WEBKIT2_3_INCLUDE_DIRS})
+    set(WEBKIT_LDFLAGS ${WEBKIT2_3_LDFLAGS})
+    set(WEBKIT_LIBRARIES ${WEBKIT2_3_LIBRARIES})
+  else (NOT WEBKIT2_4_FOUND)
+    set(WEBKIT2_4 1)
+    set(WEBKIT_CFLAGS ${WEBKIT2_4_CFLAGS})
+    set(WEBKIT_INCLUDE_DIRS ${WEBKIT2_4_INCLUDE_DIRS})
+    set(WEBKIT_LDFLAGS ${WEBKIT2_4_LDFLAGS})
+    set(WEBKIT_LIBRARIES ${WEBKIT2_4_LIBRARIES})
+  endif (NOT WEBKIT2_4_FOUND)
+endif (WIN32 OR APPLE)
+
+if (WITH_GNUCASH)
+  gnc_pkg_check_modules (GTK3 REQUIRED gtk+-3.0>=3.10.0)
+endif (WITH_GNUCASH)
+
+gnc_pkg_check_modules (ZLIB REQUIRED zlib)
+
+if (MSVC)
+  message (STATUS "Hint: To create the import libraries for the gnome DLLs (e.g. gconf-2.lib), use the dlltool as follows: pexports bin/libgconf-2-4.dll > lib/libgconf-2.def ; dlltool -d lib/libgconf-2.def -D bin/libgconf-2-4.dll -l lib/gconf-2.lib")
 
   # Disable the obnoxious min/max macros in MSVC - we want to use the
   # function versions of them.
-  ADD_DEFINITIONS ( -DNOMINMAX )
-ENDIF (MSVC)
+  add_definitions ( -DNOMINMAX )
+endif (MSVC)
 
-FIND_PATH (LIBINTL_INCLUDE_PATH NAMES libintl.h
+find_path (LIBINTL_INCLUDE_PATH NAMES libintl.h
 		  PATHS /usr/include /opt/gnome/include)
-FIND_LIBRARY (LIBINTL_LIBRARY NAMES intl)
+find_library (LIBINTL_LIBRARY NAMES intl)
 
-FIND_PATH (LTDL_INCLUDE_PATH NAMES ltdl.h PATHS /usr/include)
+find_path (LTDL_INCLUDE_PATH NAMES ltdl.h PATHS /usr/include)
 
-IF(NOT LTDL_INCLUDE_PATH-NOTFOUND)
-  SET(HAVE_LTDL_H 1)
-ENDIF()
+if(NOT LTDL_INCLUDE_PATH-NOTFOUND)
+  set(HAVE_LTDL_H 1)
+endif()
 
 
 
-FIND_PROGRAM(GLIB_COMPILE_SCHEMAS glib-compile-schemas HINTS ${CMAKE_PREFIX_PATH}/gnome/bin)
-IF (NOT GLIB_COMPILE_SCHEMAS)
-  MESSAGE(SEND_ERROR "Can't find glib-compile-schemas program. Please set GLIB_COMPILE_SCHEMAS.")
-ENDIF(NOT GLIB_COMPILE_SCHEMAS)
+find_program(GLIB_COMPILE_SCHEMAS glib-compile-schemas HINTS ${CMAKE_PREFIX_PATH}/gnome/bin)
+if (NOT GLIB_COMPILE_SCHEMAS)
+  message(SEND_ERROR "Can't find glib-compile-schemas program. Please set GLIB_COMPILE_SCHEMAS.")
+endif(NOT GLIB_COMPILE_SCHEMAS)
 
 if (ALLOW_OLD_GETTEXT)
     find_package (Gettext REQUIRED)
@@ -272,64 +272,64 @@ if (${GETTEXT_VERSION_STRING} VERSION_LESS 0.19.6)
     message (WARNING "Got gettext version ${GETTEXT_VERSION_STRING}, however you need at least gettext version 0.19.6 in order to handle translation of the gnucash.appdata file. The build will be configured with an untranslated gnucash.appdata file.")
 endif ()
 
-FIND_PATH (REGEX_INCLUDE_PATH NAMES regex.h
+find_path (REGEX_INCLUDE_PATH NAMES regex.h
 		  PATHS /usr/include /opt/gnome/include)
-FIND_LIBRARY (REGEX_LIBRARY NAMES regex)
-IF (WIN32)
+find_library (REGEX_LIBRARY NAMES regex)
+if (WIN32)
   message(STATUS "Looking for htmlhelp.h and htmlhelp.a")
-  FIND_PATH (HTMLHELP_INCLUDE_PATH NAMES htmlhelp.h)
-  FIND_LIBRARY (HTMLHELP_LIBRARY htmlhelp)
-ENDIF (WIN32)
+  find_path (HTMLHELP_INCLUDE_PATH NAMES htmlhelp.h)
+  find_library (HTMLHELP_LIBRARY htmlhelp)
+endif (WIN32)
 
 # ############################################################
 
 # SWIG
-IF(GENERATE_SWIG_WRAPPERS)
-  FIND_PACKAGE (SWIG REQUIRED)
-  INCLUDE (${SWIG_USE_FILE})
-ENDIF()
+if(GENERATE_SWIG_WRAPPERS)
+  find_package (SWIG REQUIRED)
+  include (${SWIG_USE_FILE})
+endif()
 
 # Find Guile and determine which version we are using.
 # Look for guile versions in this order: 2.2 > 2.0
 
 # guile library and include dir
-GNC_PKG_CHECK_MODULES (GUILE22 guile-2.2 QUIET)
-IF (GUILE22_FOUND) # found guile-2.2
-  ADD_DEFINITIONS (-DHAVE_GUILE22)
-  SET(HAVE_GUILE2 TRUE)
-  SET(GUILE_EFFECTIVE_VERSION 2.2)
-  SET(GUILE_INCLUDE_DIRS ${GUILE22_INCLUDE_DIRS})
-  SET(GUILE_LDFLAGS ${GUILE22_LDFLAGS})
-
-  FIND_PROGRAM (GUILD_EXECUTABLE NAMES guild2.2 guild)
-  IF (NOT GUILD_EXECUTABLE)
-    MESSAGE (SEND_ERROR "The guild executable was not found, but is required. Please set GUILD_EXECUTABLE.")
-  ENDIF (NOT GUILD_EXECUTABLE)
-  MESSAGE(STATUS "Using guile-2.2.x")
-  FIND_PROGRAM (GUILE_EXECUTABLE NAMES guile2.2 guile)
-ELSE(GUILE22_FOUND)
-  GNC_PKG_CHECK_MODULES (GUILE2 guile-2.0>=2.0.9 QUIET)
-  IF (GUILE2_FOUND) # found guile-2.0
-    ADD_DEFINITIONS (-DHAVE_GUILE20)
-    SET(HAVE_GUILE2 TRUE)
-    SET(GUILE_EFFECTIVE_VERSION 2.0)
-    SET(GUILE_INCLUDE_DIRS ${GUILE2_INCLUDE_DIRS})
-    SET(GUILE_LDFLAGS ${GUILE2_LDFLAGS})
-
-    FIND_PROGRAM (GUILD_EXECUTABLE NAMES guild2.0 guild)
-    IF (NOT GUILD_EXECUTABLE)
-      MESSAGE (SEND_ERROR "The guild executable was not found, but is required. Please set GUILD_EXECUTABLE.")
-    ENDIF (NOT GUILD_EXECUTABLE)
-    MESSAGE(STATUS "Using guile-2.0.x")
-    FIND_PROGRAM (GUILE_EXECUTABLE NAMES guile2.0 guile)
-  ELSE(GUILE2_FOUND)
-    MESSAGE (FATAL_ERROR "Neither guile 2.2 nor guile 2.0 were found GnuCash can't run without one of them. Ensure that one is installed and can be found with pgk-config.")
-  ENDIF(GUILE2_FOUND)
-ENDIF(GUILE22_FOUND)
-
-IF (NOT GUILE_EXECUTABLE)
-  MESSAGE (SEND_ERROR "The guile executable was not found, but is required. Please set GUILE_EXECUTABLE.")
-ENDIF (NOT GUILE_EXECUTABLE)
+gnc_pkg_check_modules (GUILE22 guile-2.2 QUIET)
+if (GUILE22_FOUND) # found guile-2.2
+  add_definitions (-DHAVE_GUILE22)
+  set(HAVE_GUILE2 TRUE)
+  set(GUILE_EFFECTIVE_VERSION 2.2)
+  set(GUILE_INCLUDE_DIRS ${GUILE22_INCLUDE_DIRS})
+  set(GUILE_LDFLAGS ${GUILE22_LDFLAGS})
+
+  find_program (GUILD_EXECUTABLE NAMES guild2.2 guild)
+  if (NOT GUILD_EXECUTABLE)
+    message (SEND_ERROR "The guild executable was not found, but is required. Please set GUILD_EXECUTABLE.")
+  endif (NOT GUILD_EXECUTABLE)
+  message(STATUS "Using guile-2.2.x")
+  find_program (GUILE_EXECUTABLE NAMES guile2.2 guile)
+else(GUILE22_FOUND)
+  gnc_pkg_check_modules (GUILE2 guile-2.0>=2.0.9 QUIET)
+  if (GUILE2_FOUND) # found guile-2.0
+    add_definitions (-DHAVE_GUILE20)
+    set(HAVE_GUILE2 TRUE)
+    set(GUILE_EFFECTIVE_VERSION 2.0)
+    set(GUILE_INCLUDE_DIRS ${GUILE2_INCLUDE_DIRS})
+    set(GUILE_LDFLAGS ${GUILE2_LDFLAGS})
+
+    find_program (GUILD_EXECUTABLE NAMES guild2.0 guild)
+    if (NOT GUILD_EXECUTABLE)
+      message (SEND_ERROR "The guild executable was not found, but is required. Please set GUILD_EXECUTABLE.")
+    endif (NOT GUILD_EXECUTABLE)
+    message(STATUS "Using guile-2.0.x")
+    find_program (GUILE_EXECUTABLE NAMES guile2.0 guile)
+  else(GUILE2_FOUND)
+    message (FATAL_ERROR "Neither guile 2.2 nor guile 2.0 were found GnuCash can't run without one of them. Ensure that one is installed and can be found with pgk-config.")
+  endif(GUILE2_FOUND)
+endif(GUILE22_FOUND)
+
+if (NOT GUILE_EXECUTABLE)
+  message (SEND_ERROR "The guile executable was not found, but is required. Please set GUILE_EXECUTABLE.")
+endif (NOT GUILE_EXECUTABLE)
 
 # Test that guile has SRFI-64. This is required for some unit tests.
 execute_process (COMMAND ${GUILE_EXECUTABLE} -c "(use-modules (srfi srfi-64))"
@@ -343,29 +343,29 @@ if (GNC_SRFI64_RESULT EQUAL 0)
 endif ()
 
 # ############################################################
-IF (WITH_AQBANKING)
-  GNC_PKG_CHECK_MODULES (GWENHYWFAR REQUIRED gwenhywfar)
-  GNC_PKG_CHECK_MODULES (AQBANKING REQUIRED aqbanking)
-  IF(WITH_GNUCASH)
-    GNC_PKG_CHECK_MODULES (KTOBLZCHECK ktoblzcheck)
-    IF(KTOBLZCHECK_FOUND)
-      SET(HAVE_KTOBLZCHECK_H 1)
-    ENDIF(KTOBLZCHECK_FOUND)
-    GNC_PKG_CHECK_MODULES (GWEN_GTK3 gwengui-gtk3)
-    IF(GWEN_GTK3_FOUND AND GWEN_GTK3_VERSION VERSION_GREATER "4.20.0")
-      SET(HAVE_GWEN_GTK3 1 CACHE BOOL "True if gwen-gtk3.pc exists")
-    ENDIF()
-  ENDIF(WITH_GNUCASH)
-ENDIF (WITH_AQBANKING)
-
-IF (WITH_OFX)
-  GNC_PKG_CHECK_MODULES (LIBOFX REQUIRED libofx)
-  INCLUDE(CheckCXXSourceRuns)
-  IF (WIN32)
-      SET(CMAKE_REQUIRED_LIBRARIES "-L ${CMAKE_PREFIX_PATH}/libofx/lib -lofx")
-  ELSE (WIN32)
-      SET(CMAKE_REQUIRED_LIBRARIES "-lofx")
-  ENDIF (WIN32)
+if (WITH_AQBANKING)
+  gnc_pkg_check_modules (GWENHYWFAR REQUIRED gwenhywfar)
+  gnc_pkg_check_modules (AQBANKING REQUIRED aqbanking)
+  if(WITH_GNUCASH)
+    gnc_pkg_check_modules (KTOBLZCHECK ktoblzcheck)
+    if(KTOBLZCHECK_FOUND)
+      set(HAVE_KTOBLZCHECK_H 1)
+    endif(KTOBLZCHECK_FOUND)
+    gnc_pkg_check_modules (GWEN_GTK3 gwengui-gtk3)
+    if(GWEN_GTK3_FOUND AND GWEN_GTK3_VERSION VERSION_GREATER "4.20.0")
+      set(HAVE_GWEN_GTK3 1 CACHE BOOL "True if gwen-gtk3.pc exists")
+    endif()
+  endif(WITH_GNUCASH)
+endif (WITH_AQBANKING)
+
+if (WITH_OFX)
+  gnc_pkg_check_modules (LIBOFX REQUIRED libofx)
+  include(CheckCXXSourceRuns)
+  if (WIN32)
+      set(CMAKE_REQUIRED_LIBRARIES "-L ${CMAKE_PREFIX_PATH}/libofx/lib -lofx")
+  else (WIN32)
+      set(CMAKE_REQUIRED_LIBRARIES "-lofx")
+  endif (WIN32)
       CHECK_CXX_SOURCE_RUNS("
 #include <time.h>
 #include <stdlib.h>
@@ -390,92 +390,92 @@ int main(int argc, char** argv)
     exit(0);
 }
 " HAVE_OFX_BUG_39)
-  SET(HAVE_OFX_BUG_39 ${HAVE_OFX_BUG_39})
-  SET(CMAKE_REQUIRED_LIBRARIES)
-ENDIF(WITH_OFX)
+  set(HAVE_OFX_BUG_39 ${HAVE_OFX_BUG_39})
+  set(CMAKE_REQUIRED_LIBRARIES)
+endif(WITH_OFX)
 # ############################################################
 
-IF(APPLE)
-  EXECUTE_PROCESS(
+if(APPLE)
+  execute_process(
       COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=targets gdk-3.0
       OUTPUT_VARIABLE TARGET_RESULT
       OUTPUT_STRIP_TRAILING_WHITESPACE
   )
-  IF(TARGET_RESULT STREQUAL "quartz")
-    SET(GNC_PLATFORM_COCOA 1)
-    SET(GDK_QUARTZ 1)
-    GNC_PKG_CHECK_MODULES(GTK_MAC gtk-mac-integration-gtk3)
-    IF (GTK_MAC_FOUND)
-      SET(MAC_INTEGRATION 1)
-      FIND_LIBRARY(COCOA_LIBRARY Cocoa)
-      FIND_LIBRARY(SECURITY_LIBRARY Security)
-      FIND_LIBRARY(CARBON_LIBRARY Carbon)
-      SET(OSX_EXTRA_COMPILE_FLAGS $<$<COMPILE_LANGUAGE:C>:-xobjective-c> $<$<COMPILE_LANGUAGE:CXX>:-xobjective-c++>)
-      SET(OSX_EXTRA_LIBRARIES objc ${COCOA_LIBRARY} ${SECURITY_LIBRARY} ${CARBON_LIBRARY})
-    ENDIF(GTK_MAC_FOUND)
-  ENDIF()
-ENDIF(APPLE)
-
-# FIND_PACKAGE(LibXslt) eats PKG_CONFIG_EXECUTABLE, so preserve it.
-SET(GNC_PKG_CONFIG_EXE ${PKG_CONFIG_EXECUTABLE})
+  if(TARGET_RESULT STREQUAL "quartz")
+    set(GNC_PLATFORM_COCOA 1)
+    set(GDK_QUARTZ 1)
+    gnc_pkg_check_modules(GTK_MAC gtk-mac-integration-gtk3)
+    if (GTK_MAC_FOUND)
+      set(MAC_INTEGRATION 1)
+      find_library(COCOA_LIBRARY Cocoa)
+      find_library(SECURITY_LIBRARY Security)
+      find_library(CARBON_LIBRARY Carbon)
+      set(OSX_EXTRA_COMPILE_FLAGS $<$<COMPILE_LANGUAGE:C>:-xobjective-c> $<$<COMPILE_LANGUAGE:CXX>:-xobjective-c++>)
+      set(OSX_EXTRA_LIBRARIES objc ${COCOA_LIBRARY} ${SECURITY_LIBRARY} ${CARBON_LIBRARY})
+    endif(GTK_MAC_FOUND)
+  endif()
+endif(APPLE)
+
+# find_package(LibXslt) eats PKG_CONFIG_EXECUTABLE, so preserve it.
+set(GNC_PKG_CONFIG_EXE ${PKG_CONFIG_EXECUTABLE})
 # ############################################################
 
 # xsltproc
-FIND_PACKAGE(LibXslt)
+find_package(LibXslt)
 
-IF (NOT LIBXSLT_FOUND)
-   MESSAGE(FATAL_ERROR "libxslt library not found.")
-ENDIF(NOT LIBXSLT_FOUND)
+if (NOT LIBXSLT_FOUND)
+   message(FATAL_ERROR "libxslt library not found.")
+endif(NOT LIBXSLT_FOUND)
 if (${LIBXSLT_XSLTPROC_EXECUTABLE} STREQUAL "LIBXSLT_XSLTPROC_EXECUTABLE-NOTFOUND")
   message(FATAL_ERROR "xsltproc executable not found")
 endif ()
 # ############################################################
-SET(PKG_CONFIG_EXECUTABLE ${GNC_PKG_CONFIG_EXE})
+set(PKG_CONFIG_EXECUTABLE ${GNC_PKG_CONFIG_EXE})
 
 # libdbi
-FIND_PATH (LIBDBI_INCLUDE_PATH dbi/dbi.h)
-FIND_LIBRARY (LIBDBI_LIBRARY dbi)
-FIND_LIBRARY (LIBDBI_DRIVERS_DIR
+find_path (LIBDBI_INCLUDE_PATH dbi/dbi.h)
+find_library (LIBDBI_LIBRARY dbi)
+find_library (LIBDBI_DRIVERS_DIR
   NAMES dbdmysql dbdpgsql dbdsqlite3 NAMES_PER_DIR
   PATH_SUFFIXES dbd libdbi-drivers/dbd
   HINTS LIBDBI_LIBRARY
   PATHS GNC_DBD_DIR
   DOC "Libdbi Drivers Directory")
-IF (WITH_SQL)
-  IF (NOT LIBDBI_INCLUDE_PATH)
-    MESSAGE (SEND_ERROR "Include file <dbi/dbi.h> was not found - did you install libdbi0-dev or libdbi-dev?")
-  ENDIF (NOT LIBDBI_INCLUDE_PATH)
-  IF (NOT LIBDBI_LIBRARY)
-    MESSAGE (SEND_ERROR "Library libdbi was not found")
-  ENDIF (NOT LIBDBI_LIBRARY)
-  SET(HAVE_DBI_DBI_H 1)
-  IF (NOT LIBDBI_DRIVERS_DIR)
-    MESSAGE (SEND_ERROR "No libdbi drivers found, SQL tests will fail.")
-  ELSE()
+if (WITH_SQL)
+  if (NOT LIBDBI_INCLUDE_PATH)
+    message (SEND_ERROR "Include file <dbi/dbi.h> was not found - did you install libdbi0-dev or libdbi-dev?")
+  endif (NOT LIBDBI_INCLUDE_PATH)
+  if (NOT LIBDBI_LIBRARY)
+    message (SEND_ERROR "Library libdbi was not found")
+  endif (NOT LIBDBI_LIBRARY)
+  set(HAVE_DBI_DBI_H 1)
+  if (NOT LIBDBI_DRIVERS_DIR)
+    message (SEND_ERROR "No libdbi drivers found, SQL tests will fail.")
+  else()
     get_filename_component(drivers_dir ${LIBDBI_DRIVERS_DIR} DIRECTORY)
     set(LIBDBI_DRIVERS_DIR ${drivers_dir} CACHE FILEPATH "Directory containing the libdbi driver modules." FORCE)
-  ENDIF()
-ENDIF (WITH_SQL)
+  endif()
+endif (WITH_SQL)
 
 # ############################################################
 
-IF (WITH_PYTHON)
-  FIND_PACKAGE(PythonInterp 3)
-  IF (NOT PYTHONINTERP_FOUND)
-    MESSAGE(SEND_ERROR "Python support enabled, but Python interpreter not found.")
-  ENDIF()
+if (WITH_PYTHON)
+  find_package(PythonInterp 3)
+  if (NOT PYTHONINTERP_FOUND)
+    message(SEND_ERROR "Python support enabled, but Python interpreter not found.")
+  endif()
 
-  IF (PYTHON_VERSION_STRING VERSION_LESS "2.4.0")
-    MESSAGE(SEND_ERROR "Found python version ${PYTHON_VERSION_STRING}, but it's too old. Need python >= 2.4.0")
-  ENDIF()
+  if (PYTHON_VERSION_STRING VERSION_LESS "2.4.0")
+    message(SEND_ERROR "Found python version ${PYTHON_VERSION_STRING}, but it's too old. Need python >= 2.4.0")
+  endif()
 
-  FIND_PACKAGE(PythonLibs 3)
-  IF (NOT PYTHONLIBS_FOUND)
-    MESSAGE(SEND_ERROR "Python support enabled, but Python libraries not found.")
-  ENDIF()
+  find_package(PythonLibs 3)
+  if (NOT PYTHONLIBS_FOUND)
+    message(SEND_ERROR "Python support enabled, but Python libraries not found.")
+  endif()
 
   # Determine where to install the python libraries.
-  EXECUTE_PROCESS(
+  execute_process(
     COMMAND ${PYTHON_EXECUTABLE} -c "from distutils import sysconfig; print(sysconfig.get_python_lib(prefix='${CMAKE_INSTALL_PREFIX}', plat_specific=True))"
     RESULT_VARIABLE PYTHON_SYSCONFIG_RESULT
     OUTPUT_VARIABLE PYTHON_SYSCONFIG_OUTPUT
@@ -483,43 +483,43 @@ IF (WITH_PYTHON)
     OUTPUT_STRIP_TRAILING_WHITESPACE
     ERROR_STRIP_TRAILING_WHITESPACE
   )
-  IF (PYTHON_SYSCONFIG_RESULT)
-    MESSAGE(SEND_ERROR "Could not determine Python site-package directory:\n${PYTHON_SYSCONFIG_ERROR}")
-  ENDIF()
-  STRING(REPLACE ${CMAKE_INSTALL_PREFIX} ${CMAKE_BINARY_DIR} PYTHON_SYSCONFIG_BUILD ${PYTHON_SYSCONFIG_OUTPUT})  
-ENDIF()
+  if (PYTHON_SYSCONFIG_RESULT)
+    message(SEND_ERROR "Could not determine Python site-package directory:\n${PYTHON_SYSCONFIG_ERROR}")
+  endif()
+  string(REPLACE ${CMAKE_INSTALL_PREFIX} ${CMAKE_BINARY_DIR} PYTHON_SYSCONFIG_BUILD ${PYTHON_SYSCONFIG_OUTPUT})
+endif()
 
 
 
-FIND_PACKAGE(Perl)
+find_package(Perl)
 
 if (NOT PERL_FOUND)
-  MESSAGE(SEND_ERROR "Perl executable not found. Please set PERL_EXECUTABLE.")
-ENDIF(NOT PERL_FOUND)
+  message(SEND_ERROR "Perl executable not found. Please set PERL_EXECUTABLE.")
+endif(NOT PERL_FOUND)
 
-GET_FILENAME_COMPONENT(PERL_DIR ${PERL_EXECUTABLE} DIRECTORY)
+get_filename_component(PERL_DIR ${PERL_EXECUTABLE} DIRECTORY)
 
-FIND_PROGRAM(POD2MAN_EXECUTABLE pod2man HINTS ${PERL_DIR})
+find_program(POD2MAN_EXECUTABLE pod2man HINTS ${PERL_DIR})
 
 #ICU
-GNC_PKG_CHECK_MODULES (ICU4C REQUIRED icu-uc)
-GNC_PKG_CHECK_MODULES (ICU4C_I18N REQUIRED icu-i18n)
+gnc_pkg_check_modules (ICU4C REQUIRED icu-uc)
+gnc_pkg_check_modules (ICU4C_I18N REQUIRED icu-i18n)
 
 #BOOST
-SET (Boost_USE_MULTITHREADED ON)
-SET (Boost_FIND_QUIETLY ON)
+set (Boost_USE_MULTITHREADED ON)
+set (Boost_FIND_QUIETLY ON)
 
-IF (NOT DEFINED ${BOOST_ROOT})
-  SET(BOOST_ROOT $ENV{BOOST_ROOT})
-ENDIF()
-FIND_PACKAGE (Boost 1.54.0 REQUIRED COMPONENTS date_time regex locale filesystem system)
+if (NOT DEFINED ${BOOST_ROOT})
+  set(BOOST_ROOT $ENV{BOOST_ROOT})
+endif()
+find_package (Boost 1.54.0 REQUIRED COMPONENTS date_time regex locale filesystem system)
 
-IF (Boost_FOUND)
+if (Boost_FOUND)
   include_directories(${Boost_INCLUDE_DIRS})
-  SET(HAVE_BOOST 1)
-ELSE (Boost_FOUND)
-  MESSAGE (SEND_ERROR "Boost 1.54.0 or later is not installed, and is required. Please install it and ensure that the following libraries are built: chrono, date_time, filesystem, log, program_options, regex, signals, system, and test.")
-ENDIF (Boost_FOUND)
+  set(HAVE_BOOST 1)
+else (Boost_FOUND)
+  message (SEND_ERROR "Boost 1.54.0 or later is not installed, and is required. Please install it and ensure that the following libraries are built: chrono, date_time, filesystem, log, program_options, regex, signals, system, and test.")
+endif (Boost_FOUND)
 
 
 # Compiler flags
@@ -527,13 +527,13 @@ ENDIF (Boost_FOUND)
 if (APPLE)
   include (CheckCCompilerFlag)
   include (CheckCxxCompilerFlag)
-  Check_CXX_Compiler_Flag(-Wno-unused-local-typedef, have_wno_ult)
+  check_cxx_compiler_flag(-Wno-unused-local-typedef, have_wno_ult)
   if (have_wno_ult)
-    SET( CMAKE_CXX_FLAGS "-Wno-unused-local-typedef -Wmissing-prototypes ${CMAKE_CXX_FLAGS}")
+    set( CMAKE_CXX_FLAGS "-Wno-unused-local-typedef -Wmissing-prototypes ${CMAKE_CXX_FLAGS}")
   else()
-    SET( CMAKE_CXX_FLAGS "-Wmissing-prototypes ${CMAKE_CXX_FLAGS}")
+    set( CMAKE_CXX_FLAGS "-Wmissing-prototypes ${CMAKE_CXX_FLAGS}")
   endif()
-  Check_C_Compiler_Flag(-Wno-unknown-attributes have_no_unkatt)
+  check_c_compiler_flag(-Wno-unknown-attributes have_no_unkatt)
   if (have_no_unkatt)
     set(CMAKE_C_FLAGS "-Wno-unknown-attributes -Wno-typedef-redefinition ${CMAKE_C_FLAGS}")
     set(CMAKE_CXX_FLAGS "-Wno-unknown-attributes -Wno-typedef-redefinition ${CMAKE_CXX_FLAGS}")
@@ -541,66 +541,66 @@ if (APPLE)
     set(CMAKE_C_FLAGS "-Wno-typedef-redefinition ${CMAKE_C_FLAGS}")
     set(CMAKE_CXX_FLAGS "-Wno-typedef-redefinition ${CMAKE_CXX_FLAGS}")
   endif()
-  #  SET (CMAKE_OSX_ARCHITECTURES "i386")
+  #  set (CMAKE_OSX_ARCHITECTURES "i386")
 endif (APPLE)
 
 
 # Also, set the C++ version to c++11
-SET(CMAKE_CXX_FLAGS "-std=gnu++11 ${CMAKE_CXX_FLAGS}")  # FIXME: should be -std=c++11
-
-
-IF (UNIX)
-  SET( CMAKE_C_FLAGS "-Werror -Wdeclaration-after-statement -Wno-pointer-sign -Wall -Wmissing-prototypes -Wmissing-declarations -Wno-unused ${CMAKE_C_FLAGS}")
-  SET( CMAKE_CXX_FLAGS "-Werror -Wall -Wmissing-declarations -Wno-unused ${CMAKE_CXX_FLAGS}")
-  SET( CMAKE_C_FLAGS "-Wno-deprecated-declarations -std=gnu11 ${CMAKE_C_FLAGS}")
-  SET( CMAKE_C_FLAGS_RELEASE "-O3 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 ${CMAKE_C_FLAGS}")
-ENDIF (UNIX)
-IF (MINGW)
-  SET( CMAKE_C_FLAGS "-Werror -Wdeclaration-after-statement -Wno-pointer-sign -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations  -Wno-unused -Wno-error=deprecated-declarations -std=gnu11 ${CMAKE_C_FLAGS}")
-  SET( CMAKE_CXX_FLAGS "-DWINVER=0x0500 -D_EMULATE_GLIBC=0 ${CMAKE_CXX_FLAGS}") # Workaround for bug in gtest on mingw, see https://github.com/google/googletest/issues/893 and https://github.com/google/googletest/issues/920
-ENDIF (MINGW)
-
-IF (APPLE AND WITH_GNUCASH)
-  SET(CMAKE_MACOSX_RPATH ON)
-  SET(CMAKE_INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}")
-ENDIF (APPLE AND WITH_GNUCASH)
-
-IF (UNIX)
-  SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_FULL_LIBDIR}:${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
-ENDIF()
+set(CMAKE_CXX_FLAGS "-std=gnu++11 ${CMAKE_CXX_FLAGS}")  # FIXME: should be -std=c++11
+
+
+if (UNIX)
+  set( CMAKE_C_FLAGS "-Werror -Wdeclaration-after-statement -Wno-pointer-sign -Wall -Wmissing-prototypes -Wmissing-declarations -Wno-unused ${CMAKE_C_FLAGS}")
+  set( CMAKE_CXX_FLAGS "-Werror -Wall -Wmissing-declarations -Wno-unused ${CMAKE_CXX_FLAGS}")
+  set( CMAKE_C_FLAGS "-Wno-deprecated-declarations -std=gnu11 ${CMAKE_C_FLAGS}")
+  set( CMAKE_C_FLAGS_RELEASE "-O3 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 ${CMAKE_C_FLAGS}")
+endif (UNIX)
+if (MINGW)
+  set( CMAKE_C_FLAGS "-Werror -Wdeclaration-after-statement -Wno-pointer-sign -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations  -Wno-unused -Wno-error=deprecated-declarations -std=gnu11 ${CMAKE_C_FLAGS}")
+  set( CMAKE_CXX_FLAGS "-DWINVER=0x0500 -D_EMULATE_GLIBC=0 ${CMAKE_CXX_FLAGS}") # Workaround for bug in gtest on mingw, see https://github.com/google/googletest/issues/893 and https://github.com/google/googletest/issues/920
+endif (MINGW)
+
+if (APPLE AND WITH_GNUCASH)
+  set(CMAKE_MACOSX_RPATH ON)
+  set(CMAKE_INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}")
+endif (APPLE AND WITH_GNUCASH)
+
+if (UNIX)
+  set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_FULL_LIBDIR}:${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
+endif()
 
-SET(BUILD_SHARED_LIBS ON)
+set(BUILD_SHARED_LIBS ON)
 
 # Most libraries are installed to lib/gnucash, so set that as the default.
 # For the handful that are installed to lib, we override the properies below
 # (after the targets have been read in).
 
 
-SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY         ${LIBDIR_BUILD}/gnucash)
-IF (XCODE_VERSION)
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY         ${LIBDIR_BUILD}/gnucash)
+if (XCODE_VERSION)
   # FIXME: These settings break the ability to manipulate different configurations (Debug,
   # FIXME: Release, etc.) in Xcode. We'll need to change the module loading C code if
   # we want to support multi config.
-  SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG   ${LIBDIR_BUILD}/gnucash)
-  SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${LIBDIR_BUILD}/gnucash)
-ENDIF()
+  set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG   ${LIBDIR_BUILD}/gnucash)
+  set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${LIBDIR_BUILD}/gnucash)
+endif()
 
 # For binarines
-SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY         ${CMAKE_BINARY_DIR}/bin)
-IF (XCODE_VERSION)
-  SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG   ${CMAKE_BINARY_DIR}/bin)
-  SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin)
-ENDIF()
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY         ${CMAKE_BINARY_DIR}/bin)
+if (XCODE_VERSION)
+  set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG   ${CMAKE_BINARY_DIR}/bin)
+  set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin)
+endif()
 # ############################################################
 
-GNC_GTEST_CONFIGURE()
+gnc_gtest_configure()
 
 # There are targets that need to build before tests will run
-ADD_CUSTOM_TARGET(check
+add_custom_target(check
   COMMAND ${CMAKE_CTEST_COMMAND}
 )
 
-SET(gnucash_DOCS
+set(gnucash_DOCS
     AUTHORS
     ChangeLog.1999
     ChangeLog.2000
@@ -629,151 +629,151 @@ SET(gnucash_DOCS
 )
 
 
-INSTALL(FILES ${gnucash_DOCS} DESTINATION ${CMAKE_INSTALL_DOCDIR})
+install(FILES ${gnucash_DOCS} DESTINATION ${CMAKE_INSTALL_DOCDIR})
 
 # ############################################################
 
 # Create config.h
 
-SET (GETTEXT_PACKAGE "gnucash")
-
-IF (WIN32)
-IF (MINGW)
-SET (HAVE_SCANF_LLD 1)
-ELSE ()
-SET (HAVE_SCANF_I64D 1)
-ENDIF ()
-SET (HAVE_HTMLHELPW 1)
-ENDIF (WIN32)
-
-CHECK_INCLUDE_FILES (dirent.h HAVE_DIRENT_H)
-CHECK_INCLUDE_FILES (dlfcn.h HAVE_DLFCN_H)
-CHECK_INCLUDE_FILES (glob.h HAVE_GLOB_H)
-CHECK_INCLUDE_FILES (inttypes.h HAVE_INTTYPES_H)
-CHECK_INCLUDE_FILES (limits.h HAVE_LIMITS_H)
-CHECK_INCLUDE_FILES (locale.h HAVE_LOCALE_H)
-CHECK_INCLUDE_FILES (memory.h HAVE_MEMORY_H)
-CHECK_INCLUDE_FILES (stdint.h HAVE_STDINT_H)
-CHECK_INCLUDE_FILES (stdlib.h HAVE_STDLIB_H)
-CHECK_INCLUDE_FILES (string.h HAVE_STRING_H)
-CHECK_INCLUDE_FILES (strings.h HAVE_STRINGS_H)
-CHECK_INCLUDE_FILES (sys/stat.h HAVE_SYS_STAT_H)
-CHECK_INCLUDE_FILES (sys/time.h HAVE_SYS_TIME_H)
-CHECK_INCLUDE_FILES (sys/times.h HAVE_SYS_TIMES_H)
-CHECK_INCLUDE_FILES (sys/types.h HAVE_SYS_TYPES_H)
-CHECK_INCLUDE_FILES (sys/wait.h HAVE_SYS_WAIT_H)
-CHECK_INCLUDE_FILES (unistd.h HAVE_UNISTD_H)
-CHECK_INCLUDE_FILES (utmp.h HAVE_UTMP_H)
-CHECK_INCLUDE_FILES (wctype.h HAVE_WCTYPE_H)
-
-IF (NOT DISABLE_NLS)
-SET(ENABLE_NLS 1)
-ENDIF(NOT DISABLE_NLS)
-
-IF (ENABLE_BINRELOC)
-IF (UNIX OR MINGW)
-SET(BR_PTHREAD 1)
-ENDIF(UNIX OR MINGW)
-ENDIF(ENABLE_BINRELOC)
-
-IF (UNIX OR MINGW)
-SET (HAVE_BIND_TEXTDOMAIN_CODESET 1)
-SET (HAVE_DCGETTEXT 1)
-SET (HAVE_GETTEXT 1)
-SET (HAVE_GETTIMEOFDAY 1)
-SET (HAVE_GUILE 1)
-SET (HAVE_LIBM 1)
-SET (HAVE_MEMCPY 1)
-SET (STDC_HEADERS 1)
-SET (_ALL_SOURCE 1)
-SET (_GNU_SOURCE 1)
-SET (_POSIX_PTHREAD_SEMANTICS 1)
-SET (_TANDEM_SOURCE 1)
-SET (__EXTENSIONS__ 1)
-ENDIF (UNIX OR MINGW)
-
-IF (UNIX)
-SET (HAVE_CHOWN 1)
-SET (HAVE_DLERROR 1)
-SET (HAVE_DLSYM 1)
-SET (HAVE_GETHOSTID 1)
-SET (HAVE_GETHOSTNAME 1)
-SET (HAVE_GETPPID 1)
-SET (HAVE_GETUID 1)
-SET (HAVE_GMTIME_R 1)
-SET (HAVE_LANGINFO_D_FMT 1)
-SET (HAVE_LC_MESSAGES 1)
-SET (HAVE_LIBPTHREAD 1)
-SET (HAVE_LINK 1)
-SET (HAVE_LOCALTIME_R 1)
-SET (HAVE_PTHREAD_MUTEX_INIT 1)
-SET (HAVE_PTHREAD_PRIO_INHERIT 1)
-SET (HAVE_SCANF_LLD 1)
-SET (HAVE_SETENV 1)
-SET (HAVE_STPCPY 1)
-SET (HAVE_STRFMON 1)
-SET (HAVE_STRPTIME 1)
-SET (HAVE_STRUCT_TM_GMTOFF 1)
-SET (HAVE_TIMEGM 1)
-SET (HAVE_TOWUPPER 1)
-SET (GNC_PLATFORM_POSIX 1)
-ENDIF (UNIX)
-
-IF (WIN32)
-SET (GNC_PLATFORM_WINDOWS 1)
-ENDIF (WIN32)
-
-IF (APPLE)
-# FIXME: HANDLE gtk-mac-integration-gtk2
-SET(GNC_PLATFORM_DARWIN 1)
-SET(GNC_PLATFORM_OSX 1)
-SET(PLATFORM_OSX 1)
-SET(HAVE_OSX_KEYCHAIN 1)
-ENDIF(APPLE)
+set (GETTEXT_PACKAGE "gnucash")
 
-IF(GLIB2_VERSION VERSION_GREATER 2.46.0 OR GLIB2_VERSION VERSION_EQUAL 2.46.0)
-SET(HAVE_GLIB_2_46 1)
-ENDIF()
+if (WIN32)
+if (MINGW)
+set (HAVE_SCANF_LLD 1)
+else ()
+set (HAVE_SCANF_I64D 1)
+endif ()
+set (HAVE_HTMLHELPW 1)
+endif (WIN32)
+
+check_include_files (dirent.h HAVE_DIRENT_H)
+check_include_files (dlfcn.h HAVE_DLFCN_H)
+check_include_files (glob.h HAVE_GLOB_H)
+check_include_files (inttypes.h HAVE_INTTYPES_H)
+check_include_files (limits.h HAVE_LIMITS_H)
+check_include_files (locale.h HAVE_LOCALE_H)
+check_include_files (memory.h HAVE_MEMORY_H)
+check_include_files (stdint.h HAVE_STDINT_H)
+check_include_files (stdlib.h HAVE_STDLIB_H)
+check_include_files (string.h HAVE_STRING_H)
+check_include_files (strings.h HAVE_STRINGS_H)
+check_include_files (sys/stat.h HAVE_SYS_STAT_H)
+check_include_files (sys/time.h HAVE_SYS_TIME_H)
+check_include_files (sys/times.h HAVE_SYS_TIMES_H)
+check_include_files (sys/types.h HAVE_SYS_TYPES_H)
+check_include_files (sys/wait.h HAVE_SYS_WAIT_H)
+check_include_files (unistd.h HAVE_UNISTD_H)
+check_include_files (utmp.h HAVE_UTMP_H)
+check_include_files (wctype.h HAVE_WCTYPE_H)
+
+if (NOT DISABLE_NLS)
+set(ENABLE_NLS 1)
+endif(NOT DISABLE_NLS)
+
+if (ENABLE_BINRELOC)
+if (UNIX OR MINGW)
+set(BR_PTHREAD 1)
+endif(UNIX OR MINGW)
+endif(ENABLE_BINRELOC)
+
+if (UNIX OR MINGW)
+set (HAVE_BIND_TEXTDOMAIN_CODESET 1)
+set (HAVE_DCGETTEXT 1)
+set (HAVE_GETTEXT 1)
+set (HAVE_GETTIMEOFDAY 1)
+set (HAVE_GUILE 1)
+set (HAVE_LIBM 1)
+set (HAVE_MEMCPY 1)
+set (STDC_HEADERS 1)
+set (_ALL_SOURCE 1)
+set (_GNU_SOURCE 1)
+set (_POSIX_PTHREAD_SEMANTICS 1)
+set (_TANDEM_SOURCE 1)
+set (__EXTENSIONS__ 1)
+endif (UNIX OR MINGW)
+
+if (UNIX)
+set (HAVE_CHOWN 1)
+set (HAVE_DLERROR 1)
+set (HAVE_DLSYM 1)
+set (HAVE_GETHOSTID 1)
+set (HAVE_GETHOSTNAME 1)
+set (HAVE_GETPPID 1)
+set (HAVE_GETUID 1)
+set (HAVE_GMTIME_R 1)
+set (HAVE_LANGINFO_D_FMT 1)
+set (HAVE_LC_MESSAGES 1)
+set (HAVE_LIBPTHREAD 1)
+set (HAVE_LINK 1)
+set (HAVE_LOCALTIME_R 1)
+set (HAVE_PTHREAD_MUTEX_INIT 1)
+set (HAVE_PTHREAD_PRIO_INHERIT 1)
+set (HAVE_SCANF_LLD 1)
+set (HAVE_SETENV 1)
+set (HAVE_STPCPY 1)
+set (HAVE_STRFMON 1)
+set (HAVE_STRPTIME 1)
+set (HAVE_STRUCT_TM_GMTOFF 1)
+set (HAVE_TIMEGM 1)
+set (HAVE_TOWUPPER 1)
+set (GNC_PLATFORM_POSIX 1)
+endif (UNIX)
+
+if (WIN32)
+set (GNC_PLATFORM_WINDOWS 1)
+endif (WIN32)
+
+if (APPLE)
+# FIXME: HANDLE gtk-mac-integration-gtk2
+set(GNC_PLATFORM_DARWIN 1)
+set(GNC_PLATFORM_OSX 1)
+set(PLATFORM_OSX 1)
+set(HAVE_OSX_KEYCHAIN 1)
+endif(APPLE)
+
+if(GLIB2_VERSION VERSION_GREATER 2.46.0 OR GLIB2_VERSION VERSION_EQUAL 2.46.0)
+set(HAVE_GLIB_2_46 1)
+endif()
 
-IF(DISABLE_DEPRECATED_GNOME)
-SET(GNOME_DISABLE_DEPRECATED 1)
-ENDIF(DISABLE_DEPRECATED_GNOME)
+if(DISABLE_DEPRECATED_GNOME)
+set(GNOME_DISABLE_DEPRECATED 1)
+endif(DISABLE_DEPRECATED_GNOME)
 
-IF(DISABLE_DEPRECATED_GTK)
-SET(GTK_DISABLE_DEPRECATED 1)
-SET(GDK_DISABLE_DEPRECATED 1)
-SET(GDK_PIXMAP_DISABLE_DEPRECATED 1)
-ENDIF(DISABLE_DEPRECATED_GTK)
+if(DISABLE_DEPRECATED_GTK)
+set(GTK_DISABLE_DEPRECATED 1)
+set(GDK_DISABLE_DEPRECATED 1)
+set(GDK_PIXMAP_DISABLE_DEPRECATED 1)
+endif(DISABLE_DEPRECATED_GTK)
 
-IF(DISABLE_DEPRECATED_GLIB)
-SET(G_DISABLE_DEPRECATED 1)
-ENDIF(DISABLE_DEPRECATED_GLIB)
+if(DISABLE_DEPRECATED_GLIB)
+set(G_DISABLE_DEPRECATED 1)
+endif(DISABLE_DEPRECATED_GLIB)
 
-ADD_DEFINITIONS (-DHAVE_CONFIG_H)
+add_definitions (-DHAVE_CONFIG_H)
 
-SET (CONFIG_H ${CMAKE_CURRENT_BINARY_DIR}/common/config.h)
-CONFIGURE_FILE (${CMAKE_CURRENT_SOURCE_DIR}/common/config.h.cmake.in ${CONFIG_H})
+set (CONFIG_H ${CMAKE_CURRENT_BINARY_DIR}/common/config.h)
+configure_file (${CMAKE_CURRENT_SOURCE_DIR}/common/config.h.cmake.in ${CONFIG_H})
 
-SET(SCHEME_INSTALLED_SOURCE_DIR ${CMAKE_INSTALL_DATADIR}/gnucash/scm)
-SET(SCHEME_INSTALLED_CACHE_DIR ${PKGLIBDIR}/scm/ccache/${GUILE_EFFECTIVE_VERSION})
+set(SCHEME_INSTALLED_SOURCE_DIR ${CMAKE_INSTALL_DATADIR}/gnucash/scm)
+set(SCHEME_INSTALLED_CACHE_DIR ${PKGLIBDIR}/scm/ccache/${GUILE_EFFECTIVE_VERSION})
 
 # The subdirectories
-ADD_SUBDIRECTORY (borrowed)
-ADD_SUBDIRECTORY (data)
-ADD_SUBDIRECTORY (doc)
-ADD_SUBDIRECTORY (po)
-ADD_SUBDIRECTORY (common)
-ADD_SUBDIRECTORY (libgnucash)
-IF (WITH_GNUCASH)
-  ADD_SUBDIRECTORY (gnucash)
-ENDIF (WITH_GNUCASH)
-ADD_SUBDIRECTORY (bindings)
-ADD_SUBDIRECTORY (test-templates)
-ADD_SUBDIRECTORY (util)
+add_subdirectory (borrowed)
+add_subdirectory (data)
+add_subdirectory (doc)
+add_subdirectory (po)
+add_subdirectory (common)
+add_subdirectory (libgnucash)
+if (WITH_GNUCASH)
+  add_subdirectory (gnucash)
+endif (WITH_GNUCASH)
+add_subdirectory (bindings)
+add_subdirectory (test-templates)
+add_subdirectory (util)
 
 # This cmake subdir must be the last add_subdirectory() call because
 # it contains post-install actions to execute.
-ADD_SUBDIRECTORY(cmake)
+add_subdirectory(cmake)
 
 # Generate the ChangeLog
 
@@ -790,40 +790,40 @@ dist_add_generated (${BUILDING_FROM_VCS} ChangeLog)
 
 ############################ BEGIN MAKE DIST #################
 
-SET(PACKAGE_PREFIX "${PACKAGE}-${PACKAGE_VERSION}")
-SET(DIST_FILE "${PACKAGE_PREFIX}.tar")
+set(PACKAGE_PREFIX "${PACKAGE}-${PACKAGE_VERSION}")
+set(DIST_FILE "${PACKAGE_PREFIX}.tar")
 
-SET(toplvl_DIST_local ${gnucash_DOCS}
+set(toplvl_DIST_local ${gnucash_DOCS}
   CMakeLists.txt README)
 
 
-SET_LOCAL_DIST(toplvl_DIST ${toplvl_DIST_local})
+set_local_dist(toplvl_DIST ${toplvl_DIST_local})
 
 # Each subdirectory is responsible for reporting its list of distribution files to its parent, up to here.
 #
-# Leaf directories use the SET_DIST_LIST() function to report their distribution files. See
+# Leaf directories use the set_dist_list() function to report their distribution files. See
 # the bottom of libgnucash/app-utils/test/CMakeLists.txt for an example.
 #
-# A non leaf directories uses the SET_LOCAL_DIST() function to specify its distribution files local that dir,
-# then uses a (SET ${foo_DIST} ${locals....} PARENT_SCOPE) command to report up. See the bottom of
+# A non leaf directories uses the set_local_dist() function to specify its distribution files local that dir,
+# then uses a (set ${foo_DIST} ${locals....} PARENT_SCOPE) command to report up. See the bottom of
 # libgnucash/app-utils/CMakeLists.txt for an example of this.
 
-SET(ALL_DIST ${bindings_DIST} ${borrowed_DIST} ${cmake_DIST} ${common_DIST} ${data_DIST}
+set(ALL_DIST ${bindings_DIST} ${borrowed_DIST} ${cmake_DIST} ${common_DIST} ${data_DIST}
     ${doc_DIST} ${gnucash_DIST} ${libgnucash_DIST} ${packaging_DIST}
     ${po_DIST} ${test_templates_DIST} ${toplvl_DIST} ${util_DIST})
 
 
-IF (BUILDING_FROM_VCS)
-  SET(BUILD_SOURCE_DIR ${CMAKE_BINARY_DIR})
-ELSE()
-  SET(BUILD_SOURCE_DIR ${CMAKE_SOURCE_DIR})
-ENDIF()
+if (BUILDING_FROM_VCS)
+  set(BUILD_SOURCE_DIR ${CMAKE_BINARY_DIR})
+else()
+  set(BUILD_SOURCE_DIR ${CMAKE_SOURCE_DIR})
+endif()
 
 # Write a dist manifest
-STRING(REPLACE ";" "\n" ALL_DIST_LINES "${ALL_DIST}")
-FILE(WRITE ${CMAKE_BINARY_DIR}/dist_manifest.txt ${ALL_DIST_LINES})
+string(REPLACE ";" "\n" ALL_DIST_LINES "${ALL_DIST}")
+file(WRITE ${CMAKE_BINARY_DIR}/dist_manifest.txt ${ALL_DIST_LINES})
 
-ADD_CUSTOM_COMMAND(OUTPUT ${DIST_FILE}.gz ${DIST_FILE}.bz2
+add_custom_command(OUTPUT ${DIST_FILE}.gz ${DIST_FILE}.bz2
         COMMAND ${CMAKE_COMMAND}
            -D CMAKE_MODULE_PATH=${CMAKE_SOURCE_DIR}/common/cmake_modules
            -D PACKAGE_PREFIX=${PACKAGE_PREFIX}
@@ -839,9 +839,9 @@ ADD_CUSTOM_COMMAND(OUTPUT ${DIST_FILE}.gz ${DIST_FILE}.bz2
           ${ALL_DIST} ${dist_generated_depends}
         )
 
-ADD_CUSTOM_TARGET(dist DEPENDS ${DIST_FILE}.gz ${DIST_FILE}.bz2)
+add_custom_target(dist DEPENDS ${DIST_FILE}.gz ${DIST_FILE}.bz2)
 
-ADD_CUSTOM_TARGET(distcheck DEPENDS dist
+add_custom_target(distcheck DEPENDS dist
         COMMAND ${CMAKE_COMMAND}
             -D CMAKE_MODULE_PATH=${CMAKE_SOURCE_DIR}/common/cmake_modules
             -D CMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}
@@ -864,46 +864,46 @@ configure_file(
 add_custom_target(uninstall
         COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
 
-SET(_MODULES gnc-core-utils gnc-module gnc-backend-xml-utils)
+set(_MODULES gnc-core-utils gnc-module gnc-backend-xml-utils)
 
-IF (WITH_SQL)
-  LIST(APPEND _MODULES gnc-backend-sql)
-ENDIF(WITH_SQL)
+if (WITH_SQL)
+  list(APPEND _MODULES gnc-backend-sql)
+endif(WITH_SQL)
 
-IF (WITH_GNUCASH)
-  LIST(APPEND _MODULES gnc-gnome)
-ENDIF(WITH_GNUCASH)
+if (WITH_GNUCASH)
+  list(APPEND _MODULES gnc-gnome)
+endif(WITH_GNUCASH)
 
-SET_TARGET_PROPERTIES(${_MODULES} PROPERTIES
+set_target_properties(${_MODULES} PROPERTIES
   LIBRARY_OUTPUT_DIRECTORY         ${LIBDIR_BUILD}
-  IF (XCODE_VERSION)
+  if (XCODE_VERSION)
     LIBRARY_OUTPUT_DIRECTORY_DEBUG   ${LIBDIR_BUILD}
     LIBRARY_OUTPUT_DIRECTORY_RELEASE ${LIBDIR_BUILD}
-  ENDIF()
+  endif()
 
   RUNTIME_OUTPUT_DIRECTORY         ${CMAKE_BINARY_DIR}/bin
-  IF (XCODE_VERSION)
+  if (XCODE_VERSION)
     RUNTIME_OUTPUT_DIRECTORY_DEBUG   ${CMAKE_BINARY_DIR}/bin
     RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin
-  ENDIF()
+  endif()
 )
 
-IF (WIN32)
-  SET_TARGET_PROPERTIES(gncmod-backend-xml gncmod-stylesheets PROPERTIES
+if (WIN32)
+  set_target_properties(gncmod-backend-xml gncmod-stylesheets PROPERTIES
     LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
   )
-ENDIF()
+endif()
 
 #Link LICENSE to COPYING so that people expecting to find it,
 #will. COPYING is normally linked by autogen.sh to the latest
 #automake-provided version.
-SET (_CMD create_symlink)
-IF (WIN32)
-  SET(_CMD copy)
-ENDIF()
+set (_CMD create_symlink)
+if (WIN32)
+  set(_CMD copy)
+endif()
 
-INSTALL(CODE
-" EXECUTE_PROCESS(
+install(CODE
+" execute_process(
       COMMAND ${CMAKE_COMMAND} -E ${_CMD} LICENSE COPYING
       WORKING_DIRECTORY ${CMAKE_INSTALL_DOCDIR}
   )"
@@ -911,25 +911,25 @@ INSTALL(CODE
 
 #For windows, copy in some DLLs from Mingw
 
-IF (WIN32)
-  FIND_LIBRARY(LIBSTDC++ libstdc++-6.dll)
-  FIND_LIBRARY(LIBDW2 libgcc_s_dw2-1.dll)
-  SET(MINGW_DLLS ${LIBSTDC++} ${LIBDW2})
-  INSTALL(PROGRAMS ${MINGW_DLLS} DESTINATION ${CMAKE_INSTALL_BINDIR})
-  FILE(COPY ${MINGW_DLLS} DESTINATION ${BINDIR_BUILD}
+if (WIN32)
+  find_library(LIBSTDC++ libstdc++-6.dll)
+  find_library(LIBDW2 libgcc_s_dw2-1.dll)
+  set(MINGW_DLLS ${LIBSTDC++} ${LIBDW2})
+  install(PROGRAMS ${MINGW_DLLS} DESTINATION ${CMAKE_INSTALL_BINDIR})
+  file(COPY ${MINGW_DLLS} DESTINATION ${BINDIR_BUILD}
     # Do permissions matter for windows?
     FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
   )
-ENDIF()
+endif()
 # ############################################################
 # Package creation rules
 
-SET(CPACK_PACKAGE_VERSION_MAJOR "${GNUCASH_MAJOR_VERSION}")
-SET(CPACK_PACKAGE_VERSION_MINOR "${GNUCASH_MINOR_VERSION}")
-SET(CPACK_PACKAGE_VERSION "${VERSION}")
+set(CPACK_PACKAGE_VERSION_MAJOR "${GNUCASH_MAJOR_VERSION}")
+set(CPACK_PACKAGE_VERSION_MINOR "${GNUCASH_MINOR_VERSION}")
+set(CPACK_PACKAGE_VERSION "${VERSION}")
 
-IF(UNIX)
-  SET(CPACK_GENERATOR "TGZ")
-ENDIF(UNIX)
+if(UNIX)
+  set(CPACK_GENERATOR "TGZ")
+endif(UNIX)
 
-INCLUDE (CPack)
+include (CPack)
diff --git a/bindings/CMakeLists.txt b/bindings/CMakeLists.txt
index 10d7e23..61450f6 100644
--- a/bindings/CMakeLists.txt
+++ b/bindings/CMakeLists.txt
@@ -1,4 +1,4 @@
-ADD_SUBDIRECTORY(python)
+add_subdirectory(python)
 
-SET_LOCAL_DIST(bindings_DIST_local CMakeLists.txt )
-SET(bindings_DIST ${bindings_DIST_local} ${python_bindings_DIST} PARENT_SCOPE)
+set_local_dist(bindings_DIST_local CMakeLists.txt )
+set(bindings_DIST ${bindings_DIST_local} ${python_bindings_DIST} PARENT_SCOPE)
diff --git a/bindings/python/CMakeLists.txt b/bindings/python/CMakeLists.txt
index 8bdde03..df90698 100644
--- a/bindings/python/CMakeLists.txt
+++ b/bindings/python/CMakeLists.txt
@@ -1,7 +1,7 @@
-ADD_SUBDIRECTORY(example_scripts)
-ADD_SUBDIRECTORY(tests)
+add_subdirectory(example_scripts)
+add_subdirectory(tests)
 
-SET(PYEXEC_FILES  __init__.py function_class.py gnucash_business.py gnucash_core.py)
+set(PYEXEC_FILES  __init__.py function_class.py gnucash_business.py gnucash_core.py)
 
 set(SWIG_FILES ${CMAKE_CURRENT_SOURCE_DIR}/gnucash_core.i ${CMAKE_CURRENT_SOURCE_DIR}/time64.i)
 set(GNUCASH_CORE_C_INCLUDES
@@ -45,9 +45,9 @@ gnc_add_swig_python_command (swig-gnucash-core
     ${GNUCASH_CORE_C_INCLUDES}
 )
 
-IF(WITH_PYTHON)
+if(WITH_PYTHON)
 
-  SET(gnucash_core_c_INCLUDE_DIRS
+  set(gnucash_core_c_INCLUDE_DIRS
     ${CMAKE_SOURCE_DIR}/libgnucash
     ${CMAKE_SOURCE_DIR}/libgnucash/engine
     ${CMAKE_SOURCE_DIR}/gnucash/gnome-utils
@@ -60,48 +60,48 @@ IF(WITH_PYTHON)
     ${PYTHON_INCLUDE_DIRS}
   )
 
-  ADD_LIBRARY(gnucash_core_c MODULE ${SWIG_GNUCASH_CORE_C})
-  TARGET_INCLUDE_DIRECTORIES(gnucash_core_c PRIVATE ${gnucash_core_c_INCLUDE_DIRS})
+  add_library(gnucash_core_c MODULE ${SWIG_GNUCASH_CORE_C})
+  target_include_directories(gnucash_core_c PRIVATE ${gnucash_core_c_INCLUDE_DIRS})
 
-  TARGET_LINK_LIBRARIES(gnucash_core_c gncmod-app-utils gncmod-engine gnc-module ${GLIB_LIBS} ${PYTHON_LIBRARIES})
-  SET_TARGET_PROPERTIES(gnucash_core_c PROPERTIES PREFIX "_")
-  TARGET_COMPILE_OPTIONS(gnucash_core_c PRIVATE -Wno-implicit -Wno-missing-prototypes -Wno-declaration-after-statement -Wno-missing-declarations)
+  target_link_libraries(gnucash_core_c gncmod-app-utils gncmod-engine gnc-module ${GLIB_LIBS} ${PYTHON_LIBRARIES})
+  set_target_properties(gnucash_core_c PROPERTIES PREFIX "_")
+  target_compile_options(gnucash_core_c PRIVATE -Wno-implicit -Wno-missing-prototypes -Wno-declaration-after-statement -Wno-missing-declarations)
 
-  ADD_EXECUTABLE(sqlite3test EXCLUDE_FROM_ALL sqlite3test.c ${SWIG_GNUCASH_CORE_C})
-  TARGET_LINK_LIBRARIES(sqlite3test gncmod-app-utils gncmod-engine gnc-module ${GLIB_LIBS} ${PYTHON_LIBRARIES})
-  TARGET_INCLUDE_DIRECTORIES(sqlite3test PRIVATE ${gnucash_core_c_INCLUDE_DIRS})
-  TARGET_COMPILE_OPTIONS(sqlite3test PRIVATE -Wno-implicit -Wno-missing-prototypes -Wno-declaration-after-statement -Wno-missing-declarations)
+  add_executable(sqlite3test EXCLUDE_FROM_ALL sqlite3test.c ${SWIG_GNUCASH_CORE_C})
+  target_link_libraries(sqlite3test gncmod-app-utils gncmod-engine gnc-module ${GLIB_LIBS} ${PYTHON_LIBRARIES})
+  target_include_directories(sqlite3test PRIVATE ${gnucash_core_c_INCLUDE_DIRS})
+  target_compile_options(sqlite3test PRIVATE -Wno-implicit -Wno-missing-prototypes -Wno-declaration-after-statement -Wno-missing-declarations)
 
-  ADD_TEST(NAME sqlite3test COMMAND sqlite3test)
-  ADD_DEPENDENCIES(check sqlite3test)
+  add_test(NAME sqlite3test COMMAND sqlite3test)
+  add_dependencies(check sqlite3test)
 
-  INSTALL(TARGETS gnucash_core_c
+  install(TARGETS gnucash_core_c
     LIBRARY DESTINATION ${PYTHON_SYSCONFIG_OUTPUT}/gnucash
     ARCHIVE DESTINATION ${PYTHON_SYSCONFIG_OUTPUT}/gnucash
   )
-  INSTALL(FILES ${PYEXEC_FILES} ${SWIG_GNUCASH_CORE_PY}
+  install(FILES ${PYEXEC_FILES} ${SWIG_GNUCASH_CORE_PY}
     DESTINATION ${PYTHON_SYSCONFIG_OUTPUT}/gnucash
   )
 
-  FILE(COPY ${PYEXEC_FILES} DESTINATION ${PYTHON_SYSCONFIG_BUILD}/gnucash)
+  file(COPY ${PYEXEC_FILES} DESTINATION ${PYTHON_SYSCONFIG_BUILD}/gnucash)
 
-  ADD_CUSTOM_TARGET(gnucash-core-c-py ALL
+  add_custom_target(gnucash-core-c-py ALL
     COMMAND ${CMAKE_COMMAND} -E copy ${SWIG_GNUCASH_CORE_PY} ${PYTHON_SYSCONFIG_BUILD}/gnucash
     DEPENDS ${SWIG_GNUCASH_CORE_C})
 
-  ADD_CUSTOM_TARGET(gnucash-core-c-build ALL
+  add_custom_target(gnucash-core-c-build ALL
     COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR_BUILD}/gnucash/_gnucash_core_c${CMAKE_SHARED_MODULE_SUFFIX} ${PYTHON_SYSCONFIG_BUILD}/gnucash
     DEPENDS gnucash_core_c)
-    
-ENDIF()
 
-SET(python_bindings_DATA ${PYEXEC_FILES}
+endif()
+
+set(python_bindings_DATA ${PYEXEC_FILES}
   gnucash_core.i
   sqlite3test.c
   time64.i)
 
-SET_LOCAL_DIST(python_bindings_DIST_local CMakeLists.txt 
+set_local_dist(python_bindings_DIST_local CMakeLists.txt
   ${python_bindings_DATA})
 
-SET(python_bindings_DIST ${python_bindings_DIST_local}
+set(python_bindings_DIST ${python_bindings_DIST_local}
   ${test_python_bindings_DIST} ${example_scripts_DIST} PARENT_SCOPE)
diff --git a/bindings/python/example_scripts/CMakeLists.txt b/bindings/python/example_scripts/CMakeLists.txt
index f8eba83..cb5f00d 100644
--- a/bindings/python/example_scripts/CMakeLists.txt
+++ b/bindings/python/example_scripts/CMakeLists.txt
@@ -1,5 +1,5 @@
 
-SET(example_scripts_DATA
+set(example_scripts_DATA
         account_analysis.py
         change_tax_code.py
         Invoice.tex
@@ -17,5 +17,5 @@ SET(example_scripts_DATA
         rest-api/README
         )
 
-SET_LOCAL_DIST(example_scripts_DIST_local CMakeLists.txt ${example_scripts_DATA})
-SET(example_scripts_DIST ${example_scripts_DIST_local} PARENT_SCOPE)
\ No newline at end of file
+set_local_dist(example_scripts_DIST_local CMakeLists.txt ${example_scripts_DATA})
+set(example_scripts_DIST ${example_scripts_DIST_local} PARENT_SCOPE)
diff --git a/bindings/python/tests/CMakeLists.txt b/bindings/python/tests/CMakeLists.txt
index ea5e5f2..2c45340 100644
--- a/bindings/python/tests/CMakeLists.txt
+++ b/bindings/python/tests/CMakeLists.txt
@@ -1,5 +1,5 @@
 
-IF (WITH_PYTHON)
+if (WITH_PYTHON)
   find_path(test_core_dir "unittest_support.py" PATHS ${CMAKE_BINARY_DIR}/common/test-core ${CMAKE_SOURCE_DIR}/common/test-core)
   if (${test_core_dir} STREQUAL "test_core_dir-NOTFOUND")
     # Because it hasn't been built yet
@@ -7,14 +7,14 @@ IF (WITH_PYTHON)
   endif()
   add_custom_target(test-python-bindings ALL DEPENDS unittest_support gnucash-core-c-build gnucash-core-c-py)
   add_dependencies(check test-python-bindings)
-  ADD_TEST(python-bindings ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/runTests.py.in)
-  SET_PROPERTY(TEST python-bindings PROPERTY ENVIRONMENT
+  add_test(python-bindings ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/runTests.py.in)
+  set_property(TEST python-bindings PROPERTY ENVIRONMENT
     GNC_BUILDDIR=${CMAKE_BINARY_DIR}
     PYTHONPATH=${PYTHON_SYSCONFIG_BUILD}:${LIBDIR_BUILD}/gnucash:${test_core_dir}
   )
-ENDIF()
+endif()
 
-SET(test_python_bindings_DATA
+set(test_python_bindings_DATA
         runTests.py.in
         test_account.py
         test_book.py
@@ -24,4 +24,4 @@ SET(test_python_bindings_DATA
         test_split.py
         test_transaction.py)
 
-SET_DIST_LIST(test_python_bindings_DIST CMakeLists.txt ${test_python_bindings_DATA})
+set_dist_list(test_python_bindings_DIST CMakeLists.txt ${test_python_bindings_DATA})
diff --git a/borrowed/CMakeLists.txt b/borrowed/CMakeLists.txt
index f9d588e..f9988c6 100644
--- a/borrowed/CMakeLists.txt
+++ b/borrowed/CMakeLists.txt
@@ -1,7 +1,7 @@
-ADD_SUBDIRECTORY(libc)
-ADD_SUBDIRECTORY(goffice)
-ADD_SUBDIRECTORY(guile-json)
-ADD_SUBDIRECTORY(gwengui-gtk3)
+add_subdirectory(libc)
+add_subdirectory(goffice)
+add_subdirectory(guile-json)
+add_subdirectory(gwengui-gtk3)
 
-SET_LOCAL_DIST(borrowed_DIST_local CMakeLists.txt README)
-SET(borrowed_DIST ${borrowed_DIST_local} ${libc_DIST} ${guile-json_DIST} ${goffice_DIST} ${gwengui_gtk3_DIST} PARENT_SCOPE)
+set_local_dist(borrowed_DIST_local CMakeLists.txt README)
+set(borrowed_DIST ${borrowed_DIST_local} ${libc_DIST} ${guile-json_DIST} ${goffice_DIST} ${gwengui_gtk3_DIST} PARENT_SCOPE)
diff --git a/borrowed/goffice/CMakeLists.txt b/borrowed/goffice/CMakeLists.txt
index 157b022..5a6a144 100644
--- a/borrowed/goffice/CMakeLists.txt
+++ b/borrowed/goffice/CMakeLists.txt
@@ -1,15 +1,15 @@
 set(goffice_noinst_HEADERS go-optionmenu.h go-charmap-sel.h go-glib-extras.h)
 set(goffice_SOURCES go-optionmenu.c go-charmap-sel.c go-glib-extras.c)
 
-#ADD_LIBRARY(gnc-goffice ${goffice_noinst_HEADERS} ${goffice_SOURCES})
+#add_library(gnc-goffice ${goffice_noinst_HEADERS} ${goffice_SOURCES})
 
-#TARGET_LINK_LIBRARIES(gnc-goffice ${GTK_LIBS} ${LIBXML2_LIBS})
-#TARGET_INCLUDE_DIRECTORIES(gnc-goffice PUBLIC ${GTK_CFLAGS} ${LIBXML2_CFLAGS})
+#target_link_libraries(gnc-goffice ${GTK_LIBS} ${LIBXML2_LIBS})
+#target_include_directories(gnc-goffice PUBLIC ${GTK_CFLAGS} ${LIBXML2_CFLAGS})
 
-#INSTALL(TARGETS gnc-goffice
+#install(TARGETS gnc-goffice
 #  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
 #  ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
 #  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
 
-SET_DIST_LIST(goffice_DIST CMakeLists.txt 
+set_dist_list(goffice_DIST CMakeLists.txt
   README ${goffice_noinst_HEADERS} ${goffice_SOURCES})
diff --git a/borrowed/guile-json/CMakeLists.txt b/borrowed/guile-json/CMakeLists.txt
index 848a067..1298866 100644
--- a/borrowed/guile-json/CMakeLists.txt
+++ b/borrowed/guile-json/CMakeLists.txt
@@ -16,4 +16,4 @@ set_local_dist(guile-json_DIST_LOCAL
   README
 )
 
-SET(guile-json_DIST ${guile-json_DIST_LOCAL} ${guile-json-details_DIST} PARENT_SCOPE)
+set(guile-json_DIST ${guile-json_DIST_LOCAL} ${guile-json-details_DIST} PARENT_SCOPE)
diff --git a/borrowed/gwengui-gtk3/CMakeLists.txt b/borrowed/gwengui-gtk3/CMakeLists.txt
index 31fa1f9..2befd27 100644
--- a/borrowed/gwengui-gtk3/CMakeLists.txt
+++ b/borrowed/gwengui-gtk3/CMakeLists.txt
@@ -1,16 +1,16 @@
-SET (gwengui_gtk3_noinst_HEADERS
+set (gwengui_gtk3_noinst_HEADERS
   gtk3_gui.h
   gtk3_gui_p.h
   gtk3_gui_dialog_l.h
   gtk3_gui_dialog_p.h
   )
 
-SET (gwengui_gtk3_SOURCES
+set (gwengui_gtk3_SOURCES
   gtk3_gui_dialog.c
   gtk3_gui.c
   )
 
-SET (gwengui_gtk3_EXTRA_DIST
+set (gwengui_gtk3_EXTRA_DIST
   w_combobox.c
   w_label.c
   w_dialog.c
@@ -37,23 +37,23 @@ SET (gwengui_gtk3_EXTRA_DIST
   w_spinbox.c
   )
 
-SET_DIST_LIST(gwengui_gtk3_DIST CMakeLists.txt 
+set_dist_list(gwengui_gtk3_DIST CMakeLists.txt
   ${gwengui_gtk3_SOURCES}
   ${gwengui_gtk3_noinst_HEADERS}
   ${gwengui_gtk3_EXTRA_DIST}
   )
 
 if (WITH_AQBANKING AND NOT HAVE_GWEN_GTK3)
-    ADD_LIBRARY(gwengui-gtk3 ${gwengui_gtk3_SOURCES})
+    add_library(gwengui-gtk3 ${gwengui_gtk3_SOURCES})
 
-    TARGET_COMPILE_DEFINITIONS(gwengui-gtk3 PRIVATE BUILDING_GTK3_GUI=True)
-    TARGET_INCLUDE_DIRECTORIES(gwengui-gtk3 PUBLIC
+    target_compile_definitions(gwengui-gtk3 PRIVATE BUILDING_GTK3_GUI=True)
+    target_include_directories(gwengui-gtk3 PUBLIC
         ${GTK3_INCLUDE_DIRS}
         ${GWENHYWFAR_INCLUDE_DIRS}
     )
-    TARGET_LINK_LIBRARIES(gwengui-gtk3 ${GWENHYWFAR_LDFLAGS} ${GTK3_LDFLAGS})
+    target_link_libraries(gwengui-gtk3 ${GWENHYWFAR_LDFLAGS} ${GTK3_LDFLAGS})
 
-    INSTALL(TARGETS gwengui-gtk3
+    install(TARGETS gwengui-gtk3
         LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
         ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
         RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
diff --git a/borrowed/libc/CMakeLists.txt b/borrowed/libc/CMakeLists.txt
index 8295edd..c88f8d1 100644
--- a/borrowed/libc/CMakeLists.txt
+++ b/borrowed/libc/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(libc_SOURCES libc-missing-noop.c setenv.c strfmon.c strptime.c)
-SET(libc_HEADERS pow.h setenv.h strfmon.h strptime.h)
+set(libc_SOURCES libc-missing-noop.c setenv.c strfmon.c strptime.c)
+set(libc_HEADERS pow.h setenv.h strfmon.h strptime.h)
 
-SET_DIST_LIST(libc_DIST CMakeLists.txt ${libc_SOURCES} ${libc_HEADERS})
\ No newline at end of file
+set_dist_list(libc_DIST CMakeLists.txt ${libc_SOURCES} ${libc_HEADERS})
\ No newline at end of file
diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
index f7dbab7..05b9b07 100644
--- a/cmake/CMakeLists.txt
+++ b/cmake/CMakeLists.txt
@@ -1,11 +1,11 @@
 # Post install actions go here.
 
-IF (APPLE)
-  INSTALL(CODE "EXECUTE_PROCESS(
+if (APPLE)
+  install(CODE "execute_process(
                 COMMAND /usr/bin/install_name_tool -add_rpath ${CMAKE_INSTALL_LIBDIR}
                                                    -add_rpath ${PKGLIBDIR}
                                                    ${CMAKE_INSTALL_BINDIR}/gnucash)")
-ENDIF(APPLE)
+endif(APPLE)
 
 
-SET_DIST_LIST(cmake_DIST CMakeLists.txt README_CMAKE.txt cmake_uninstall.cmake.in)
+set_dist_list(cmake_DIST CMakeLists.txt README_CMAKE.txt cmake_uninstall.cmake.in)
diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt
index 7ee4810..087ec67 100644
--- a/common/CMakeLists.txt
+++ b/common/CMakeLists.txt
@@ -1,11 +1,11 @@
 # CMakeLists.txt for common/
 
 # The subdirectories
-ADD_SUBDIRECTORY (cmake_modules)
-ADD_SUBDIRECTORY (debug)
-ADD_SUBDIRECTORY (test-core)
+add_subdirectory (cmake_modules)
+add_subdirectory (debug)
+add_subdirectory (test-core)
 
-SET(common_EXTRA_DIST
+set(common_EXTRA_DIST
         base-typemaps.i
         config.h.cmake.in
         gnc-test-env.pl
@@ -28,6 +28,6 @@ dist_add_generated (${GENERATE_SWIG_WRAPPERS} swig-runtime.h)
 
 add_custom_target (swig-runtime-h DEPENDS ${SWIG_RUNTIME_H})
 
-SET_LOCAL_DIST(common_DIST_local CMakeLists.txt ${common_EXTRA_DIST})
+set_local_dist(common_DIST_local CMakeLists.txt ${common_EXTRA_DIST})
 
-SET(common_DIST ${common_DIST_local} ${cmake_modules_DIST} ${debug_DIST} ${test_core_DIST} PARENT_SCOPE)
+set(common_DIST ${common_DIST_local} ${cmake_modules_DIST} ${debug_DIST} ${test_core_DIST} PARENT_SCOPE)
diff --git a/common/cmake_modules/CMakeLists.txt b/common/cmake_modules/CMakeLists.txt
index 19922a1..1795b15 100644
--- a/common/cmake_modules/CMakeLists.txt
+++ b/common/cmake_modules/CMakeLists.txt
@@ -1,6 +1,6 @@
 
-SET(cmake_FILES GncAddGSchemaTargets.cmake GncAddSchemeTargets.cmake GncAddSwigCommand.cmake GncAddTest.cmake
+set(cmake_FILES GncAddGSchemaTargets.cmake GncAddSchemeTargets.cmake GncAddSwigCommand.cmake GncAddTest.cmake
         GncFindPkgConfig.cmake MacroAddSourceFileCompileFlags.cmake MacroAppendForeach.cmake
         MakeDist.cmake MakeDistFiles.cmake MakeDistCheck.cmake)
 
-SET_DIST_LIST(cmake_modules_DIST CMakeLists.txt COPYING-CMAKE-SCRIPTS.txt ${cmake_FILES})
+set_dist_list(cmake_modules_DIST CMakeLists.txt COPYING-CMAKE-SCRIPTS.txt ${cmake_FILES})
diff --git a/common/cmake_modules/GncAddGSchemaTargets.cmake b/common/cmake_modules/GncAddGSchemaTargets.cmake
index 7e07967..7ef412e 100644
--- a/common/cmake_modules/GncAddGSchemaTargets.cmake
+++ b/common/cmake_modules/GncAddGSchemaTargets.cmake
@@ -1,11 +1,11 @@
 macro(add_gschema_targets _gschema_INPUTS)
-  SET(_gschema_OUTPUTS "")
+  set(_gschema_OUTPUTS "")
   set(local_depends ${gschema_depends})
-  SET(CMAKE_COMMAND_TMP "")
-  IF (${CMAKE_VERSION} VERSION_GREATER 3.1)
-    SET(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env)
-  ENDIF()
-  FOREACH(file ${_gschema_INPUTS})
+  set(CMAKE_COMMAND_TMP "")
+  if (${CMAKE_VERSION} VERSION_GREATER 3.1)
+    set(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env)
+  endif()
+  foreach(file ${_gschema_INPUTS})
 
     set(_OUTPUT_FILE ${DATADIR_BUILD}/glib-2.0/schemas/${file})
     configure_file(${file}.in ${_OUTPUT_FILE} @ONLY)
@@ -14,7 +14,7 @@ macro(add_gschema_targets _gschema_INPUTS)
     string(REPLACE ".xml" ".valid" file_no_xml ${file})
     set(_VALID_FILE ${CMAKE_CURRENT_BINARY_DIR}/${file_no_xml})
     list(APPEND _gschema_VALIDS ${_VALID_FILE})
-    ADD_CUSTOM_COMMAND(
+    add_custom_command(
         OUTPUT ${_VALID_FILE}
         COMMAND ${CMAKE_COMMAND_TMP}
           ${GLIB_COMPILE_SCHEMAS} --strict --dry-run --schema-file=${_OUTPUT_FILE}
@@ -29,10 +29,10 @@ macro(add_gschema_targets _gschema_INPUTS)
     # The file level one is to ensure gschemas.compiled will be rebuilt if any of the
     # dependencies changes.
     list(APPEND local_depends ${file_no_xml}-target ${_VALID_FILE})
-  ENDFOREACH(file)
+  endforeach(file)
 
   set(gschema_depends ${local_depends} CACHE INTERNAL "gschemas.compiled dependencies")
 
-  INSTALL(FILES ${_gschema_OUTPUTS} DESTINATION share/glib-2.0/schemas)
+  install(FILES ${_gschema_OUTPUTS} DESTINATION share/glib-2.0/schemas)
 
 endmacro()
diff --git a/common/cmake_modules/GncAddSchemeTargets.cmake b/common/cmake_modules/GncAddSchemeTargets.cmake
index befc367..ed99179 100644
--- a/common/cmake_modules/GncAddSchemeTargets.cmake
+++ b/common/cmake_modules/GncAddSchemeTargets.cmake
@@ -14,138 +14,138 @@
 # Boston, MA  02110-1301,  USA       gnu at gnu.org
 
 #Guile and ltdl require MSYS paths on MinGW-w64; this function transforms them.
-FUNCTION(MAKE_UNIX_PATH PATH)
-    STRING(REGEX REPLACE "^([A-Za-z]):" "/\\1" newpath ${${PATH}})
+function(make_unix_path PATH)
+    string(REGEX REPLACE "^([A-Za-z]):" "/\\1" newpath ${${PATH}})
     string(REGEX REPLACE "\\\\" "/" newpath ${newpath})
-    SET(${PATH} ${newpath} PARENT_SCOPE)
-ENDFUNCTION()
+    set(${PATH} ${newpath} PARENT_SCOPE)
+endfunction()
 
 #PATH variables in the environment are separated by colons, but CMake lists are separated by semicolons. This function transforms the separators.
-FUNCTION(MAKE_UNIX_PATH_LIST PATH)
-    STRING(REPLACE ";" ":" newpath "${${PATH}}")
-    SET(${PATH} ${newpath} PARENT_SCOPE)
-ENDFUNCTION()
+function(make_unix_path_list PATH)
+    string(REPLACE ";" ":" newpath "${${PATH}}")
+    set(${PATH} ${newpath} PARENT_SCOPE)
+endfunction()
 
-FUNCTION(GNC_ADD_SCHEME_TARGETS _TARGET _SOURCE_FILES _OUTPUT_DIR _GUILE_DEPENDS
+function(gnc_add_scheme_targets _TARGET _SOURCE_FILES _OUTPUT_DIR _GUILE_DEPENDS
 				MAKE_LINKS)
-  SET(__DEBUG FALSE)
-  IF (__DEBUG)
-    MESSAGE("Parameters to COMPILE_SCHEME for target ${_TARGET}")
-    MESSAGE("   SOURCE_FILES: ${_SOURCE_FILES}")
-    MESSAGE("   GUILE_DEPENDS: ${_GUILE_DEPENDS}")
-    MESSAGE("   DIRECTORIES: ${BINDIR_BUILD}, ${LIBDIR_BUILD}, ${DATADIR_BUILD}")
-  ENDIF(__DEBUG)
-  SET(_CMD "create_symlink")
-  IF(WIN32)
-    SET(_CMD "copy")
-  ENDIF(WIN32)
-  SET(current_srcdir ${CMAKE_CURRENT_SOURCE_DIR})
-  SET(current_bindir ${CMAKE_CURRENT_BINARY_DIR})
-  SET(build_bindir ${BINDIR_BUILD})
-  SET(build_libdir ${LIBDIR_BUILD})
-  SET(build_datadir ${DATADIR_BUILD})
-  IF(MINGW64)
-    MAKE_UNIX_PATH(build_bindir)
-    MAKE_UNIX_PATH(build_libdir)
-    MAKE_UNIX_PATH(build_datadir)
-    MAKE_UNIX_PATH(current_bindir)
-    MAKE_UNIX_PATH(current_srcdir)
-    MAKE_UNIX_PATH(CMAKE_BINARY_DIR)
-    MAKE_UNIX_PATH(CMAKE_SOURCE_DIR)
-  ENDIF(MINGW64)
+  set(__DEBUG FALSE)
+  if (__DEBUG)
+    message("Parameters to COMPILE_SCHEME for target ${_TARGET}")
+    message("   SOURCE_FILES: ${_SOURCE_FILES}")
+    message("   GUILE_DEPENDS: ${_GUILE_DEPENDS}")
+    message("   DIRECTORIES: ${BINDIR_BUILD}, ${LIBDIR_BUILD}, ${DATADIR_BUILD}")
+  endif(__DEBUG)
+  set(_CMD "create_symlink")
+  if(WIN32)
+    set(_CMD "copy")
+  endif(WIN32)
+  set(current_srcdir ${CMAKE_CURRENT_SOURCE_DIR})
+  set(current_bindir ${CMAKE_CURRENT_BINARY_DIR})
+  set(build_bindir ${BINDIR_BUILD})
+  set(build_libdir ${LIBDIR_BUILD})
+  set(build_datadir ${DATADIR_BUILD})
+  if(MINGW64)
+    make_unix_path(build_bindir)
+    make_unix_path(build_libdir)
+    make_unix_path(build_datadir)
+    make_unix_path(current_bindir)
+    make_unix_path(current_srcdir)
+    make_unix_path(CMAKE_BINARY_DIR)
+    make_unix_path(CMAKE_SOURCE_DIR)
+  endif(MINGW64)
 
   # If links are requested, we simple link (or copy, for Windows) each source file to the dest directory
-  IF(MAKE_LINKS)
-    SET(_LINK_DIR ${DATADIR_BUILD}/gnucash/scm/${_OUTPUT_DIR})
-    FILE(MAKE_DIRECTORY ${_LINK_DIR})
-    SET(_SCHEME_LINKS "")
-    FOREACH(scheme_file ${_SOURCE_FILES})
-      SET(_SOURCE_FILE ${current_srcdir}/${scheme_file})
-      IF(IS_ABSOLUTE ${scheme_file})
-        SET(_SOURCE_FILE ${scheme_file})
-      ENDIF()
-      GET_FILENAME_COMPONENT(name ${scheme_file} NAME)
-      SET(_OUTPUT_FILE ${_LINK_DIR}/${name})
-      IF(NOT EXISTS ${_OUTPUT_FILE})
-        LIST(APPEND _SCHEME_LINKS ${_OUTPUT_FILE})
-        ADD_CUSTOM_COMMAND(
+  if(MAKE_LINKS)
+    set(_LINK_DIR ${DATADIR_BUILD}/gnucash/scm/${_OUTPUT_DIR})
+    file(MAKE_DIRECTORY ${_LINK_DIR})
+    set(_SCHEME_LINKS "")
+    foreach(scheme_file ${_SOURCE_FILES})
+      set(_SOURCE_FILE ${current_srcdir}/${scheme_file})
+      if(IS_ABSOLUTE ${scheme_file})
+        set(_SOURCE_FILE ${scheme_file})
+      endif()
+      get_filename_component(name ${scheme_file} NAME)
+      set(_OUTPUT_FILE ${_LINK_DIR}/${name})
+      if(NOT EXISTS ${_OUTPUT_FILE})
+        list(APPEND _SCHEME_LINKS ${_OUTPUT_FILE})
+        add_custom_command(
             OUTPUT ${_OUTPUT_FILE}
             COMMAND ${CMAKE_COMMAND} -E ${_CMD} ${_SOURCE_FILE} ${_OUTPUT_FILE}
         )
-      ENDIF()
-    ENDFOREACH(scheme_file)
-    ADD_CUSTOM_TARGET(${_TARGET}-links ALL DEPENDS ${_SCHEME_LINKS})
-  ENDIF(MAKE_LINKS)
+      endif()
+    endforeach(scheme_file)
+    add_custom_target(${_TARGET}-links ALL DEPENDS ${_SCHEME_LINKS})
+  endif(MAKE_LINKS)
 
   # Construct the guile source and compiled load paths
 
-  SET(_GUILE_LOAD_PATH "${current_srcdir}"
+  set(_GUILE_LOAD_PATH "${current_srcdir}"
       "${current_bindir}" "${CMAKE_BINARY_DIR}/libgnucash/scm")  # to pick up generated build-config.scm
-  SET(_GUILE_LOAD_COMPILED_PATH "${current_bindir}")
+  set(_GUILE_LOAD_COMPILED_PATH "${current_bindir}")
 
-  SET(_GUILE_CACHE_DIR ${LIBDIR_BUILD}/gnucash/scm/ccache/${GUILE_EFFECTIVE_VERSION})
-  SET(_GUILE_LOAD_PATH "${current_srcdir}")
-  IF (MAKE_LINKS)
-      LIST(APPEND _GUILE_LOAD_PATH "${build_datadir}/gnucash/scm")
-  ENDIF()
-  SET(_GUILE_LOAD_COMPILED_PATH ${build_libdir}/gnucash/scm/ccache/${GUILE_EFFECTIVE_VERSION})
+  set(_GUILE_CACHE_DIR ${LIBDIR_BUILD}/gnucash/scm/ccache/${GUILE_EFFECTIVE_VERSION})
+  set(_GUILE_LOAD_PATH "${current_srcdir}")
+  if (MAKE_LINKS)
+      list(APPEND _GUILE_LOAD_PATH "${build_datadir}/gnucash/scm")
+  endif()
+  set(_GUILE_LOAD_COMPILED_PATH ${build_libdir}/gnucash/scm/ccache/${GUILE_EFFECTIVE_VERSION})
 
-  SET(_TARGET_FILES "")
+  set(_TARGET_FILES "")
 
-  FOREACH(source_file ${_SOURCE_FILES})
-      SET(guile_depends ${_GUILE_DEPENDS})
-      GET_FILENAME_COMPONENT(basename ${source_file} NAME_WE)
+  foreach(source_file ${_SOURCE_FILES})
+      set(guile_depends ${_GUILE_DEPENDS})
+      get_filename_component(basename ${source_file} NAME_WE)
 
-      SET(output_file ${basename}.go)
-      SET(_TMP_OUTPUT_DIR ${_OUTPUT_DIR})
-      IF (_TMP_OUTPUT_DIR)
-        SET(output_file ${_OUTPUT_DIR}/${basename}.go)
-      ENDIF()
-      SET(output_file ${_GUILE_CACHE_DIR}/${output_file})
-      LIST(APPEND _TARGET_FILES ${output_file})
+      set(output_file ${basename}.go)
+      set(_TMP_OUTPUT_DIR ${_OUTPUT_DIR})
+      if (_TMP_OUTPUT_DIR)
+        set(output_file ${_OUTPUT_DIR}/${basename}.go)
+      endif()
+      set(output_file ${_GUILE_CACHE_DIR}/${output_file})
+      list(APPEND _TARGET_FILES ${output_file})
 
-      SET(source_file_abs_path ${CMAKE_CURRENT_SOURCE_DIR}/${source_file})
-      IF (IS_ABSOLUTE ${source_file})
-        SET(source_file_abs_path ${source_file})
-      ENDIF()
-      IF (__DEBUG)
-        MESSAGE("ADD_CUSTOM_COMMAND: output = ${output_file}")
-      ENDIF()
-      SET(CMAKE_COMMMAND_TMP "")
-      IF (${CMAKE_VERSION} VERSION_GREATER 3.1)
-        SET(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env)
-      ENDIF()
-      IF (MINGW64)
+      set(source_file_abs_path ${CMAKE_CURRENT_SOURCE_DIR}/${source_file})
+      if (IS_ABSOLUTE ${source_file})
+        set(source_file_abs_path ${source_file})
+      endif()
+      if (__DEBUG)
+        message("add_custom_command: output = ${output_file}")
+      endif()
+      set(CMAKE_COMMMAND_TMP "")
+      if (${CMAKE_VERSION} VERSION_GREATER 3.1)
+        set(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env)
+      endif()
+      if (MINGW64)
         set(fpath "")
         foreach(dir $ENV{PATH})
-            MAKE_UNIX_PATH(dir)
+            make_unix_path(dir)
             set(fpath "${fpath}${dir}:")
         endforeach(dir)
-        SET(LIBRARY_PATH "PATH=\"${build_bindir}:${fpath}\"")
-      ELSE (MINGW64)
-        SET (LIBRARY_PATH "LD_LIBRARY_PATH=${LIBDIR_BUILD}:${LIBDIR_BUILD}/gnucash:${_GUILE_LD_LIBRARY_PATH}")
-      ENDIF (MINGW64)
-      IF (APPLE)
-        SET (LIBRARY_PATH "DYLD_LIBRARY_PATH=${LIBDIR_BUILD}:${LIBDIR_BUILD}/gnucash:${_GUILE_LD_LIBRARY_PATH}")
-      ENDIF (APPLE)
-      SET(_GNC_MODULE_PATH "")
-      IF(MINGW64)
-        SET(_GNC_MODULE_PATH "${build_bindir}")
-      ELSE(MINGW64)
-        SET(_GNC_MODULE_PATH "${LIBDIR_BUILD}" "${LIBDIR_BUILD}/gnucash" "${GNC_MODULE_PATH}")
-      ENDIF(MINGW64)
-      MAKE_UNIX_PATH_LIST(_GUILE_LOAD_PATH)
-      MAKE_UNIX_PATH_LIST(_GUILE_LOAD_COMPILED_PATH)
-      MAKE_UNIX_PATH_LIST(_GUILE_LD_LIBRARY_PATH)
-      MAKE_UNIX_PATH_LIST(_GNC_MODULE_PATH)
-      IF (__DEBUG)
-        MESSAGE("  ")
-        MESSAGE("   LIBRARY_PATH: ${LIBRARY_PATH}")
-        MESSAGE("   GUILE_LOAD_PATH: ${_GUILE_LOAD_PATH}")
-        MESSAGE("   GUILE_LOAD_COMPILED_PATH: ${_GUILE_LOAD_COMPILED_PATH}")
-        MESSAGE("   GNC_MODULE_PATH: ${_GNC_MODULE_PATH}")
-      ENDIF(__DEBUG)
-      ADD_CUSTOM_COMMAND(
+        set(LIBRARY_PATH "PATH=\"${build_bindir}:${fpath}\"")
+      else (MINGW64)
+        set (LIBRARY_PATH "LD_LIBRARY_PATH=${LIBDIR_BUILD}:${LIBDIR_BUILD}/gnucash:${_GUILE_LD_LIBRARY_PATH}")
+      endif (MINGW64)
+      if (APPLE)
+        set (LIBRARY_PATH "DYLD_LIBRARY_PATH=${LIBDIR_BUILD}:${LIBDIR_BUILD}/gnucash:${_GUILE_LD_LIBRARY_PATH}")
+      endif (APPLE)
+      set(_GNC_MODULE_PATH "")
+      if(MINGW64)
+        set(_GNC_MODULE_PATH "${build_bindir}")
+      else(MINGW64)
+        set(_GNC_MODULE_PATH "${LIBDIR_BUILD}" "${LIBDIR_BUILD}/gnucash" "${GNC_MODULE_PATH}")
+      endif(MINGW64)
+      make_unix_path_list(_GUILE_LOAD_PATH)
+      make_unix_path_list(_GUILE_LOAD_COMPILED_PATH)
+      make_unix_path_list(_GUILE_LD_LIBRARY_PATH)
+      make_unix_path_list(_GNC_MODULE_PATH)
+      if (__DEBUG)
+        message("  ")
+        message("   LIBRARY_PATH: ${LIBRARY_PATH}")
+        message("   GUILE_LOAD_PATH: ${_GUILE_LOAD_PATH}")
+        message("   GUILE_LOAD_COMPILED_PATH: ${_GUILE_LOAD_COMPILED_PATH}")
+        message("   GNC_MODULE_PATH: ${_GNC_MODULE_PATH}")
+      endif(__DEBUG)
+      add_custom_command(
         OUTPUT ${output_file}
         COMMAND ${CMAKE_COMMAND_TMP}
             ${LIBRARY_PATH}
@@ -158,11 +158,11 @@ FUNCTION(GNC_ADD_SCHEME_TARGETS _TARGET _SOURCE_FILES _OUTPUT_DIR _GUILE_DEPENDS
         DEPENDS ${guile_depends}
         MAIN_DEPENDENCY ${source_file_abs_path}
         )
-  ENDFOREACH(source_file)
-  IF (__DEBUG)
-    MESSAGE("TARGET_FILES are ${_TARGET_FILES}")
-  ENDIF(__DEBUG)
-  ADD_CUSTOM_TARGET(${_TARGET} ALL DEPENDS ${_TARGET_FILES})
-  INSTALL(FILES ${_TARGET_FILES} DESTINATION ${SCHEME_INSTALLED_CACHE_DIR}/${_OUTPUT_DIR})
-  INSTALL(FILES ${_SOURCE_FILES} DESTINATION ${SCHEME_INSTALLED_SOURCE_DIR}/${_OUTPUT_DIR})
-ENDFUNCTION(GNC_ADD_SCHEME_TARGETS)
+  endforeach(source_file)
+  if (__DEBUG)
+    message("TARGET_FILES are ${_TARGET_FILES}")
+  endif(__DEBUG)
+  add_custom_target(${_TARGET} ALL DEPENDS ${_TARGET_FILES})
+  install(FILES ${_TARGET_FILES} DESTINATION ${SCHEME_INSTALLED_CACHE_DIR}/${_OUTPUT_DIR})
+  install(FILES ${_SOURCE_FILES} DESTINATION ${SCHEME_INSTALLED_SOURCE_DIR}/${_OUTPUT_DIR})
+endfunction(gnc_add_scheme_targets)
diff --git a/common/cmake_modules/GncAddTest.cmake b/common/cmake_modules/GncAddTest.cmake
index 47fc988..169c426 100644
--- a/common/cmake_modules/GncAddTest.cmake
+++ b/common/cmake_modules/GncAddTest.cmake
@@ -1,21 +1,21 @@
 
 
-FUNCTION(GET_GUILE_ENV)
-  SET(_GNC_MODULE_PATH ${LIBDIR_BUILD}:${LIBDIR_BUILD}/gnucash)
-  IF (WIN32)
-    SET(_GNC_MODULE_PATH ${CMAKE_BINARY_DIR}/bin)
-  ENDIF()
-  SET(env "")
-  LIST(APPEND env "GNC_UNINSTALLED=yes")
-  LIST(APPEND env "GNC_BUILDDIR=${CMAKE_BINARY_DIR}")
-  LIST(APPEND env "GUILE_WARN_DEPRECATED=no")
-  IF (APPLE)
-    LIST(APPEND env "DYLD_LIBRARY_PATH=${_GNC_MODULE_PATH}")
-  ENDIF()
-  IF (UNIX)
-    LIST(APPEND env LD_LIBRARY_PATH=${_GNC_MODULE_PATH})
-  ENDIF()
-  IF (MINGW64)
+function(get_guile_env)
+  set(_GNC_MODULE_PATH ${LIBDIR_BUILD}:${LIBDIR_BUILD}/gnucash)
+  if (WIN32)
+    set(_GNC_MODULE_PATH ${CMAKE_BINARY_DIR}/bin)
+  endif()
+  set(env "")
+  list(APPEND env "GNC_UNINSTALLED=yes")
+  list(APPEND env "GNC_BUILDDIR=${CMAKE_BINARY_DIR}")
+  list(APPEND env "GUILE_WARN_DEPRECATED=no")
+  if (APPLE)
+    list(APPEND env "DYLD_LIBRARY_PATH=${_GNC_MODULE_PATH}")
+  endif()
+  if (UNIX)
+    list(APPEND env LD_LIBRARY_PATH=${_GNC_MODULE_PATH})
+  endif()
+  if (MINGW64)
     set(fpath "")
     set(path $ENV{PATH})
     list(INSERT path 0 ${CMAKE_BINARY_DIR}/bin)
@@ -24,154 +24,154 @@ FUNCTION(GET_GUILE_ENV)
       string(REGEX REPLACE "\\\\" "/" dir ${dir})
       set(fpath "${fpath}${dir}:")
     endforeach(dir)
-    LIST(APPEND env "PATH=${fpath}")
+    list(APPEND env "PATH=${fpath}")
     set(compiled_path "${LIBDIR_BUILD}/gnucash/scm/ccache/${GUILE_EFFECTIVE_VERSION}")
     string(REGEX REPLACE "^([A-Za-z]):" "/\\1" compiled_path ${compiled_path})
-    LIST(APPEND env GUILE_LOAD_COMPILED_PATH=${compiled_path})
-  ENDIF(MINGW64)
-  LIST(APPEND env "GNC_MODULE_PATH=${_GNC_MODULE_PATH}")
-  LIST(APPEND env "GUILE=${GUILE_EXECUTABLE}")
+    list(APPEND env GUILE_LOAD_COMPILED_PATH=${compiled_path})
+  endif(MINGW64)
+  list(APPEND env "GNC_MODULE_PATH=${_GNC_MODULE_PATH}")
+  list(APPEND env "GUILE=${GUILE_EXECUTABLE}")
 
-  IF (NOT WIN32)
-    LIST(APPEND env "GUILE_LOAD_COMPILED_PATH=${LIBDIR_BUILD}/gnucash/scm/ccache/${GUILE_EFFECTIVE_VERSION}")
-  ENDIF()
-  SET(guile_load_paths "")
-  LIST(APPEND guile_load_paths ${CMAKE_CURRENT_SOURCE_DIR}/mod-foo)
-  LIST(APPEND guile_load_paths ${CMAKE_CURRENT_SOURCE_DIR}/mod-bar)
-  LIST(APPEND guile_load_paths ${CMAKE_CURRENT_SOURCE_DIR}/mod-baz)
-  IF (WIN32)
-    LIST(APPEND guile_load_paths ${CMAKE_BINARY_DIR}/share/gnucash/scm)
-  ENDIF()
-  SET(guile_load_path "${guile_load_paths}")
-  IF (MINGW64)
+  if (NOT WIN32)
+    list(APPEND env "GUILE_LOAD_COMPILED_PATH=${LIBDIR_BUILD}/gnucash/scm/ccache/${GUILE_EFFECTIVE_VERSION}")
+  endif()
+  set(guile_load_paths "")
+  list(APPEND guile_load_paths ${CMAKE_CURRENT_SOURCE_DIR}/mod-foo)
+  list(APPEND guile_load_paths ${CMAKE_CURRENT_SOURCE_DIR}/mod-bar)
+  list(APPEND guile_load_paths ${CMAKE_CURRENT_SOURCE_DIR}/mod-baz)
+  if (WIN32)
+    list(APPEND guile_load_paths ${CMAKE_BINARY_DIR}/share/gnucash/scm)
+  endif()
+  set(guile_load_path "${guile_load_paths}")
+  if (MINGW64)
     set(new_path "")
-    FOREACH(load_item ${guile_load_path})
+    foreach(load_item ${guile_load_path})
       string(REGEX REPLACE "^([A-Za-z]):" "/\\1" load_item ${load_item})
       list(APPEND new_path ${load_item})
-    ENDFOREACH(load_item)
+    endforeach(load_item)
     set(guile_load_path ${new_path})
-  ENDIF (MINGW64)
-  IF (WIN32 AND NOT MINGW64)
-    STRING(REPLACE ";" "\\\\;" GUILE_LOAD_PATH "${guile_load_path}")
-  ELSE()
-    STRING(REPLACE ";" ":" GUILE_LOAD_PATH "${guile_load_path}")
-  ENDIF()
-  LIST(APPEND env GUILE_LOAD_PATH=${GUILE_LOAD_PATH})
-  SET(GUILE_ENV ${env} PARENT_SCOPE)
-ENDFUNCTION()
+  endif (MINGW64)
+  if (WIN32 AND NOT MINGW64)
+    string(REPLACE ";" "\\\\;" GUILE_LOAD_PATH "${guile_load_path}")
+  else()
+    string(REPLACE ";" ":" GUILE_LOAD_PATH "${guile_load_path}")
+  endif()
+  list(APPEND env GUILE_LOAD_PATH=${GUILE_LOAD_PATH})
+  set(GUILE_ENV ${env} PARENT_SCOPE)
+endfunction()
 
 
-FUNCTION(GNC_ADD_TEST _TARGET _SOURCE_FILES TEST_INCLUDE_VAR_NAME TEST_LIBS_VAR_NAME)
-  SET(HAVE_ENV_VARS FALSE)
-  IF (${ARGC} GREATER 4)
+function(gnc_add_test _TARGET _SOURCE_FILES TEST_INCLUDE_VAR_NAME TEST_LIBS_VAR_NAME)
+  set(HAVE_ENV_VARS FALSE)
+  if (${ARGC} GREATER 4)
     # Extra arguments are treated as environment variables
-    SET(HAVE_ENV_VARS TRUE)
-  ENDIF()
-  SET(TEST_INCLUDE_DIRS ${${TEST_INCLUDE_VAR_NAME}})
-  SET(TEST_LIBS ${${TEST_LIBS_VAR_NAME}})
-  SET_SOURCE_FILES_PROPERTIES (${_SOURCE_FILES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
-  ADD_EXECUTABLE(${_TARGET} EXCLUDE_FROM_ALL ${_SOURCE_FILES})
-  TARGET_LINK_LIBRARIES(${_TARGET} ${TEST_LIBS})
-  TARGET_INCLUDE_DIRECTORIES(${_TARGET} PRIVATE ${TEST_INCLUDE_DIRS})
-  IF (${HAVE_ENV_VARS})
-    SET(CMAKE_COMMAND_TMP "")
-    IF (${CMAKE_VERSION} VERSION_GREATER 3.1)
-      SET(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env "GNC_UNINSTALLED=YES;GNC_BUILDDIR=${CMAKE_BINARY_DIR};${ARGN}")
-    ENDIF()
-    ADD_TEST(${_TARGET} ${CMAKE_COMMAND_TMP}
+    set(HAVE_ENV_VARS TRUE)
+  endif()
+  set(TEST_INCLUDE_DIRS ${${TEST_INCLUDE_VAR_NAME}})
+  set(TEST_LIBS ${${TEST_LIBS_VAR_NAME}})
+  set_source_files_properties (${_SOURCE_FILES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+  add_executable(${_TARGET} EXCLUDE_FROM_ALL ${_SOURCE_FILES})
+  target_link_libraries(${_TARGET} ${TEST_LIBS})
+  target_include_directories(${_TARGET} PRIVATE ${TEST_INCLUDE_DIRS})
+  if (${HAVE_ENV_VARS})
+    set(CMAKE_COMMAND_TMP "")
+    if (${CMAKE_VERSION} VERSION_GREATER 3.1)
+      set(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env "GNC_UNINSTALLED=YES;GNC_BUILDDIR=${CMAKE_BINARY_DIR};${ARGN}")
+    endif()
+    add_test(${_TARGET} ${CMAKE_COMMAND_TMP}
       ${CMAKE_BINARY_DIR}/bin/${_TARGET}
     )
-    SET_TESTS_PROPERTIES(${_TARGET} PROPERTIES ENVIRONMENT "GNC_UNINSTALLED=YES;GNC_BUILDDIR=${CMAKE_BINARY_DIR};${ARGN}")
-  ELSE()
-    ADD_TEST(NAME ${_TARGET} COMMAND ${_TARGET})
-    SET_TESTS_PROPERTIES(${_TARGET} PROPERTIES ENVIRONMENT "GNC_UNINSTALLED=YES;GNC_BUILDDIR=${CMAKE_BINARY_DIR}")
-  ENDIF()
-  ADD_DEPENDENCIES(check ${_TARGET})
-ENDFUNCTION()
+    set_tests_properties(${_TARGET} PROPERTIES ENVIRONMENT "GNC_UNINSTALLED=YES;GNC_BUILDDIR=${CMAKE_BINARY_DIR};${ARGN}")
+  else()
+    add_test(NAME ${_TARGET} COMMAND ${_TARGET})
+    set_tests_properties(${_TARGET} PROPERTIES ENVIRONMENT "GNC_UNINSTALLED=YES;GNC_BUILDDIR=${CMAKE_BINARY_DIR}")
+  endif()
+  add_dependencies(check ${_TARGET})
+endfunction()
 
-FUNCTION(GNC_ADD_TEST_WITH_GUILE _TARGET _SOURCE_FILES TEST_INCLUDE_VAR_NAME TEST_LIBS_VAR_NAME)
-  GET_GUILE_ENV()
-  GNC_ADD_TEST(${_TARGET} "${_SOURCE_FILES}" "${TEST_INCLUDE_VAR_NAME}" "${TEST_LIBS_VAR_NAME}"
+function(gnc_add_test_with_guile _TARGET _SOURCE_FILES TEST_INCLUDE_VAR_NAME TEST_LIBS_VAR_NAME)
+  get_guile_env()
+  gnc_add_test(${_TARGET} "${_SOURCE_FILES}" "${TEST_INCLUDE_VAR_NAME}" "${TEST_LIBS_VAR_NAME}"
     "${GUILE_ENV};${ARGN}"
   )
-ENDFUNCTION()
+endfunction()
 
 
-FUNCTION(GNC_ADD_SCHEME_TEST _TARGET _SOURCE_FILE)
-  SET(CMAKE_COMMAND_TMP "")
-  IF (${CMAKE_VERSION} VERSION_GREATER 3.1)
-    SET(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env)
-  ENDIF()
-  ADD_TEST(${_TARGET} ${CMAKE_COMMAND_TMP}
+function(gnc_add_scheme_test _TARGET _SOURCE_FILE)
+  set(CMAKE_COMMAND_TMP "")
+  if (${CMAKE_VERSION} VERSION_GREATER 3.1)
+    set(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env)
+  endif()
+  add_test(${_TARGET} ${CMAKE_COMMAND_TMP}
     ${GUILE_EXECUTABLE} --debug -l ${CMAKE_CURRENT_SOURCE_DIR}/${_SOURCE_FILE} -c "(exit (run-test))"
   )
-  GET_GUILE_ENV()
-  SET_TESTS_PROPERTIES(${_TARGET} PROPERTIES ENVIRONMENT "${GUILE_ENV};${ARGN}")
-ENDFUNCTION()
+  get_guile_env()
+  set_tests_properties(${_TARGET} PROPERTIES ENVIRONMENT "${GUILE_ENV};${ARGN}")
+endfunction()
 
-FUNCTION(GNC_ADD_SCHEME_TESTS _SOURCE_FILES)
-  FOREACH(test_file ${_SOURCE_FILES})
-    GET_FILENAME_COMPONENT(basename ${test_file} NAME_WE)
-    GNC_ADD_SCHEME_TEST(${basename} ${test_file})
-  ENDFOREACH()
-ENDFUNCTION()
+function(gnc_add_scheme_tests _SOURCE_FILES)
+  foreach(test_file ${_SOURCE_FILES})
+    get_filename_component(basename ${test_file} NAME_WE)
+    gnc_add_scheme_test(${basename} ${test_file})
+  endforeach()
+endfunction()
 
-FUNCTION(GNC_GTEST_CONFIGURE)
-  MESSAGE(STATUS "Checking for GTEST")
-  IF (NOT DEFINED ${GTEST_ROOT})
-    SET(GTEST_ROOT $ENV{GTEST_ROOT})
-  ENDIF()
-  IF (NOT DEFINED ${GMOCK_ROOT})
-    SET(GMOCK_ROOT $ENV{GMOCK_ROOT})
-  ENDIF()
-  FIND_PATH(GTEST_INCLUDE_DIR gtest/gtest.h
+function(gnc_gtest_configure)
+  message(STATUS "Checking for GTEST")
+  if (NOT DEFINED ${GTEST_ROOT})
+    set(GTEST_ROOT $ENV{GTEST_ROOT})
+  endif()
+  if (NOT DEFINED ${GMOCK_ROOT})
+    set(GMOCK_ROOT $ENV{GMOCK_ROOT})
+  endif()
+  find_path(GTEST_INCLUDE_DIR gtest/gtest.h
     PATHS ${GTEST_ROOT}/include ${GMOCK_ROOT}/gtest/include /usr/include)
-  FIND_PATH(GTEST_SRC_DIR src/gtest-all.cc
+  find_path(GTEST_SRC_DIR src/gtest-all.cc
     PATHS ${GTEST_ROOT} ${GMOCK_ROOT}/gtest /usr/src/gtest)
-  FIND_LIBRARY(GTEST_SHARED_LIB gtest)
-  FIND_LIBRARY(GTEST_MAIN_LIB gtest_main)
-  IF ((GTEST_SHARED_LIB OR GTEST_SRC_DIR) AND GTEST_INCLUDE_DIR)
-    SET(THREADS_PREFER_PTHREAD_FLAG ON)
-    FIND_PACKAGE(Threads REQUIRED)
-    SET(GTEST_FOUND YES CACHE INTERNAL "Found GTest")
-    IF(GTEST_SHARED_LIB)
-      SET(GTEST_LIB "${GTEST_SHARED_LIB};${GTEST_MAIN_LIB}" PARENT_SCOPE)
-      UNSET(GTEST_SRC_DIR CACHE)
-    ELSE()
-      SET(GTEST_SRC "${GTEST_SRC_DIR}/src/gtest_main.cc" PARENT_SCOPE)
-      SET(GTEST_LIB "${CMAKE_BINARY_DIR}/common/test-core/libgtest.a" PARENT_SCOPE)
-    ENDIF()
-  ELSE()
-    MESSAGE(FATAL_ERROR "GTEST not found. Please install it or set GTEST_ROOT or GMOCK_ROOT")
-  ENDIF()
+  find_library(GTEST_SHARED_LIB gtest)
+  find_library(GTEST_MAIN_LIB gtest_main)
+  if ((GTEST_SHARED_LIB OR GTEST_SRC_DIR) AND GTEST_INCLUDE_DIR)
+    set(THREADS_PREFER_PTHREAD_FLAG ON)
+    find_package(Threads REQUIRED)
+    set(GTEST_FOUND YES CACHE INTERNAL "Found GTest")
+    if(GTEST_SHARED_LIB)
+      set(GTEST_LIB "${GTEST_SHARED_LIB};${GTEST_MAIN_LIB}" PARENT_SCOPE)
+      unset(GTEST_SRC_DIR CACHE)
+    else()
+      set(GTEST_SRC "${GTEST_SRC_DIR}/src/gtest_main.cc" PARENT_SCOPE)
+      set(GTEST_LIB "${CMAKE_BINARY_DIR}/common/test-core/libgtest.a" PARENT_SCOPE)
+    endif()
+  else()
+    message(FATAL_ERROR "GTEST not found. Please install it or set GTEST_ROOT or GMOCK_ROOT")
+  endif()
 
-  MESSAGE(STATUS "Checking for GMOCK")
-  FIND_PATH(GMOCK_INCLUDE_DIR gmock/gmock.h
+  message(STATUS "Checking for GMOCK")
+  find_path(GMOCK_INCLUDE_DIR gmock/gmock.h
     PATHS ${GMOCK_ROOT}/include /usr/include)
   unset(GMOCK_SRC_DIR CACHE)
-  FIND_LIBRARY(GMOCK_SHARED_LIB gmock)
-  FIND_LIBRARY(GMOCK_MAIN_LIB gmock_main)
-  FIND_PATH(GMOCK_SRC_DIR src/gmock-all.cc
+  find_library(GMOCK_SHARED_LIB gmock)
+  find_library(GMOCK_MAIN_LIB gmock_main)
+  find_path(GMOCK_SRC_DIR src/gmock-all.cc
     PATHS ${GMOCK_ROOT} /usr/src/gmock)
   if (GMOCK_SRC_DIR)
-    SET(GMOCK_MAIN_SRC_DIR "${GMOCK_SRC_DIR}/src")
+    set(GMOCK_MAIN_SRC_DIR "${GMOCK_SRC_DIR}/src")
   else()
-    FIND_PATH(GMOCK_SRC_DIR gmock-all.cc
+    find_path(GMOCK_SRC_DIR gmock-all.cc
       PATHS ${GMOCK_ROOT} /usr/src/gmock)
     if (GMOCK_SRC_DIR)
-      SET(GMOCK_MAIN_SRC_DIR "${GMOCK_SRC_DIR}")
+      set(GMOCK_MAIN_SRC_DIR "${GMOCK_SRC_DIR}")
     endif()
   endif()
   if (GMOCK_INCLUDE_DIR AND (GMOCK_SHARED_LIB OR GMOCK_SRC_DIR))
-    SET(GMOCK_FOUND YES PARENT_SCOPE)
-    IF(GMOCK_SHARED_LIB)
-      SET(GMOCK_LIB "${GMOCK_SHARED_LIB};${GMOCK_MAIN_LIB}" PARENT_SCOPE)
-      UNSET(GMOCK_SRC_DIR CACHE)
-    ELSE()
-      SET(GMOCK_SRC "${GMOCK_MAIN_SRC_DIR}/gmock-all.cc" PARENT_SCOPE)
-      SET(GMOCK_LIB "${CMAKE_BINARY_DIR}/common/test-core/libgmock.a" PARENT_SCOPE)
-    ENDIF()
-  ELSE()
-    MESSAGE(FATAL_ERROR "GMOCK not found. Please install it or set GMOCK_ROOT")
-  ENDIF()
-ENDFUNCTION()
+    set(GMOCK_FOUND YES PARENT_SCOPE)
+    if(GMOCK_SHARED_LIB)
+      set(GMOCK_LIB "${GMOCK_SHARED_LIB};${GMOCK_MAIN_LIB}" PARENT_SCOPE)
+      unset(GMOCK_SRC_DIR CACHE)
+    else()
+      set(GMOCK_SRC "${GMOCK_MAIN_SRC_DIR}/gmock-all.cc" PARENT_SCOPE)
+      set(GMOCK_LIB "${CMAKE_BINARY_DIR}/common/test-core/libgmock.a" PARENT_SCOPE)
+    endif()
+  else()
+    message(FATAL_ERROR "GMOCK not found. Please install it or set GMOCK_ROOT")
+  endif()
+endfunction()
diff --git a/common/cmake_modules/MacroAddSourceFileCompileFlags.cmake b/common/cmake_modules/MacroAddSourceFileCompileFlags.cmake
index 46650a3..660f4e8 100644
--- a/common/cmake_modules/MacroAddSourceFileCompileFlags.cmake
+++ b/common/cmake_modules/MacroAddSourceFileCompileFlags.cmake
@@ -1,4 +1,4 @@
-# - MACRO_ADD_SOURCE_FILE_COMPILE_FLAGS(<_target> "flags...")
+# - macro_add_source_file_compile_flags(<_target> "flags...")
 
 # Copyright (c) 2006, Oswald Buddenhagen, <ossi at kde.org>
 #
@@ -6,14 +6,14 @@
 # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
 
 
-MACRO (MACRO_ADD_SOURCE_FILE_COMPILE_FLAGS _sourcefile _additionalflags)
+macro (macro_add_source_file_compile_flags _sourcefile _additionalflags)
 
-   GET_SOURCE_FILE_PROPERTY (_flags ${_sourcefile} COMPILE_FLAGS)
+   get_source_file_property (_flags ${_sourcefile} COMPILE_FLAGS)
    if (_flags)
       set(_flags "${_flags} ${_additionalflags}")
    else (_flags)
       set(_flags "${_additionalflags}")
    endif (_flags)
-   SET_SOURCE_FILES_PROPERTIES (${_sourcefile} PROPERTIES COMPILE_FLAGS "${_flags}")
+   set_source_files_properties (${_sourcefile} PROPERTIES COMPILE_FLAGS "${_flags}")
 
-ENDMACRO (MACRO_ADD_SOURCE_FILE_COMPILE_FLAGS)
+endmacro (macro_add_source_file_compile_flags)
diff --git a/common/cmake_modules/MacroAppendForeach.cmake b/common/cmake_modules/MacroAppendForeach.cmake
index 39e4c8f..67d9aeb 100644
--- a/common/cmake_modules/MacroAppendForeach.cmake
+++ b/common/cmake_modules/MacroAppendForeach.cmake
@@ -1,4 +1,4 @@
-# - MACRO_APPEND_FOREACH(<_targetlist> _prefix _suffix <_sourcelist> )
+# - macro_append_foreach(<_targetlist> _prefix _suffix <_sourcelist> )
 
 # Copyright (c) 2009, Christian Stimming
 
@@ -9,12 +9,12 @@
 # Redistribution and use is allowed according to the terms of the BSD license.
 # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
 
-MACRO (MACRO_APPEND_FOREACH _target _prefix _suffix)
+macro (macro_append_foreach _target _prefix _suffix)
 
-  FOREACH (_loop_var ${ARGN})
+  foreach (_loop_var ${ARGN})
 
-	SET (${_target} ${${_target}} "${_prefix}${_loop_var}${_suffix}")
+	set (${_target} ${${_target}} "${_prefix}${_loop_var}${_suffix}")
 	
-  ENDFOREACH (_loop_var)
+  endforeach (_loop_var)
 
-ENDMACRO (MACRO_APPEND_FOREACH)
+endmacro (macro_append_foreach)
diff --git a/common/cmake_modules/MakeDist.cmake b/common/cmake_modules/MakeDist.cmake
index 9429b6d..3cbaab5 100644
--- a/common/cmake_modules/MakeDist.cmake
+++ b/common/cmake_modules/MakeDist.cmake
@@ -13,71 +13,71 @@ include(${CMAKE_MODULE_PATH}/MakeDistFiles.cmake)
 
 
 
-FUNCTION(MAKE_DIST PACKAGE_PREFIX GNUCASH_SOURCE_DIR BUILD_SOURCE_DIR BUILDING_FROM_VCS)
+function(make_dist PACKAGE_PREFIX GNUCASH_SOURCE_DIR BUILD_SOURCE_DIR BUILDING_FROM_VCS)
 
-    SET(CMAKE_COMMAND_TMP "")
-    IF (${CMAKE_VERSION} VERSION_GREATER 3.1)
-        SET(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env)
-    ENDIF()
+    set(CMAKE_COMMAND_TMP "")
+    if (${CMAKE_VERSION} VERSION_GREATER 3.1)
+        set(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env)
+    endif()
 
     # -- Remove any existing packaging directory.
-    FILE(REMOVE_RECURSE ${PACKAGE_PREFIX})
+    file(REMOVE_RECURSE ${PACKAGE_PREFIX})
 
-    IF (EXISTS ${PACKAGE_PREFIX})
-        MESSAGE(FATAL_ERROR "Unable to remove existing dist directory \"${PACKAGE_PREFIX}\". Cannot continue.")
-    ENDIF()
+    if (EXISTS ${PACKAGE_PREFIX})
+        message(FATAL_ERROR "Unable to remove existing dist directory \"${PACKAGE_PREFIX}\". Cannot continue.")
+    endif()
 
 
     # -- Copy in distributed files
-    IF(NOT EXISTS dist_manifest.txt)
+    if(NOT EXISTS dist_manifest.txt)
         message(FATAL_ERROR "Cannot find dist manifest: dist_manifest.txt")
-    ENDIF()
+    endif()
 
     file(STRINGS dist_manifest.txt ALL_DIST)
 
-    FOREACH(file ${ALL_DIST})
-        IF(NOT EXISTS ${GNUCASH_SOURCE_DIR}/${file})
-            MESSAGE(FATAL_ERROR "Can't find dist file ${GNUCASH_SOURCE_DIR}/${file}")
-        ENDIF()
-        GET_FILENAME_COMPONENT(dir ${file} DIRECTORY)
-        FILE(MAKE_DIRECTORY ${PACKAGE_PREFIX}/${dir})
-        FILE(COPY ${GNUCASH_SOURCE_DIR}/${file} DESTINATION ${PACKAGE_PREFIX}/${dir})
-    ENDFOREACH()
+    foreach(file ${ALL_DIST})
+        if(NOT EXISTS ${GNUCASH_SOURCE_DIR}/${file})
+            message(FATAL_ERROR "Can't find dist file ${GNUCASH_SOURCE_DIR}/${file}")
+        endif()
+        get_filename_component(dir ${file} DIRECTORY)
+        file(MAKE_DIRECTORY ${PACKAGE_PREFIX}/${dir})
+        file(COPY ${GNUCASH_SOURCE_DIR}/${file} DESTINATION ${PACKAGE_PREFIX}/${dir})
+    endforeach()
 
     # -- Copy in build products that are distributed.
 
-    FOREACH(file ${dist_generated})
-        EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_SOURCE_DIR}/${file} ${PACKAGE_PREFIX}/${file})
-        IF (NOT EXISTS ${PACKAGE_PREFIX}/${file})
-            MESSAGE(FATAL_ERROR "Copy of ${BUILD_SOURCE_DIR}/${file} to dist dir '${PACKAGE_PREFIX}' failed.")
-        ENDIF()
-    ENDFOREACH()
+    foreach(file ${dist_generated})
+        execute_process(COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_SOURCE_DIR}/${file} ${PACKAGE_PREFIX}/${file})
+        if (NOT EXISTS ${PACKAGE_PREFIX}/${file})
+            message(FATAL_ERROR "Copy of ${BUILD_SOURCE_DIR}/${file} to dist dir '${PACKAGE_PREFIX}' failed.")
+        endif()
+    endforeach()
 
-    CMAKE_POLICY(SET CMP0012 NEW)
+    cmake_policy(SET CMP0012 NEW)
 
     # -- Create the tarball.
 
-    EXECUTE_PROCESS_AND_CHECK_RESULT(
+    execute_process_and_check_result(
             COMMAND ${CMAKE_COMMAND} -E tar cf ${PACKAGE_PREFIX}.tar ${PACKAGE_PREFIX}
             WORKING_DIRECTORY .
             ERROR_MSG "tar command to create ${PACKAGE_PREFIX}.tar failed."
     )
 
     # -- Compress the tarball with gzip
-    EXECUTE_PROCESS(
+    execute_process(
         COMMAND ${CMAKE_COMMAND} -E copy ${PACKAGE_PREFIX}.tar ${PACKAGE_PREFIX}.tar.save
     )
-    EXECUTE_PROCESS_AND_CHECK_RESULT(
+    execute_process_and_check_result(
             COMMAND ${CMAKE_COMMAND_TMP} gzip -f ${PACKAGE_PREFIX}.tar
             WORKING_DIRECTORY .
             ERROR_MSG "gzip command to create ${PACKAGE_PREFIX}.tar.gz failed."
     )
 
     # -- Compress the tarball with bzip2
-    EXECUTE_PROCESS(
+    execute_process(
         COMMAND ${CMAKE_COMMAND} -E rename ${PACKAGE_PREFIX}.tar.save ${PACKAGE_PREFIX}.tar
     )
-    EXECUTE_PROCESS_AND_CHECK_RESULT(
+    execute_process_and_check_result(
             COMMAND ${CMAKE_COMMAND_TMP} bzip2 -f ${PACKAGE_PREFIX}.tar
             WORKING_DIRECTORY .
             ERROR_MSG "bzip2 command to create ${PACKAGE_PREFIX}.tar.bz2 failed."
@@ -85,19 +85,19 @@ FUNCTION(MAKE_DIST PACKAGE_PREFIX GNUCASH_SOURCE_DIR BUILD_SOURCE_DIR BUILDING_F
 
     # -- Clean up packaging directory.
 
-    FILE(REMOVE_RECURSE ${PACKAGE_PREFIX})
+    file(REMOVE_RECURSE ${PACKAGE_PREFIX})
 
-    IF(EXISTS ${PACKAGE_PREFIX})
-        MESSAGE(WARNING "Could not remove packaging directory '${PACKAGE_PREFIX}'")
-    ENDIF()
+    if(EXISTS ${PACKAGE_PREFIX})
+        message(WARNING "Could not remove packaging directory '${PACKAGE_PREFIX}'")
+    endif()
 
     # -- All done.
 
-    MESSAGE("\n\nDistributions ${PACKAGE_PREFIX}.tar.gz and ${PACKAGE_PREFIX}.tar.bz2 created.\n\n")
-ENDFUNCTION()
+    message("\n\nDistributions ${PACKAGE_PREFIX}.tar.gz and ${PACKAGE_PREFIX}.tar.bz2 created.\n\n")
+endfunction()
 
-IF (NOT WITH_GNUCASH)
-    MESSAGE(SEND_ERROR "Creation of dist tarballs not support when WITH_GNUCASH=OFF.")
-ENDIF()
+if (NOT WITH_GNUCASH)
+    message(SEND_ERROR "Creation of dist tarballs not support when WITH_GNUCASH=OFF.")
+endif()
 
- MAKE_DIST(${PACKAGE_PREFIX} ${GNUCASH_SOURCE_DIR} ${BUILD_SOURCE_DIR} ${BUILDING_FROM_VCS})
+ make_dist(${PACKAGE_PREFIX} ${GNUCASH_SOURCE_DIR} ${BUILD_SOURCE_DIR} ${BUILDING_FROM_VCS})
diff --git a/common/cmake_modules/MakeDistCheck.cmake b/common/cmake_modules/MakeDistCheck.cmake
index 606915f..c9e68ea 100644
--- a/common/cmake_modules/MakeDistCheck.cmake
+++ b/common/cmake_modules/MakeDistCheck.cmake
@@ -1,33 +1,33 @@
 
 include(MakeDistFiles)
 
-FUNCTION(RUN_DIST_CHECK PACKAGE_PREFIX EXT)
+function(run_dist_check PACKAGE_PREFIX EXT)
 
-    SET(tarball ${PACKAGE_PREFIX}.tar${EXT})
-    IF (NOT EXISTS ${tarball})
-        MESSAGE(FATAL_ERROR "Can't find dist tarball '${tarball}'")
-    ENDIF()
+    set(tarball ${PACKAGE_PREFIX}.tar${EXT})
+    if (NOT EXISTS ${tarball})
+        message(FATAL_ERROR "Can't find dist tarball '${tarball}'")
+    endif()
 
     # Remove the directory we're about to extract to
-    FILE(REMOVE_RECURSE ${PACKAGE_PREFIX})
+    file(REMOVE_RECURSE ${PACKAGE_PREFIX})
 
     # Untar the distribution we want to check
-    SET(TAR_OPTION "zxf")
-    IF (${EXT} STREQUAL ".bz2")
-        SET(TAR_OPTION "jxf")
-    ENDIF()
+    set(TAR_OPTION "zxf")
+    if (${EXT} STREQUAL ".bz2")
+        set(TAR_OPTION "jxf")
+    endif()
         
-    SET(MY_CMAKE_COMMAND "")
-    IF (${CMAKE_VERSION} VERSION_GREATER 3.1)
-        SET(MY_CMAKE_COMMAND ${CMAKE_COMMAND} -E env)
-    ENDIF()
+    set(MY_CMAKE_COMMAND "")
+    if (${CMAKE_VERSION} VERSION_GREATER 3.1)
+        set(MY_CMAKE_COMMAND ${CMAKE_COMMAND} -E env)
+    endif()
 
     FIND_PROGRAM(NINJA_COMMAND NAMES ninja ninja-build)
-    IF (${NINJA_COMMAND} STREQUAL "NINJA_COMMAND-NOTFOUND")
-        MESSAGE(FATAL_ERROR "Can't find the 'ninja' or 'ninja-build' program.")
-    ENDIF ()
+    if (${NINJA_COMMAND} STREQUAL "NINJA_COMMAND-NOTFOUND")
+        message(FATAL_ERROR "Can't find the 'ninja' or 'ninja-build' program.")
+    endif ()
 
-    EXECUTE_PROCESS_AND_CHECK_RESULT(
+    execute_process_and_check_result(
             COMMAND ${CMAKE_COMMAND} -E tar ${TAR_OPTION} ${tarball}
             WORKING_DIRECTORY .
             ERROR_MSG "Command to untar ${tarball} failed."
@@ -38,13 +38,13 @@ FUNCTION(RUN_DIST_CHECK PACKAGE_PREFIX EXT)
 
     # Create a build directory and configure the Cmake build
 
-    SET(BUILD_DIR "_cmake_build")
-    SET(INSTALL_DIR "_cmake_install")
-    FILE(REMOVE_RECURSE ${BUILD_DIR} ${INSTALL_DIR})
+    set(BUILD_DIR "_cmake_build")
+    set(INSTALL_DIR "_cmake_install")
+    file(REMOVE_RECURSE ${BUILD_DIR} ${INSTALL_DIR})
 
-    FILE(MAKE_DIRECTORY ${BUILD_DIR} ${INSTALL_DIR})
+    file(MAKE_DIRECTORY ${BUILD_DIR} ${INSTALL_DIR})
 
-    EXECUTE_PROCESS_AND_CHECK_RESULT(
+    execute_process_and_check_result(
             COMMAND ${CMAKE_COMMAND} -G Ninja
               -D CMAKE_C_FLAGS=${CMAKE_C_FLAGS}
               -D CMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
@@ -58,35 +58,35 @@ FUNCTION(RUN_DIST_CHECK PACKAGE_PREFIX EXT)
     )
 
     # Run ninja in the build directory
-    EXECUTE_PROCESS_AND_CHECK_RESULT(
+    execute_process_and_check_result(
             COMMAND ${MY_CMAKE_COMMAND} ${NINJA_COMMAND}
             WORKING_DIRECTORY ${BUILD_DIR}
             ERROR_MSG "Ninja build failed."
     )
 
     # Run ninja install
-    EXECUTE_PROCESS_AND_CHECK_RESULT(
+    execute_process_and_check_result(
             COMMAND ${MY_CMAKE_COMMAND} ${NINJA_COMMAND} install
             WORKING_DIRECTORY ${BUILD_DIR}
             ERROR_MSG "Ninja install failed."
     )
 
     # Run ninja check in the build directory
-    EXECUTE_PROCESS_AND_CHECK_RESULT(
+    execute_process_and_check_result(
             COMMAND ${MY_CMAKE_COMMAND} ${NINJA_COMMAND} check
             WORKING_DIRECTORY ${BUILD_DIR}
             ERROR_MSG "Ninja check failed."
     )
 
     # Run ninja dist
-    EXECUTE_PROCESS_AND_CHECK_RESULT(
+    execute_process_and_check_result(
             COMMAND ${MY_CMAKE_COMMAND} ${NINJA_COMMAND} dist
             WORKING_DIRECTORY ${BUILD_DIR}
             ERROR_MSG "Ninja dist failed."
     )
 
-    MESSAGE("distcheck complete.")
+    message("distcheck complete.")
 
-ENDFUNCTION()
+endfunction()
 
-RUN_DIST_CHECK(${PACKAGE_PREFIX} .gz)
+run_dist_check(${PACKAGE_PREFIX} .gz)
diff --git a/common/cmake_modules/MakeDistFiles.cmake b/common/cmake_modules/MakeDistFiles.cmake
index 08b8c31..dd6a075 100644
--- a/common/cmake_modules/MakeDistFiles.cmake
+++ b/common/cmake_modules/MakeDistFiles.cmake
@@ -1,34 +1,34 @@
 
-IF (${CMAKE_VERSION} VERSION_LESS 3.3)
-    INCLUDE(CMakeParseArguments)
-ENDIF()
+if (${CMAKE_VERSION} VERSION_LESS 3.3)
+    include(CMakeParseArguments)
+endif()
 
 
-FUNCTION(SET_LOCAL_DIST output)
-    SET(dist_files "")
-    FOREACH(file ${ARGN})
-        FILE(RELATIVE_PATH relative ${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/${file})
-        LIST(APPEND dist_files ${relative})
-    ENDFOREACH()
-    SET (${output} ${dist_files} PARENT_SCOPE)
-ENDFUNCTION()
+function(set_local_dist output)
+    set(dist_files "")
+    foreach(file ${ARGN})
+        file(RELATIVE_PATH relative ${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/${file})
+        list(APPEND dist_files ${relative})
+    endforeach()
+    set (${output} ${dist_files} PARENT_SCOPE)
+endfunction()
 
-MACRO(SET_DIST_LIST output)
-    SET_LOCAL_DIST(${output}_TMP ${ARGN})
-    SET(${output} ${${output}_TMP} PARENT_SCOPE)
-ENDMACRO()
+macro(set_dist_list output)
+    set_local_dist(${output}_TMP ${ARGN})
+    set(${output} ${${output}_TMP} PARENT_SCOPE)
+endmacro()
 
-FUNCTION(EXECUTE_PROCESS_AND_CHECK_RESULT)
+function(execute_process_and_check_result)
     cmake_parse_arguments(VARS "" "WORKING_DIRECTORY;ERROR_MSG" "COMMAND" ${ARGN})
-    EXECUTE_PROCESS(
+    execute_process(
             COMMAND ${VARS_COMMAND}
             WORKING_DIRECTORY ${VARS_WORKING_DIRECTORY}
             RESULT_VARIABLE RESULT
     )
-    IF (NOT "${RESULT}" STREQUAL "0")
-        MESSAGE(FATAL_ERROR ${VARS_ERROR_MSG})
-    ENDIF()
-ENDFUNCTION()
+    if (NOT "${RESULT}" STREQUAL "0")
+        message(FATAL_ERROR ${VARS_ERROR_MSG})
+    endif()
+endfunction()
 
 # These functions can be called to add generated files (as opposed to source files)
 # to the distribution tarball
diff --git a/common/debug/CMakeLists.txt b/common/debug/CMakeLists.txt
index dab400c..3feafad 100644
--- a/common/debug/CMakeLists.txt
+++ b/common/debug/CMakeLists.txt
@@ -1,4 +1,4 @@
-ADD_SUBDIRECTORY(valgrind)
+add_subdirectory(valgrind)
 
-SET_LOCAL_DIST(debug_DIST_local CMakeLists.txt )
-SET(debug_DIST ${debug_DIST_local} ${valgrind_DIST} PARENT_SCOPE)
\ No newline at end of file
+set_local_dist(debug_DIST_local CMakeLists.txt )
+set(debug_DIST ${debug_DIST_local} ${valgrind_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/common/debug/valgrind/CMakeLists.txt b/common/debug/valgrind/CMakeLists.txt
index 1d40c8f..89cf76c 100644
--- a/common/debug/valgrind/CMakeLists.txt
+++ b/common/debug/valgrind/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(valgrind_FILES
+set(valgrind_FILES
         valgrind-gdk.supp
         valgrind-glib.supp
         valgrind-gnucash.supp
@@ -8,4 +8,4 @@ SET(valgrind_FILES
         valgrind-x11.supp
         )
 
-SET_DIST_LIST(valgrind_DIST CMakeLists.txt ${valgrind_FILES})
\ No newline at end of file
+set_dist_list(valgrind_DIST CMakeLists.txt ${valgrind_FILES})
\ No newline at end of file
diff --git a/common/test-core/CMakeLists.txt b/common/test-core/CMakeLists.txt
index 5281565..229cb39 100644
--- a/common/test-core/CMakeLists.txt
+++ b/common/test-core/CMakeLists.txt
@@ -1,9 +1,9 @@
-SET(test_core_SOURCES
+set(test_core_SOURCES
   test-stuff.c
   unittest-support.c
 )
 
-SET(test_core_noinst_HEADERS
+set(test_core_noinst_HEADERS
   test-stuff.h
   unittest-support.h
 )
@@ -18,14 +18,14 @@ INCLUDE_DIRECTORIES(
   ${GUILE_INCLUDE_DIRS}
 )
 
-SET_DIST_LIST(test_core_DIST ${test_core_SOURCES} ${test_core_noinst_HEADERS} CMakeLists.txt
+set_dist_list(test_core_DIST ${test_core_SOURCES} ${test_core_noinst_HEADERS} CMakeLists.txt
         unittest-support.i unittest-support.scm)
 
-ADD_LIBRARY(test-core STATIC ${test_core_SOURCES} ${test_core_noinst_HEADERS})
-TARGET_LINK_LIBRARIES(test-core gncmod-engine ${GLIB2_LDFLAGS})
-IF (UNIX)
-  TARGET_COMPILE_OPTIONS(test-core PRIVATE -fPIC)
-ENDIF()
+add_library(test-core STATIC ${test_core_SOURCES} ${test_core_noinst_HEADERS})
+target_link_libraries(test-core gncmod-engine ${GLIB2_LDFLAGS})
+if (UNIX)
+  target_compile_options(test-core PRIVATE -fPIC)
+endif()
 
 # Command to generate the swig-unittest-support-guile.c wrapper file
 gnc_add_swig_guile_command (swig-unittest-support-guile-c
@@ -40,23 +40,23 @@ gnc_add_swig_python_command (swig-unittest-support-python
     ${CMAKE_CURRENT_SOURCE_DIR}/unittest-support.i
 )
 
-ADD_LIBRARY(test-core-guile ${SWIG_UNITTEST_SUPPORT_GUILE_C})
-TARGET_LINK_LIBRARIES(test-core-guile test-core ${GUILE_LDFLAGS} ${GLIB2_LDFLAGS})
+add_library(test-core-guile ${SWIG_UNITTEST_SUPPORT_GUILE_C})
+target_link_libraries(test-core-guile test-core ${GUILE_LDFLAGS} ${GLIB2_LDFLAGS})
 
-IF (WITH_PYTHON)
-  ADD_LIBRARY(unittest_support MODULE ${SWIG_UNITTEST_SUPPORT_PYTHON_C})
-  TARGET_LINK_LIBRARIES(unittest_support test-core ${PYTHON_LIBRARIES})
-  TARGET_INCLUDE_DIRECTORIES(unittest_support PRIVATE ${PYTHON_INCLUDE_DIRS})
-  SET_TARGET_PROPERTIES(unittest_support PROPERTIES PREFIX "_")
-ENDIF()
+if (WITH_PYTHON)
+  add_library(unittest_support MODULE ${SWIG_UNITTEST_SUPPORT_PYTHON_C})
+  target_link_libraries(unittest_support test-core ${PYTHON_LIBRARIES})
+  target_include_directories(unittest_support PRIVATE ${PYTHON_INCLUDE_DIRS})
+  set_target_properties(unittest_support PROPERTIES PREFIX "_")
+endif()
 
-SET(test_core_SCHEME unittest-support.scm)
+set(test_core_SCHEME unittest-support.scm)
 
-SET(GUILE_OUTPUT_DIR   gnucash)
-SET(GUILE_DEPENDS      test-core-guile)
+set(GUILE_OUTPUT_DIR   gnucash)
+set(GUILE_DEPENDS      test-core-guile)
 
 
-GNC_ADD_SCHEME_TARGETS(scm-test-core
+gnc_add_scheme_targets(scm-test-core
   ${test_core_SCHEME}
   ${GUILE_OUTPUT_DIR}
   "${GUILE_DEPENDS}"
@@ -65,25 +65,25 @@ GNC_ADD_SCHEME_TARGETS(scm-test-core
 
 add_dependencies(check scm-test-core)
 
-IF(NOT GTEST_SHARED_LIB)
-  SET (lib_gtest_SOURCES ${GTEST_SRC_DIR}/src/gtest-all.cc)
-  ADD_LIBRARY(gtest STATIC  ${lib_gtest_SOURCES})
-  IF(APPLE)
-    TARGET_COMPILE_OPTIONS(gtest PRIVATE -Wno-missing-prototypes)
-  ELSE()
-    TARGET_COMPILE_OPTIONS(gtest PRIVATE -Wno-missing-declarations)
-  ENDIF()
-  TARGET_INCLUDE_DIRECTORIES(gtest PUBLIC ${GTEST_INCLUDE_DIR} ${GTEST_SRC_DIR})
-ENDIF()
-IF(NOT GMOCK_SHARED_LIB)
-  SET (lib_gmock_SOURCES ${GMOCK_SRC})
-  ADD_LIBRARY(gmock STATIC  ${lib_gmock_SOURCES})
-  IF (APPLE)
-    TARGET_COMPILE_OPTIONS(gmock PRIVATE -Wno-missing-prototypes)
-  ELSE()
-    TARGET_COMPILE_OPTIONS(gmock PRIVATE -Wno-missing-declarations)
-  ENDIF()
-  TARGET_INCLUDE_DIRECTORIES(gmock PUBLIC
+if(NOT GTEST_SHARED_LIB)
+  set (lib_gtest_SOURCES ${GTEST_SRC_DIR}/src/gtest-all.cc)
+  add_library(gtest STATIC  ${lib_gtest_SOURCES})
+  if(APPLE)
+    target_compile_options(gtest PRIVATE -Wno-missing-prototypes)
+  else()
+    target_compile_options(gtest PRIVATE -Wno-missing-declarations)
+  endif()
+  target_include_directories(gtest PUBLIC ${GTEST_INCLUDE_DIR} ${GTEST_SRC_DIR})
+endif()
+if(NOT GMOCK_SHARED_LIB)
+  set (lib_gmock_SOURCES ${GMOCK_SRC})
+  add_library(gmock STATIC  ${lib_gmock_SOURCES})
+  if (APPLE)
+    target_compile_options(gmock PRIVATE -Wno-missing-prototypes)
+  else()
+    target_compile_options(gmock PRIVATE -Wno-missing-declarations)
+  endif()
+  target_include_directories(gmock PUBLIC
     ${GTEST_INCLUDE_DIR} ${GTEST_SRC_DIR}
     ${GMOCK_INCLUDE_DIR} ${GMOCK_SRC_DIR})
-ENDIF()
+endif()
diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt
index c3c236e..67cff17 100644
--- a/data/CMakeLists.txt
+++ b/data/CMakeLists.txt
@@ -1,11 +1,11 @@
 # CMakeLists.txt for data/
 
 # The subdirectories
-ADD_SUBDIRECTORY (accounts)
-ADD_SUBDIRECTORY (checks)
-ADD_SUBDIRECTORY (pixmaps)
+add_subdirectory (accounts)
+add_subdirectory (checks)
+add_subdirectory (pixmaps)
 
-SET_LOCAL_DIST(data_DIST_local CMakeLists.txt ${data_EXTRA_DIST})
+set_local_dist(data_DIST_local CMakeLists.txt ${data_EXTRA_DIST})
 
-SET(data_DIST ${data_DIST_local} ${accounts_DIST} ${checks_DIST}
+set(data_DIST ${data_DIST_local} ${accounts_DIST} ${checks_DIST}
              ${pixmaps_DIST} PARENT_SCOPE)
diff --git a/data/accounts/C/CMakeLists.txt b/data/accounts/C/CMakeLists.txt
index 48f1951..7dda269 100644
--- a/data/accounts/C/CMakeLists.txt
+++ b/data/accounts/C/CMakeLists.txt
@@ -1,6 +1,6 @@
 
 
-SET(account_DATA
+set(account_DATA
   acctchrt_brokerage.gnucash-xea
   acctchrt_business.gnucash-xea
   acctchrt_carloan.gnucash-xea
@@ -18,8 +18,8 @@ SET(account_DATA
   acctchrt_spouseinc.gnucash-xea
   acctchrt_spouseretire.gnucash-xea)
 
-SET_DIST_LIST(C_DIST ${account_DATA} acctchrt_full.gnucash-xea CMakeLists.txt)
+set_dist_list(C_DIST ${account_DATA} acctchrt_full.gnucash-xea CMakeLists.txt)
 
-INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/C)
-FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/C)
+install(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/C)
+file(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/C)
 
diff --git a/data/accounts/CMakeLists.txt b/data/accounts/CMakeLists.txt
index 94d0d46..704751d 100644
--- a/data/accounts/CMakeLists.txt
+++ b/data/accounts/CMakeLists.txt
@@ -1,48 +1,48 @@
-SET(ACCOUNTS_INSTALL_DIR ${CMAKE_INSTALL_DATADIR}/gnucash/accounts)
-SET(ACCOUNTS_BUILD_DIR ${DATADIR_BUILD}/gnucash/accounts)
+set(ACCOUNTS_INSTALL_DIR ${CMAKE_INSTALL_DATADIR}/gnucash/accounts)
+set(ACCOUNTS_BUILD_DIR ${DATADIR_BUILD}/gnucash/accounts)
 
 
 
-ADD_SUBDIRECTORY(C)
-ADD_SUBDIRECTORY(ca)
-ADD_SUBDIRECTORY(cs)
-ADD_SUBDIRECTORY(da)
-ADD_SUBDIRECTORY(de_AT)
-ADD_SUBDIRECTORY(de_CH)
-ADD_SUBDIRECTORY(de_DE)
-ADD_SUBDIRECTORY(el_GR)
-ADD_SUBDIRECTORY(en_GB)
-ADD_SUBDIRECTORY(en_IN)
-ADD_SUBDIRECTORY(es_ES)
-ADD_SUBDIRECTORY(es_MX)
-ADD_SUBDIRECTORY(fi_FI)
-ADD_SUBDIRECTORY(fr_CA)
-ADD_SUBDIRECTORY(fr_CH)
-ADD_SUBDIRECTORY(fr_FR)
-ADD_SUBDIRECTORY(hu_HU)
-ADD_SUBDIRECTORY(it)
-ADD_SUBDIRECTORY(ja)
-ADD_SUBDIRECTORY(ko)
-ADD_SUBDIRECTORY(lt)
-ADD_SUBDIRECTORY(lv)
-ADD_SUBDIRECTORY(nb)
-ADD_SUBDIRECTORY(nl)
-ADD_SUBDIRECTORY(pl)
-ADD_SUBDIRECTORY(pt_BR)
-ADD_SUBDIRECTORY(pt_PT)
-ADD_SUBDIRECTORY(ru)
-ADD_SUBDIRECTORY(sk)
-ADD_SUBDIRECTORY(sv_AX)
-ADD_SUBDIRECTORY(sv_FI)
-ADD_SUBDIRECTORY(sv_SE)
-ADD_SUBDIRECTORY(tr_TR)
-ADD_SUBDIRECTORY(zh_CN)
-ADD_SUBDIRECTORY(zh_HK)
-ADD_SUBDIRECTORY(zh_TW)
+add_subdirectory(C)
+add_subdirectory(ca)
+add_subdirectory(cs)
+add_subdirectory(da)
+add_subdirectory(de_AT)
+add_subdirectory(de_CH)
+add_subdirectory(de_DE)
+add_subdirectory(el_GR)
+add_subdirectory(en_GB)
+add_subdirectory(en_IN)
+add_subdirectory(es_ES)
+add_subdirectory(es_MX)
+add_subdirectory(fi_FI)
+add_subdirectory(fr_CA)
+add_subdirectory(fr_CH)
+add_subdirectory(fr_FR)
+add_subdirectory(hu_HU)
+add_subdirectory(it)
+add_subdirectory(ja)
+add_subdirectory(ko)
+add_subdirectory(lt)
+add_subdirectory(lv)
+add_subdirectory(nb)
+add_subdirectory(nl)
+add_subdirectory(pl)
+add_subdirectory(pt_BR)
+add_subdirectory(pt_PT)
+add_subdirectory(ru)
+add_subdirectory(sk)
+add_subdirectory(sv_AX)
+add_subdirectory(sv_FI)
+add_subdirectory(sv_SE)
+add_subdirectory(tr_TR)
+add_subdirectory(zh_CN)
+add_subdirectory(zh_HK)
+add_subdirectory(zh_TW)
 
-SET_LOCAL_DIST(dist_list CMakeLists.txt )
+set_local_dist(dist_list CMakeLists.txt )
 
-SET(accounts_DIST ${C_DIST} ${CA_DIST} ${CS_DIST} ${DA_DIST} ${DE_AT_DIST} ${DE_CH_DIST} ${DE_DE_DIST} ${EL_GR_DIST}
+set(accounts_DIST ${C_DIST} ${CA_DIST} ${CS_DIST} ${DA_DIST} ${DE_AT_DIST} ${DE_CH_DIST} ${DE_DE_DIST} ${EL_GR_DIST}
                   ${EN_GB_DIST} ${EN_IN_DIST} ${ES_ES_DIST} ${ES_MX_DIST} ${FI_FI_DIST} ${FR_CA_DIST} ${FR_CH_DIST}
                   ${FR_FR_DIST} ${HU_HU_DIST} ${IT_DIST} ${JA_DIST} ${KO_DIST} ${LT_DIST} ${LV_DIST}
                   ${NB_DIST} ${NL_DIST} ${PL_DIST} ${PT_BR_DIST} ${PT_PT_DIST} ${RU_DIST} ${SK_DIST}
diff --git a/data/accounts/ca/CMakeLists.txt b/data/accounts/ca/CMakeLists.txt
index 54a1973..4c0986d 100644
--- a/data/accounts/ca/CMakeLists.txt
+++ b/data/accounts/ca/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(account_DATA
+set(account_DATA
   acctchrt_brokerage.gnucash-xea
   acctchrt_carloan.gnucash-xea
   acctchrt_cdmoneymkt.gnucash-xea
@@ -15,7 +15,7 @@ SET(account_DATA
   acctchrt_spouseinc.gnucash-xea
   acctchrt_spouseretire.gnucash-xea)
 
-SET_DIST_LIST(CA_DIST ${account_DATA} CMakeLists.txt)
+set_dist_list(CA_DIST ${account_DATA} CMakeLists.txt)
 
-INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/ca)
-FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/ca)
+install(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/ca)
+file(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/ca)
diff --git a/data/accounts/cs/CMakeLists.txt b/data/accounts/cs/CMakeLists.txt
index 2df788c..5d8586e 100644
--- a/data/accounts/cs/CMakeLists.txt
+++ b/data/accounts/cs/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(account_DATA
+set(account_DATA
   acctchrt_brokerage.gnucash-xea
   acctchrt_carloan.gnucash-xea
   acctchrt_cdmoneymkt.gnucash-xea
@@ -15,7 +15,7 @@ SET(account_DATA
   acctchrt_spouseinc.gnucash-xea
   acctchrt_spouseretire.gnucash-xea)
 
-SET_DIST_LIST(CS_DIST ${account_DATA} CMakeLists.txt)
+set_dist_list(CS_DIST ${account_DATA} CMakeLists.txt)
 
-INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/cs)
-FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/cs)
+install(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/cs)
+file(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/cs)
diff --git a/data/accounts/da/CMakeLists.txt b/data/accounts/da/CMakeLists.txt
index 5e97021..ceda89d 100644
--- a/data/accounts/da/CMakeLists.txt
+++ b/data/accounts/da/CMakeLists.txt
@@ -1,10 +1,10 @@
-SET(account_DATA
+set(account_DATA
   acctchrt_car.gnucash-xea
   acctchrt_common.gnucash-xea
   acctchrt_homeloan.gnucash-xea
   acctchrt_homeown.gnucash-xea)
 
-SET_DIST_LIST(DA_DIST ${account_DATA} CMakeLists.txt)
+set_dist_list(DA_DIST ${account_DATA} CMakeLists.txt)
 
-INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/da)
-FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/da)
+install(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/da)
+file(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/da)
diff --git a/data/accounts/de_AT/CMakeLists.txt b/data/accounts/de_AT/CMakeLists.txt
index 7b6d99a..29e2e02 100644
--- a/data/accounts/de_AT/CMakeLists.txt
+++ b/data/accounts/de_AT/CMakeLists.txt
@@ -1,5 +1,5 @@
 
-SET(dist_account_DATA
+set(dist_account_DATA
   acctchrt_auto.gnucash-xea
   acctchrt_autoloan.gnucash-xea
   acctchrt_brokerage.gnucash-xea
@@ -9,7 +9,7 @@ SET(dist_account_DATA
   acctchrt_investment.gnucash-xea
   acctchrt_kids.gnucash-xea)
 
-SET_DIST_LIST(DE_AT_DIST ${dist_account_DATA} CMakeLists.txt)
+set_dist_list(DE_AT_DIST ${dist_account_DATA} CMakeLists.txt)
 
-INSTALL(FILES ${dist_account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/de_AT)
-FILE(COPY ${dist_account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/de_AT)
+install(FILES ${dist_account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/de_AT)
+file(COPY ${dist_account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/de_AT)
diff --git a/data/accounts/de_CH/CMakeLists.txt b/data/accounts/de_CH/CMakeLists.txt
index bad7dd2..170d341 100644
--- a/data/accounts/de_CH/CMakeLists.txt
+++ b/data/accounts/de_CH/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(account_DATA
+set(account_DATA
   acctchrt_brokerage.gnucash-xea
   acctchrt_common.gnucash-xea
   acctchrt_kids.gnucash-xea
@@ -6,7 +6,7 @@ SET(account_DATA
   acctchrt_otherloan.gnucash-xea
   acctchrt_chkmu.gnucash-xea)
 
-SET_DIST_LIST(DE_CH_DIST ${account_DATA} CMakeLists.txt)
+set_dist_list(DE_CH_DIST ${account_DATA} CMakeLists.txt)
 
-INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/de_CH)
-FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/de_CH)
\ No newline at end of file
+install(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/de_CH)
+file(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/de_CH)
\ No newline at end of file
diff --git a/data/accounts/de_DE/CMakeLists.txt b/data/accounts/de_DE/CMakeLists.txt
index f030eac..6603fcd 100644
--- a/data/accounts/de_DE/CMakeLists.txt
+++ b/data/accounts/de_DE/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(account_DATA
+set(account_DATA
   acctchrt_auto.gnucash-xea
   acctchrt_autoloan.gnucash-xea
   acctchrt_brokerage.gnucash-xea
@@ -14,7 +14,7 @@ SET(account_DATA
   acctchrt_skr04.gnucash-xea
   acctchrt_skr49.gnucash-xea)
 
-SET_DIST_LIST(DE_DE_DIST ${account_DATA} acctchrt_full.gnucash-xea CMakeLists.txt)
+set_dist_list(DE_DE_DIST ${account_DATA} acctchrt_full.gnucash-xea CMakeLists.txt)
 
-INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/de_DE)
-FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/de_DE)
\ No newline at end of file
+install(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/de_DE)
+file(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/de_DE)
\ No newline at end of file
diff --git a/data/accounts/el_GR/CMakeLists.txt b/data/accounts/el_GR/CMakeLists.txt
index a450afd..6054650 100644
--- a/data/accounts/el_GR/CMakeLists.txt
+++ b/data/accounts/el_GR/CMakeLists.txt
@@ -1,9 +1,9 @@
-SET(account_DATA
+set(account_DATA
   acctchrt_common.gnucash-xea
   acctchrt_carloan.gnucash-xea
   acctchrt_brokerage.gnucash-xea)
 
-SET_DIST_LIST(EL_GR_DIST ${account_DATA} CMakeLists.txt)
+set_dist_list(EL_GR_DIST ${account_DATA} CMakeLists.txt)
 
-INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/el_GR)
-FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/el_GR)
\ No newline at end of file
+install(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/el_GR)
+file(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/el_GR)
\ No newline at end of file
diff --git a/data/accounts/en_GB/CMakeLists.txt b/data/accounts/en_GB/CMakeLists.txt
index f8c68e6..9e10dd4 100644
--- a/data/accounts/en_GB/CMakeLists.txt
+++ b/data/accounts/en_GB/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(account_DATA
+set(account_DATA
   acctchrt_brokerage.gnucash-xea
   acctchrt_business.gnucash-xea
   acctchrt_carloan.gnucash-xea
@@ -17,7 +17,7 @@ SET(account_DATA
   acctchrt_spouseretire.gnucash-xea
   uk-vat.gnucash-xea)
 
-SET_DIST_LIST(EN_GB_DIST ${account_DATA} acctchrt_full.gnucash-xea CMakeLists.txt)
+set_dist_list(EN_GB_DIST ${account_DATA} acctchrt_full.gnucash-xea CMakeLists.txt)
 
-INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/en_GB)
-FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/en_GB)
+install(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/en_GB)
+file(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/en_GB)
diff --git a/data/accounts/en_IN/CMakeLists.txt b/data/accounts/en_IN/CMakeLists.txt
index 2df9399..7789a32 100644
--- a/data/accounts/en_IN/CMakeLists.txt
+++ b/data/accounts/en_IN/CMakeLists.txt
@@ -1,6 +1,6 @@
 
 
-SET(account_DATA
+set(account_DATA
   acctchrt_gstindia.gnucash-xea)
 # Fixme: do we want to copy this files, too?
 #  acctchrt_brokerage.gnucash-xea
@@ -20,10 +20,10 @@ SET(account_DATA
 #  acctchrt_spouseinc.gnucash-xea
 #  acctchrt_spouseretire.gnucash-xea)
 
-SET_DIST_LIST(EN_IN_DIST ${account_DATA}
+set_dist_list(EN_IN_DIST ${account_DATA}
 #  acctchrt_full.gnucash-xea
   CMakeLists.txt)
 
-INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/en_IN)
-FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/en_IN)
+install(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/en_IN)
+file(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/en_IN)
 
diff --git a/data/accounts/es_ES/CMakeLists.txt b/data/accounts/es_ES/CMakeLists.txt
index 3edfc76..ca21d97 100644
--- a/data/accounts/es_ES/CMakeLists.txt
+++ b/data/accounts/es_ES/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(account_DATA
+set(account_DATA
   acctchrt_brokerage.gnucash-xea
   acctchrt_carloan.gnucash-xea
   acctchrt_cdmoneymkt.gnucash-xea
@@ -15,7 +15,7 @@ SET(account_DATA
   acctchrt_spouseinc.gnucash-xea
   acctchrt_spouseretire.gnucash-xea)
 
-SET_DIST_LIST(ES_ES_DIST ${account_DATA} CMakeLists.txt)
+set_dist_list(ES_ES_DIST ${account_DATA} CMakeLists.txt)
 
-INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/es_ES)
-FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/es_ES)
+install(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/es_ES)
+file(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/es_ES)
diff --git a/data/accounts/es_MX/CMakeLists.txt b/data/accounts/es_MX/CMakeLists.txt
index 981d6d4..04e731f 100644
--- a/data/accounts/es_MX/CMakeLists.txt
+++ b/data/accounts/es_MX/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(account_DATA
+set(account_DATA
   acctchrt_brokerage.gnucash-xea
   acctchrt_carloan.gnucash-xea
   acctchrt_cdmoneymkt.gnucash-xea
@@ -15,8 +15,8 @@ SET(account_DATA
   acctchrt_spouseinc.gnucash-xea
   acctchrt_spouseretire.gnucash-xea)
 
-SET_DIST_LIST(ES_MX_DIST ${account_DATA} CMakeLists.txt)
+set_dist_list(ES_MX_DIST ${account_DATA} CMakeLists.txt)
 
-INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/es_MX)
-FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/es_MX)
+install(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/es_MX)
+file(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/es_MX)
 
diff --git a/data/accounts/fi_FI/CMakeLists.txt b/data/accounts/fi_FI/CMakeLists.txt
index 8777598..7dd2f0c 100644
--- a/data/accounts/fi_FI/CMakeLists.txt
+++ b/data/accounts/fi_FI/CMakeLists.txt
@@ -1,9 +1,9 @@
-SET(account_DATA
+set(account_DATA
   acctchrt_common.gnucash-xea
   acctchrt_sbr-xbrl.gnucash-xea
   acctchrt_ry.gnucash-xea)
 
-SET_DIST_LIST(FI_FI_DIST ${account_DATA} CMakeLists.txt)
+set_dist_list(FI_FI_DIST ${account_DATA} CMakeLists.txt)
 
-INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/fi_FI)
-FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/fi_FI)
+install(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/fi_FI)
+file(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/fi_FI)
diff --git a/data/accounts/fr_CA/CMakeLists.txt b/data/accounts/fr_CA/CMakeLists.txt
index 85e8d74..fa448f7 100644
--- a/data/accounts/fr_CA/CMakeLists.txt
+++ b/data/accounts/fr_CA/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(account_DATA
+set(account_DATA
  acctchrt_actifsfixes.gnucash-xea
  acctchrt_automobile.gnucash-xea
  acctchrt_basecommune.gnucash-xea
@@ -14,8 +14,8 @@ SET(account_DATA
  acctchrt_retraite.gnucash-xea
  acctchrt_revenus.gnucash-xea)
 
-SET_DIST_LIST(FR_CA_DIST ${account_DATA} CMakeLists.txt)
+set_dist_list(FR_CA_DIST ${account_DATA} CMakeLists.txt)
 
-INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/fr_CA)
-FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/fr_CA)
+install(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/fr_CA)
+file(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/fr_CA)
 
diff --git a/data/accounts/fr_CH/CMakeLists.txt b/data/accounts/fr_CH/CMakeLists.txt
index 5c8bce6..c37ecd1 100644
--- a/data/accounts/fr_CH/CMakeLists.txt
+++ b/data/accounts/fr_CH/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(account_DATA
+set(account_DATA
   acctchrt_brokerage.gnucash-xea
   acctchrt_business.gnucash-xea
   acctchrt_carloan.gnucash-xea
@@ -16,7 +16,7 @@ SET(account_DATA
   acctchrt_spouseinc.gnucash-xea
   acctchrt_spouseretire.gnucash-xea)
 
-SET_DIST_LIST(FR_CH_DIST ${account_DATA} CMakeLists.txt)
+set_dist_list(FR_CH_DIST ${account_DATA} CMakeLists.txt)
 
-INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/fr_CH)
-FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/fr_CH)
+install(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/fr_CH)
+file(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/fr_CH)
diff --git a/data/accounts/fr_FR/CMakeLists.txt b/data/accounts/fr_FR/CMakeLists.txt
index ddf94dd..dc2c17b 100644
--- a/data/accounts/fr_FR/CMakeLists.txt
+++ b/data/accounts/fr_FR/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(account_DATA
+set(account_DATA
   acctchrt_brokerage.gnucash-xea
   acctchrt_business.gnucash-xea
   acctchrt_carloan.gnucash-xea
@@ -16,7 +16,7 @@ SET(account_DATA
   acctchrt_spouseinc.gnucash-xea
   acctchrt_spouseretire.gnucash-xea)
 
-SET_DIST_LIST(FR_FR_DIST ${account_DATA} CMakeLists.txt)
+set_dist_list(FR_FR_DIST ${account_DATA} CMakeLists.txt)
 
-INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/fr_FR)
-FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/fr_FR)
+install(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/fr_FR)
+file(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/fr_FR)
diff --git a/data/accounts/hu_HU/CMakeLists.txt b/data/accounts/hu_HU/CMakeLists.txt
index 3c1f877..cc28343 100644
--- a/data/accounts/hu_HU/CMakeLists.txt
+++ b/data/accounts/hu_HU/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(account_DATA
+set(account_DATA
   acctchrt_brokerage.gnucash-xea
   acctchrt_business.gnucash-xea
   acctchrt_carloan.gnucash-xea
@@ -17,8 +17,8 @@ SET(account_DATA
   acctchrt_spouseretire.gnucash-xea)
 
 
-SET_DIST_LIST(HU_HU_DIST ${account_DATA} CMakeLists.txt)
+set_dist_list(HU_HU_DIST ${account_DATA} CMakeLists.txt)
 
-INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/hu_HU)
-FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/hu_HU)
+install(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/hu_HU)
+file(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/hu_HU)
 
diff --git a/data/accounts/it/CMakeLists.txt b/data/accounts/it/CMakeLists.txt
index 6c60322..5783f19 100644
--- a/data/accounts/it/CMakeLists.txt
+++ b/data/accounts/it/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(account_DATA
+set(account_DATA
  acctchrt_brokerage.gnucash-xea
  acctchrt_carloan.gnucash-xea
  acctchrt_checkbook.gnucash-xea
@@ -13,7 +13,7 @@ SET(account_DATA
  acctchrt_spouseinc.gnucash-xea
  acctchrt_spouseretire.gnucash-xea)
 
-SET_DIST_LIST(IT_DIST ${account_DATA} CMakeLists.txt)
+set_dist_list(IT_DIST ${account_DATA} CMakeLists.txt)
 
-INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/it)
-FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/it)
+install(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/it)
+file(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/it)
diff --git a/data/accounts/ja/CMakeLists.txt b/data/accounts/ja/CMakeLists.txt
index 212f349..1f673f2 100644
--- a/data/accounts/ja/CMakeLists.txt
+++ b/data/accounts/ja/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(account_DATA
+set(account_DATA
   acctchrt_brokerage.gnucash-xea
   acctchrt_business.gnucash-xea
   acctchrt_carloan.gnucash-xea
@@ -17,8 +17,8 @@ SET(account_DATA
   acctchrt_spouseinc.gnucash-xea
   acctchrt_spouseretire.gnucash-xea)
 
-SET_DIST_LIST(JA_DIST ${account_DATA} CMakeLists.txt)
+set_dist_list(JA_DIST ${account_DATA} CMakeLists.txt)
 
-INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/ja)
-FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/ja)
+install(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/ja)
+file(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/ja)
 
diff --git a/data/accounts/ko/CMakeLists.txt b/data/accounts/ko/CMakeLists.txt
index c5241cc..20dc925 100644
--- a/data/accounts/ko/CMakeLists.txt
+++ b/data/accounts/ko/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(account_DATA
+set(account_DATA
   acctchrt_brokerage.gnucash-xea
   acctchrt_business.gnucash-xea
   acctchrt_carloan.gnucash-xea
@@ -16,7 +16,7 @@ SET(account_DATA
   acctchrt_spouseinc.gnucash-xea
   acctchrt_spouseretire.gnucash-xea)
 
-SET_DIST_LIST(KO_DIST ${account_DATA} CMakeLists.txt)
+set_dist_list(KO_DIST ${account_DATA} CMakeLists.txt)
 
-INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/ko)
-FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/ko)
+install(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/ko)
+file(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/ko)
diff --git a/data/accounts/lt/CMakeLists.txt b/data/accounts/lt/CMakeLists.txt
index b529f15..1cc8b3d 100644
--- a/data/accounts/lt/CMakeLists.txt
+++ b/data/accounts/lt/CMakeLists.txt
@@ -1,6 +1,6 @@
-SET(account_DATA acctchrt_business.gnucash-xea)
+set(account_DATA acctchrt_business.gnucash-xea)
 
-SET_DIST_LIST(LT_DIST ${account_DATA} CMakeLists.txt)
+set_dist_list(LT_DIST ${account_DATA} CMakeLists.txt)
 
-INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/lt)
-FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/lt)
+install(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/lt)
+file(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/lt)
diff --git a/data/accounts/lv/CMakeLists.txt b/data/accounts/lv/CMakeLists.txt
index e0d9103..e36a8f8 100644
--- a/data/accounts/lv/CMakeLists.txt
+++ b/data/accounts/lv/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(account_DATA
+set(account_DATA
   acctchrt_brokerage.gnucash-xea
   acctchrt_business.gnucash-xea
   acctchrt_carloan.gnucash-xea
@@ -16,7 +16,7 @@ SET(account_DATA
   acctchrt_spouseinc.gnucash-xea
   acctchrt_spouseretire.gnucash-xea)
 
-SET_DIST_LIST(LV_DIST ${account_DATA} acctchrt_full.gnucash-xea CMakeLists.txt)
+set_dist_list(LV_DIST ${account_DATA} acctchrt_full.gnucash-xea CMakeLists.txt)
 
-INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/lv)
-FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/lv)
+install(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/lv)
+file(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/lv)
diff --git a/data/accounts/nb/CMakeLists.txt b/data/accounts/nb/CMakeLists.txt
index 8454366..a21dbc9 100644
--- a/data/accounts/nb/CMakeLists.txt
+++ b/data/accounts/nb/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(account_DATA
+set(account_DATA
  acctchrt_brokerage.gnucash-xea
  acctchrt_business.gnucash-xea
  acctchrt_carloan.gnucash-xea
@@ -17,7 +17,7 @@ SET(account_DATA
  acctchrt_spouseinc.gnucash-xea
  acctchrt_spouseretire.gnucash-xea)
 
-SET_DIST_LIST(NB_DIST ${account_DATA} acctchrt_full.gnucash-xea CMakeLists.txt)
+set_dist_list(NB_DIST ${account_DATA} acctchrt_full.gnucash-xea CMakeLists.txt)
 
-INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/nb)
-FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/nb)
+install(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/nb)
+file(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/nb)
diff --git a/data/accounts/nl/CMakeLists.txt b/data/accounts/nl/CMakeLists.txt
index a61540e..97d9a99 100644
--- a/data/accounts/nl/CMakeLists.txt
+++ b/data/accounts/nl/CMakeLists.txt
@@ -1,9 +1,9 @@
-SET(account_DATA
+set(account_DATA
   acctchrt_checkbook.gnucash-xea
   acctchrt_full.gnucash-xea
   acctchrt_rgs_1.1.gnucash-xea)
 
-SET_DIST_LIST(NL_DIST ${account_DATA} CMakeLists.txt)
+set_dist_list(NL_DIST ${account_DATA} CMakeLists.txt)
 
-INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/nl)
-FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/nl)
+install(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/nl)
+file(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/nl)
diff --git a/data/accounts/pl/CMakeLists.txt b/data/accounts/pl/CMakeLists.txt
index effeef9..6531a4d 100644
--- a/data/accounts/pl/CMakeLists.txt
+++ b/data/accounts/pl/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(account_DATA
+set(account_DATA
   acctchrt_brokerage.gnucash-xea
   acctchrt_business.gnucash-xea
   acctchrt_carloan.gnucash-xea
@@ -16,7 +16,7 @@ SET(account_DATA
   acctchrt_spouseinc.gnucash-xea
   acctchrt_spouseretire.gnucash-xea)
 
-SET_DIST_LIST(PL_DIST ${account_DATA} acctchrt_full.gnucash-xea CMakeLists.txt)
+set_dist_list(PL_DIST ${account_DATA} acctchrt_full.gnucash-xea CMakeLists.txt)
 
-INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/pl)
-FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/pl)
\ No newline at end of file
+install(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/pl)
+file(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/pl)
\ No newline at end of file
diff --git a/data/accounts/pt_BR/CMakeLists.txt b/data/accounts/pt_BR/CMakeLists.txt
index afe654a..2f9f31e 100644
--- a/data/accounts/pt_BR/CMakeLists.txt
+++ b/data/accounts/pt_BR/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(account_DATA
+set(account_DATA
   acctchrt_brokerage.gnucash-xea
   acctchrt_carloan.gnucash-xea
   acctchrt_cdmoneymkt.gnucash-xea
@@ -15,8 +15,8 @@ SET(account_DATA
   acctchrt_spouseinc.gnucash-xea
   acctchrt_spouseretire.gnucash-xea)
 
-SET_DIST_LIST(PT_BR_DIST ${account_DATA} CMakeLists.txt)
+set_dist_list(PT_BR_DIST ${account_DATA} CMakeLists.txt)
 
-INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/pt_BR)
-FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/pt_BR)
+install(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/pt_BR)
+file(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/pt_BR)
 
diff --git a/data/accounts/pt_PT/CMakeLists.txt b/data/accounts/pt_PT/CMakeLists.txt
index 3447cd1..744386b 100644
--- a/data/accounts/pt_PT/CMakeLists.txt
+++ b/data/accounts/pt_PT/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(account_DATA
+set(account_DATA
   acctchrt_brokerage.gnucash-xea
   acctchrt_carloan.gnucash-xea
   acctchrt_cdmoneymkt.gnucash-xea
@@ -14,8 +14,8 @@ SET(account_DATA
   acctchrt_spouseinc.gnucash-xea
   acctchrt_spouseretire.gnucash-xea)
 
-SET_DIST_LIST(PT_PT_DIST ${account_DATA} CMakeLists.txt)
+set_dist_list(PT_PT_DIST ${account_DATA} CMakeLists.txt)
 
-INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/pt_PT)
-FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/pt_PT)
+install(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/pt_PT)
+file(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/pt_PT)
 
diff --git a/data/accounts/ru/CMakeLists.txt b/data/accounts/ru/CMakeLists.txt
index 52c7293..d5ada84 100644
--- a/data/accounts/ru/CMakeLists.txt
+++ b/data/accounts/ru/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(account_DATA
+set(account_DATA
   acctchrt_auto.gnucash-xea
   acctchrt_autoloan.gnucash-xea
   acctchrt_common.gnucash-xea
@@ -8,8 +8,8 @@ SET(account_DATA
   acctchrt_otherloan.gnucash-xea
   acctchrt_renter.gnucash-xea)
 
-SET_DIST_LIST(RU_DIST ${account_DATA} CMakeLists.txt)
+set_dist_list(RU_DIST ${account_DATA} CMakeLists.txt)
 
-INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/ru)
-FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/ru)
+install(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/ru)
+file(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/ru)
 
diff --git a/data/accounts/sk/CMakeLists.txt b/data/accounts/sk/CMakeLists.txt
index b7e5d72..2e05ec8 100644
--- a/data/accounts/sk/CMakeLists.txt
+++ b/data/accounts/sk/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(account_DATA
+set(account_DATA
   acctchrt_brokerage.gnucash-xea
   acctchrt_carloan.gnucash-xea
   acctchrt_cdmoneymkt.gnucash-xea
@@ -15,8 +15,8 @@ SET(account_DATA
   acctchrt_spouseinc.gnucash-xea
   acctchrt_spouseretire.gnucash-xea)
 
-SET_DIST_LIST(SK_DIST ${account_DATA} CMakeLists.txt)
+set_dist_list(SK_DIST ${account_DATA} CMakeLists.txt)
 
-INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/sk)
-FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/sk)
+install(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/sk)
+file(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/sk)
 
diff --git a/data/accounts/sv_AX/CMakeLists.txt b/data/accounts/sv_AX/CMakeLists.txt
index 9173529..70b98f4 100644
--- a/data/accounts/sv_AX/CMakeLists.txt
+++ b/data/accounts/sv_AX/CMakeLists.txt
@@ -1,10 +1,10 @@
-SET(account_DATA
+set(account_DATA
     acctchrt_common.gnucash-xea
     acctchrt_sbr-xbrl.gnucash-xea
     acctchrt_rf.gnucash-xea)
 
-SET_DIST_LIST(SV_AX_DIST ${account_DATA} CMakeLists.txt)
+set_dist_list(SV_AX_DIST ${account_DATA} CMakeLists.txt)
 
-INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/sv_AX)
-FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/sv_AX)
+install(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/sv_AX)
+file(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/sv_AX)
 
diff --git a/data/accounts/sv_FI/CMakeLists.txt b/data/accounts/sv_FI/CMakeLists.txt
index 021d707..ea99c3d 100644
--- a/data/accounts/sv_FI/CMakeLists.txt
+++ b/data/accounts/sv_FI/CMakeLists.txt
@@ -1,9 +1,9 @@
-SET(account_DATA
+set(account_DATA
     acctchrt_common.gnucash-xea
     acctchrt_sbr-xbrl.gnucash-xea
     acctchrt_rf.gnucash-xea)
 
-SET_DIST_LIST(SV_FI_DIST ${account_DATA} CMakeLists.txt)
+set_dist_list(SV_FI_DIST ${account_DATA} CMakeLists.txt)
 
-INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/sv_FI)
-FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/sv_FI)
\ No newline at end of file
+install(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/sv_FI)
+file(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/sv_FI)
\ No newline at end of file
diff --git a/data/accounts/sv_SE/CMakeLists.txt b/data/accounts/sv_SE/CMakeLists.txt
index 5b41b81..5d01892 100644
--- a/data/accounts/sv_SE/CMakeLists.txt
+++ b/data/accounts/sv_SE/CMakeLists.txt
@@ -1,8 +1,8 @@
-SET(account_DATA
+set(account_DATA
 	bas_2012.gnucash-xea
 	acctchrt_common.gnucash-xea)
 
-SET_DIST_LIST(SV_SE_DIST ${account_DATA} README.bas_2012 CMakeLists.txt)
+set_dist_list(SV_SE_DIST ${account_DATA} README.bas_2012 CMakeLists.txt)
 
-INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/sv_SE)
-FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/sv_SE)
+install(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/sv_SE)
+file(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/sv_SE)
diff --git a/data/accounts/tr_TR/CMakeLists.txt b/data/accounts/tr_TR/CMakeLists.txt
index 3ab1afb..adcb955 100644
--- a/data/accounts/tr_TR/CMakeLists.txt
+++ b/data/accounts/tr_TR/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(account_DATA
+set(account_DATA
  acctchrt_brokerage.gnucash-xea
  acctchrt_carloan.gnucash-xea
  acctchrt_cdmoneymkt.gnucash-xea
@@ -8,7 +8,7 @@ SET(account_DATA
  acctchrt_homeloan.gnucash-xea
  acctchrt_TEKDUZ.gnucash-xea)
 
-SET_DIST_LIST(TR_TR_DIST ${account_DATA} CMakeLists.txt)
+set_dist_list(TR_TR_DIST ${account_DATA} CMakeLists.txt)
 
-INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/tr_TR)
-FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/tr_TR)
+install(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/tr_TR)
+file(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/tr_TR)
diff --git a/data/accounts/zh_CN/CMakeLists.txt b/data/accounts/zh_CN/CMakeLists.txt
index 17c3ac5..8244d65 100644
--- a/data/accounts/zh_CN/CMakeLists.txt
+++ b/data/accounts/zh_CN/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(account_DATA
+set(account_DATA
   acctchrt_brokerage.gnucash-xea
   acctchrt_business.gnucash-xea
   acctchrt_carloan.gnucash-xea
@@ -16,7 +16,7 @@ SET(account_DATA
   acctchrt_spouseinc.gnucash-xea
   acctchrt_spouseretire.gnucash-xea)
 
-SET_DIST_LIST(ZH_CN_DIST ${account_DATA} acctchrt_full.gnucash-xea CMakeLists.txt)
+set_dist_list(ZH_CN_DIST ${account_DATA} acctchrt_full.gnucash-xea CMakeLists.txt)
 
-INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/zh_CN)
-FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/zn_CN)
+install(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/zh_CN)
+file(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/zn_CN)
diff --git a/data/accounts/zh_HK/CMakeLists.txt b/data/accounts/zh_HK/CMakeLists.txt
index a435b11..03cae9b 100644
--- a/data/accounts/zh_HK/CMakeLists.txt
+++ b/data/accounts/zh_HK/CMakeLists.txt
@@ -1,6 +1,6 @@
-SET(account_DATA acctchrt_business.gnucash-xea)
+set(account_DATA acctchrt_business.gnucash-xea)
 
-SET_DIST_LIST(ZH_HK_DIST ${account_DATA} CMakeLists.txt)
+set_dist_list(ZH_HK_DIST ${account_DATA} CMakeLists.txt)
 
-INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/zh_HK)
-FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/zh_HK)
+install(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/zh_HK)
+file(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/zh_HK)
diff --git a/data/accounts/zh_TW/CMakeLists.txt b/data/accounts/zh_TW/CMakeLists.txt
index 5315168..2eefcaf 100644
--- a/data/accounts/zh_TW/CMakeLists.txt
+++ b/data/accounts/zh_TW/CMakeLists.txt
@@ -1,6 +1,6 @@
-SET(account_DATA acctchrt_business.gnucash-xea)
+set(account_DATA acctchrt_business.gnucash-xea)
 
-SET_DIST_LIST(ZH_TW_DIST ${account_DATA} CMakeLists.txt)
+set_dist_list(ZH_TW_DIST ${account_DATA} CMakeLists.txt)
 
-INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/zh_TW)
-FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/zh_TW)
+install(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/zh_TW)
+file(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/zh_TW)
diff --git a/data/checks/CMakeLists.txt b/data/checks/CMakeLists.txt
index 1858b28..65d1d33 100644
--- a/data/checks/CMakeLists.txt
+++ b/data/checks/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(checks_DATA
+set(checks_DATA
   deluxe.chk
   liberty.chk
   quicken.chk
@@ -8,8 +8,8 @@ SET(checks_DATA
   quicken_3part.chk
 )
 
-INSTALL(FILES ${checks_DATA} DESTINATION ${CMAKE_INSTALL_DATADIR}/gnucash/checks)
+install(FILES ${checks_DATA} DESTINATION ${CMAKE_INSTALL_DATADIR}/gnucash/checks)
 
-FILE(COPY ${checks_DATA} DESTINATION ${DATADIR_BUILD}/gnucash/checks)
+file(COPY ${checks_DATA} DESTINATION ${DATADIR_BUILD}/gnucash/checks)
 
-SET_DIST_LIST(checks_DIST CMakeLists.txt ${checks_DATA})
+set_dist_list(checks_DIST CMakeLists.txt ${checks_DATA})
diff --git a/data/pixmaps/CMakeLists.txt b/data/pixmaps/CMakeLists.txt
index 90c61d3..de7ca0d 100644
--- a/data/pixmaps/CMakeLists.txt
+++ b/data/pixmaps/CMakeLists.txt
@@ -1,12 +1,12 @@
 
-INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DESTINATION ${CMAKE_INSTALL_DATADIR}/gnucash
+install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DESTINATION ${CMAKE_INSTALL_DATADIR}/gnucash
     PATTERN Makefile* EXCLUDE
     PATTERN CMake* EXCLUDE
     PATTERN CTest* EXCLUDE
     PATTERN cmake* EXCLUDE
     PATTERN hicolor EXCLUDE
 )
-FILE(COPY ${CMAKE_CURRENT_SOURCE_DIR}
+file(COPY ${CMAKE_CURRENT_SOURCE_DIR}
     DESTINATION ${DATADIR_BUILD}/gnucash
     PATTERN Makefile* EXCLUDE
     PATTERN CMake* EXCLUDE
@@ -14,27 +14,27 @@ FILE(COPY ${CMAKE_CURRENT_SOURCE_DIR}
     PATTERN cmake* EXCLUDE
     PATTERN hicolor EXCLUDE
 )
-INSTALL(
+install(
     DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/hicolor DESTINATION  ${CMAKE_INSTALL_DATADIR}/gnucash/icons
     REGEX ".*/apps.*" EXCLUDE
 )
-FILE(
+file(
     COPY ${CMAKE_CURRENT_SOURCE_DIR}/hicolor
     DESTINATION ${DATADIR_BUILD}/gnucash/icons
     REGEX ".*/apps.*" EXCLUDE
 )
 
-INSTALL(
+install(
     DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/hicolor DESTINATION  ${CMAKE_INSTALL_DATADIR}/icons
     REGEX ".*/actions.*" EXCLUDE
 )
-FILE(
+file(
     COPY ${CMAKE_CURRENT_SOURCE_DIR}/hicolor
     DESTINATION ${DATADIR_BUILD}/icons
     REGEX ".*/actions.*" EXCLUDE
 )
 
-SET(gncpixmap_DATA
+set(gncpixmap_DATA
     hicolor/16x16/actions/gnc-account.png
     hicolor/24x24/actions/gnc-account.png
     hicolor/16x16/actions/gnc-account-delete.png
@@ -76,7 +76,7 @@ SET(gncpixmap_DATA
     gnucash_splash.png
 )
 
-SET(gncicon_DATA
+set(gncicon_DATA
     hicolor/16x16/apps/gnucash-icon.png
     hicolor/22x22/apps/gnucash-icon.png
     hicolor/24x24/apps/gnucash-icon.png
@@ -88,10 +88,10 @@ SET(gncicon_DATA
     hicolor/256x256/apps/gnucash-icon.png
 )
 
-SET(gncscalableicon_DATA
+set(gncscalableicon_DATA
     hicolor/scalable/apps/gnucash-icon.svg
 )
 
-SET_LOCAL_DIST(pixmaps_DIST_local CMakeLists.txt ${gncpixmap_DATA}
+set_local_dist(pixmaps_DIST_local CMakeLists.txt ${gncpixmap_DATA}
     ${gncicon_DATA} ${gncscalableicon_DATA})
-SET(pixmaps_DIST ${pixmaps_DIST_local} PARENT_SCOPE)
+set(pixmaps_DIST ${pixmaps_DIST_local} PARENT_SCOPE)
diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
index 5108379..60f0f6f 100644
--- a/doc/CMakeLists.txt
+++ b/doc/CMakeLists.txt
@@ -1,6 +1,6 @@
-ADD_SUBDIRECTORY(examples)
+add_subdirectory(examples)
 
-SET(doc_DATA
+set(doc_DATA
   README.francais
   README.german
   README-ca.win32-bin.txt
@@ -17,63 +17,63 @@ SET(doc_DATA
   gtk-3.0.css
 )
 
-SET(doc_noinst_DATA
+set(doc_noinst_DATA
         build-aix.txt build-solaris.txt CMakeLists.txt gnc-fq-dump.1 gnc-fq-helper.1 gnucash.1.in
         misc-notes.txt README.HBCI README.OFX README.translator.txt tip_of_the_day.list.c
         TRANSLATION_HOWTO)
 
-INSTALL(FILES ${doc_DATA} DESTINATION  ${CMAKE_INSTALL_DOCDIR})
+install(FILES ${doc_DATA} DESTINATION  ${CMAKE_INSTALL_DOCDIR})
 
-SET_LOCAL_DIST(doc_DIST_local ${doc_DATA} ${doc_noinst_DATA})
-SET(doc_DIST ${doc_DIST_local} ${examples_DIST} PARENT_SCOPE)
+set_local_dist(doc_DIST_local ${doc_DATA} ${doc_noinst_DATA})
+set(doc_DIST ${doc_DIST_local} ${examples_DIST} PARENT_SCOPE)
 
-FILE(COPY ${doc_DATA} DESTINATION ${DATADIR_BUILD}/doc/gnucash)
+file(COPY ${doc_DATA} DESTINATION ${DATADIR_BUILD}/doc/gnucash)
 
 # Generate the tip of the day file.
 
-EXECUTE_PROCESS(
+execute_process(
     COMMAND ${CMAKE_C_COMPILER} -E -P -x c -DN_\(x\)=x -o ${CMAKE_CURRENT_BINARY_DIR}/tip_of_the_day.list.tmp ${CMAKE_CURRENT_SOURCE_DIR}/tip_of_the_day.list.c
 )
 
-FILE(STRINGS ${CMAKE_CURRENT_BINARY_DIR}/tip_of_the_day.list.tmp TIP_OF_THE_DAY_LINES)
+file(STRINGS ${CMAKE_CURRENT_BINARY_DIR}/tip_of_the_day.list.tmp TIP_OF_THE_DAY_LINES)
 
-SET(TOTD_OUTPUT "")
-FOREACH(line ${TIP_OF_THE_DAY_LINES})
-  STRING(REGEX REPLACE "^ *\"" "" line2 "${line}")
-  STRING(REGEX REPLACE "\" *$" "" line3 "${line2}")
-  LIST(APPEND TOTD_OUTPUT "${line3}\n")
-ENDFOREACH()
+set(TOTD_OUTPUT "")
+foreach(line ${TIP_OF_THE_DAY_LINES})
+  string(REGEX REPLACE "^ *\"" "" line2 "${line}")
+  string(REGEX REPLACE "\" *$" "" line3 "${line2}")
+  list(APPEND TOTD_OUTPUT "${line3}\n")
+endforeach()
 
-STRING(CONCAT FINAL_TOTD ${TOTD_OUTPUT})
+string(CONCAT FINAL_TOTD ${TOTD_OUTPUT})
 
-FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/tip_of_the_day.list "${FINAL_TOTD}")
+file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/tip_of_the_day.list "${FINAL_TOTD}")
 
-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/tip_of_the_day.list DESTINATION  ${CMAKE_INSTALL_DATADIR}/gnucash)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/tip_of_the_day.list DESTINATION  ${CMAKE_INSTALL_DATADIR}/gnucash)
 
-FILE(COPY ${CMAKE_CURRENT_BINARY_DIR}/tip_of_the_day.list
+file(COPY ${CMAKE_CURRENT_BINARY_DIR}/tip_of_the_day.list
   DESTINATION ${DATADIR_BUILD}/gnucash)
 
 # ---
-IF (BUILDING_FROM_VCS)
-  SET(VCS_INFO_BASE_DIR ${CMAKE_BINARY_DIR})
-ELSE()
-  SET(VCS_INFO_BASE_DIR ${CMAKE_SOURCE_DIR})
-ENDIF()
-SET(VCS_INFO_FILE ${VCS_INFO_BASE_DIR}/libgnucash/core-utils/gnc-vcs-info.h)
+if (BUILDING_FROM_VCS)
+  set(VCS_INFO_BASE_DIR ${CMAKE_BINARY_DIR})
+else()
+  set(VCS_INFO_BASE_DIR ${CMAKE_SOURCE_DIR})
+endif()
+set(VCS_INFO_FILE ${VCS_INFO_BASE_DIR}/libgnucash/core-utils/gnc-vcs-info.h)
 
 # The copious use of backslashes below is to escape escape sequences that
 # have to end up in the file being written...
 # eg \\\" will become \", \\\\1 will become \\1 (which cmake will then interpret as \1)
-FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/manpage.cmake
-"FILE(STRINGS \${VCS_INFO_FILE} ym_line REGEX \"GNC_VCS_REV_Y_M\")
-STRING(REGEX REPLACE \"^.* \\\"(.*)\\\"\" \"\\\\1\" DATE \${ym_line})
-CONFIGURE_FILE(\${SRC} \${DST} )
-FILE(COPY gnucash.1
+file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/manpage.cmake
+"file(STRINGS \${VCS_INFO_FILE} ym_line REGEX \"GNC_VCS_REV_Y_M\")
+string(REGEX REPLACE \"^.* \\\"(.*)\\\"\" \"\\\\1\" DATE \${ym_line})
+configure_file(\${SRC} \${DST} )
+file(COPY gnucash.1
   DESTINATION \${DATADIR_BUILD}/gnucash)
 ")
 
 
-ADD_CUSTOM_COMMAND(OUTPUT gnucash.1
+add_custom_command(OUTPUT gnucash.1
   DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/gnucash.1.in gnc-vcs-info
   COMMAND ${CMAKE_COMMAND} -D SRC=${CMAKE_CURRENT_SOURCE_DIR}/gnucash.1.in
                            -D DST=gnucash.1
@@ -82,7 +82,7 @@ ADD_CUSTOM_COMMAND(OUTPUT gnucash.1
                            -D DATADIR_BUILD=${DATADIR_BUILD}
                            -P ${CMAKE_CURRENT_BINARY_DIR}/manpage.cmake
   )
-ADD_CUSTOM_TARGET(gnucash-manpage DEPENDS gnucash.1)
+add_custom_target(gnucash-manpage DEPENDS gnucash.1)
 dist_add_generated (${BUILDING_FROM_VCS} gnucash.1)
 
-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/gnucash.1 DESTINATION  ${CMAKE_INSTALL_MANDIR}/man1)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/gnucash.1 DESTINATION  ${CMAKE_INSTALL_MANDIR}/man1)
diff --git a/doc/examples/CMakeLists.txt b/doc/examples/CMakeLists.txt
index 2eaf220..72d8c6d 100644
--- a/doc/examples/CMakeLists.txt
+++ b/doc/examples/CMakeLists.txt
@@ -1,6 +1,6 @@
 
 
-SET(examples_DATA
+set(examples_DATA
   Money95bank_fr.qif
   Money95invst_fr.qif
   Money95mfunds_fr.qif
@@ -21,6 +21,6 @@ SET(examples_DATA
   web.qif
 )
 
-INSTALL(FILES ${examples_DATA} DESTINATION  ${CMAKE_INSTALL_DOCDIR})
+install(FILES ${examples_DATA} DESTINATION  ${CMAKE_INSTALL_DOCDIR})
 
-SET_DIST_LIST(examples_DIST ${examples_DATA} CMakeLists.txt )
+set_dist_list(examples_DIST ${examples_DATA} CMakeLists.txt )
diff --git a/gnucash/CMakeLists.txt b/gnucash/CMakeLists.txt
index 98d42d0..0d4d2d9 100644
--- a/gnucash/CMakeLists.txt
+++ b/gnucash/CMakeLists.txt
@@ -19,58 +19,58 @@ int main (int argc, char** argv) {
  have_mod_mask)
 
 # The subdirectories
-ADD_SUBDIRECTORY (gnome)
-ADD_SUBDIRECTORY (gnome-utils)
-ADD_SUBDIRECTORY (gnome-search)
-ADD_SUBDIRECTORY (gtkbuilder)
-ADD_SUBDIRECTORY (html)
-ADD_SUBDIRECTORY (import-export)
-ADD_SUBDIRECTORY (python)
-ADD_SUBDIRECTORY (register)
-ADD_SUBDIRECTORY (report)
-ADD_SUBDIRECTORY (ui)
-ADD_SUBDIRECTORY (gschemas)
-
-ADD_DEFINITIONS (-DHAVE_CONFIG_H)
+add_subdirectory (gnome)
+add_subdirectory (gnome-utils)
+add_subdirectory (gnome-search)
+add_subdirectory (gtkbuilder)
+add_subdirectory (html)
+add_subdirectory (import-export)
+add_subdirectory (python)
+add_subdirectory (register)
+add_subdirectory (report)
+add_subdirectory (ui)
+add_subdirectory (gschemas)
+
+add_definitions (-DHAVE_CONFIG_H)
 
 # Some settings are platform dependent. Let's define them per platform.
-IF (WIN32)
+if (WIN32)
     # Windows specific settings go here:
     set (GNUCASH_RESOURCE_FILE gnucash.rc)
     configure_file(gnucash.rc.in gnucash.rc @ONLY NEWLINE_STYLE WIN32)
 
-ELSE (WIN32)
+else (WIN32)
   # All other platforms use these settings:
-  SET (PLATFORM_FILES gnucash-valgrind)
+  set (PLATFORM_FILES gnucash-valgrind)
 
-ENDIF (WIN32)
+endif (WIN32)
 
-SET (gnucash_SOURCES
+set (gnucash_SOURCES
   gnucash-bin.c
   gnucash-gresources.c
   ${GNUCASH_RESOURCE_FILE}
 )
 
-ADD_EXECUTABLE (gnucash
+add_executable (gnucash
   ${gnucash_SOURCES}
 )
 
-ADD_DEPENDENCIES (gnucash gnucash-manpage)
+add_dependencies (gnucash gnucash-manpage)
 
-TARGET_COMPILE_DEFINITIONS(gnucash PRIVATE -DG_LOG_DOMAIN=\"gnc.bin\")
+target_compile_definitions(gnucash PRIVATE -DG_LOG_DOMAIN=\"gnc.bin\")
 
 if (BUILDING_FROM_VCS)
-  TARGET_COMPILE_DEFINITIONS(gncmod-gnome-utils PRIVATE -DGNC_VCS=\"git\")
+  target_compile_definitions(gncmod-gnome-utils PRIVATE -DGNC_VCS=\"git\")
 endif (BUILDING_FROM_VCS)
 
-TARGET_LINK_LIBRARIES (gnucash
+target_link_libraries (gnucash
    gncmod-ledger-core gncmod-report-gnome gnc-gnome gncmod-gnome-utils gncmod-app-utils
    gncmod-engine gnc-module gnc-core-utils gncmod-report-system
    ${GUILE_LDFLAGS} ${GLIB2_LDFLAGS} ${GTK3_LDFLAGS} ${GTK_MAC_LDFLAGS}
 )
 
 # Get glib executable for generating the gresource file
-EXECUTE_PROCESS(
+execute_process(
    COMMAND
        ${PKG_CONFIG_EXECUTABLE} gio-2.0 --variable glib_compile_resources
    OUTPUT_VARIABLE
@@ -79,7 +79,7 @@ EXECUTE_PROCESS(
 )
 
 # Get the dependencies of the gresource
-EXECUTE_PROCESS(
+execute_process(
   OUTPUT_VARIABLE
       gr_files
   COMMAND ${GLIB_COMPILE_RESOURCES_EXECUTABLE}
@@ -88,9 +88,9 @@ EXECUTE_PROCESS(
      ${CMAKE_CURRENT_SOURCE_DIR}/gnucash-gresources.xml
 )
 
-STRING (REPLACE "\n" ";" gresource_files ${gr_files})
+string (REPLACE "\n" ";" gresource_files ${gr_files})
 
-ADD_CUSTOM_COMMAND(
+add_custom_command(
    OUTPUT gnucash-gresources.c
    COMMAND
     ${GLIB_COMPILE_RESOURCES_EXECUTABLE}
@@ -104,162 +104,162 @@ ADD_CUSTOM_COMMAND(
     ${CMAKE_CURRENT_BINARY_DIR}
 )
 
-IF (MAC_INTEGRATION)
-  TARGET_COMPILE_OPTIONS(gnucash PRIVATE ${OSX_EXTRA_COMPILE_FLAGS})
-  TARGET_LINK_LIBRARIES(gnucash ${OSX_EXTRA_LIBRARIES})
-ENDIF(MAC_INTEGRATION)
+if (MAC_INTEGRATION)
+  target_compile_options(gnucash PRIVATE ${OSX_EXTRA_COMPILE_FLAGS})
+  target_link_libraries(gnucash ${OSX_EXTRA_LIBRARIES})
+endif(MAC_INTEGRATION)
 
-INSTALL(TARGETS gnucash DESTINATION ${CMAKE_INSTALL_BINDIR})
+install(TARGETS gnucash DESTINATION ${CMAKE_INSTALL_BINDIR})
 # No headers to install.
 
 
-SET(TOP_SRC_DIR ${CMAKE_SOURCE_DIR})
-SET(GNUCASH_BIN_INSTALL_NAME "gnucash")
+set(TOP_SRC_DIR ${CMAKE_SOURCE_DIR})
+set(GNUCASH_BIN_INSTALL_NAME "gnucash")
 
-SET(VALGRIND_OUTDIR ${BINDIR_BUILD})
+set(VALGRIND_OUTDIR ${BINDIR_BUILD})
 
 configure_file(gnucash-valgrind.in ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/gnucash-valgrind @ONLY)
 
-FILE(COPY ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/gnucash-valgrind
+file(COPY ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/gnucash-valgrind
           DESTINATION ${VALGRIND_OUTDIR}
           FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
 )
 
 ## Create the environment file
 
-FILE(STRINGS ${CMAKE_CURRENT_SOURCE_DIR}/environment.in ENV_STRINGS_IN)
+file(STRINGS ${CMAKE_CURRENT_SOURCE_DIR}/environment.in ENV_STRINGS_IN)
 
-SET(ENV_STRINGS_LIST "")
+set(ENV_STRINGS_LIST "")
 
-FOREACH(line ${ENV_STRINGS_IN})
-  STRING(REPLACE ";" "\;" line2 "${line}")
-  IF(NOT "${line2}" MATCHES "@NOTE")
-    LIST(APPEND ENV_STRINGS_LIST "${line2}\n")
-  ENDIF()
-ENDFOREACH()
+foreach(line ${ENV_STRINGS_IN})
+  string(REPLACE ";" "\;" line2 "${line}")
+  if(NOT "${line2}" MATCHES "@NOTE")
+    list(APPEND ENV_STRINGS_LIST "${line2}\n")
+  endif()
+endforeach()
 
-STRING(CONCAT ENV_STRINGS ${ENV_STRINGS_LIST})
-STRING(CONFIGURE "${ENV_STRINGS}" ENV_STRINGS_CONF @ONLY)
+string(CONCAT ENV_STRINGS ${ENV_STRINGS_LIST})
+string(CONFIGURE "${ENV_STRINGS}" ENV_STRINGS_CONF @ONLY)
 
-SET(ENV_FILE_OUT ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/environment)
-SET(BUILD_ENV_FILE_OUT ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/environment.build)
+set(ENV_FILE_OUT ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/environment)
+set(BUILD_ENV_FILE_OUT ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/environment.build)
 
-FILE(WRITE ${ENV_FILE_OUT} "${ENV_STRINGS_CONF}")
-FILE(WRITE ${BUILD_ENV_FILE_OUT} "${ENV_STRINGS_CONF}")
+file(WRITE ${ENV_FILE_OUT} "${ENV_STRINGS_CONF}")
+file(WRITE ${BUILD_ENV_FILE_OUT} "${ENV_STRINGS_CONF}")
 
-SET(XDG_TEXT "
+set(XDG_TEXT "
 # GnuCash was not installed in the default location.
 # XDG_DATA_DIRS will be set so that our documentation
 # and gsettings schema are found.\n"
 )
 
-IF (NOT(${CMAKE_INSTALL_FULL_DATADIR} STREQUAL "/usr/share") AND NOT(${CMAKE_INSTALL_FULL_DATADIR} STREQUAL "/usr/local/share"))
-  FILE(APPEND ${ENV_FILE_OUT} ${XDG_TEXT})
-  FILE(APPEND ${ENV_FILE_OUT} "XDG_DATA_DIRS={GNC_HOME}/share;{XDG_DATA_DIRS};" "${GNC_SYSTEM_XDG_DATA_DIRS}\n")
-ENDIF()
-FILE(APPEND ${BUILD_ENV_FILE_OUT} ${XDG_TEXT})
-FILE(APPEND ${BUILD_ENV_FILE_OUT} "XDG_DATA_DIRS=${DATADIR_BUILD};{XDG_DATA_DIRS};" "${GNC_SYSTEM_XDG_DATA_DIRS}\n")
+if (NOT(${CMAKE_INSTALL_FULL_DATADIR} STREQUAL "/usr/share") AND NOT(${CMAKE_INSTALL_FULL_DATADIR} STREQUAL "/usr/local/share"))
+  file(APPEND ${ENV_FILE_OUT} ${XDG_TEXT})
+  file(APPEND ${ENV_FILE_OUT} "XDG_DATA_DIRS={GNC_HOME}/share;{XDG_DATA_DIRS};" "${GNC_SYSTEM_XDG_DATA_DIRS}\n")
+endif()
+file(APPEND ${BUILD_ENV_FILE_OUT} ${XDG_TEXT})
+file(APPEND ${BUILD_ENV_FILE_OUT} "XDG_DATA_DIRS=${DATADIR_BUILD};{XDG_DATA_DIRS};" "${GNC_SYSTEM_XDG_DATA_DIRS}\n")
 
 if (LIBDBI_LIBRARY AND LIBDBI_DRIVERS_DIR)
   get_filename_component(libdir ${LIBDBI_LIBRARY} DIRECTORY)
   string(FIND ${LIBDBI_DRIVERS_DIR} ${libdir} is_subdir)
   if (NOT is_subdir EQUAL 0)
-    FILE(APPEND ${BUILD_ENV_FILE_OUT} "GNC_DBD_DIR=${LIBDBI_DRIVERS_DIR}")
+    file(APPEND ${BUILD_ENV_FILE_OUT} "GNC_DBD_DIR=${LIBDBI_DRIVERS_DIR}")
   endif()
-ENDIF()
+endif()
 
-IF (WITH_PYTHON)
-  SET(PYTHON_TEXT "
+if (WITH_PYTHON)
+  set(PYTHON_TEXT "
 # Define PYTHONPATH for non default installation path.\n"
  )
-  IF (NOT(${CMAKE_INSTALL_PREFIX} STREQUAL "/usr") AND NOT(${CMAKE_INSTALL_PREFIX} STREQUAL "/usr/local"))
+  if (NOT(${CMAKE_INSTALL_PREFIX} STREQUAL "/usr") AND NOT(${CMAKE_INSTALL_PREFIX} STREQUAL "/usr/local"))
 
-    FILE(APPEND ${ENV_FILE_OUT} ${PYTHON_TEXT})
-    FILE(APPEND ${ENV_FILE_OUT} "PYTHONPATH=${PYTHON_SYSCONFIG_OUTPUT};{PYTHONPATH}\n")
-  ENDIF()
+    file(APPEND ${ENV_FILE_OUT} ${PYTHON_TEXT})
+    file(APPEND ${ENV_FILE_OUT} "PYTHONPATH=${PYTHON_SYSCONFIG_OUTPUT};{PYTHONPATH}\n")
+  endif()
 
-  FILE(APPEND ${BUILD_ENV_FILE_OUT} ${PYTHON_TEXT})
-  FILE(APPEND ${BUILD_ENV_FILE_OUT} "PYTHONPATH=${PYTHON_SYSCONFIG_BUILD};{PYTHONPATH}\n")
-ENDIF()
+  file(APPEND ${BUILD_ENV_FILE_OUT} ${PYTHON_TEXT})
+  file(APPEND ${BUILD_ENV_FILE_OUT} "PYTHONPATH=${PYTHON_SYSCONFIG_BUILD};{PYTHONPATH}\n")
+endif()
 
-IF (MAC_INTEGRATION)
+if (MAC_INTEGRATION)
   file(APPEND ${ENV_FILE_OUT} "XDG_CONFIG_HOME={HOME}/Library/Application Support/Gnucash/config\n")
   file(APPEND ${ENV_FILE_OUT} "GDK_PIXBUF_MODULE_FILE={SYS_LIB}/gdk-pixbuf-2.0/2.10.0/loaders.cache\n")
   file(APPEND ${ENV_FILE_OUT} "FONTCONFIG_FILE={GNC_HOME}/etc/fonts/fonts.conf\n")
   file(APPEND ${ENV_FILE_OUT} "OFX_DTD_PATH={GNC_HOME}/share/libofx/dtd\n")
   file(APPEND ${ENV_FILE_OUT} "GNC_DBD_DIR={SYS_LIB}/dbd\n")
-ENDIF()
+endif()
 
-FILE(COPY ${BUILD_ENV_FILE_OUT}
+file(COPY ${BUILD_ENV_FILE_OUT}
   DESTINATION ${SYSCONFDIR_BUILD}/gnucash
   FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
 )
-FILE(RENAME
+file(RENAME
   ${SYSCONFDIR_BUILD}/gnucash/environment.build
   ${SYSCONFDIR_BUILD}/gnucash/environment
 )
 
-SET(ENVIRONMENT_FILE_DIR ${CMAKE_CURRENT_BINARY_DIR})
-FILE(COPY ${ENV_FILE_OUT}
+set(ENVIRONMENT_FILE_DIR ${CMAKE_CURRENT_BINARY_DIR})
+file(COPY ${ENV_FILE_OUT}
   DESTINATION ${ENVIRONMENT_FILE_DIR}
   FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
 )
 
-INSTALL(FILES ${SCRIPT_LIST} ${VALGRIND_OUTDIR}/gnucash-valgrind DESTINATION ${CMAKE_INSTALL_BINDIR})
-INSTALL(FILES ${ENVIRONMENT_FILE_DIR}/environment DESTINATION
+install(FILES ${SCRIPT_LIST} ${VALGRIND_OUTDIR}/gnucash-valgrind DESTINATION ${CMAKE_INSTALL_BINDIR})
+install(FILES ${ENVIRONMENT_FILE_DIR}/environment DESTINATION
   ${CMAKE_INSTALL_FULL_SYSCONFDIR}/gnucash)
 
-IF (WIN32)
+if (WIN32)
   # Write out a command script for windows
-  SET(lib_directories boost enchant libsoup mysql pgsql libxslt)
-  SET(bin_directories mingw gnutls libgsf pcre gnome guile webkit regex aqbanking gwenhywfar libofx opensp
+  set(lib_directories boost enchant libsoup mysql pgsql libxslt)
+  set(bin_directories mingw gnutls libgsf pcre gnome guile webkit regex aqbanking gwenhywfar libofx opensp
     libdbi sqlite3 mysql pgsql enchant libsoup libxslt)
 
-  SET(CMD_LINES "")
-  SET(BUILD_CMD_LINES "")
-  FOREACH(dir bin lib lib/gnucash)
-    FILE(TO_NATIVE_PATH ${CMAKE_INSTALL_PREFIX}/${dir} INSTALL_PATH_ITEM)
-    FILE(TO_NATIVE_PATH ${CMAKE_BINARY_DIR}/${dir} BUILD_PATH_ITEM)
-    LIST(APPEND CMD_LINES "set PATH=${INSTALL_PATH_ITEM}\;%PATH%\n")
-    LIST(APPEND BUILD_CMD_LINES "set PATH=${BUILD_PATH_ITEM}\;%PATH%\n")
-  ENDFOREACH(dir)
-  IF (NOT ${MINGW64})
-    FOREACH(dir ${lib_directories})
-      FILE(TO_NATIVE_PATH ${CMAKE_PREFIX_PATH}/${dir}/lib PATH_ITEM)
-      LIST(APPEND CMD_LINES "set PATH=${PATH_ITEM}\;%PATH%\n")
-    ENDFOREACH(dir)
-
-    FOREACH(dir ${bin_directories})
-      FILE(TO_NATIVE_PATH ${CMAKE_PREFIX_PATH}/${dir}/bin PATH_ITEM)
-      LIST(APPEND CMD_LINES "set PATH=${PATH_ITEM}\;%PATH%\n")
-    ENDFOREACH(dir)
-  ENDIF (NOT ${MINGW64})
-  SET(CMD_FILE ${CMAKE_CURRENT_BINARY_DIR}/gnucash-launcher.cmd)
-  FILE(WRITE ${CMD_FILE} "@echo off\nsetlocal\n\n")
-  FOREACH(line ${CMD_LINES})
-    FILE(APPEND ${CMD_FILE} "${line}")
-  ENDFOREACH(line)
-  FILE(APPEND ${CMD_FILE} "\nstart gnucash %*\n")
-
-  SET(BUILD_CMD_FILE ${CMAKE_BINARY_DIR}/bin/gnucash-launcher.cmd)
-  FILE(WRITE ${BUILD_CMD_FILE} "@echo off\nsetlocal\n\n")
-  FOREACH(line ${CMD_LINES})
-     FILE(APPEND ${BUILD_CMD_FILE} "${line}")
-  ENDFOREACH(line)
-  FILE(APPEND ${BUILD_CMD_FILE} "\nstart gnucash %*\n")
-
-  INSTALL(PROGRAMS ${CMD_FILE} DESTINATION  ${CMAKE_INSTALL_BINDIR})
-ENDIF(WIN32)
-
-# The GResource Files are absolute paths but SET_LOCAL_DIST requires
+  set(CMD_LINES "")
+  set(BUILD_CMD_LINES "")
+  foreach(dir bin lib lib/gnucash)
+    file(TO_NATIVE_PATH ${CMAKE_INSTALL_PREFIX}/${dir} INSTALL_PATH_ITEM)
+    file(TO_NATIVE_PATH ${CMAKE_BINARY_DIR}/${dir} BUILD_PATH_ITEM)
+    list(APPEND CMD_LINES "set PATH=${INSTALL_PATH_ITEM}\;%PATH%\n")
+    list(APPEND BUILD_CMD_LINES "set PATH=${BUILD_PATH_ITEM}\;%PATH%\n")
+  endforeach(dir)
+  if (NOT ${MINGW64})
+    foreach(dir ${lib_directories})
+      file(TO_NATIVE_PATH ${CMAKE_PREFIX_PATH}/${dir}/lib PATH_ITEM)
+      list(APPEND CMD_LINES "set PATH=${PATH_ITEM}\;%PATH%\n")
+    endforeach(dir)
+
+    foreach(dir ${bin_directories})
+      file(TO_NATIVE_PATH ${CMAKE_PREFIX_PATH}/${dir}/bin PATH_ITEM)
+      list(APPEND CMD_LINES "set PATH=${PATH_ITEM}\;%PATH%\n")
+    endforeach(dir)
+  endif (NOT ${MINGW64})
+  set(CMD_FILE ${CMAKE_CURRENT_BINARY_DIR}/gnucash-launcher.cmd)
+  file(WRITE ${CMD_FILE} "@echo off\nsetlocal\n\n")
+  foreach(line ${CMD_LINES})
+    file(APPEND ${CMD_FILE} "${line}")
+  endforeach(line)
+  file(APPEND ${CMD_FILE} "\nstart gnucash %*\n")
+
+  set(BUILD_CMD_FILE ${CMAKE_BINARY_DIR}/bin/gnucash-launcher.cmd)
+  file(WRITE ${BUILD_CMD_FILE} "@echo off\nsetlocal\n\n")
+  foreach(line ${CMD_LINES})
+     file(APPEND ${BUILD_CMD_FILE} "${line}")
+  endforeach(line)
+  file(APPEND ${BUILD_CMD_FILE} "\nstart gnucash %*\n")
+
+  install(PROGRAMS ${CMD_FILE} DESTINATION  ${CMAKE_INSTALL_BINDIR})
+endif(WIN32)
+
+# The GResource Files are absolute paths but set_local_dist requires
 # relative paths.
-FOREACH(gres_file ${gresource_files})
-  FILE(RELATIVE_PATH rel_file ${CMAKE_CURRENT_SOURCE_DIR} ${gres_file})
-  LIST(REMOVE_ITEM gresource_files ${gres_file})
-  LIST(APPEND gresource_files ${rel_file})
-ENDFOREACH()
+foreach(gres_file ${gresource_files})
+  file(RELATIVE_PATH rel_file ${CMAKE_CURRENT_SOURCE_DIR} ${gres_file})
+  list(REMOVE_ITEM gresource_files ${gres_file})
+  list(APPEND gresource_files ${rel_file})
+endforeach()
 
-SET_LOCAL_DIST(gnucash_DIST_local CMakeLists.txt environment.in generate-gnc-script
+set_local_dist(gnucash_DIST_local CMakeLists.txt environment.in generate-gnc-script
                gnucash-bin.c gnucash.rc.in gnucash-valgrind.in gnucash-gresources.xml ${gresource_files}
                ${gnucash_EXTRA_DIST})
 
diff --git a/gnucash/gnome-search/CMakeLists.txt b/gnucash/gnome-search/CMakeLists.txt
index 772b977..dc58d32 100644
--- a/gnucash/gnome-search/CMakeLists.txt
+++ b/gnucash/gnome-search/CMakeLists.txt
@@ -1,5 +1,5 @@
 
-SET (gnome_search_SOURCES
+set (gnome_search_SOURCES
   gncmod-gnome-search.c
   gnc-general-search.c
   dialog-search.c
@@ -15,12 +15,12 @@ SET (gnome_search_SOURCES
   search-string.c
 )
 
-SET (gnome_search_HEADERS
+set (gnome_search_HEADERS
   dialog-search.h
   gnc-general-search.h
 )
 
-SET (gnome_search_noinst_HEADERS
+set (gnome_search_noinst_HEADERS
   search-account.h
   search-boolean.h
   search-core-type.h
@@ -34,31 +34,31 @@ SET (gnome_search_noinst_HEADERS
 )  
 
 # Add dependency on config.h
-SET_SOURCE_FILES_PROPERTIES (${gnome_search_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+set_source_files_properties (${gnome_search_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
 
-SET_LOCAL_DIST(gnome_search_DIST_local CMakeLists.txt ${gnome_search_SOURCES} ${gnome_search_HEADERS}
+set_local_dist(gnome_search_DIST_local CMakeLists.txt ${gnome_search_SOURCES} ${gnome_search_HEADERS}
         ${gnome_search_noinst_HEADERS})
-SET(gnome_search_DIST ${gnome_search_DIST_local} PARENT_SCOPE)
+set(gnome_search_DIST ${gnome_search_DIST_local} PARENT_SCOPE)
 
-ADD_LIBRARY (gncmod-gnome-search
+add_library (gncmod-gnome-search
     ${gnome_search_SOURCES}
     ${gnome_search_HEADERS}
     ${gnome_search_noinst_HEADERS}
 )
 
-TARGET_LINK_LIBRARIES(gncmod-gnome-search gncmod-gnome-utils ${GTK3_LDFLAGS})
+target_link_libraries(gncmod-gnome-search gncmod-gnome-utils ${GTK3_LDFLAGS})
 
-TARGET_COMPILE_DEFINITIONS(gncmod-gnome-search PRIVATE -DG_LOG_DOMAIN=\"gnc.gui.search\")
+target_compile_definitions(gncmod-gnome-search PRIVATE -DG_LOG_DOMAIN=\"gnc.gui.search\")
 
-TARGET_INCLUDE_DIRECTORIES(gncmod-gnome-search PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
+target_include_directories(gncmod-gnome-search PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
 
-IF (APPLE)
-  SET_TARGET_PROPERTIES (gncmod-gnome-search PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
-ENDIF()
+if (APPLE)
+  set_target_properties (gncmod-gnome-search PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
+endif()
 
-INSTALL(TARGETS gncmod-gnome-search
+install(TARGETS gncmod-gnome-search
   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
 
-INSTALL(FILES ${gnome_search_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gnucash)
+install(FILES ${gnome_search_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gnucash)
diff --git a/gnucash/gnome-utils/CMakeLists.txt b/gnucash/gnome-utils/CMakeLists.txt
index c947189..f772cb0 100644
--- a/gnucash/gnome-utils/CMakeLists.txt
+++ b/gnucash/gnome-utils/CMakeLists.txt
@@ -1,6 +1,6 @@
 # Note that gnucash/gnome-utils CANNOT depend on gnucash/gnome!
 
-ADD_SUBDIRECTORY(test)
+add_subdirectory(test)
 
 # Command to generate the swig-gnome-utils.c wrapper file
 gnc_add_swig_guile_command (swig-gnome-utils-c
@@ -8,17 +8,17 @@ gnc_add_swig_guile_command (swig-gnome-utils-c
     ${CMAKE_CURRENT_SOURCE_DIR}/gnome-utils.i
 )
 
-SET (WARNINGS_SCHEMA ${DATADIR_BUILD}/glib-2.0/schemas/org.gnucash.warnings.gschema.xml)
-SET (GNC_WARNINGS_C ${CMAKE_CURRENT_BINARY_DIR}/gnc-warnings.c)
-SET (GNC_WARNINGS_H ${CMAKE_CURRENT_BINARY_DIR}/gnc-warnings.h)
+set (WARNINGS_SCHEMA ${DATADIR_BUILD}/glib-2.0/schemas/org.gnucash.warnings.gschema.xml)
+set (GNC_WARNINGS_C ${CMAKE_CURRENT_BINARY_DIR}/gnc-warnings.c)
+set (GNC_WARNINGS_H ${CMAKE_CURRENT_BINARY_DIR}/gnc-warnings.h)
 
-ADD_CUSTOM_COMMAND(
+add_custom_command(
   OUTPUT ${GNC_WARNINGS_C}
   DEPENDS ${WARNINGS_SCHEMA} make-gnc-warnings-c.xsl
   COMMAND
     ${LIBXSLT_XSLTPROC_EXECUTABLE} -o ${GNC_WARNINGS_C} ${CMAKE_CURRENT_SOURCE_DIR}/make-gnc-warnings-c.xsl ${WARNINGS_SCHEMA}
 )
-ADD_CUSTOM_COMMAND(
+add_custom_command(
   OUTPUT ${GNC_WARNINGS_H}
   DEPENDS ${WARNINGS_SCHEMA} make-gnc-warnings-h.xsl
   COMMAND
@@ -34,7 +34,7 @@ else (MAC_INTEGRATION)
 endif (MAC_INTEGRATION)
 endif (NOT have_mod_mask)
 
-SET (gnome_utils_SOURCES
+set (gnome_utils_SOURCES
   account-quickfill.c
   assistant-xml-encoding.c
   cursors.c
@@ -117,7 +117,7 @@ SET (gnome_utils_SOURCES
   window-main-summarybar.c
 )
 
-SET(gnome_utils_noinst_HEADERS
+set(gnome_utils_noinst_HEADERS
   dialog-tax-table.h
   gnc-autosave.h
   gnc-gobject-utils.h
@@ -125,7 +125,7 @@ SET(gnome_utils_noinst_HEADERS
   search-param.h
 )
 
-SET (gnome_utils_HEADERS
+set (gnome_utils_HEADERS
   account-quickfill.h
   assistant-xml-encoding.h
   dialog-account.h
@@ -203,7 +203,7 @@ SET (gnome_utils_HEADERS
 
 
 
-ADD_LIBRARY (gncmod-gnome-utils
+add_library (gncmod-gnome-utils
   ${gnome_utils_SOURCES}
   ${gnome_utils_HEADERS}
   ${GNC_WARNINGS_C} ${GNC_WARNINGS_H}
@@ -211,22 +211,22 @@ ADD_LIBRARY (gncmod-gnome-utils
   ${gnome_utils_noinst_HEADERS}
 )
 
-TARGET_LINK_LIBRARIES(gncmod-gnome-utils gncmod-app-utils gncmod-engine gnc-backend-xml-utils
+target_link_libraries(gncmod-gnome-utils gncmod-app-utils gncmod-engine gnc-backend-xml-utils
      ${CMAKE_DL_LIBS} ${GTK3_LDFLAGS} ${GTK_MAC_LDFLAGS})
 
-TARGET_COMPILE_DEFINITIONS(gncmod-gnome-utils PUBLIC ${GTK_MAC_CFLAGS_OTHER}
+target_compile_definitions(gncmod-gnome-utils PUBLIC ${GTK_MAC_CFLAGS_OTHER}
   PRIVATE -DG_LOG_DOMAIN=\"gnc.gui\")
 
 if (BUILDING_FROM_VCS)
-  TARGET_COMPILE_DEFINITIONS(gncmod-gnome-utils PRIVATE -DGNC_VCS=\"git\")
+  target_compile_definitions(gncmod-gnome-utils PRIVATE -DGNC_VCS=\"git\")
 endif (BUILDING_FROM_VCS)
 
-IF (MAC_INTEGRATION)
-  TARGET_COMPILE_OPTIONS(gncmod-gnome-utils PRIVATE ${OSX_EXTRA_COMPILE_FLAGS})
-  TARGET_LINK_LIBRARIES(gncmod-gnome-utils ${OSX_EXTRA_LIBRARIES})
-ENDIF(MAC_INTEGRATION)
+if (MAC_INTEGRATION)
+  target_compile_options(gncmod-gnome-utils PRIVATE ${OSX_EXTRA_COMPILE_FLAGS})
+  target_link_libraries(gncmod-gnome-utils ${OSX_EXTRA_LIBRARIES})
+endif(MAC_INTEGRATION)
 
-TARGET_INCLUDE_DIRECTORIES(gncmod-gnome-utils
+target_include_directories(gncmod-gnome-utils
     PUBLIC
       ${GTK3_INCLUDE_DIRS}
       ${CMAKE_CURRENT_SOURCE_DIR}
@@ -236,23 +236,23 @@ TARGET_INCLUDE_DIRECTORIES(gncmod-gnome-utils
 )
 
 
-IF (APPLE)
-  SET_TARGET_PROPERTIES (gncmod-gnome-utils PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
-ENDIF()
+if (APPLE)
+  set_target_properties (gncmod-gnome-utils PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
+endif()
 
-INSTALL(TARGETS gncmod-gnome-utils
+install(TARGETS gncmod-gnome-utils
   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
 
-INSTALL(FILES ${gnome_utils_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gnucash)
+install(FILES ${gnome_utils_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gnucash)
 
 
 # Scheme
 
-SET(GUILE_DEPENDS      gncmod-gnome-utils scm-gnc-module scm-scm scm-app-utils)
+set(GUILE_DEPENDS      gncmod-gnome-utils scm-gnc-module scm-scm scm-app-utils)
 
-GNC_ADD_SCHEME_TARGETS(scm-gnome-utils-1
+gnc_add_scheme_targets(scm-gnome-utils-1
   gnome-utils.scm
   gnucash
   "${GUILE_DEPENDS}"
@@ -260,16 +260,16 @@ GNC_ADD_SCHEME_TARGETS(scm-gnome-utils-1
 )
 
 
-GNC_ADD_SCHEME_TARGETS(scm-gnome-utils-2
+gnc_add_scheme_targets(scm-gnome-utils-2
   gnc-menu-extensions.scm
   ""
   "${GUILE_DEPENDS}"
   FALSE
 )
 
-ADD_CUSTOM_TARGET(scm-gnome-utils ALL DEPENDS scm-gnome-utils-2 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}
+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} ${test_gnome_utils_DIST} PARENT_SCOPE)
+set(gnome_utils_DIST ${gnome_utils_DIST_local} ${test_gnome_utils_DIST} PARENT_SCOPE)
diff --git a/gnucash/gnome-utils/test/CMakeLists.txt b/gnucash/gnome-utils/test/CMakeLists.txt
index 0817866..fc47735 100644
--- a/gnucash/gnome-utils/test/CMakeLists.txt
+++ b/gnucash/gnome-utils/test/CMakeLists.txt
@@ -1,33 +1,33 @@
 
-SET(GNOME_UTILS_TEST_INCLUDE_DIRS
+set(GNOME_UTILS_TEST_INCLUDE_DIRS
   ${CMAKE_SOURCE_DIR}/libgnucash/gnc-module
   ${GLIB2_INCLUDE_DIRS}
   ${GUILE_INCLUDE_DIRS}
 )
-SET(GNOME_UTILS_TEST_LIBS gnc-module test-core)
+set(GNOME_UTILS_TEST_LIBS gnc-module test-core)
 
-GNC_ADD_TEST_WITH_GUILE(test-link-module-gnome-utils test-link-module.c
+gnc_add_test_with_guile(test-link-module-gnome-utils test-link-module.c
   GNOME_UTILS_TEST_INCLUDE_DIRS GNOME_UTILS_TEST_LIBS
 )
 
 
-SET(GNOME_UTILS_GUI_TEST_INCLUDE_DIRS
+set(GNOME_UTILS_GUI_TEST_INCLUDE_DIRS
   ${GNOME_UTILS_TEST_INCLUDE_DIRS}
   ${CMAKE_BINARY_DIR}/common
   ${CMAKE_SOURCE_DIR}/gnucash/gnome-utils
   ${CMAKE_SOURCE_DIR}/libgnucash/engine
   ${GTK3_INCLUDE_DIRS}
 )
-SET(GNOME_UTILS_GUI_TEST_LIBS
+set(GNOME_UTILS_GUI_TEST_LIBS
   ${GNOME_UTILS_TEST_LIBS}
   gncmod-gnome-utils
 )
 #This is a GUI test
-#GNC_ADD_TEST(test-gnc-recurrence test-gnc-recurrence.c
+#gnc_add_test(test-gnc-recurrence test-gnc-recurrence.c
 #  GNOME_UTILS_GUI_TEST_INCLUDE_DIRS
 #  GNOME_UTILS_GUI_TEST_LIBS
 #
-SET(GUILE_DEPENDS
+set(GUILE_DEPENDS
   scm-gnc-module
   scm-gnome-utils
   test-core
@@ -37,14 +37,14 @@ SET(GUILE_DEPENDS
   gncmod-engine
 )
 
-GNC_ADD_SCHEME_TARGETS(scm-test-load-gnome-utils-module
+gnc_add_scheme_targets(scm-test-load-gnome-utils-module
   "test-load-gnome-utils-module.scm"
   "gnucash/reports"
   "${GUILE_DEPENDS}"
   FALSE
 )
 
-GNC_ADD_SCHEME_TESTS(test-load-gnome-utils-module.scm)
+gnc_add_scheme_tests(test-load-gnome-utils-module.scm)
 
 
-SET_DIST_LIST(test_gnome_utils_DIST CMakeLists.txt test-gnc-recurrence.c test-link-module.c test-load-gnome-utils-module.scm)
+set_dist_list(test_gnome_utils_DIST CMakeLists.txt test-gnc-recurrence.c test-link-module.c test-load-gnome-utils-module.scm)
diff --git a/gnucash/gnome/CMakeLists.txt b/gnucash/gnome/CMakeLists.txt
index 537fc60..44bd887 100644
--- a/gnucash/gnome/CMakeLists.txt
+++ b/gnucash/gnome/CMakeLists.txt
@@ -1,5 +1,5 @@
 
-SET (gnc_gnome_noinst_HEADERS
+set (gnc_gnome_noinst_HEADERS
   assistant-acct-period.h
   assistant-hierarchy.h
   assistant-loan.h
@@ -61,8 +61,7 @@ gnc_add_swig_guile_command (swig-gnome-c
     ${CMAKE_CURRENT_SOURCE_DIR}/gnome.i ${gnc_gnome_HEADERS}
 )
 
-SET (gnc_gnome_SOURCES 
-
+set (gnc_gnome_SOURCES
   assistant-acct-period.c
   assistant-hierarchy.c
   assistant-loan.c
@@ -120,21 +119,21 @@ SET (gnc_gnome_SOURCES
   window-reconcile.c
   window-reconcile2.c
   window-autoclear.c
-)  
+)
 
-SET_SOURCE_FILES_PROPERTIES (${gnc_gnome_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+set_source_files_properties (${gnc_gnome_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
 
-IF (WIN32)
-  SET (gnc_gnome_SOURCES ${gnc_gnome_SOURCES} ${CMAKE_SOURCE_DIR}/borrowed/libc/strfmon.c)
-ENDIF(WIN32)
+if (WIN32)
+  set (gnc_gnome_SOURCES ${gnc_gnome_SOURCES} ${CMAKE_SOURCE_DIR}/borrowed/libc/strfmon.c)
+endif(WIN32)
 
-ADD_LIBRARY (gnc-gnome ${gnc_gnome_SOURCES} ${gnc_gnome_noinst_HEADERS} ${SWIG_GNOME_C})
-TARGET_LINK_LIBRARIES(gnc-gnome gncmod-gnome-search gncmod-ledger-core gncmod-report-gnome gncmod-report-system
+add_library (gnc-gnome ${gnc_gnome_SOURCES} ${gnc_gnome_noinst_HEADERS} ${SWIG_GNOME_C})
+target_link_libraries(gnc-gnome gncmod-gnome-search gncmod-ledger-core gncmod-report-gnome gncmod-report-system
     gncmod-register-gnome gncmod-register-core gncmod-gnome-utils gncmod-engine ${GTK3_LDFLAGS} ${GTK_MAC_LDFLAGS})
 
-TARGET_COMPILE_DEFINITIONS (gnc-gnome PRIVATE -DG_LOG_DOMAIN=\"gnc.gui\" ${GTK_MAC_CFLAGS_OTHER})
+target_compile_definitions (gnc-gnome PRIVATE -DG_LOG_DOMAIN=\"gnc.gui\" ${GTK_MAC_CFLAGS_OTHER})
 
-TARGET_INCLUDE_DIRECTORIES(gnc-gnome
+target_include_directories(gnc-gnome
   PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
   PRIVATE
     ${CMAKE_SOURCE_DIR}/libgnucash/app-utils/calculation
@@ -144,13 +143,13 @@ TARGET_INCLUDE_DIRECTORIES(gnc-gnome
 
 add_dependencies (gnc-gnome swig-runtime-h)
 
-IF (MAC_INTEGRATION)
-  TARGET_COMPILE_OPTIONS(gnc-gnome PRIVATE ${OSX_EXTRA_COMPILE_FLAGS})
-  TARGET_LINK_LIBRARIES(gnc-gnome ${OSX_EXTRA_LIBRARIES})
-ENDIF(MAC_INTEGRATION)
+if (MAC_INTEGRATION)
+  target_compile_options(gnc-gnome PRIVATE ${OSX_EXTRA_COMPILE_FLAGS})
+  target_link_libraries(gnc-gnome ${OSX_EXTRA_LIBRARIES})
+endif(MAC_INTEGRATION)
 
 
-INSTALL(TARGETS gnc-gnome
+install(TARGETS gnc-gnome
   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
   RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
@@ -159,10 +158,10 @@ INSTALL(TARGETS gnc-gnome
 
 # FIXME: where does LC_ALL=C come from?
 
-SET(CMAKE_COMMAND_TMP "")
-IF (${CMAKE_VERSION} VERSION_GREATER 3.1)
-  SET(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env)
-ENDIF()
+set(CMAKE_COMMAND_TMP "")
+if (${CMAKE_VERSION} VERSION_GREATER 3.1)
+  set(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env)
+endif()
 
 
 if (${GETTEXT_VERSION_STRING} VERSION_LESS 0.19.6)
@@ -183,9 +182,9 @@ else()
     )
 endif()
 
-ADD_CUSTOM_TARGET(gnucash-appdata ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/gnucash.appdata.xml)
+add_custom_target(gnucash-appdata ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/gnucash.appdata.xml)
 
-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/gnucash.appdata.xml DESTINATION  ${CMAKE_INSTALL_DATADIR}/appdata)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/gnucash.appdata.xml DESTINATION  ${CMAKE_INSTALL_DATADIR}/appdata)
 
 #=======
 
@@ -209,10 +208,10 @@ else()
     )
 endif()
 
-ADD_CUSTOM_TARGET(gnucash-desktop ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/gnucash.desktop)
+add_custom_target(gnucash-desktop ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/gnucash.desktop)
 
-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/gnucash.desktop DESTINATION  ${CMAKE_INSTALL_DATADIR}/applications)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/gnucash.desktop DESTINATION  ${CMAKE_INSTALL_DATADIR}/applications)
 
-SET_DIST_LIST(gnome_DIST
+set_dist_list(gnome_DIST
         CMakeLists.txt gnome.i gnucash.appdata.xml.in gnucash.desktop.in.in
         ${gnc_gnome_noinst_HEADERS} ${gnc_gnome_SOURCES})
diff --git a/gnucash/gschemas/CMakeLists.txt b/gnucash/gschemas/CMakeLists.txt
index b7ce2e4..11b0f3d 100644
--- a/gnucash/gschemas/CMakeLists.txt
+++ b/gnucash/gschemas/CMakeLists.txt
@@ -1,5 +1,5 @@
 
-SET(gschema_SOURCES
+set(gschema_SOURCES
   org.gnucash.dialogs.business.gschema.xml
   org.gnucash.dialogs.checkprinting.gschema.xml
   org.gnucash.dialogs.commodities.gschema.xml
@@ -42,8 +42,8 @@ if (COMPILE_GSCHEMAS)
                               ${GLIB_COMPILE_SCHEMAS} $DESTDIR${CMAKE_INSTALL_FULL_DATADIR}/glib-2.0/schemas\")")
 endif ()
 
-SET(gschemas_DIST_local "")
-FOREACH(file ${gschema_SOURCES})
-    LIST(APPEND gschemas_DIST_local ${file}.in)
-ENDFOREACH()
-SET_DIST_LIST(gschemas_DIST CMakeLists.txt ${gschemas_DIST_local})
+set(gschemas_DIST_local "")
+foreach(file ${gschema_SOURCES})
+    list(APPEND gschemas_DIST_local ${file}.in)
+endforeach()
+set_dist_list(gschemas_DIST CMakeLists.txt ${gschemas_DIST_local})
diff --git a/gnucash/gtkbuilder/CMakeLists.txt b/gnucash/gtkbuilder/CMakeLists.txt
index 0e9667b..f998c00 100644
--- a/gnucash/gtkbuilder/CMakeLists.txt
+++ b/gnucash/gtkbuilder/CMakeLists.txt
@@ -68,4 +68,4 @@ file (COPY ${gtkbuilder_SOURCES} DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder
 
 install (FILES ${gtkbuilder_SOURCES} DESTINATION share/gnucash/gtkbuilder)
 
-SET_DIST_LIST(gtkbuilder_DIST CMakeLists.txt ${gtkbuilder_SOURCES})
+set_dist_list(gtkbuilder_DIST CMakeLists.txt ${gtkbuilder_SOURCES})
diff --git a/gnucash/html/CMakeLists.txt b/gnucash/html/CMakeLists.txt
index 768a9c2..9dc8687 100644
--- a/gnucash/html/CMakeLists.txt
+++ b/gnucash/html/CMakeLists.txt
@@ -1,5 +1,5 @@
 
-SET (html_HEADERS
+set (html_HEADERS
   gnc-html-history.h
   gnc-html.h
   gnc-html-p.h
@@ -15,50 +15,50 @@ gnc_add_swig_guile_command (swig-gnc-html-c
     ${CMAKE_CURRENT_SOURCE_DIR}/gnc-html.i "${gncmod_html_HEADERS}"
 )
 
-SET (html_SOURCES
+set (html_SOURCES
   gncmod-html.c
   gnc-html.c
   gnc-html-history.c
   gnc-html-factory.c
 )
 
-IF (WEBKIT1)
-  LIST(APPEND html_HEADERS gnc-html-webkit1.h)
-  LIST(APPEND html_SOURCES gnc-html-webkit1.c)
-  SET(html_EXTRA_DIST gnc-html-webkit2.h gnc-html-webkit2.c)
-ELSE ()
-  LIST(APPEND html_HEADERS gnc-html-webkit2.h)
-  LIST(APPEND html_SOURCES gnc-html-webkit2.c)
-  SET(html_EXTRA_DIST gnc-html-webkit1.h gnc-html-webkit1.c)
-ENDIF ()
+if (WEBKIT1)
+  list(APPEND html_HEADERS gnc-html-webkit1.h)
+  list(APPEND html_SOURCES gnc-html-webkit1.c)
+  set(html_EXTRA_DIST gnc-html-webkit2.h gnc-html-webkit2.c)
+else ()
+  list(APPEND html_HEADERS gnc-html-webkit2.h)
+  list(APPEND html_SOURCES gnc-html-webkit2.c)
+  set(html_EXTRA_DIST gnc-html-webkit1.h gnc-html-webkit1.c)
+endif ()
 
-SET_DIST_LIST(html_DIST CMakeLists.txt ${html_HEADERS} ${html_SOURCES} gnc-html.i ${html_EXTRA_DIST})
+set_dist_list(html_DIST CMakeLists.txt ${html_HEADERS} ${html_SOURCES} gnc-html.i ${html_EXTRA_DIST})
 
-ADD_LIBRARY (gncmod-html
+add_library (gncmod-html
   ${html_SOURCES}
   ${SWIG_GNC_HTML_C}
   ${html_HEADERS}
 )
 
-TARGET_LINK_LIBRARIES(gncmod-html gncmod-engine gnc-module gncmod-gnome-utils ${WEBKIT_LDFLAGS} ${GUILE_LDFLAGS})
+target_link_libraries(gncmod-html gncmod-engine gnc-module gncmod-gnome-utils ${WEBKIT_LDFLAGS} ${GUILE_LDFLAGS})
 
-TARGET_COMPILE_DEFINITIONS(gncmod-html PRIVATE -DG_LOG_DOMAIN=\"gnc.html\")
+target_compile_definitions(gncmod-html PRIVATE -DG_LOG_DOMAIN=\"gnc.html\")
 
 
-TARGET_INCLUDE_DIRECTORIES (gncmod-html
+target_include_directories (gncmod-html
 PUBLIC
     ${GTK3_INCLUDE_DIRS}
     ${WEBKIT_INCLUDE_DIRS}
     ${CMAKE_CURRENT_SOURCE_DIR}
 )
 
-IF (APPLE)
-  SET_TARGET_PROPERTIES (gncmod-html PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
-ENDIF()
+if (APPLE)
+  set_target_properties (gncmod-html PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
+endif()
 
-INSTALL(TARGETS gncmod-html
+install(TARGETS gncmod-html
   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
 
-INSTALL(FILES ${html_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gnucash)
+install(FILES ${html_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gnucash)
diff --git a/gnucash/import-export/CMakeLists.txt b/gnucash/import-export/CMakeLists.txt
index 2a8ee1e..3b52ed8 100644
--- a/gnucash/import-export/CMakeLists.txt
+++ b/gnucash/import-export/CMakeLists.txt
@@ -1,20 +1,20 @@
 # CMakeLists.txt for gnucash/import-export
 
-ADD_SUBDIRECTORY(test)
+add_subdirectory(test)
 
 # ############################################################
-ADD_SUBDIRECTORY(aqb)
-ADD_SUBDIRECTORY(bi-import)
-ADD_SUBDIRECTORY(csv-exp)
-ADD_SUBDIRECTORY(csv-imp)
-ADD_SUBDIRECTORY(customer-import)
-ADD_SUBDIRECTORY(log-replay)
-ADD_SUBDIRECTORY(ofx)
-ADD_SUBDIRECTORY(qif)
-ADD_SUBDIRECTORY(qif-imp)
-
-
-SET (generic_import_SOURCES
+add_subdirectory(aqb)
+add_subdirectory(bi-import)
+add_subdirectory(csv-exp)
+add_subdirectory(csv-imp)
+add_subdirectory(customer-import)
+add_subdirectory(log-replay)
+add_subdirectory(ofx)
+add_subdirectory(qif)
+add_subdirectory(qif-imp)
+
+
+set (generic_import_SOURCES
   import-account-matcher.c
   import-commodity-matcher.c
   import-backend.c
@@ -29,13 +29,13 @@ SET (generic_import_SOURCES
 )
 
 # Add dependency on config.h
-SET_SOURCE_FILES_PROPERTIES (${generic_import_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+set_source_files_properties (${generic_import_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
 
-SET (generic_import_HEADERS
+set (generic_import_HEADERS
   import-parse.h
 )
 
-SET (generic_import_noinst_HEADERS
+set (generic_import_noinst_HEADERS
   import-account-matcher.h
   import-backend.h
   import-commodity-matcher.h
@@ -46,38 +46,38 @@ SET (generic_import_noinst_HEADERS
   import-utilities.h
 )
 
-ADD_LIBRARY (gncmod-generic-import
+add_library (gncmod-generic-import
   ${generic_import_SOURCES}
   ${generic_import_HEADERS}
   ${generic_import_noinst_HEADERS}
 )
 
-TARGET_LINK_LIBRARIES(gncmod-generic-import gncmod-gnome-utils gncmod-engine ${GTK3_LDFLAGS} ${GLIB2_LDFLAGS})
+target_link_libraries(gncmod-generic-import gncmod-gnome-utils gncmod-engine ${GTK3_LDFLAGS} ${GLIB2_LDFLAGS})
 
-TARGET_COMPILE_DEFINITIONS (gncmod-generic-import PRIVATE -DG_LOG_DOMAIN=\"gnc.import\")
+target_compile_definitions (gncmod-generic-import PRIVATE -DG_LOG_DOMAIN=\"gnc.import\")
 
-TARGET_INCLUDE_DIRECTORIES(gncmod-generic-import PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
+target_include_directories(gncmod-generic-import PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
 
 
-IF (APPLE)
-  SET_TARGET_PROPERTIES (gncmod-generic-import PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
-ENDIF()
+if (APPLE)
+  set_target_properties (gncmod-generic-import PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
+endif()
 
-INSTALL(TARGETS gncmod-generic-import
+install(TARGETS gncmod-generic-import
   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
 )
 
-INSTALL(FILES ${generic_import_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gnucash)
+install(FILES ${generic_import_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gnucash)
 
-SET(generic_import_EXTRA_DIST generic-import-design.txt)
+set(generic_import_EXTRA_DIST generic-import-design.txt)
 
-SET_LOCAL_DIST(import_export_DIST_local CMakeLists.txt ${generic_import_SOURCES}
+set_local_dist(import_export_DIST_local CMakeLists.txt ${generic_import_SOURCES}
         ${generic_import_HEADERS} ${generic_import_noinst_HEADERS}
         ${generic_import_EXTRA_DIST})
 
-SET(import_export_DIST ${import_export_DIST_local} ${aqbanking_DIST} ${bi_import_DIST}
+set(import_export_DIST ${import_export_DIST_local} ${aqbanking_DIST} ${bi_import_DIST}
         ${csv_export_DIST} ${csv_import_DIST} ${customer_import_DIST}
         ${log_report_DIST} ${ofx_DIST} ${qif_DIST} ${qif_import_DIST}
         ${test_generic_import_DIST}
diff --git a/gnucash/import-export/aqb/CMakeLists.txt b/gnucash/import-export/aqb/CMakeLists.txt
index 9e3d136..ae2d217 100644
--- a/gnucash/import-export/aqb/CMakeLists.txt
+++ b/gnucash/import-export/aqb/CMakeLists.txt
@@ -1,9 +1,9 @@
 # CMakeLists.txt for gnucash/import-export/aqbanking
 
-ADD_SUBDIRECTORY(gschemas)
-ADD_SUBDIRECTORY(test)
+add_subdirectory(gschemas)
+add_subdirectory(test)
 
-SET (aqbanking_SOURCES
+set (aqbanking_SOURCES
   dialog-ab-trans.c
   dialog-ab-daterange.c
   assistant-ab-initial.c
@@ -19,9 +19,9 @@ SET (aqbanking_SOURCES
 )
 
 # Add dependency on config.h
-SET_SOURCE_FILES_PROPERTIES (${aqbanking_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+set_source_files_properties (${aqbanking_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
 
-SET (aqbanking_noinst_HEADERS
+set (aqbanking_noinst_HEADERS
   dialog-ab-trans.h
   dialog-ab-daterange.h
   assistant-ab-initial.h
@@ -35,45 +35,45 @@ SET (aqbanking_noinst_HEADERS
   gnc-plugin-aqbanking.h
 )
 
-SET(aqbanking_GLADE assistant-ab-initial.glade dialog-ab.glade dialog-ab-pref.glade)
+set(aqbanking_GLADE assistant-ab-initial.glade dialog-ab.glade dialog-ab-pref.glade)
 
-SET(aqbanking_UI gnc-plugin-aqbanking-ui.xml)
+set(aqbanking_UI gnc-plugin-aqbanking-ui.xml)
 
-IF(WITH_AQBANKING)
-  ADD_LIBRARY (gncmod-aqbanking
+if(WITH_AQBANKING)
+  add_library (gncmod-aqbanking
     ${aqbanking_SOURCES}
     ${aqbanking_noinst_HEADERS}
   )
 
-  SET(AQB_EXPORT_SYMBOLS "")
-  IF (WIN32)
-    SET(AQB_EXPORT_SYMBOLS "-Wl,--export-all-symbols")
-  ENDIF()
-  SET(AQB_LIBSTDCXX "")
-  IF (MINGW)
-    SET(AQB_LIBSTDCXX "-lstdc++")
-  ENDIF()
+  set(AQB_EXPORT_SYMBOLS "")
+  if (WIN32)
+    set(AQB_EXPORT_SYMBOLS "-Wl,--export-all-symbols")
+  endif()
+  set(AQB_LIBSTDCXX "")
+  if (MINGW)
+    set(AQB_LIBSTDCXX "-lstdc++")
+  endif()
 
-  TARGET_LINK_LIBRARIES(gncmod-aqbanking gnc-gnome gncmod-gnome-utils
+  target_link_libraries(gncmod-aqbanking gnc-gnome gncmod-gnome-utils
          gncmod-generic-import gncmod-register-core
          gncmod-register-gnome gncmod-ledger-core gncmod-engine gwengui-gtk3
          ${AQB_EXPORT_SYMBOLS} ${AQBANKING_LDFLAGS}
          ${GWENHYWFAR_LDFLAGS} 
          ${GNOME_LDFLAGS} ${KTOBLZCHECK_LDFLAGS} ${AQB_LIBSTDCXX})
 
-  TARGET_COMPILE_DEFINITIONS(gncmod-aqbanking PRIVATE -DG_LOG_DOMAIN=\"gnc.import.aqbanking\")
+  target_compile_definitions(gncmod-aqbanking PRIVATE -DG_LOG_DOMAIN=\"gnc.import.aqbanking\")
 
-  TARGET_INCLUDE_DIRECTORIES(gncmod-aqbanking PRIVATE
+  target_include_directories(gncmod-aqbanking PRIVATE
     ${CMAKE_SOURCE_DIR}/borrowed/gwengui-gtk3
     ${AQBANKING_INCLUDE_DIRS}
     ${GWENHYWFAR_INCLUDE_DIRS}
     ${KTOBLZCHECK_INCLUDE_DIRS})
 
-IF (APPLE)
-  SET_TARGET_PROPERTIES (gncmod-aqbanking PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
-ENDIF()
+if (APPLE)
+  set_target_properties (gncmod-aqbanking PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
+endif()
 
-  INSTALL(TARGETS gncmod-aqbanking
+  install(TARGETS gncmod-aqbanking
     LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
     ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
     RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
@@ -81,18 +81,18 @@ ENDIF()
 # No headers to install
 
 
-  INSTALL(FILES ${aqbanking_GLADE} DESTINATION  ${CMAKE_INSTALL_DATADIR}/gnucash/gtkbuilder)
+  install(FILES ${aqbanking_GLADE} DESTINATION  ${CMAKE_INSTALL_DATADIR}/gnucash/gtkbuilder)
 
-  INSTALL(FILES ${aqbanking_UI} DESTINATION  ${CMAKE_INSTALL_DATADIR}/gnucash/ui)
+  install(FILES ${aqbanking_UI} DESTINATION  ${CMAKE_INSTALL_DATADIR}/gnucash/ui)
 
-  FILE(COPY ${aqbanking_UI}
+  file(COPY ${aqbanking_UI}
     DESTINATION ${DATADIR_BUILD}/gnucash/ui)
-  FILE(COPY ${aqbanking_GLADE}
+  file(COPY ${aqbanking_GLADE}
     DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder)
-ENDIF(WITH_AQBANKING)
+endif(WITH_AQBANKING)
 
-SET_LOCAL_DIST(aqbanking_DIST_local CMakeLists.txt migratable-prefs-aqbanking.xml
+set_local_dist(aqbanking_DIST_local CMakeLists.txt migratable-prefs-aqbanking.xml
         ${aqbanking_SOURCES} ${aqbanking_noinst_HEADERS} ${aqbanking_EXTRA_DIST}
         ${aqbanking_GLADE} ${aqbanking_UI})
 
-SET(aqbanking_DIST ${aqbanking_DIST_local} ${aqbanking_gschema_DIST} ${test_aqb_DIST} PARENT_SCOPE)
+set(aqbanking_DIST ${aqbanking_DIST_local} ${aqbanking_gschema_DIST} ${test_aqb_DIST} PARENT_SCOPE)
diff --git a/gnucash/import-export/aqb/gschemas/CMakeLists.txt b/gnucash/import-export/aqb/gschemas/CMakeLists.txt
index b22f8eb..7b162c2 100644
--- a/gnucash/import-export/aqb/gschemas/CMakeLists.txt
+++ b/gnucash/import-export/aqb/gschemas/CMakeLists.txt
@@ -1,8 +1,8 @@
 
-IF (WITH_AQBANKING)
-  SET(aqb_GSCHEMA org.gnucash.dialogs.import.hbci.gschema.xml)
+if (WITH_AQBANKING)
+  set(aqb_GSCHEMA org.gnucash.dialogs.import.hbci.gschema.xml)
 
   add_gschema_targets("${aqb_GSCHEMA}")
-ENDIF(WITH_AQBANKING)
+endif(WITH_AQBANKING)
 
-SET_DIST_LIST(aqbanking_gschema_DIST CMakeLists.txt org.gnucash.dialogs.import.hbci.gschema.xml.in)
+set_dist_list(aqbanking_gschema_DIST CMakeLists.txt org.gnucash.dialogs.import.hbci.gschema.xml.in)
diff --git a/gnucash/import-export/aqb/test/CMakeLists.txt b/gnucash/import-export/aqb/test/CMakeLists.txt
index 26a97f7..abcc5b3 100644
--- a/gnucash/import-export/aqb/test/CMakeLists.txt
+++ b/gnucash/import-export/aqb/test/CMakeLists.txt
@@ -26,11 +26,11 @@ set(test_aqb_LIBS
   ${GLIB2_LDFLAGS}
 )
 
-SET_DIST_LIST(test_aqb_DIST ${test_aqb_SOURCES} file-book.gnucash
+set_dist_list(test_aqb_DIST ${test_aqb_SOURCES} file-book.gnucash
   file-book-hbcislot.gnucash CMakeLists.txt )
-IF(WITH_AQBANKING)
-  GNC_ADD_TEST(test-aqb
+if(WITH_AQBANKING)
+  gnc_add_test(test-aqb
     "${test_aqb_SOURCES}"
     test_aqb_INCLUDE_DIRS
     test_aqb_LIBS SRCDIR=${CMAKE_CURRENT_SOURCE_DIR})
- ENDIF()
+ endif()
diff --git a/gnucash/import-export/bi-import/CMakeLists.txt b/gnucash/import-export/bi-import/CMakeLists.txt
index 62d580e..071f70e 100644
--- a/gnucash/import-export/bi-import/CMakeLists.txt
+++ b/gnucash/import-export/bi-import/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(bi_import_SOURCES
+set(bi_import_SOURCES
   gnc-plugin-bi-import.c
   gncmod-bi-import.c
   dialog-bi-import-gui.c
@@ -7,18 +7,18 @@ SET(bi_import_SOURCES
 )
 
 # Add dependency on config.h
-SET_SOURCE_FILES_PROPERTIES (${bi_import_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+set_source_files_properties (${bi_import_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
 
-SET(bi_import_noinst_HEADERS
+set(bi_import_noinst_HEADERS
   gnc-plugin-bi-import.h 
   dialog-bi-import-gui.h 
   dialog-bi-import-helper.h 
   dialog-bi-import.h
 )
 
-ADD_LIBRARY(gncmod-bi-import ${bi_import_noinst_HEADERS} ${bi_import_SOURCES})
+add_library(gncmod-bi-import ${bi_import_noinst_HEADERS} ${bi_import_SOURCES})
 
-TARGET_LINK_LIBRARIES(gncmod-bi-import
+target_link_libraries(gncmod-bi-import
   gncmod-gnome-utils
   gncmod-gnome-search
   gncmod-app-utils
@@ -28,21 +28,21 @@ TARGET_LINK_LIBRARIES(gncmod-bi-import
   gnc-gnome
 )
 
-TARGET_INCLUDE_DIRECTORIES(gncmod-bi-import
+target_include_directories(gncmod-bi-import
   PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
   PRIVATE ${CMAKE_SOURCE_DIR}/gnucash/gnome
 )
 
-TARGET_COMPILE_DEFINITIONS(gncmod-bi-import PRIVATE -DG_LOG_DOMAIN=\"gnc.plugin.bi-import\")
+target_compile_definitions(gncmod-bi-import PRIVATE -DG_LOG_DOMAIN=\"gnc.plugin.bi-import\")
 
-IF (APPLE)
-  SET_TARGET_PROPERTIES (gncmod-bi-import PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
-ENDIF()
+if (APPLE)
+  set_target_properties (gncmod-bi-import PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
+endif()
 
-INSTALL(TARGETS gncmod-bi-import
+install(TARGETS gncmod-bi-import
   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
 # No headers to install.
 
-SET_DIST_LIST(bi_import_DIST CMakeLists.txt README ${bi_import_SOURCES} ${bi_import_noinst_HEADERS})
+set_dist_list(bi_import_DIST CMakeLists.txt README ${bi_import_SOURCES} ${bi_import_noinst_HEADERS})
diff --git a/gnucash/import-export/csv-exp/CMakeLists.txt b/gnucash/import-export/csv-exp/CMakeLists.txt
index 9642b89..4f47338 100644
--- a/gnucash/import-export/csv-exp/CMakeLists.txt
+++ b/gnucash/import-export/csv-exp/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(csv_export_SOURCES
+set(csv_export_SOURCES
   gncmod-csv-export.c
   gnc-plugin-csv-export.c
   assistant-csv-export.c
@@ -7,31 +7,31 @@ SET(csv_export_SOURCES
 )
 
 # Add dependency on config.h
-SET_SOURCE_FILES_PROPERTIES (${csv_export_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+set_source_files_properties (${csv_export_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
 
-SET(csv_export_noinst_HEADERS
+set(csv_export_noinst_HEADERS
   gnc-plugin-csv-export.h
   assistant-csv-export.h
   csv-tree-export.h
   csv-transactions-export.h
 )
 
-ADD_LIBRARY(gncmod-csv-export ${csv_export_noinst_HEADERS} ${csv_export_SOURCES})
+add_library(gncmod-csv-export ${csv_export_noinst_HEADERS} ${csv_export_SOURCES})
 
-TARGET_LINK_LIBRARIES(gncmod-csv-export gncmod-register-gnome gncmod-register-core gncmod-ledger-core gncmod-engine
+target_link_libraries(gncmod-csv-export gncmod-register-gnome gncmod-register-core gncmod-ledger-core gncmod-engine
                          gnc-module gncmod-gnome-utils gnc-gnome gncmod-app-utils gnc-core-utils)
 
-TARGET_COMPILE_DEFINITIONS(gncmod-csv-export PRIVATE -DG_LOG_DOMAIN=\"gnc.export.csv\")
+target_compile_definitions(gncmod-csv-export PRIVATE -DG_LOG_DOMAIN=\"gnc.export.csv\")
 
-IF (APPLE)
-  SET_TARGET_PROPERTIES (gncmod-csv-export PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
-ENDIF()
+if (APPLE)
+  set_target_properties (gncmod-csv-export PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
+endif()
 
-INSTALL(TARGETS gncmod-csv-export
+install(TARGETS gncmod-csv-export
   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
 # No headers to install.
 
-SET_DIST_LIST (csv_export_DIST CMakeLists.txt
+set_dist_list (csv_export_DIST CMakeLists.txt
         ${csv_export_SOURCES} ${csv_export_noinst_HEADERS})
diff --git a/gnucash/import-export/csv-imp/CMakeLists.txt b/gnucash/import-export/csv-imp/CMakeLists.txt
index 5486049..c31aa80 100644
--- a/gnucash/import-export/csv-imp/CMakeLists.txt
+++ b/gnucash/import-export/csv-imp/CMakeLists.txt
@@ -1,12 +1,12 @@
-ADD_SUBDIRECTORY(test)
+add_subdirectory(test)
 
-SET(csv_import_remote_SOURCES
+set(csv_import_remote_SOURCES
   ${CMAKE_SOURCE_DIR}/borrowed/goffice/go-charmap-sel.c
   ${CMAKE_SOURCE_DIR}/borrowed/goffice/go-optionmenu.c
   ${CMAKE_SOURCE_DIR}/borrowed/goffice/go-glib-extras.c
 )
 
-SET(csv_import_SOURCES
+set(csv_import_SOURCES
   gncmod-csv-import.c
   assistant-csv-account-import.c
   assistant-csv-price-import.cpp
@@ -29,15 +29,15 @@ SET(csv_import_SOURCES
 )
 
 # Add dependency on config.h
-SET_SOURCE_FILES_PROPERTIES (${csv_import_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+set_source_files_properties (${csv_import_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
 
-SET(csv_import_remote_HEADERS
+set(csv_import_remote_HEADERS
   ${CMAKE_SOURCE_DIR}/borrowed/goffice/go-charmap-sel.h
   ${CMAKE_SOURCE_DIR}/borrowed/goffice/go-optionmenu.h
   ${CMAKE_SOURCE_DIR}/borrowed/goffice/go-glib-extras.h
 )
 
-SET(csv_import_noinst_HEADERS
+set(csv_import_noinst_HEADERS
   assistant-csv-account-import.h
   assistant-csv-price-import.h
   assistant-csv-trans-import.h
@@ -58,11 +58,11 @@ SET(csv_import_noinst_HEADERS
   gnc-tokenizer-fw.hpp
 )
 
-ADD_LIBRARY(gncmod-csv-import ${csv_import_noinst_HEADERS}
+add_library(gncmod-csv-import ${csv_import_noinst_HEADERS}
   ${csv_import_remote_HEADERS} ${csv_import_remote_SOURCES} ${csv_import_SOURCES}
 )
 
-TARGET_LINK_LIBRARIES(
+target_link_libraries(
   gncmod-csv-import
   ${Boost_LIBRARIES}
   ${ICU4C_I18N_LDFLAGS}
@@ -74,24 +74,24 @@ TARGET_LINK_LIBRARIES(
   gnc-module)
 
 
-TARGET_COMPILE_DEFINITIONS(gncmod-csv-import PRIVATE -DG_LOG_DOMAIN=\"gnc.import.csv\")
+target_compile_definitions(gncmod-csv-import PRIVATE -DG_LOG_DOMAIN=\"gnc.import.csv\")
 
-TARGET_INCLUDE_DIRECTORIES(gncmod-csv-import PRIVATE
+target_include_directories(gncmod-csv-import PRIVATE
      ${ICU4C_I18N_INCLUDE_DIRS}
      ${CMAKE_SOURCE_DIR}/borrowed/goffice
 )
 
-IF (APPLE)
-  SET_TARGET_PROPERTIES (gncmod-csv-import PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
-ENDIF()
+if (APPLE)
+  set_target_properties (gncmod-csv-import PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
+endif()
 
-INSTALL(TARGETS gncmod-csv-import
+install(TARGETS gncmod-csv-import
   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
 
 # No headers to install
 
-SET_LOCAL_DIST(csv_import_DIST_local CMakeLists.txt 
+set_local_dist(csv_import_DIST_local CMakeLists.txt
         ${csv_import_SOURCES} ${csv_import_noinst_HEADERS})
-SET(csv_import_DIST ${csv_import_DIST_local} ${test_csv_import_DIST} PARENT_SCOPE)
+set(csv_import_DIST ${csv_import_DIST_local} ${test_csv_import_DIST} PARENT_SCOPE)
diff --git a/gnucash/import-export/csv-imp/test/CMakeLists.txt b/gnucash/import-export/csv-imp/test/CMakeLists.txt
index f9406e4..1c0761c 100644
--- a/gnucash/import-export/csv-imp/test/CMakeLists.txt
+++ b/gnucash/import-export/csv-imp/test/CMakeLists.txt
@@ -1,5 +1,5 @@
 
-SET(CSV_IMP_TEST_INCLUDE_DIRS
+set(CSV_IMP_TEST_INCLUDE_DIRS
   ${CMAKE_BINARY_DIR}/common # for config.h
   ${CMAKE_SOURCE_DIR}/common
   ${CMAKE_SOURCE_DIR}/libgnucash/engine
@@ -7,31 +7,31 @@ SET(CSV_IMP_TEST_INCLUDE_DIRS
   ${CMAKE_SOURCE_DIR}/lib
   ${GLIB2_INCLUDE_DIRS}
 )
-SET(CSV_IMP_TEST_LIBS gncmod-csv-import gncmod-engine test-core)
+set(CSV_IMP_TEST_LIBS gncmod-csv-import gncmod-engine test-core)
 
 # This test does not run in Win32
-IF (NOT WIN32)
-  SET(MODULEPATH ${CMAKE_SOURCE_DIR}/gnucash/import-export/csv-imp)
-  SET(gtest_csv_imp_LIBS gncmod-csv-import ${GLIB2_LDFLAGS} ${GTEST_LIB})
-  SET(gtest_csv_imp_INCLUDES
+if (NOT WIN32)
+  set(MODULEPATH ${CMAKE_SOURCE_DIR}/gnucash/import-export/csv-imp)
+  set(gtest_csv_imp_LIBS gncmod-csv-import ${GLIB2_LDFLAGS} ${GTEST_LIB})
+  set(gtest_csv_imp_INCLUDES
     ${MODULEPATH}
     ${CSV_IMP_TEST_INCLUDE_DIRS}
     ${GTEST_INCLUDE_DIR})
 
-  SET(test_tokenizer_SOURCES
+  set(test_tokenizer_SOURCES
     test-tokenizer.cpp
     ${GTEST_SRC})
-  GNC_ADD_TEST(test-tokenizer "${test_tokenizer_SOURCES}"
+  gnc_add_test(test-tokenizer "${test_tokenizer_SOURCES}"
     gtest_csv_imp_INCLUDES gtest_csv_imp_LIBS
     SRCDIR=${CMAKE_SOURCE_DIR}/gnucash/import-export/csv-imp/test)
 
-  SET(test_tx_import_SOURCES
+  set(test_tx_import_SOURCES
     test-tx-import.cpp
     ${GTEST_SRC})
-  GNC_ADD_TEST(test-tx_import "${test_tx_import_SOURCES}"
+  gnc_add_test(test-tx_import "${test_tx_import_SOURCES}"
     gtest_csv_imp_INCLUDES gtest_csv_imp_LIBS)
-ENDIF()
+endif()
 
-SET_DIST_LIST(test_csv_import_DIST CMakeLists.txt 
+set_dist_list(test_csv_import_DIST CMakeLists.txt
     test-tx-import.cpp test-tokenizer.cpp
     sample1.csv ${test_csv_imp_SOURCES})
diff --git a/gnucash/import-export/customer-import/CMakeLists.txt b/gnucash/import-export/customer-import/CMakeLists.txt
index 9e7dcaf..292eaf1 100644
--- a/gnucash/import-export/customer-import/CMakeLists.txt
+++ b/gnucash/import-export/customer-import/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(customer_import_SOURCES
+set(customer_import_SOURCES
   gnc-plugin-customer-import.c
   gncmod-customer-import.c
   dialog-customer-import-gui.c
@@ -6,35 +6,35 @@ SET(customer_import_SOURCES
 )
 
 # Add dependency on config.h
-SET_SOURCE_FILES_PROPERTIES (${customer_import_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+set_source_files_properties (${customer_import_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
 
 
-SET(customer_import_noinst_HEADERS
+set(customer_import_noinst_HEADERS
   gnc-plugin-customer-import.h
   dialog-customer-import-gui.h
   dialog-customer-import.h
 )
 
-ADD_LIBRARY(gncmod-customer-import ${customer_import_SOURCES} ${customer_input_noinst_HEADERS})
+add_library(gncmod-customer-import ${customer_import_SOURCES} ${customer_input_noinst_HEADERS})
 
-TARGET_LINK_LIBRARIES(gncmod-customer-import gnc-gnome gncmod-gnome-utils gncmod-app-utils
+target_link_libraries(gncmod-customer-import gnc-gnome gncmod-gnome-utils gncmod-app-utils
      gncmod-engine gnc-core-utils gnc-module ${GLIB2_LDFLAGS})
 
-TARGET_INCLUDE_DIRECTORIES(gncmod-customer-import
+target_include_directories(gncmod-customer-import
   PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
   PRIVATE ${CMAKE_SOURCE_DIR}/gnucash/gnome
 )
 
-TARGET_COMPILE_DEFINITIONS(gncmod-customer-import PRIVATE -DG_LOG_DOMAIN=\"gnc.plugin.customer-import\")
+target_compile_definitions(gncmod-customer-import PRIVATE -DG_LOG_DOMAIN=\"gnc.plugin.customer-import\")
 
-IF (APPLE)
-  SET_TARGET_PROPERTIES (gncmod-customer-import PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
-ENDIF()
+if (APPLE)
+  set_target_properties (gncmod-customer-import PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
+endif()
 
-INSTALL(TARGETS gncmod-customer-import
+install(TARGETS gncmod-customer-import
   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
 # No headers to install.
 
-SET_DIST_LIST (customer_import_DIST CMakeLists.txt ${customer_import_SOURCES} ${customer_import_noinst_HEADERS})
+set_dist_list (customer_import_DIST CMakeLists.txt ${customer_import_SOURCES} ${customer_import_noinst_HEADERS})
diff --git a/gnucash/import-export/log-replay/CMakeLists.txt b/gnucash/import-export/log-replay/CMakeLists.txt
index 8009605..5fd8b0f 100644
--- a/gnucash/import-export/log-replay/CMakeLists.txt
+++ b/gnucash/import-export/log-replay/CMakeLists.txt
@@ -1,34 +1,34 @@
 
-SET(log_replay_SOURCES
+set(log_replay_SOURCES
   gnc-log-replay.c
   gnc-plugin-log-replay.c
   gncmod-log-replay.c
 )
 
 # Add dependency on config.h
-SET_SOURCE_FILES_PROPERTIES (${log_replay_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+set_source_files_properties (${log_replay_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
 
-SET(log_replay_noinst_HEADERS
+set(log_replay_noinst_HEADERS
   gnc-log-replay.h
   gnc-plugin-log-replay.h
 )
 
-ADD_LIBRARY(gncmod-log-replay ${log_replay_SOURCES} ${log_replay_noinst_HEADERS})
+add_library(gncmod-log-replay ${log_replay_SOURCES} ${log_replay_noinst_HEADERS})
 
-TARGET_LINK_LIBRARIES(gncmod-log-replay gncmod-gnome-utils gncmod-app-utils gncmod-engine
+target_link_libraries(gncmod-log-replay gncmod-gnome-utils gncmod-app-utils gncmod-engine
      gnc-core-utils gnc-module ${GTK3_LDFLAGS})
 
-TARGET_COMPILE_DEFINITIONS(gncmod-log-replay PRIVATE -DG_LOG_DOMAIN=\"gnc.import.log-replay\")
+target_compile_definitions(gncmod-log-replay PRIVATE -DG_LOG_DOMAIN=\"gnc.import.log-replay\")
 
-IF (APPLE)
-  SET_TARGET_PROPERTIES (gncmod-log-replay PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
-ENDIF()
+if (APPLE)
+  set_target_properties (gncmod-log-replay PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
+endif()
 
-INSTALL(TARGETS gncmod-log-replay
+install(TARGETS gncmod-log-replay
   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
 # No headers to install.
 
-SET_DIST_LIST(log_report_DIST CMakeLists.txt 
+set_dist_list(log_report_DIST CMakeLists.txt
         ${log_replay_SOURCES} ${log_replay_noinst_HEADERS})
diff --git a/gnucash/import-export/ofx/CMakeLists.txt b/gnucash/import-export/ofx/CMakeLists.txt
index 00baf56..ffabfd1 100644
--- a/gnucash/import-export/ofx/CMakeLists.txt
+++ b/gnucash/import-export/ofx/CMakeLists.txt
@@ -1,7 +1,7 @@
-ADD_SUBDIRECTORY(gschemas)
-ADD_SUBDIRECTORY(test)
+add_subdirectory(gschemas)
+add_subdirectory(test)
 
-SET(ofx_SOURCES
+set(ofx_SOURCES
   gnc-ofx-import.c
   gnc-ofx-kvp.c
   gncmod-ofx-import.c
@@ -9,40 +9,40 @@ SET(ofx_SOURCES
 )
 
 # Add dependency on config.h
-SET_SOURCE_FILES_PROPERTIES (${ofx_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+set_source_files_properties (${ofx_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
 
-SET(ofx_noinst_HEADERS
+set(ofx_noinst_HEADERS
   gnc-ofx-import.h
   gnc-ofx-kvp.h
   gnc-plugin-ofx.h
 )
 
-SET(ofx_UI gnc-plugin-ofx-ui.xml)
+set(ofx_UI gnc-plugin-ofx-ui.xml)
 
-IF (WITH_OFX)
-  ADD_LIBRARY(gncmod-ofx ${ofx_SOURCES} ${ofx_noinst_HEADERS})
+if (WITH_OFX)
+  add_library(gncmod-ofx ${ofx_SOURCES} ${ofx_noinst_HEADERS})
 
-  TARGET_LINK_LIBRARIES(gncmod-ofx gncmod-generic-import gncmod-engine gncmod-app-utils gnc-core-utils
+  target_link_libraries(gncmod-ofx gncmod-generic-import gncmod-engine gncmod-app-utils gnc-core-utils
                     gncmod-gnome-utils ${LIBOFX_LDFLAGS})
 
-  TARGET_COMPILE_DEFINITIONS(gncmod-ofx PRIVATE -DG_LOG_DOMAIN=\"gnc.import.ofx\")
+  target_compile_definitions(gncmod-ofx PRIVATE -DG_LOG_DOMAIN=\"gnc.import.ofx\")
 
-  TARGET_INCLUDE_DIRECTORIES(gncmod-ofx PRIVATE ${LIBOFX_INCLUDE_DIRS})
+  target_include_directories(gncmod-ofx PRIVATE ${LIBOFX_INCLUDE_DIRS})
 
-IF (APPLE)
-  SET_TARGET_PROPERTIES (gncmod-ofx PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
-ENDIF()
+if (APPLE)
+  set_target_properties (gncmod-ofx PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
+endif()
 
-  INSTALL(TARGETS gncmod-ofx
+  install(TARGETS gncmod-ofx
   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
 
-  INSTALL(FILES ${ofx_UI} DESTINATION  ${CMAKE_INSTALL_DATADIR}/gnucash/ui)
+  install(FILES ${ofx_UI} DESTINATION  ${CMAKE_INSTALL_DATADIR}/gnucash/ui)
 
-  FILE(COPY ${ofx_UI}
+  file(COPY ${ofx_UI}
     DESTINATION ${DATADIR_BUILD}/gnucash/ui)
-ENDIF()
+endif()
 
-SET_LOCAL_DIST(ofx_DIST_local CMakeLists.txt migratable-prefs-ofx.xml ${ofx_SOURCES} ${ofx_noinst_HEADERS} ${ofx_UI})
-SET(ofx_DIST ${ofx_DIST_local} ${test_ofx_DIST} ${ofx_gschema_DIST} PARENT_SCOPE)
+set_local_dist(ofx_DIST_local CMakeLists.txt migratable-prefs-ofx.xml ${ofx_SOURCES} ${ofx_noinst_HEADERS} ${ofx_UI})
+set(ofx_DIST ${ofx_DIST_local} ${test_ofx_DIST} ${ofx_gschema_DIST} PARENT_SCOPE)
diff --git a/gnucash/import-export/ofx/gschemas/CMakeLists.txt b/gnucash/import-export/ofx/gschemas/CMakeLists.txt
index 89bcea4..7625963 100644
--- a/gnucash/import-export/ofx/gschemas/CMakeLists.txt
+++ b/gnucash/import-export/ofx/gschemas/CMakeLists.txt
@@ -1,8 +1,8 @@
 
-IF (WITH_OFX)
+if (WITH_OFX)
   set(ofx_GSCHEMA org.gnucash.dialogs.import.ofx.gschema.xml)
 
   add_gschema_targets("${ofx_GSCHEMA}")
-ENDIF (WITH_OFX)
+endif (WITH_OFX)
 
-SET_DIST_LIST(ofx_gschema_DIST CMakeLists.txt org.gnucash.dialogs.import.ofx.gschema.xml.in)
+set_dist_list(ofx_gschema_DIST CMakeLists.txt org.gnucash.dialogs.import.ofx.gschema.xml.in)
diff --git a/gnucash/import-export/ofx/test/CMakeLists.txt b/gnucash/import-export/ofx/test/CMakeLists.txt
index 859f87f..8b1b7b9 100644
--- a/gnucash/import-export/ofx/test/CMakeLists.txt
+++ b/gnucash/import-export/ofx/test/CMakeLists.txt
@@ -1,10 +1,10 @@
 
 
-IF(WITH_OFX)
-  SET(OFX_TEST_INCLUDE_DIRS ${LIBOFX_INCLUDE_DIRS})
-  SET(OFX_TEST_LIBS)
+if(WITH_OFX)
+  set(OFX_TEST_INCLUDE_DIRS ${LIBOFX_INCLUDE_DIRS})
+  set(OFX_TEST_LIBS)
 
-  GNC_ADD_TEST(test-link-ofx test-link.c OFX_TEST_INCLUDE_DIRS OFX_TEST_LIBS)
-ENDIF(WITH_OFX)
+  gnc_add_test(test-link-ofx test-link.c OFX_TEST_INCLUDE_DIRS OFX_TEST_LIBS)
+endif(WITH_OFX)
 
-SET_DIST_LIST(test_ofx_DIST CMakeLists.txt test-link.c)
\ No newline at end of file
+set_dist_list(test_ofx_DIST CMakeLists.txt test-link.c)
\ No newline at end of file
diff --git a/gnucash/import-export/qif-imp/CMakeLists.txt b/gnucash/import-export/qif-imp/CMakeLists.txt
index ed197ef..02e2aeb 100644
--- a/gnucash/import-export/qif-imp/CMakeLists.txt
+++ b/gnucash/import-export/qif-imp/CMakeLists.txt
@@ -1,8 +1,8 @@
 # CMakeLists.txt for gnucash/import_export/qif-imp
 
-ADD_SUBDIRECTORY(test)
+add_subdirectory(test)
 
-SET (qif_import_SOURCES
+set (qif_import_SOURCES
     dialog-account-picker.c
     assistant-qif-import.c
     gnc-plugin-qif-import.c
@@ -10,25 +10,25 @@ SET (qif_import_SOURCES
 )
 
 # Add dependency on config.h
-SET_SOURCE_FILES_PROPERTIES (${qif_import_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+set_source_files_properties (${qif_import_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
 
-SET (qif_import_noinst_HEADERS
+set (qif_import_noinst_HEADERS
     dialog-account-picker.h
     assistant-qif-import.h
     gnc-plugin-qif-import.h
 )
 
-ADD_LIBRARY	(gncmod-qif-import ${qif_import_SOURCES} ${qif_import_noinst_HEADERS})
+add_library	(gncmod-qif-import ${qif_import_SOURCES} ${qif_import_noinst_HEADERS})
 
-TARGET_LINK_LIBRARIES(gncmod-qif-import gncmod-app-utils gncmod-gnome-utils gnc-gnome)
+target_link_libraries(gncmod-qif-import gncmod-app-utils gncmod-gnome-utils gnc-gnome)
 
-TARGET_COMPILE_DEFINITIONS(gncmod-qif-import PRIVATE -DG_LOG_DOMAIN=\"gnc.import.qif.import\")
+target_compile_definitions(gncmod-qif-import PRIVATE -DG_LOG_DOMAIN=\"gnc.import.qif.import\")
 
-IF (APPLE)
-  SET_TARGET_PROPERTIES (gncmod-qif-import PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
-ENDIF()
+if (APPLE)
+  set_target_properties (gncmod-qif-import PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
+endif()
 
-INSTALL(TARGETS gncmod-qif-import
+install(TARGETS gncmod-qif-import
   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
@@ -37,11 +37,11 @@ INSTALL(TARGETS gncmod-qif-import
 
 # Scheme
 
-SET (qif_import_SCHEME_0
+set (qif_import_SCHEME_0
   string.scm
   )
 
-SET (qif_import_SCHEME
+set (qif_import_SCHEME
   qif-dialog-utils.scm
   qif-file.scm
   qif-guess-map.scm
@@ -53,11 +53,11 @@ SET (qif_import_SCHEME
   qif-import.scm # yes, included in both SETs
 )
 
-SET(qif_import_SCHEME_2
+set(qif_import_SCHEME_2
   qif-import.scm
 )
 
-SET(GUILE_DEPENDS
+set(GUILE_DEPENDS
   gncmod-qif-import
   gnc-gnome
   scm-core-utils
@@ -68,27 +68,27 @@ SET(GUILE_DEPENDS
   scm-gnome-utils
   )
 
-GNC_ADD_SCHEME_TARGETS(scm-qif-import-0
+gnc_add_scheme_targets(scm-qif-import-0
   "${qif_import_SCHEME_0}"
   "gnucash/import-export"
   "${GUILE_DEPENDS}"
   FALSE
 )
 
-GNC_ADD_SCHEME_TARGETS(scm-qif-import-2
+gnc_add_scheme_targets(scm-qif-import-2
   "${qif_import_SCHEME_2}"
   "gnucash/import-export"
   "${GUILE_DEPENDS}"
   FALSE
 )
 
-GNC_ADD_SCHEME_TARGETS(scm-qif-import
+gnc_add_scheme_targets(scm-qif-import
   "${qif_import_SCHEME}"
   "qif-import"
   "${GUILE_DEPENDS};scm-qif-import-0"
   FALSE
 )
 
-SET_LOCAL_DIST(qif_import_DIST_local CMakeLists.txt file-format.txt ${qif_import_SOURCES} ${qif_import_noinst_HEADERS}
+set_local_dist(qif_import_DIST_local CMakeLists.txt file-format.txt ${qif_import_SOURCES} ${qif_import_noinst_HEADERS}
         ${qif_import_SCHEME_0} ${qif_import_SCHEME} ${qif_import_SCHEME_2})
-SET(qif_import_DIST ${qif_import_DIST_local} ${test_qif_import_DIST} PARENT_SCOPE)
+set(qif_import_DIST ${qif_import_DIST_local} ${test_qif_import_DIST} PARENT_SCOPE)
diff --git a/gnucash/import-export/qif-imp/test/CMakeLists.txt b/gnucash/import-export/qif-imp/test/CMakeLists.txt
index f98286b..db9cba2 100644
--- a/gnucash/import-export/qif-imp/test/CMakeLists.txt
+++ b/gnucash/import-export/qif-imp/test/CMakeLists.txt
@@ -1,8 +1,8 @@
 
 
-SET(QIF_IMP_TEST_INCLUDE_DIRS)
-SET(QIF_IMP_TEST_LIBS)
+set(QIF_IMP_TEST_INCLUDE_DIRS)
+set(QIF_IMP_TEST_LIBS)
 
-GNC_ADD_TEST(test-link-qif-imp test-link.c QIF_IMP_TEST_INCLUDE_DIRS QIF_IMP_TEST_LIBS)
+gnc_add_test(test-link-qif-imp test-link.c QIF_IMP_TEST_INCLUDE_DIRS QIF_IMP_TEST_LIBS)
 
-SET_DIST_LIST(test_qif_import_DIST CMakeLists.txt test-link.c)
\ No newline at end of file
+set_dist_list(test_qif_import_DIST CMakeLists.txt test-link.c)
\ No newline at end of file
diff --git a/gnucash/import-export/qif/CMakeLists.txt b/gnucash/import-export/qif/CMakeLists.txt
index 32c007b..608e14c 100644
--- a/gnucash/import-export/qif/CMakeLists.txt
+++ b/gnucash/import-export/qif/CMakeLists.txt
@@ -1,8 +1,8 @@
 
 #Tests for this directory are not run.
-ADD_SUBDIRECTORY(test)
+add_subdirectory(test)
 
-SET(qif_SOURCES
+set(qif_SOURCES
   qif-context.c
   qif-defaults.c
   qif-file.c
@@ -11,9 +11,9 @@ SET(qif_SOURCES
 )
 
 # Add dependency on config.h
-SET_SOURCE_FILES_PROPERTIES (${qif_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+set_source_files_properties (${qif_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
 
-SET(qif_noinst_HEADERS
+set(qif_noinst_HEADERS
   qif-file.h
   qif-defaults.h
   qif-import-p.h
@@ -23,21 +23,21 @@ SET(qif_noinst_HEADERS
   qif-parse.h
 )
 
-ADD_LIBRARY(gncmod-qif ${qif_noinst_HEADERS} ${qif_SOURCES})
+add_library(gncmod-qif ${qif_noinst_HEADERS} ${qif_SOURCES})
 
-TARGET_LINK_LIBRARIES(gncmod-qif gncmod-generic-import gncmod-engine ${GLIB2_LDFLAGS})
+target_link_libraries(gncmod-qif gncmod-generic-import gncmod-engine ${GLIB2_LDFLAGS})
 
-TARGET_COMPILE_DEFINITIONS(gncmod-qif PRIVATE -DG_LOG_DOMAIN=\"gnc.import.qif\")
+target_compile_definitions(gncmod-qif PRIVATE -DG_LOG_DOMAIN=\"gnc.import.qif\")
 
-IF (APPLE)
-  SET_TARGET_PROPERTIES (gncmod-qif PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
-ENDIF()
+if (APPLE)
+  set_target_properties (gncmod-qif PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
+endif()
 
-INSTALL(TARGETS gncmod-qif
+install(TARGETS gncmod-qif
   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
 # No headers to install.
 
-SET_LOCAL_DIST(qif_DIST_local CMakeLists.txt ${qif_SOURCES} ${qif_noinst_HEADERS})
-SET(qif_DIST ${qif_DIST_local} ${test_qif_DIST} PARENT_SCOPE)
+set_local_dist(qif_DIST_local CMakeLists.txt ${qif_SOURCES} ${qif_noinst_HEADERS})
+set(qif_DIST ${qif_DIST_local} ${test_qif_DIST} PARENT_SCOPE)
diff --git a/gnucash/import-export/qif/test/CMakeLists.txt b/gnucash/import-export/qif/test/CMakeLists.txt
index fa7f453..d874ca3 100644
--- a/gnucash/import-export/qif/test/CMakeLists.txt
+++ b/gnucash/import-export/qif/test/CMakeLists.txt
@@ -1,18 +1,18 @@
 
-SET(QIF_TEST_INCLUDE_DIRS
+set(QIF_TEST_INCLUDE_DIRS
   ${CMAKE_BINARY_DIR}/common
   ${CMAKE_SOURCE_DIR}/gnucash/import-export/qif
   ${CMAKE_SOURCE_DIR}/libgnucash/engine
   ${CMAKE_SOURCE_DIR}/common/test-core
   ${GLIB2_INCLUDE_DIRS}
 )
-SET(QIF_TEST_LIBS gncmod-qif test-core)
+set(QIF_TEST_LIBS gncmod-qif test-core)
 
-IF (FALSE)
+if (FALSE)
   # Tests for this directory are not run.
-  GNC_ADD_TEST(test-link-qif test-link.c QIF_TEST_INCLUDE_DIRS QIF_TEST_LIBS)
-  GNC_ADD_TEST(test-qif test-qif.c QIF_TEST_INCLUDE_DIRS QIF_TEST_LIBS
+  gnc_add_test(test-link-qif test-link.c QIF_TEST_INCLUDE_DIRS QIF_TEST_LIBS)
+  gnc_add_test(test-qif test-qif.c QIF_TEST_INCLUDE_DIRS QIF_TEST_LIBS
     GNC_TEST_FILES=${CMAKE_CURRENT_SOURCE_DIR}/test-files)
-ENDIF()
+endif()
 
-SET_DIST_LIST(test_qif_DIST CMakeLists.txt test-link.c test-qif.c test-files/test-1-bank-txn.qif)
+set_dist_list(test_qif_DIST CMakeLists.txt test-link.c test-qif.c test-files/test-1-bank-txn.qif)
diff --git a/gnucash/import-export/test/CMakeLists.txt b/gnucash/import-export/test/CMakeLists.txt
index b6fd39a..11e92a6 100644
--- a/gnucash/import-export/test/CMakeLists.txt
+++ b/gnucash/import-export/test/CMakeLists.txt
@@ -1,6 +1,6 @@
 
 
-SET(GENERIC_IMPORT_TEST_INCLUDE_DIRS
+set(GENERIC_IMPORT_TEST_INCLUDE_DIRS
   ${CMAKE_BINARY_DIR}/common # for config.h
   ${CMAKE_SOURCE_DIR}/libgnucash/gnc-module
   ${CMAKE_SOURCE_DIR}/gnucash/import-export
@@ -11,16 +11,16 @@ SET(GENERIC_IMPORT_TEST_INCLUDE_DIRS
   ${GUILE_INCLUDE_DIRS}
 )
 
-SET(GENERIC_IMPORT_TEST_LIBS gncmod-generic-import gncmod-test-engine test-core)
+set(GENERIC_IMPORT_TEST_LIBS gncmod-generic-import gncmod-test-engine test-core)
 
-GNC_ADD_TEST_WITH_GUILE(test-import-parse test-import-parse.c
+gnc_add_test_with_guile(test-import-parse test-import-parse.c
   GENERIC_IMPORT_TEST_INCLUDE_DIRS GENERIC_IMPORT_TEST_LIBS
 )
-GNC_ADD_TEST(test-link-generic-import test-link.c
+gnc_add_test(test-link-generic-import test-link.c
   GENERIC_IMPORT_TEST_INCLUDE_DIRS GENERIC_IMPORT_TEST_LIBS
 )
-GNC_ADD_TEST(test-import-pending-matches test-import-pending-matches.cpp
+gnc_add_test(test-import-pending-matches test-import-pending-matches.cpp
   GENERIC_IMPORT_TEST_INCLUDE_DIRS GENERIC_IMPORT_TEST_LIBS
 )
-SET_DIST_LIST(test_generic_import_DIST CMakeLists.txt 
+set_dist_list(test_generic_import_DIST CMakeLists.txt
         test-link.c test-import-parse.c test-import-pending-matches.cpp)
diff --git a/gnucash/python/CMakeLists.txt b/gnucash/python/CMakeLists.txt
index a6f689a..f617858 100644
--- a/gnucash/python/CMakeLists.txt
+++ b/gnucash/python/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(pycons_DATA
+set(pycons_DATA
   pycons/__init__.py
   pycons/console.py
   pycons/ishell.py
@@ -8,15 +8,15 @@ SET(pycons_DATA
   pycons/simple_plot.py
 )
 
-IF (WITH_PYTHON)
-  INSTALL(FILES ${pycons_DATA} DESTINATION  ${CMAKE_INSTALL_DATADIR}/gnucash/python/pycons)
-  INSTALL(FILES init.py DESTINATION  ${CMAKE_INSTALL_DATADIR}/gnucash/python)
+if (WITH_PYTHON)
+  install(FILES ${pycons_DATA} DESTINATION  ${CMAKE_INSTALL_DATADIR}/gnucash/python/pycons)
+  install(FILES init.py DESTINATION  ${CMAKE_INSTALL_DATADIR}/gnucash/python)
 
-  FILE(COPY ${pycons_DATA} DESTINATION ${CMAKE_BINARY_DIR}/share/gnucash/python/pycons)
-  FILE(COPY init.py DESTINATION ${CMAKE_BINARY_DIR}/share/gnucash/python)
-ENDIF(WITH_PYTHON)
+  file(COPY ${pycons_DATA} DESTINATION ${CMAKE_BINARY_DIR}/share/gnucash/python/pycons)
+  file(COPY init.py DESTINATION ${CMAKE_BINARY_DIR}/share/gnucash/python)
+endif(WITH_PYTHON)
 
-SET_LOCAL_DIST(pycons_DIST ${pycons_DATA})
-SET_LOCAL_DIST(python_DIST_local CMakeLists.txt init.py)
-SET(python_DIST ${python_DIST_local} ${pycons_DIST} PARENT_SCOPE)
+set_local_dist(pycons_DIST ${pycons_DATA})
+set_local_dist(python_DIST_local CMakeLists.txt init.py)
+set(python_DIST ${python_DIST_local} ${pycons_DIST} PARENT_SCOPE)
 
diff --git a/gnucash/register/CMakeLists.txt b/gnucash/register/CMakeLists.txt
index 28192dd..3b56026 100644
--- a/gnucash/register/CMakeLists.txt
+++ b/gnucash/register/CMakeLists.txt
@@ -1,6 +1,6 @@
-ADD_SUBDIRECTORY(ledger-core)
-ADD_SUBDIRECTORY(register-core)
-ADD_SUBDIRECTORY(register-gnome)
+add_subdirectory(ledger-core)
+add_subdirectory(register-core)
+add_subdirectory(register-gnome)
 
-SET_LOCAL_DIST(register_DIST_local CMakeLists.txt )
-SET(register_DIST ${register_DIST_local} ${ledger_core_DIST} ${register_core_DIST} ${register_gnome_DIST} PARENT_SCOPE)
\ No newline at end of file
+set_local_dist(register_DIST_local CMakeLists.txt )
+set(register_DIST ${register_DIST_local} ${ledger_core_DIST} ${register_core_DIST} ${register_gnome_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/gnucash/register/ledger-core/CMakeLists.txt b/gnucash/register/ledger-core/CMakeLists.txt
index 9826f90..ea26a99 100644
--- a/gnucash/register/ledger-core/CMakeLists.txt
+++ b/gnucash/register/ledger-core/CMakeLists.txt
@@ -1,7 +1,7 @@
 
-ADD_SUBDIRECTORY(test)
+add_subdirectory(test)
 
-SET (ledger_core_SOURCES
+set (ledger_core_SOURCES
   gnc-ledger-display.c
   gnc-ledger-display2.c
   gncmod-ledger-core.c
@@ -21,7 +21,7 @@ SET (ledger_core_SOURCES
 )
 
 
-SET (ledger_core_HEADERS
+set (ledger_core_HEADERS
   gnc-ledger-display.h
   gnc-ledger-display2.h
   split-register.h
@@ -38,32 +38,32 @@ SET (ledger_core_HEADERS
 )
 
 # Add dependency on config.h
-SET_SOURCE_FILES_PROPERTIES (${ledger_core_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+set_source_files_properties (${ledger_core_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
 
-ADD_LIBRARY (gncmod-ledger-core ${ledger_core_SOURCES} ${ledger_core_HEADERS})
+add_library (gncmod-ledger-core ${ledger_core_SOURCES} ${ledger_core_HEADERS})
 
-TARGET_LINK_LIBRARIES(gncmod-ledger-core gncmod-register-gnome gncmod-register-core gncmod-gnome-utils
+target_link_libraries(gncmod-ledger-core gncmod-register-gnome gncmod-register-core gncmod-gnome-utils
         gncmod-engine gnc-core-utils ${GTK3_LDFLAGS})
 
-TARGET_COMPILE_DEFINITIONS (gncmod-ledger-core PRIVATE -DG_LOG_DOMAIN=\"gnc.register.ledger\")
+target_compile_definitions (gncmod-ledger-core PRIVATE -DG_LOG_DOMAIN=\"gnc.register.ledger\")
 
-TARGET_INCLUDE_DIRECTORIES(gncmod-ledger-core
+target_include_directories(gncmod-ledger-core
     PUBLIC
         ${CMAKE_CURRENT_SOURCE_DIR}
         ${CMAKE_BINARY_DIR}/gnucash/gnome-utils # for gnc-warnings.h
 )
 
-IF (APPLE)
-  SET_TARGET_PROPERTIES (gncmod-ledger-core PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
-ENDIF()
+if (APPLE)
+  set_target_properties (gncmod-ledger-core PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
+endif()
 
-INSTALL(TARGETS gncmod-ledger-core
+install(TARGETS gncmod-ledger-core
   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
 # No headers to install
 
 
-SET_LOCAL_DIST(ledger_core_DIST_local CMakeLists.txt ${ledger_core_SOURCES} ${ledger_core_HEADERS})
-SET(ledger_core_DIST ${ledger_core_DIST_local} ${test_ledger_core_DIST} PARENT_SCOPE)
+set_local_dist(ledger_core_DIST_local CMakeLists.txt ${ledger_core_SOURCES} ${ledger_core_HEADERS})
+set(ledger_core_DIST ${ledger_core_DIST_local} ${test_ledger_core_DIST} PARENT_SCOPE)
 
diff --git a/gnucash/register/ledger-core/test/CMakeLists.txt b/gnucash/register/ledger-core/test/CMakeLists.txt
index 8dbd7d1..31dd6b3 100644
--- a/gnucash/register/ledger-core/test/CMakeLists.txt
+++ b/gnucash/register/ledger-core/test/CMakeLists.txt
@@ -1,9 +1,9 @@
 
-SET(LEDGER_CORE_TEST_INCLUDE_DIRS "")
-SET(LEDGER_CORE_TEST_LIBS)
+set(LEDGER_CORE_TEST_INCLUDE_DIRS "")
+set(LEDGER_CORE_TEST_LIBS)
 
-GNC_ADD_TEST(test-link-module-ledger-core test-link-module.c
+gnc_add_test(test-link-module-ledger-core test-link-module.c
   LEDGER_CORE_TEST_INCLUDE_DIRS LEDGER_CORE_TEST_LIBS
 )
 
-SET_DIST_LIST(test_ledger_core_DIST CMakeLists.txt test-link-module.c)
\ No newline at end of file
+set_dist_list(test_ledger_core_DIST CMakeLists.txt test-link-module.c)
\ No newline at end of file
diff --git a/gnucash/register/register-core/CMakeLists.txt b/gnucash/register/register-core/CMakeLists.txt
index a423122..381e0de 100644
--- a/gnucash/register/register-core/CMakeLists.txt
+++ b/gnucash/register/register-core/CMakeLists.txt
@@ -1,6 +1,6 @@
-ADD_SUBDIRECTORY(test)
+add_subdirectory(test)
 
-SET (register_core_SOURCES
+set (register_core_SOURCES
   gncmod-register-core.c
   basiccell.c
   cell-factory.c
@@ -17,10 +17,10 @@ SET (register_core_SOURCES
   table-control.c
   table-layout.c
   table-model.c
-)  
+)
 
 
-SET (register_core_HEADERS
+set (register_core_HEADERS
   basiccell.h
   cell-factory.h
   cellblock.h
@@ -41,27 +41,27 @@ SET (register_core_HEADERS
 )
 
 # Add dependency on config.h
-SET_SOURCE_FILES_PROPERTIES (${register_core_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+set_source_files_properties (${register_core_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
 
-ADD_LIBRARY (gncmod-register-core ${register_core_SOURCES} ${register_core_HEADERS})
+add_library (gncmod-register-core ${register_core_SOURCES} ${register_core_HEADERS})
 
-TARGET_LINK_LIBRARIES(gncmod-register-core gncmod-gnome-utils gncmod-app-utils ${GMODULE_LDFLAGS})
+target_link_libraries(gncmod-register-core gncmod-gnome-utils gncmod-app-utils ${GMODULE_LDFLAGS})
 
-TARGET_COMPILE_DEFINITIONS (gncmod-register-core PRIVATE -DG_LOG_DOMAIN=\"gnc.register.core\")
+target_compile_definitions (gncmod-register-core PRIVATE -DG_LOG_DOMAIN=\"gnc.register.core\")
 
-TARGET_INCLUDE_DIRECTORIES(gncmod-register-core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
+target_include_directories(gncmod-register-core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
 
-IF (APPLE)
-  SET_TARGET_PROPERTIES (gncmod-register-core PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
-ENDIF()
+if (APPLE)
+  set_target_properties (gncmod-register-core PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
+endif()
 
-INSTALL(TARGETS gncmod-register-core
+install(TARGETS gncmod-register-core
   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
 
-INSTALL(FILES ${register_core_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gnucash)
+install(FILES ${register_core_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gnucash)
 
-SET_LOCAL_DIST(register_core_DIST_local CMakeLists.txt README ${register_core_SOURCES} ${register_core_HEADERS})
+set_local_dist(register_core_DIST_local CMakeLists.txt README ${register_core_SOURCES} ${register_core_HEADERS})
 
-SET(register_core_DIST ${register_core_DIST_local} ${test_register_core_DIST} PARENT_SCOPE)
+set(register_core_DIST ${register_core_DIST_local} ${test_register_core_DIST} PARENT_SCOPE)
diff --git a/gnucash/register/register-core/test/CMakeLists.txt b/gnucash/register/register-core/test/CMakeLists.txt
index 90ea60d..bbed19b 100644
--- a/gnucash/register/register-core/test/CMakeLists.txt
+++ b/gnucash/register/register-core/test/CMakeLists.txt
@@ -1,9 +1,9 @@
 
-SET(REGISTER_CORE_TEST_INCLUDE_DIRS "")
-SET(REGISTER_CORE_TEST_LIBS)
+set(REGISTER_CORE_TEST_INCLUDE_DIRS "")
+set(REGISTER_CORE_TEST_LIBS)
 
-GNC_ADD_TEST(test-link-module-register-core test-link-module.c
+gnc_add_test(test-link-module-register-core test-link-module.c
   REGISTER_CORE_TEST_INCLUDE_DIRS REGISTER_CORE_TEST_LIBS
 )
 
-SET_DIST_LIST(test_register_core_DIST CMakeLists.txt test-link-module.c)
\ No newline at end of file
+set_dist_list(test_register_core_DIST CMakeLists.txt test-link-module.c)
\ No newline at end of file
diff --git a/gnucash/register/register-gnome/CMakeLists.txt b/gnucash/register/register-gnome/CMakeLists.txt
index e057210..acfdd89 100644
--- a/gnucash/register/register-gnome/CMakeLists.txt
+++ b/gnucash/register/register-gnome/CMakeLists.txt
@@ -1,4 +1,4 @@
-ADD_SUBDIRECTORY(test)
+add_subdirectory(test)
 
 #GTK before 3.14 didn't have GDK_MODIFIER_INTENT_DEFAULT_MOD_MASK
 check_symbol_exists(GDK_MODIFIER_INTENT_DEFAULT_MOD_MASK gdk/gdktypes.h have_mod_mask)
@@ -10,7 +10,7 @@ else (MAC_INTEGRATION)
 endif(MAC_INTEGRATION)
 endif(NOT have_mod_mask)
 
-SET (register_gnome_SOURCES
+set (register_gnome_SOURCES
   gncmod-register-gnome.c
   combocell-gnome.c
   datecell-gnome.c
@@ -31,7 +31,7 @@ SET (register_gnome_SOURCES
   table-gnome.c
 )
 
-SET (register_gnome_noinst_HEADERS
+set (register_gnome_noinst_HEADERS
   formulacell-gnome.h
   gnucash-color.h
   gnucash-cursor.h
@@ -50,29 +50,29 @@ SET (register_gnome_noinst_HEADERS
 )
 
 # Add dependency on config.h
-SET_SOURCE_FILES_PROPERTIES (${register_gnome_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+set_source_files_properties (${register_gnome_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
 
-ADD_LIBRARY (gncmod-register-gnome ${register_gnome_SOURCES} ${register_gnome_noinst_HEADERS})
+add_library (gncmod-register-gnome ${register_gnome_SOURCES} ${register_gnome_noinst_HEADERS})
 
-TARGET_LINK_LIBRARIES(gncmod-register-gnome gncmod-register-core ${GTK3_LDFLAGS})
+target_link_libraries(gncmod-register-gnome gncmod-register-core ${GTK3_LDFLAGS})
 
-TARGET_COMPILE_DEFINITIONS(gncmod-register-gnome PRIVATE -DG_LOG_DOMAIN=\"gnc.register.gnome\")
+target_compile_definitions(gncmod-register-gnome PRIVATE -DG_LOG_DOMAIN=\"gnc.register.gnome\")
 
-TARGET_INCLUDE_DIRECTORIES(gncmod-register-gnome
+target_include_directories(gncmod-register-gnome
     PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
     PRIVATE ${CMAKE_SOURCE_DIR}/gnucash/register/ledger-core ${GTK3_INCLUDE_DIRS}
 )
 
-IF (APPLE)
-  SET_TARGET_PROPERTIES (gncmod-register-gnome PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
-ENDIF()
+if (APPLE)
+  set_target_properties (gncmod-register-gnome PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
+endif()
 
-INSTALL(TARGETS gncmod-register-gnome
+install(TARGETS gncmod-register-gnome
   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
 # No headers to install
 
-SET_LOCAL_DIST(register_gnome_DIST_local CMakeLists.txt ${register_gnome_SOURCES} ${register_gnome_noinst_HEADERS})
+set_local_dist(register_gnome_DIST_local CMakeLists.txt ${register_gnome_SOURCES} ${register_gnome_noinst_HEADERS})
 
-SET(register_gnome_DIST ${register_gnome_DIST_local} ${test_register_gnome_DIST} PARENT_SCOPE)
+set(register_gnome_DIST ${register_gnome_DIST_local} ${test_register_gnome_DIST} PARENT_SCOPE)
diff --git a/gnucash/register/register-gnome/test/CMakeLists.txt b/gnucash/register/register-gnome/test/CMakeLists.txt
index d712d81..8870c26 100644
--- a/gnucash/register/register-gnome/test/CMakeLists.txt
+++ b/gnucash/register/register-gnome/test/CMakeLists.txt
@@ -1,9 +1,9 @@
 
-SET(REGISTER_GNOME_TEST_INCLUDE_DIRS "")
-SET(REGISTER_GNOME_TEST_LIBS)
+set(REGISTER_GNOME_TEST_INCLUDE_DIRS "")
+set(REGISTER_GNOME_TEST_LIBS)
 
-GNC_ADD_TEST(test-link-module-register-gnome test-link-module.c
+gnc_add_test(test-link-module-register-gnome test-link-module.c
   REGISTER_GNOME_TEST_INCLUDE_DIRS REGISTER_GNOME_TEST_LIBS
 )
 
-SET_DIST_LIST(test_register_gnome_DIST CMakeLists.txt test-link-module.c)
\ No newline at end of file
+set_dist_list(test_register_gnome_DIST CMakeLists.txt test-link-module.c)
\ No newline at end of file
diff --git a/gnucash/report/CMakeLists.txt b/gnucash/report/CMakeLists.txt
index fb13c23..c271483 100644
--- a/gnucash/report/CMakeLists.txt
+++ b/gnucash/report/CMakeLists.txt
@@ -1,13 +1,13 @@
 
-ADD_SUBDIRECTORY(business-reports)
-ADD_SUBDIRECTORY(jqplot)
-ADD_SUBDIRECTORY(locale-specific)
-ADD_SUBDIRECTORY(report-gnome)
-ADD_SUBDIRECTORY(report-system)
-ADD_SUBDIRECTORY(standard-reports)
-ADD_SUBDIRECTORY(stylesheets)
-ADD_SUBDIRECTORY(utility-reports)
+add_subdirectory(business-reports)
+add_subdirectory(jqplot)
+add_subdirectory(locale-specific)
+add_subdirectory(report-gnome)
+add_subdirectory(report-system)
+add_subdirectory(standard-reports)
+add_subdirectory(stylesheets)
+add_subdirectory(utility-reports)
 
-SET_LOCAL_DIST(report_DIST_local CMakeLists.txt )
-SET(report_DIST ${report_DIST_local} ${business_reports_DIST} ${jqplot_DIST} ${locale_specific_DIST} ${report_gnome_DIST} ${report_system_DIST}
+set_local_dist(report_DIST_local CMakeLists.txt )
+set(report_DIST ${report_DIST_local} ${business_reports_DIST} ${jqplot_DIST} ${locale_specific_DIST} ${report_gnome_DIST} ${report_system_DIST}
                 ${standard_reports_DIST} ${stylesheets_DIST} ${utility_reports_DIST}  PARENT_SCOPE)
\ No newline at end of file
diff --git a/gnucash/report/business-reports/CMakeLists.txt b/gnucash/report/business-reports/CMakeLists.txt
index bd8946e..ee02ff4 100644
--- a/gnucash/report/business-reports/CMakeLists.txt
+++ b/gnucash/report/business-reports/CMakeLists.txt
@@ -1,5 +1,5 @@
 
-SET (business_reports_SCHEME
+set (business_reports_SCHEME
   aging.scm
   customer-summary.scm
   easy-invoice.scm
@@ -15,7 +15,7 @@ SET (business_reports_SCHEME
   business-reports.scm
 )
 
-SET(business_reports_DATA
+set(business_reports_DATA
   taxinvoice.eguile.scm
   taxinvoice.css
   receipt.eguile.scm
@@ -24,8 +24,8 @@ SET(business_reports_DATA
   balsheet-eg.eguile.scm
 )
 
-SET(GUILE_OUTPUT_DIR   gnucash/report)
-SET(GUILE_DEPENDS
+set(GUILE_OUTPUT_DIR   gnucash/report)
+set(GUILE_DEPENDS
   gncmod-html
   scm-app-utils
   scm-gettext
@@ -37,13 +37,13 @@ SET(GUILE_DEPENDS
   scm-report-system
   )
 
-GNC_ADD_SCHEME_TARGETS(scm-business-reports
+gnc_add_scheme_targets(scm-business-reports
   "${business_reports_SCHEME}"
   ${GUILE_OUTPUT_DIR}
   "${GUILE_DEPENDS}"
   TRUE
 )
 
-INSTALL(FILES ${business_reports_DATA} DESTINATION ${SCHEME_INSTALLED_SOURCE_DIR}/gnucash/report)
+install(FILES ${business_reports_DATA} DESTINATION ${SCHEME_INSTALLED_SOURCE_DIR}/gnucash/report)
 
-SET_DIST_LIST(business_reports_DIST CMakeLists.txt ${business_reports_SCHEME} ${business_reports_DATA})
+set_dist_list(business_reports_DIST CMakeLists.txt ${business_reports_SCHEME} ${business_reports_DATA})
diff --git a/gnucash/report/jqplot/CMakeLists.txt b/gnucash/report/jqplot/CMakeLists.txt
index 6bbf52a..eefd360 100644
--- a/gnucash/report/jqplot/CMakeLists.txt
+++ b/gnucash/report/jqplot/CMakeLists.txt
@@ -1,5 +1,5 @@
 
-SET(gncjqplot_DATA
+set(gncjqplot_DATA
   jquery.min.js
   jquery.jqplot.js
   jquery.jqplot.css
@@ -30,6 +30,6 @@ SET(gncjqplot_DATA
   plugins/jqplot.trendline.js
 )
 
-INSTALL(FILES ${gncjqplot_DATA} DESTINATION  ${CMAKE_INSTALL_DATADIR}/gnucash/jqplot)
+install(FILES ${gncjqplot_DATA} DESTINATION  ${CMAKE_INSTALL_DATADIR}/gnucash/jqplot)
 
-SET_DIST_LIST(jqplot_DIST CMakeLists.txt jquery.js ${gncjqplot_DATA})
+set_dist_list(jqplot_DIST CMakeLists.txt jquery.js ${gncjqplot_DATA})
diff --git a/gnucash/report/locale-specific/CMakeLists.txt b/gnucash/report/locale-specific/CMakeLists.txt
index 59354bf..e1240d7 100644
--- a/gnucash/report/locale-specific/CMakeLists.txt
+++ b/gnucash/report/locale-specific/CMakeLists.txt
@@ -1,4 +1,4 @@
-ADD_SUBDIRECTORY(us)
+add_subdirectory(us)
 
-SET_LOCAL_DIST(locale_specific_DIST_local CMakeLists.txt )
-SET(locale_specific_DIST ${locale_specific_DIST_local} ${locale_specific_us_DIST} PARENT_SCOPE)
\ No newline at end of file
+set_local_dist(locale_specific_DIST_local CMakeLists.txt )
+set(locale_specific_DIST ${locale_specific_DIST_local} ${locale_specific_us_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/gnucash/report/locale-specific/us/CMakeLists.txt b/gnucash/report/locale-specific/us/CMakeLists.txt
index df8da92..51b03a4 100644
--- a/gnucash/report/locale-specific/us/CMakeLists.txt
+++ b/gnucash/report/locale-specific/us/CMakeLists.txt
@@ -1,22 +1,22 @@
-ADD_SUBDIRECTORY(test)
+add_subdirectory(test)
 
-SET(locale_reports_us_SOURCES
+set(locale_reports_us_SOURCES
   gncmod-locale-reports-us.c
 )
 
-ADD_LIBRARY(gncmod-locale-reports-us ${locale_reports_us_SOURCES})
+add_library(gncmod-locale-reports-us ${locale_reports_us_SOURCES})
 
-TARGET_LINK_LIBRARIES(gncmod-locale-reports-us gnc-module gncmod-app-utils gncmod-gnome-utils
+target_link_libraries(gncmod-locale-reports-us gnc-module gncmod-app-utils gncmod-gnome-utils
                          ${GUILE_LDFLAGS} ${GLIB2_LDFLAGS})
 
-TARGET_COMPILE_DEFINITIONS(gncmod-locale-reports-us PRIVATE -DG_LOG_DOMAIN=\"gnc.report.locale.us\")
+target_compile_definitions(gncmod-locale-reports-us PRIVATE -DG_LOG_DOMAIN=\"gnc.report.locale.us\")
 
 
-IF (APPLE)
-  SET_TARGET_PROPERTIES (gncmod-locale-reports-us PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
-ENDIF()
+if (APPLE)
+  set_target_properties (gncmod-locale-reports-us PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
+endif()
 
-INSTALL(TARGETS gncmod-locale-reports-us
+install(TARGETS gncmod-locale-reports-us
   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
@@ -24,13 +24,13 @@ INSTALL(TARGETS gncmod-locale-reports-us
 
 # Scheme
 
-SET(gncmod_local_reports_us_SCHEME_1 taxtxf.scm taxtxf-de_DE.scm)
+set(gncmod_local_reports_us_SCHEME_1 taxtxf.scm taxtxf-de_DE.scm)
 
 
-SET(gncmod_local_reports_us_SCHEME_2 us.scm de_DE.scm)
+set(gncmod_local_reports_us_SCHEME_2 us.scm de_DE.scm)
 
 
-SET(GUILE_DEPENDS
+set(GUILE_DEPENDS
   gncmod-html
   scm-core-utils
   scm-gettext
@@ -42,21 +42,21 @@ SET(GUILE_DEPENDS
   scm-gnome-utils
   )
 
-GNC_ADD_SCHEME_TARGETS(scm-report-locale-specific-1
+gnc_add_scheme_targets(scm-report-locale-specific-1
   "${gncmod_local_reports_us_SCHEME_1}"
   gnucash/report
   "${GUILE_DEPENDS}"
   FALSE
 )
 
-GNC_ADD_SCHEME_TARGETS(scm-report-locale-specific-2
+gnc_add_scheme_targets(scm-report-locale-specific-2
   "${gncmod_local_reports_us_SCHEME_2}"
   gnucash/report/locale-specific
   "scm-report-locale-specific-1;${GUILE_DEPENDS}"
   FALSE
 )
 
-SET_LOCAL_DIST(locale_specific_us_DIST_local CMakeLists.txt 
+set_local_dist(locale_specific_us_DIST_local CMakeLists.txt
         ${locale_reports_us_SOURCES} ${gncmod_local_reports_us_SCHEME_1} ${gncmod_local_reports_us_SCHEME_2})
 
-SET(locale_specific_us_DIST ${locale_specific_us_DIST_local} ${test_locale_specific_us_DIST} PARENT_SCOPE)
+set(locale_specific_us_DIST ${locale_specific_us_DIST_local} ${test_locale_specific_us_DIST} PARENT_SCOPE)
diff --git a/gnucash/report/locale-specific/us/test/CMakeLists.txt b/gnucash/report/locale-specific/us/test/CMakeLists.txt
index df59385..dfd67c4 100644
--- a/gnucash/report/locale-specific/us/test/CMakeLists.txt
+++ b/gnucash/report/locale-specific/us/test/CMakeLists.txt
@@ -1,25 +1,25 @@
-SET(LOCALE_SPECIFIC_US_TEST_INCLUDE_DIRS "")
-SET(LOCALE_SPECIFIC_US_TEST_LIBS)
+set(LOCALE_SPECIFIC_US_TEST_INCLUDE_DIRS "")
+set(LOCALE_SPECIFIC_US_TEST_LIBS)
 
-GNC_ADD_TEST(test-link-module-report-locale-specific-us test-link-module.c
+gnc_add_test(test-link-module-report-locale-specific-us test-link-module.c
   LOCALE_SPECIFIC_US_TEST_INCLUDE_DIRS LOCALE_SPECIFIC_US_TEST_LIBS
 )
 
 # FIXME why is this not run/running?
 # Answer: Bitrot. The test needs to be rewritten.
-#SET(GUILE_DEPENDS
+#set(GUILE_DEPENDS
 #  scm-app-utils
 #  gnc-core-utils
 #  gnc-module
 #  gncmod-engine
 #)
 #
-#GNC_ADD_SCHEME_TARGETS(test-load-report-locale-specific-module
+#gnc_add_scheme_targets(test-load-report-locale-specific-module
 #  "test-load-report-locale-specific-module.scm"
 #  "gnucash/report"
 #  "${GUILE_DEPENDS}"
 #  FALSE
 #  )
-#GNC_ADD_SCHEME_TESTS(test-load-report-locale-specific-us-module.scm)
+#gnc_add_scheme_tests(test-load-report-locale-specific-us-module.scm)
 
-SET_DIST_LIST(test_locale_specific_us_DIST CMakeLists.txt test-link-module.c test-load-report-locale-specific-module.scm)
+set_dist_list(test_locale_specific_us_DIST CMakeLists.txt test-link-module.c test-load-report-locale-specific-module.scm)
diff --git a/gnucash/report/report-gnome/CMakeLists.txt b/gnucash/report/report-gnome/CMakeLists.txt
index aa54fed..5e8534a 100644
--- a/gnucash/report/report-gnome/CMakeLists.txt
+++ b/gnucash/report/report-gnome/CMakeLists.txt
@@ -1,6 +1,6 @@
-ADD_SUBDIRECTORY(test)
+add_subdirectory(test)
 
-SET (report_gnome_HEADERS
+set (report_gnome_HEADERS
   dialog-report-column-view.h
   dialog-custom-report.h
   dialog-report-style-sheet.h
@@ -14,7 +14,7 @@ gnc_add_swig_guile_command (swig-report-gnome-c
     ${CMAKE_CURRENT_SOURCE_DIR}/report-gnome.i ${report_gnome_HEADERS}
 )
 
-SET (report_gnome_SOURCES
+set (report_gnome_SOURCES
   dialog-report-column-view.c
   dialog-custom-report.c
   dialog-report-style-sheet.c
@@ -23,37 +23,37 @@ SET (report_gnome_SOURCES
   window-report.c
 )
 
-ADD_LIBRARY (gncmod-report-gnome
+add_library (gncmod-report-gnome
   ${report_gnome_SOURCES}
   ${report_gnome_HEADERS}
   ${SWIG_REPORT_GNOME_C}
 )
-TARGET_LINK_LIBRARIES(gncmod-report-gnome gncmod-report-system gncmod-html gncmod-gnome-utils
+target_link_libraries(gncmod-report-gnome gncmod-report-system gncmod-html gncmod-gnome-utils
       ${GUILE_LDFLAGS} ${GTK3_LDFLAGS})
 
-TARGET_COMPILE_DEFINITIONS (gncmod-report-gnome PRIVATE -DG_LOG_DOMAIN=\"gnc.report.gui\")
+target_compile_definitions (gncmod-report-gnome PRIVATE -DG_LOG_DOMAIN=\"gnc.report.gui\")
 
-TARGET_INCLUDE_DIRECTORIES(gncmod-report-gnome PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
+target_include_directories(gncmod-report-gnome PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
 
-IF (APPLE)
-  SET_TARGET_PROPERTIES (gncmod-report-gnome PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
-ENDIF()
+if (APPLE)
+  set_target_properties (gncmod-report-gnome PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
+endif()
 
-INSTALL(TARGETS gncmod-report-gnome
+install(TARGETS gncmod-report-gnome
   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
 
-INSTALL(FILES ${report_gnome_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gnucash)
+install(FILES ${report_gnome_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gnucash)
 
 # Scheme
 
-SET(report_gnome_SCHEME
+set(report_gnome_SCHEME
     report-gnome.scm
 )
 
-SET(GUILE_OUTPUT_DIR   gnucash/report)
-SET(GUILE_DEPENDS
+set(GUILE_OUTPUT_DIR   gnucash/report)
+set(GUILE_DEPENDS
   gncmod-report-gnome
   scm-engine
   scm-gettext
@@ -66,13 +66,13 @@ SET(GUILE_DEPENDS
   scm-utility-reports
   )
 
-GNC_ADD_SCHEME_TARGETS(scm-report-gnome
+gnc_add_scheme_targets(scm-report-gnome
     "${report_gnome_SCHEME}"
     ${GUILE_OUTPUT_DIR}
     "${GUILE_DEPENDS}"
     FALSE
 )
 
-SET_LOCAL_DIST(report_gnome_DIST_local CMakeLists.txt report-gnome.i ${report_gnome_HEADERS}
+set_local_dist(report_gnome_DIST_local CMakeLists.txt report-gnome.i ${report_gnome_HEADERS}
     ${report_gnome_SOURCES} ${report_gnome_SCHEME})
-SET(report_gnome_DIST ${report_gnome_DIST_local} ${test_report_gnome_DIST} PARENT_SCOPE)
+set(report_gnome_DIST ${report_gnome_DIST_local} ${test_report_gnome_DIST} PARENT_SCOPE)
diff --git a/gnucash/report/report-gnome/test/CMakeLists.txt b/gnucash/report/report-gnome/test/CMakeLists.txt
index ca80468..2ae4bfc 100644
--- a/gnucash/report/report-gnome/test/CMakeLists.txt
+++ b/gnucash/report/report-gnome/test/CMakeLists.txt
@@ -1,17 +1,17 @@
-SET(REPORT_GNOME_TEST_INCLUDE_DIRS
+set(REPORT_GNOME_TEST_INCLUDE_DIRS
   ${CMAKE_SOURCE_DIR}/libgnucash/gnc-module
   ${GUILE_INCLUDE_DIRS}
 
 )
 
 
-SET(REPORT_GNOME_TEST_LIBS gnc-module)
+set(REPORT_GNOME_TEST_LIBS gnc-module)
 
-GNC_ADD_TEST_WITH_GUILE(test-link-module-report-gnome test-link-module.c
+gnc_add_test_with_guile(test-link-module-report-gnome test-link-module.c
   REPORT_GNOME_TEST_INCLUDE_DIRS REPORT_GNOME_TEST_LIBS
 )
 
-SET(GUILE_DEPENDS
+set(GUILE_DEPENDS
   scm-app-utils
   scm-gnome-utils
   gnc-module
@@ -23,13 +23,13 @@ SET(GUILE_DEPENDS
 add_custom_target(test-report-gnome ALL DEPENDS ${GUILE_DEPENDS})
 add_dependencies(test-link-module-report-gnome test-report-gnome)
 
-GNC_ADD_SCHEME_TARGETS(scm-test-load-report-gnome-module
+gnc_add_scheme_targets(scm-test-load-report-gnome-module
   "test-load-report-gnome-module.scm"
   "gnucash/reports"
   "${GUILE_DEPENDS}"
   FALSE
 )
-GNC_ADD_SCHEME_TESTS(test-load-report-gnome-module.scm)
+gnc_add_scheme_tests(test-load-report-gnome-module.scm)
 
-SET_DIST_LIST(test_report_gnome_DIST CMakeLists.txt test-link-module.c test-load-report-gnome-module.scm)
+set_dist_list(test_report_gnome_DIST CMakeLists.txt test-link-module.c test-load-report-gnome-module.scm)
 
diff --git a/gnucash/report/report-system/CMakeLists.txt b/gnucash/report/report-system/CMakeLists.txt
index a511bf9..a9116b3 100644
--- a/gnucash/report/report-system/CMakeLists.txt
+++ b/gnucash/report/report-system/CMakeLists.txt
@@ -1,6 +1,6 @@
-ADD_SUBDIRECTORY(test)
+add_subdirectory(test)
 
-SET (report_system_HEADERS
+set (report_system_HEADERS
   gnc-report.h
 )
 
@@ -10,56 +10,56 @@ gnc_add_swig_guile_command (swig-report-system-c
     ${CMAKE_CURRENT_SOURCE_DIR}/report-system.i ${report_system_HEADERS}
 )
 
-SET (report_system_SOURCES
+set (report_system_SOURCES
   gncmod-report-system.c
   gnc-report.c
 )  
 
-ADD_LIBRARY (gncmod-report-system
+add_library (gncmod-report-system
   ${report_system_SOURCES}
   ${report_system_HEADERS}
   ${SWIG_REPORT_SYSTEM_C}
 )
 
-TARGET_COMPILE_DEFINITIONS(gncmod-report-system PRIVATE -DG_LOG_DOMAIN=\"gnc.report.core\")
+target_compile_definitions(gncmod-report-system PRIVATE -DG_LOG_DOMAIN=\"gnc.report.core\")
 
-TARGET_LINK_LIBRARIES(gncmod-report-system gnc-module gncmod-app-utils ${GTK3_LDFLAGS} ${GUILE_LDFLAGS})
+target_link_libraries(gncmod-report-system gnc-module gncmod-app-utils ${GTK3_LDFLAGS} ${GUILE_LDFLAGS})
 
-TARGET_INCLUDE_DIRECTORIES (gncmod-report-system
+target_include_directories (gncmod-report-system
     PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} PRIVATE ${GTK3_INCLUDE_DIRS}
 )
 
 
-IF (APPLE)
-  SET_TARGET_PROPERTIES (gncmod-report-system PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
-ENDIF()
+if (APPLE)
+  set_target_properties (gncmod-report-system PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
+endif()
 
-INSTALL(TARGETS gncmod-report-system
+install(TARGETS gncmod-report-system
   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
 
-INSTALL(FILES ${report_system_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gnucash)
+install(FILES ${report_system_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gnucash)
 
 # Scheme
 
-SET (report_system_SCHEME
+set (report_system_SCHEME
     report-system.scm
     eguile-gnc.scm
     eguile-utilities.scm
     eguile-html-utilities.scm
 )
 
-SET (report_system_SCHEME_2a
+set (report_system_SCHEME_2a
     collectors.scm
     list-extras.scm
 )
 
-SET (report_system_SCHEME_2b
+set (report_system_SCHEME_2b
     report-collectors.scm
 )
 
-SET (report_system_SCHEME_3
+set (report_system_SCHEME_3
     commodity-utilities.scm
     html-acct-table.scm
     html-barchart.scm
@@ -78,7 +78,7 @@ SET (report_system_SCHEME_3
     report.scm
 )
 
-SET(GUILE_DEPENDS
+set(GUILE_DEPENDS
   gncmod-html
   scm-gnome-utils
   gncmod-report-system
@@ -87,28 +87,28 @@ SET(GUILE_DEPENDS
   scm-gnc-module
   )
 
-GNC_ADD_SCHEME_TARGETS(scm-report-system-1
+gnc_add_scheme_targets(scm-report-system-1
   "${report_system_SCHEME}"
   "gnucash/report"
   "${GUILE_DEPENDS}"
   FALSE
 )
 
-GNC_ADD_SCHEME_TARGETS(scm-report-system-2a
+gnc_add_scheme_targets(scm-report-system-2a
   "${report_system_SCHEME_2a}"
   "gnucash/report/report-system"
   scm-report-system-1
   FALSE
 )
 
-GNC_ADD_SCHEME_TARGETS(scm-report-system-2b
+gnc_add_scheme_targets(scm-report-system-2b
   "${report_system_SCHEME_2b}"
   "gnucash/report/report-system"
   scm-report-system-2a
   FALSE
 )
 
-GNC_ADD_SCHEME_TARGETS(scm-report-system-3
+gnc_add_scheme_targets(scm-report-system-3
   "${report_system_SCHEME_3}"
   ""
   scm-report-system-2b
@@ -117,11 +117,11 @@ GNC_ADD_SCHEME_TARGETS(scm-report-system-3
 
 add_custom_target(scm-report-system ALL DEPENDS scm-report-system-3)
 
-SET_LOCAL_DIST(report_system_DIST_local CMakeLists.txt
+set_local_dist(report_system_DIST_local CMakeLists.txt
   report-system.i
   ${report_system_HEADERS} ${report_system_SOURCES}
   ${report_system_SCHEME} ${report_system_SCHEME_1}
   ${report_system_SCHEME_2a} ${report_system_SCHEME_2b}
   ${report_system_SCHEME_3})
 
-SET(report_system_DIST ${report_system_DIST_local} ${test_report_system_DIST} PARENT_SCOPE)
+set(report_system_DIST ${report_system_DIST_local} ${test_report_system_DIST} PARENT_SCOPE)
diff --git a/gnucash/report/report-system/test/CMakeLists.txt b/gnucash/report/report-system/test/CMakeLists.txt
index eea3423..67137bf 100644
--- a/gnucash/report/report-system/test/CMakeLists.txt
+++ b/gnucash/report/report-system/test/CMakeLists.txt
@@ -1,15 +1,15 @@
 
-SET(REPORT_SYSTEM_TEST_INCLUDE_DIRS
+set(REPORT_SYSTEM_TEST_INCLUDE_DIRS
   ${CMAKE_SOURCE_DIR}/libgnucash/gnc-module
   ${GUILE_INCLUDE_DIRS}
 )
-SET(REPORT_SYSTEM_TEST_LIBS gnc-module)
+set(REPORT_SYSTEM_TEST_LIBS gnc-module)
 
-GNC_ADD_TEST_WITH_GUILE(test-link-module-report-system test-link-module.c
+gnc_add_test_with_guile(test-link-module-report-system test-link-module.c
   REPORT_SYSTEM_TEST_INCLUDE_DIRS REPORT_SYSTEM_TEST_LIBS
 )
 
-SET(scm_test_report_system_SOURCES
+set(scm_test_report_system_SOURCES
   test-load-report-system-module.scm
   test-collectors.scm
   test-list-extras.scm
@@ -31,20 +31,20 @@ set(GUILE_DEPENDS
   scm-scm
   scm-report-system-3
   )
-GNC_ADD_SCHEME_TESTS(${scm_test_report_system_SOURCES})
+gnc_add_scheme_tests(${scm_test_report_system_SOURCES})
 
 if (HAVE_SRFI64)
   gnc_add_scheme_tests ("${scm_test_report_system_with_srfi64_SOURCES}")
 endif (HAVE_SRFI64)
 
-GNC_ADD_SCHEME_TARGETS(scm-test-report-system
+gnc_add_scheme_targets(scm-test-report-system
   "test-extras.scm"
   gnucash/report/report-system/test
   "${GUILE_DEPENDS}"
   FALSE
   )
 
-GNC_ADD_SCHEME_TARGETS(scm-test-report-system-2
+gnc_add_scheme_targets(scm-test-report-system-2
   "${scm_test_report_system_SOURCES}"
   gnucash/report/report-system/test
   "scm-test-report-system"
@@ -52,7 +52,7 @@ GNC_ADD_SCHEME_TARGETS(scm-test-report-system-2
 )
 
 add_dependencies(check scm-test-report-system)
-SET_DIST_LIST(test_report_system_DIST
+set_dist_list(test_report_system_DIST
   CMakeLists.txt
   ${scm_test_report_system_with_srfi64_SOURCES}
   ${scm_test_report_system_SOURCES}
diff --git a/gnucash/report/standard-reports/CMakeLists.txt b/gnucash/report/standard-reports/CMakeLists.txt
index 4ae9284..fe7e8d3 100644
--- a/gnucash/report/standard-reports/CMakeLists.txt
+++ b/gnucash/report/standard-reports/CMakeLists.txt
@@ -1,9 +1,9 @@
 
-ADD_SUBDIRECTORY(test)
+add_subdirectory(test)
 
-SET (standard_reports_SCHEME standard-reports.scm)
+set (standard_reports_SCHEME standard-reports.scm)
 
-SET (standard_reports_SCHEME_2
+set (standard_reports_SCHEME_2
     account-piecharts.scm
     account-summary.scm
     advanced-portfolio.scm
@@ -33,7 +33,7 @@ SET (standard_reports_SCHEME_2
     trial-balance.scm
     )
 
-SET(GUILE_DEPENDS
+set(GUILE_DEPENDS
   gncmod-html
   scm-core-utils
   scm-engine
@@ -43,21 +43,21 @@ SET(GUILE_DEPENDS
   scm-report-system
   )
 
-GNC_ADD_SCHEME_TARGETS(scm-standard-reports-1
+gnc_add_scheme_targets(scm-standard-reports-1
   "${standard_reports_SCHEME}"
   "gnucash/report"
   "scm-standard-reports-2;${GUILE_DEPENDS}"
   TRUE
 )
 
-GNC_ADD_SCHEME_TARGETS(scm-standard-reports-2
+gnc_add_scheme_targets(scm-standard-reports-2
   "${standard_reports_SCHEME_2}"
   "gnucash/report/standard-reports"
   "scm-standard-reports-2-links;${GUILE_DEPENDS}"
   TRUE
 )
 
-ADD_CUSTOM_TARGET(scm-standard-reports ALL DEPENDS scm-standard-reports-2 scm-standard-reports-1)
+add_custom_target(scm-standard-reports ALL DEPENDS scm-standard-reports-2 scm-standard-reports-1)
 
-SET_LOCAL_DIST(standard_reports_DIST_local CMakeLists.txt ${standard_reports_SCHEME} ${standard_reports_SCHEME_2})
-SET(standard_reports_DIST ${standard_reports_DIST_local} ${test_standard_reports_DIST} PARENT_SCOPE)
+set_local_dist(standard_reports_DIST_local CMakeLists.txt ${standard_reports_SCHEME} ${standard_reports_SCHEME_2})
+set(standard_reports_DIST ${standard_reports_DIST_local} ${test_standard_reports_DIST} PARENT_SCOPE)
diff --git a/gnucash/report/standard-reports/test/CMakeLists.txt b/gnucash/report/standard-reports/test/CMakeLists.txt
index fd58191..1db6daf 100644
--- a/gnucash/report/standard-reports/test/CMakeLists.txt
+++ b/gnucash/report/standard-reports/test/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(scm_test_standard_reports_SOURCES
+set(scm_test_standard_reports_SOURCES
   test-cash-flow.scm
   test-cashflow-barchart.scm
   test-standard-category-report.scm
@@ -10,7 +10,7 @@ set(scm_test_with_srfi64_SOURCES
   test-transaction.scm
 )
 
-SET(scm_test_report_SUPPORT
+set(scm_test_report_SUPPORT
   test-generic-category-report.scm
   test-generic-net-barchart.scm
   test-generic-net-linechart.scm
@@ -32,15 +32,15 @@ if (HAVE_SRFI64)
   gnc_add_scheme_tests("${scm_test_with_srfi64_SOURCES}")
 endif (HAVE_SRFI64)
 
-GNC_ADD_SCHEME_TESTS("${scm_test_standard_reports_SOURCES}")
+gnc_add_scheme_tests("${scm_test_standard_reports_SOURCES}")
 
-GNC_ADD_SCHEME_TARGETS(scm-test-standard-support
+gnc_add_scheme_targets(scm-test-standard-support
   "${scm_test_report_SUPPORT}"
   "gnucash/report/standard-reports/test"
   "${GUILE_DEPENDS}"
   FALSE
   )
-GNC_ADD_SCHEME_TARGETS(scm-test-standard-reports
+gnc_add_scheme_targets(scm-test-standard-reports
   "${scm_test_standard_reports_SOURCES}"
   gnucash/report/standard-reports/test
   "scm-test-standard-support"
@@ -49,6 +49,6 @@ GNC_ADD_SCHEME_TARGETS(scm-test-standard-reports
 
 add_dependencies(check scm-test-standard-reports)
 
-SET_DIST_LIST(test_standard_reports_DIST CMakeLists.txt 
+set_dist_list(test_standard_reports_DIST CMakeLists.txt
   ${scm_test_with_srfi64_SOURCES}
   ${scm_test_standard_reports_SOURCES} ${scm_test_report_SUPPORT})
diff --git a/gnucash/report/stylesheets/CMakeLists.txt b/gnucash/report/stylesheets/CMakeLists.txt
index 0ac1b97..285662c 100644
--- a/gnucash/report/stylesheets/CMakeLists.txt
+++ b/gnucash/report/stylesheets/CMakeLists.txt
@@ -1,32 +1,32 @@
-ADD_SUBDIRECTORY(test)
+add_subdirectory(test)
 
-SET(stylesheets_SOURCES
+set(stylesheets_SOURCES
   gnc-plugin-stylesheets.c
   gncmod-stylesheets.c
 )
 
-SET(stylesheets_noinst_HEADERS
+set(stylesheets_noinst_HEADERS
   gnc-plugin-stylesheets.h
 )
 
-ADD_LIBRARY(gncmod-stylesheets MODULE ${stylesheets_SOURCES} ${stylesheets_noinst_HEADERS})
+add_library(gncmod-stylesheets MODULE ${stylesheets_SOURCES} ${stylesheets_noinst_HEADERS})
 
-TARGET_LINK_LIBRARIES(gncmod-stylesheets gncmod-report-gnome gncmod-report-system gncmod-gnome-utils gnc-module
+target_link_libraries(gncmod-stylesheets gncmod-report-gnome gncmod-report-system gncmod-gnome-utils gnc-module
     ${GUILE_LDFLAGS} ${GTK3_LDFLAGS} ${GLIB2_LDFLAGS})
 
-TARGET_COMPILE_DEFINITIONS(gncmod-stylesheets PRIVATE -DG_LOG_DOMAIN=\"gnc.report.core\")
+target_compile_definitions(gncmod-stylesheets PRIVATE -DG_LOG_DOMAIN=\"gnc.report.core\")
 
-SET(LIB_DIR ${CMAKE_INSTALL_LIBDIR}/gnucash)
-IF (WIN32)
-  SET(LIB_DIR ${CMAKE_INSTALL_BINDIR})
-ENDIF(WIN32)
+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()
+if (APPLE)
+  set_target_properties (gncmod-stylesheets PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
+endif()
 
-INSTALL(TARGETS gncmod-stylesheets
+install(TARGETS gncmod-stylesheets
   LIBRARY DESTINATION ${LIB_DIR}
   ARCHIVE DESTINATION ${LIB_DIR}
   RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
@@ -35,7 +35,7 @@ INSTALL(TARGETS gncmod-stylesheets
 
 # Scheme
 
-SET(stylesheets_SCHEME_1
+set(stylesheets_SCHEME_1
   stylesheet-plain.scm
   stylesheet-fancy.scm
   stylesheet-footer.scm
@@ -43,12 +43,12 @@ SET(stylesheets_SCHEME_1
   stylesheet-head-or-tail.scm
 )
 
-SET(stylesheets_SCHEME_2
+set(stylesheets_SCHEME_2
   stylesheets.scm
 )
 
-SET(GUILE_OUTPUT_DIR gnucash/report)
-SET(GUILE_DEPENDS
+set(GUILE_OUTPUT_DIR gnucash/report)
+set(GUILE_DEPENDS
   scm-gnc-module
   scm-core-utils
   scm-gettext
@@ -57,24 +57,24 @@ SET(GUILE_DEPENDS
   scm-report-system
   )
 
-GNC_ADD_SCHEME_TARGETS(scm-report-stylesheets-1
+gnc_add_scheme_targets(scm-report-stylesheets-1
   "${stylesheets_SCHEME_1}"
   ${GUILE_OUTPUT_DIR}
   "${GUILE_DEPENDS}"
   TRUE
 )
 
-GNC_ADD_SCHEME_TARGETS(scm-report-stylesheets-2
+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 scm-report-stylesheets-2)
+add_custom_target(scm-report-stylesheets ALL DEPENDS scm-report-stylesheets-1 scm-report-stylesheets-2)
 
-SET_LOCAL_DIST(stylesheets_DIST_local CMakeLists.txt 
+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} ${test_stylesheets_DIST} PARENT_SCOPE)
diff --git a/gnucash/report/stylesheets/test/CMakeLists.txt b/gnucash/report/stylesheets/test/CMakeLists.txt
index 0f904aa..da49c42 100644
--- a/gnucash/report/stylesheets/test/CMakeLists.txt
+++ b/gnucash/report/stylesheets/test/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(GUILE_DEPENDS
+set(GUILE_DEPENDS
   scm-test-core
   scm-gettext
   scm-core-utils
@@ -13,13 +13,13 @@ SET(GUILE_DEPENDS
   scm-report-stylesheets
 )
 
-GNC_ADD_SCHEME_TARGETS(scm-test-load-report-stylesheets-module
+gnc_add_scheme_targets(scm-test-load-report-stylesheets-module
   "test-load-report-stylesheets-module.scm"
   "gnucash/report"
   "${GUILE_DEPENDS}"
   FALSE
   )
 
-GNC_ADD_SCHEME_TESTS("test-load-report-stylesheets-module.scm")
+gnc_add_scheme_tests("test-load-report-stylesheets-module.scm")
 
-SET_DIST_LIST(test_stylesheets_DIST CMakeLists.txt test-load-report-stylesheets-module.scm)
+set_dist_list(test_stylesheets_DIST CMakeLists.txt test-load-report-stylesheets-module.scm)
diff --git a/gnucash/report/utility-reports/CMakeLists.txt b/gnucash/report/utility-reports/CMakeLists.txt
index 2309b4a..af969bc 100644
--- a/gnucash/report/utility-reports/CMakeLists.txt
+++ b/gnucash/report/utility-reports/CMakeLists.txt
@@ -1,14 +1,14 @@
 # Scheme
 
-SET(utility_reports_SCHEME
+set(utility_reports_SCHEME
   hello-world.scm
   utility-reports.scm
   view-column.scm
   welcome-to-gnucash.scm
 )
 
-SET(GUILE_OUTPUT_DIR     gnucash/report)
-SET(GUILE_DEPENDS
+set(GUILE_OUTPUT_DIR     gnucash/report)
+set(GUILE_DEPENDS
   gncmod-html
   scm-app-utils
   scm-core-utils
@@ -20,13 +20,13 @@ SET(GUILE_DEPENDS
   scm-report-system
   )
 
-GNC_ADD_SCHEME_TARGETS(scm-utility-reports
+gnc_add_scheme_targets(scm-utility-reports
   "${utility_reports_SCHEME}"
   ${GUILE_OUTPUT_DIR}
   "${GUILE_DEPENDS}"
   TRUE
 )
 
-SET_LOCAL_DIST(utility_reports_DIST_local CMakeLists.txt 
+set_local_dist(utility_reports_DIST_local CMakeLists.txt
         ${utility_reports_SCHEME})
-SET(utility_reports_DIST ${utility_reports_DIST_local} ${test_utility_reports_DIST} PARENT_SCOPE)
+set(utility_reports_DIST ${utility_reports_DIST_local} ${test_utility_reports_DIST} PARENT_SCOPE)
diff --git a/gnucash/ui/CMakeLists.txt b/gnucash/ui/CMakeLists.txt
index 64a2df5..72e6bbe 100644
--- a/gnucash/ui/CMakeLists.txt
+++ b/gnucash/ui/CMakeLists.txt
@@ -38,4 +38,4 @@ file (COPY ${ui_SOURCES} DESTINATION ${DATADIR_BUILD}/gnucash/ui)
 
 install (FILES ${ui_SOURCES} DESTINATION share/gnucash/ui)
 
-SET_DIST_LIST(ui_DIST CMakeLists.txt ${ui_SOURCES})
+set_dist_list(ui_DIST CMakeLists.txt ${ui_SOURCES})
diff --git a/libgnucash/CMakeLists.txt b/libgnucash/CMakeLists.txt
index fc13ea9..f6e6ef6 100644
--- a/libgnucash/CMakeLists.txt
+++ b/libgnucash/CMakeLists.txt
@@ -1,20 +1,20 @@
 # CMakeLists.txt for libgnucash/
 
 # The subdirectories
-ADD_SUBDIRECTORY (app-utils)
-ADD_SUBDIRECTORY (backend)
-ADD_SUBDIRECTORY (core-utils)
-ADD_SUBDIRECTORY (doc)
-ADD_SUBDIRECTORY (engine)
-ADD_SUBDIRECTORY (gnc-module)
-ADD_SUBDIRECTORY (quotes)
-ADD_SUBDIRECTORY (scm)
-ADD_SUBDIRECTORY (tax)
+add_subdirectory (app-utils)
+add_subdirectory (backend)
+add_subdirectory (core-utils)
+add_subdirectory (doc)
+add_subdirectory (engine)
+add_subdirectory (gnc-module)
+add_subdirectory (quotes)
+add_subdirectory (scm)
+add_subdirectory (tax)
 
-ADD_DEFINITIONS (-DHAVE_CONFIG_H)
+add_definitions (-DHAVE_CONFIG_H)
 
-SET_LOCAL_DIST(libgnucash_DIST_local CMakeLists.txt ${libgnucash_EXTRA_DIST})
+set_local_dist(libgnucash_DIST_local CMakeLists.txt ${libgnucash_EXTRA_DIST})
 
-SET(libgnucash_DIST ${libgnucash_DIST_local} ${app_utils_DIST} ${backend_DIST}
+set(libgnucash_DIST ${libgnucash_DIST_local} ${app_utils_DIST} ${backend_DIST}
              ${core_utils_DIST} ${doc_DIST} ${engine_DIST} ${gnc_module_DIST}
              ${quotes_DIST} ${scm_DIST} ${tax_DIST} PARENT_SCOPE)
diff --git a/libgnucash/app-utils/CMakeLists.txt b/libgnucash/app-utils/CMakeLists.txt
index 3b1a9d8..d44dbe2 100644
--- a/libgnucash/app-utils/CMakeLists.txt
+++ b/libgnucash/app-utils/CMakeLists.txt
@@ -1,15 +1,15 @@
 # NB: Unit tests which require GSchemas should be made conditional on COMPILE_GSCHEMAS.
-ADD_SUBDIRECTORY(test)
+add_subdirectory(test)
 # Build the library
 
-SET (app_utils_noinst_HEADERS
+set (app_utils_noinst_HEADERS
   calculation/finvar.h
   calculation/finproto.h
   calculation/fin_spl_protos.h
   calculation/fin_static_proto.h
 )
 
-SET (app_utils_HEADERS
+set (app_utils_HEADERS
   QuickFill.h
   business-helpers.h
   business-options.h
@@ -49,7 +49,7 @@ gnc_add_swig_python_command (swig-app-utils-python
     ${CMAKE_CURRENT_SOURCE_DIR}/app-utils.i
 )
 
-SET (app_utils_SOURCES
+set (app_utils_SOURCES
   calculation/expression_parser.c
   calculation/fin.c
   business-helpers.c
@@ -77,98 +77,98 @@ SET (app_utils_SOURCES
   option-util.c
 )
 
-SET_SOURCE_FILES_PROPERTIES (${app_utils_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+set_source_files_properties (${app_utils_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
 
-SET(app_utils_ALL_SOURCES ${app_utils_SOURCES} ${app_utils_HEADERS} ${app_utils_noinst_HEADERS})
-SET(app_utils_ALL_LIBRARIES gncmod-engine gnc-module ${GIO_LDFLAGS} ${LIBXML2_LDFLAGS} ${LIBXSLT_LDFLAGS})
-SET(app_utils_ALL_INCLUDES  ${CMAKE_CURRENT_SOURCE_DIR}/calculation ${GIO_INCLUDE_DIRS} ${LIBXML2_INCLUDE_DIRS}
+set(app_utils_ALL_SOURCES ${app_utils_SOURCES} ${app_utils_HEADERS} ${app_utils_noinst_HEADERS})
+set(app_utils_ALL_LIBRARIES gncmod-engine gnc-module ${GIO_LDFLAGS} ${LIBXML2_LDFLAGS} ${LIBXSLT_LDFLAGS})
+set(app_utils_ALL_INCLUDES  ${CMAKE_CURRENT_SOURCE_DIR}/calculation ${GIO_INCLUDE_DIRS} ${LIBXML2_INCLUDE_DIRS}
     ${LIBXSLT_INCLUDE_DIRS} ${CMAKE_SOURCE_DIR}/libgnucash/backend ${CMAKE_SOURCE_DIR}/libgnucash/engine)
 
-IF (WIN32)
-  LIST(APPEND app_utils_ALL_SOURCES gnc-help-utils.c)
-  LIST(APPEND app_utils_ALL_LIBRARIES ${HTMLHELP_LIBRARY})
-  LIST(APPEND app_utils_ALL_INCLUDES ${HTMLHELP_INCLUDE_PATH})
-ENDIF()
+if (WIN32)
+  list(APPEND app_utils_ALL_SOURCES gnc-help-utils.c)
+  list(APPEND app_utils_ALL_LIBRARIES ${HTMLHELP_LIBRARY})
+  list(APPEND app_utils_ALL_INCLUDES ${HTMLHELP_INCLUDE_PATH})
+endif()
 
 
-ADD_LIBRARY (gncmod-app-utils ${app_utils_ALL_SOURCES} ${SWIG_APP_UTILS_GUILE_C})
-TARGET_LINK_LIBRARIES(gncmod-app-utils ${app_utils_ALL_LIBRARIES})
+add_library (gncmod-app-utils ${app_utils_ALL_SOURCES} ${SWIG_APP_UTILS_GUILE_C})
+target_link_libraries(gncmod-app-utils ${app_utils_ALL_LIBRARIES})
 
-TARGET_INCLUDE_DIRECTORIES (gncmod-app-utils
+target_include_directories (gncmod-app-utils
     PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
     PRIVATE ${app_utils_ALL_INCLUDES}
 )
-TARGET_COMPILE_DEFINITIONS (gncmod-app-utils PRIVATE -DG_LOG_DOMAIN=\"gnc.app-utils\")
+target_compile_definitions (gncmod-app-utils PRIVATE -DG_LOG_DOMAIN=\"gnc.app-utils\")
 
-IF (APPLE)
-  SET_TARGET_PROPERTIES (gncmod-app-utils PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
-ENDIF()
+if (APPLE)
+  set_target_properties (gncmod-app-utils PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
+endif()
 
-INSTALL(TARGETS gncmod-app-utils
+install(TARGETS gncmod-app-utils
   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
 )
 
-IF (WITH_PYTHON)
-  SET(PYEXEC_FILES sw_app_utils.py)
-  ADD_LIBRARY (sw_app_utils MODULE ${SWIG_APP_UTILS_PYTHON_C})
+if (WITH_PYTHON)
+  set(PYEXEC_FILES sw_app_utils.py)
+  add_library (sw_app_utils MODULE ${SWIG_APP_UTILS_PYTHON_C})
 
-  TARGET_LINK_LIBRARIES(sw_app_utils gncmod-app-utils ${app_utils_ALL_LIBRARIES} ${PYTHON_LIBRARIES})
-  SET_TARGET_PROPERTIES(sw_app_utils PROPERTIES PREFIX "_")
+  target_link_libraries(sw_app_utils gncmod-app-utils ${app_utils_ALL_LIBRARIES} ${PYTHON_LIBRARIES})
+  set_target_properties(sw_app_utils PROPERTIES PREFIX "_")
 
-  TARGET_INCLUDE_DIRECTORIES (sw_app_utils
+  target_include_directories (sw_app_utils
     PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
     PRIVATE ${app_utils_ALL_INCLUDES} ${PYTHON_INCLUDE_DIRS}
   )
-  TARGET_COMPILE_DEFINITIONS (sw_app_utils PRIVATE -DG_LOG_DOMAIN=\"gnc.app-utils\")
+  target_compile_definitions (sw_app_utils PRIVATE -DG_LOG_DOMAIN=\"gnc.app-utils\")
 
-  IF (APPLE)
-    SET_TARGET_PROPERTIES (sw_app_utils PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
-  ENDIF()
+  if (APPLE)
+    set_target_properties (sw_app_utils PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
+  endif()
 
-  INSTALL(TARGETS sw_app_utils
+  install(TARGETS sw_app_utils
     LIBRARY DESTINATION ${PYTHON_SYSCONFIG_OUTPUT}/gnucash
     ARCHIVE DESTINATION ${PYTHON_SYSCONFIG_OUTPUT}/gnucash
   )
 
-  ADD_CUSTOM_TARGET(sw-app-utils-py ALL
+  add_custom_target(sw-app-utils-py ALL
     COMMAND ${CMAKE_COMMAND} -E copy ${SWIG_APP_UTILS_PYTHON_PY} ${PYTHON_SYSCONFIG_BUILD}/gnucash
     DEPENDS ${SWIG_APP_UTILS_PYTHON_C})
 
-  ADD_CUSTOM_TARGET(sw-app-utils-build ALL
+  add_custom_target(sw-app-utils-build ALL
     COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR_BUILD}/gnucash/_sw_app_utils${CMAKE_SHARED_MODULE_SUFFIX} ${PYTHON_SYSCONFIG_BUILD}/gnucash
     DEPENDS sw_app_utils)
-    
-ENDIF()
 
+endif()
 
 
-INSTALL(FILES ${app_utils_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gnucash)
 
-IF (WITH_OFX)
-  FILE(READ ${CMAKE_SOURCE_DIR}/gnucash/import-export/ofx/migratable-prefs-ofx.xml MIGRATABLE_PREFS_OFX)
-ENDIF()
+install(FILES ${app_utils_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gnucash)
 
-IF (WITH_AQBANKING)
-  FILE(READ ${CMAKE_SOURCE_DIR}/gnucash/import-export/aqb/migratable-prefs-aqbanking.xml MIGRATABLE_PREFS_AQBANKING)
-ENDIF()
+if (WITH_OFX)
+  file(READ ${CMAKE_SOURCE_DIR}/gnucash/import-export/ofx/migratable-prefs-ofx.xml MIGRATABLE_PREFS_OFX)
+endif()
 
-SET(MIGRATABLE_PREFS_XML ${DATADIR_BUILD}/gnucash/migratable-prefs.xml)
-FILE(COPY make-prefs-migration-script.xsl DESTINATION ${DATADIR_BUILD}/gnucash)
+if (WITH_AQBANKING)
+  file(READ ${CMAKE_SOURCE_DIR}/gnucash/import-export/aqb/migratable-prefs-aqbanking.xml MIGRATABLE_PREFS_AQBANKING)
+endif()
 
-CONFIGURE_FILE(migratable-prefs.xml.in ${MIGRATABLE_PREFS_XML})
+set(MIGRATABLE_PREFS_XML ${DATADIR_BUILD}/gnucash/migratable-prefs.xml)
+file(COPY make-prefs-migration-script.xsl DESTINATION ${DATADIR_BUILD}/gnucash)
 
-INSTALL(FILES ${MIGRATABLE_PREFS_XML} DESTINATION  ${CMAKE_INSTALL_DATADIR}/gnucash)
-INSTALL(FILES make-prefs-migration-script.xsl DESTINATION  ${CMAKE_INSTALL_DATADIR}/gnucash)
+configure_file(migratable-prefs.xml.in ${MIGRATABLE_PREFS_XML})
+
+install(FILES ${MIGRATABLE_PREFS_XML} DESTINATION  ${CMAKE_INSTALL_DATADIR}/gnucash)
+install(FILES make-prefs-migration-script.xsl DESTINATION  ${CMAKE_INSTALL_DATADIR}/gnucash)
 
 # And now handle scheme files
 
-SET (app_utils_SCHEME_2
+set (app_utils_SCHEME_2
     app-utils.scm
 )
 
-SET (app_utils_SCHEME_1
+set (app_utils_SCHEME_1
     hooks.scm
     business-options.scm
     c-interface.scm
@@ -181,11 +181,11 @@ SET (app_utils_SCHEME_1
     fin.scm
 )
 
-SET(app_utils_SCHEME_3
+set(app_utils_SCHEME_3
     business-prefs.scm
 )
 
-SET(GUILE_DEPENDS
+set(GUILE_DEPENDS
   gncmod-app-utils
   scm-core-utils
   scm-engine
@@ -193,38 +193,38 @@ SET(GUILE_DEPENDS
   scm-gnc-module
   )
 
-GNC_ADD_SCHEME_TARGETS(scm-gettext
+gnc_add_scheme_targets(scm-gettext
   gettext.scm
   gnucash
   gncmod-app-utils
   FALSE
 )
 
-GNC_ADD_SCHEME_TARGETS(scm-app-utils-1
+gnc_add_scheme_targets(scm-app-utils-1
   "${app_utils_SCHEME_1}"
   ""
   "scm-gettext;${GUILE_DEPENDS}"
   FALSE
 )
 
-GNC_ADD_SCHEME_TARGETS(scm-app-utils-2
+gnc_add_scheme_targets(scm-app-utils-2
   "${app_utils_SCHEME_2}"
   "gnucash"
   "scm-app-utils-1"
   FALSE
 )
 
-GNC_ADD_SCHEME_TARGETS(scm-app-utils-3
+gnc_add_scheme_targets(scm-app-utils-3
   "${app_utils_SCHEME_3}"
   ""
   "scm-app-utils-2"
   FALSE
 )
 
-ADD_CUSTOM_TARGET(scm-app-utils ALL DEPENDS scm-app-utils-3 scm-app-utils-2 scm-app-utils-1 scm-gettext)
+add_custom_target(scm-app-utils ALL DEPENDS scm-app-utils-3 scm-app-utils-2 scm-app-utils-1 scm-gettext)
 
-SET_LOCAL_DIST(app_utils_DIST_local
+set_local_dist(app_utils_DIST_local
         ${app_utils_ALL_SOURCES} gettext.scm ${app_utils_SCHEME_1} ${app_utils_SCHEME_2} ${app_utils_SCHEME_3}
         app-utils.i CMakeLists.txt gnc-help-utils.c 
         make-prefs-migration-script.xsl migratable-prefs.xml.in README)
-SET(app_utils_DIST ${app_utils_DIST_local} ${test_app_utils_DIST} PARENT_SCOPE)
+set(app_utils_DIST ${app_utils_DIST_local} ${test_app_utils_DIST} PARENT_SCOPE)
diff --git a/libgnucash/app-utils/test/CMakeLists.txt b/libgnucash/app-utils/test/CMakeLists.txt
index d49a4c2..2fed2b9 100644
--- a/libgnucash/app-utils/test/CMakeLists.txt
+++ b/libgnucash/app-utils/test/CMakeLists.txt
@@ -1,5 +1,5 @@
 
-SET(APP_UTILS_TEST_INCLUDE_DIRS
+set(APP_UTILS_TEST_INCLUDE_DIRS
   ${CMAKE_BINARY_DIR}/common # for config.h
   ${CMAKE_SOURCE_DIR}/common/test-core
   ${CMAKE_SOURCE_DIR}/libgnucash/app-utils
@@ -9,27 +9,27 @@ SET(APP_UTILS_TEST_INCLUDE_DIRS
   ${GUILE_INCLUDE_DIRS}
 )
 
-SET(APP_UTILS_TEST_LIBS gncmod-app-utils gncmod-test-engine test-core ${GIO_LDFLAGS} ${GUILE_LDFLAGS})
+set(APP_UTILS_TEST_LIBS gncmod-app-utils gncmod-test-engine test-core ${GIO_LDFLAGS} ${GUILE_LDFLAGS})
 
-SET(test_app_utils_SOURCES test-app-utils.c test-option-util.cpp test-gnc-ui-util.c)
+set(test_app_utils_SOURCES test-app-utils.c test-option-util.cpp test-gnc-ui-util.c)
 
-MACRO(ADD_APP_UTILS_TEST _TARGET _SOURCE_FILES)
-  GNC_ADD_TEST(${_TARGET} "${_SOURCE_FILES}" APP_UTILS_TEST_INCLUDE_DIRS APP_UTILS_TEST_LIBS)
-ENDMACRO()
+macro(add_app_utils_test _TARGET _SOURCE_FILES)
+  gnc_add_test(${_TARGET} "${_SOURCE_FILES}" APP_UTILS_TEST_INCLUDE_DIRS APP_UTILS_TEST_LIBS)
+endmacro()
 
-GNC_ADD_TEST_WITH_GUILE(test-exp-parser test-exp-parser.c
+gnc_add_test_with_guile(test-exp-parser test-exp-parser.c
   APP_UTILS_TEST_INCLUDE_DIRS APP_UTILS_TEST_LIBS
  )
-GNC_ADD_TEST_WITH_GUILE(test-link-module-app-utils test-link-module APP_UTILS_TEST_INCLUDE_DIRS APP_UTILS_TEST_LIBS)
-ADD_APP_UTILS_TEST(test-print-parse-amount test-print-parse-amount.cpp)
+gnc_add_test_with_guile(test-link-module-app-utils test-link-module APP_UTILS_TEST_INCLUDE_DIRS APP_UTILS_TEST_LIBS)
+add_app_utils_test(test-print-parse-amount test-print-parse-amount.cpp)
 # FIXME Why is this test not run ?
-#GNC_ADD_TEST_WITH_GUILE(test-print-queries test-print-queries.cpp APP_UTILS_TEST_INCLUDE_DIRS APP_UTILS_TEST_LIBS)
-GNC_ADD_TEST_WITH_GUILE(test-scm-query-string test-scm-query-string.cpp
+#gnc_add_test_with_guile(test-print-queries test-print-queries.cpp APP_UTILS_TEST_INCLUDE_DIRS APP_UTILS_TEST_LIBS)
+gnc_add_test_with_guile(test-scm-query-string test-scm-query-string.cpp
   APP_UTILS_TEST_INCLUDE_DIRS APP_UTILS_TEST_LIBS
 )
-ADD_APP_UTILS_TEST(test-sx test-sx.cpp)
+add_app_utils_test(test-sx test-sx.cpp)
 
-SET(GUILE_DEPENDS
+set(GUILE_DEPENDS
   scm-test-engine
   scm-app-utils
   scm-core-utils
@@ -46,25 +46,25 @@ set(test_app_utils_scheme_SOURCES
   test-date-utilities.scm
 )
 
-GNC_ADD_SCHEME_TARGETS(scm-test-load-app-utils-module
+gnc_add_scheme_targets(scm-test-load-app-utils-module
   "test-load-app-utils-module.scm"
   "gnucash/reports"
   "${GUILE_DEPENDS}"
   FALSE
 )
 
-GNC_ADD_SCHEME_TARGETS(scm-test-c-interface
+gnc_add_scheme_targets(scm-test-c-interface
   "test-c-interface.scm"
   ""
   "${GUILE_DEPENDS}"
   FALSE
 )
 
-GNC_ADD_SCHEME_TESTS("${test_app_utils_scheme_SOURCES}")
+gnc_add_scheme_tests("${test_app_utils_scheme_SOURCES}")
 # Doesn't work yet:
-GNC_ADD_TEST_WITH_GUILE(test-app-utils "${test_app_utils_SOURCES}" APP_UTILS_TEST_INCLUDE_DIRS APP_UTILS_TEST_LIBS)
+gnc_add_test_with_guile(test-app-utils "${test_app_utils_SOURCES}" APP_UTILS_TEST_INCLUDE_DIRS APP_UTILS_TEST_LIBS)
 
-SET_DIST_LIST(test_app_utils_DIST
+set_dist_list(test_app_utils_DIST
   CMakeLists.txt
   
   test-exp-parser.c
diff --git a/libgnucash/backend/CMakeLists.txt b/libgnucash/backend/CMakeLists.txt
index f8d1416..1dbf0cc 100644
--- a/libgnucash/backend/CMakeLists.txt
+++ b/libgnucash/backend/CMakeLists.txt
@@ -1,9 +1,9 @@
 
-ADD_SUBDIRECTORY(xml)
-ADD_SUBDIRECTORY (dbi)
-ADD_SUBDIRECTORY (sql)
+add_subdirectory(xml)
+add_subdirectory (dbi)
+add_subdirectory (sql)
 
 
 
-SET_LOCAL_DIST(backend_DIST_local CMakeLists.txt )
-SET(backend_DIST ${backend_DIST_local} ${backend_dbi_DIST} ${backend_sql_DIST} ${backend_xml_DIST} PARENT_SCOPE)
\ No newline at end of file
+set_local_dist(backend_DIST_local CMakeLists.txt )
+set(backend_DIST ${backend_DIST_local} ${backend_dbi_DIST} ${backend_sql_DIST} ${backend_xml_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/libgnucash/backend/dbi/CMakeLists.txt b/libgnucash/backend/dbi/CMakeLists.txt
index 0ec2d39..ff7d760 100644
--- a/libgnucash/backend/dbi/CMakeLists.txt
+++ b/libgnucash/backend/dbi/CMakeLists.txt
@@ -1,13 +1,13 @@
 # CMakeLists.txt for libgnucash/backend/dbi
 
-ADD_SUBDIRECTORY(test)
+add_subdirectory(test)
 
-SET (backend_dbi_SOURCES
+set (backend_dbi_SOURCES
   gnc-backend-dbi.cpp
   gnc-dbisqlresult.cpp
   gnc-dbisqlconnection.cpp
 )
-SET (backend_dbi_noinst_HEADERS
+set (backend_dbi_noinst_HEADERS
   gnc-backend-dbi.h
   gnc-backend-dbi.hpp
   gnc-dbisqlresult.hpp
@@ -16,36 +16,36 @@ SET (backend_dbi_noinst_HEADERS
   gnc-dbiproviderimpl.hpp
 )
 
-SET_LOCAL_DIST(backend_dbi_DIST_local
+set_local_dist(backend_dbi_DIST_local
         ${backend_dbi_SOURCES} ${backend_dbi_noinst_HEADERS} CMakeLists.txt )
-SET(backend_dbi_DIST ${backend_dbi_DIST_local} ${test_dbi_backend_DIST} PARENT_SCOPE)
+set(backend_dbi_DIST ${backend_dbi_DIST_local} ${test_dbi_backend_DIST} PARENT_SCOPE)
 
 # Add dependency on config.h
-SET_SOURCE_FILES_PROPERTIES (${backend_dbi_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+set_source_files_properties (${backend_dbi_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
 
-IF (WITH_SQL)
-  ADD_LIBRARY (gncmod-backend-dbi
+if (WITH_SQL)
+  add_library (gncmod-backend-dbi
     ${backend_dbi_SOURCES}
     ${backend_dbi_noinst_HEADERS}
   )
 
-  SET(WINSOCK_LIB "")
-  IF(MINGW64)
-    SET(WINSOCK_LIB "-lws2_32")
-  ENDIF(MINGW64)
-  TARGET_LINK_LIBRARIES(gncmod-backend-dbi gnc-backend-sql gncmod-engine ${GTK2_LDFLAGS} ${Boost_REGEX_LIBRARY} ${LIBDBI_LIBRARY} ${WINSOCK_LIB})
+  set(WINSOCK_LIB "")
+  if(MINGW64)
+    set(WINSOCK_LIB "-lws2_32")
+  endif(MINGW64)
+  target_link_libraries(gncmod-backend-dbi gnc-backend-sql gncmod-engine ${GTK2_LDFLAGS} ${Boost_REGEX_LIBRARY} ${LIBDBI_LIBRARY} ${WINSOCK_LIB})
 
-  TARGET_COMPILE_DEFINITIONS(gncmod-backend-dbi PRIVATE -DG_LOG_DOMAIN=\"gnc.backend.dbi\")
+  target_compile_definitions(gncmod-backend-dbi PRIVATE -DG_LOG_DOMAIN=\"gnc.backend.dbi\")
 
-  TARGET_INCLUDE_DIRECTORIES(gncmod-backend-dbi PRIVATE ${LIBDBI_INCLUDE_PATH})
+  target_include_directories(gncmod-backend-dbi PRIVATE ${LIBDBI_INCLUDE_PATH})
 
-  IF (APPLE)
-    SET_TARGET_PROPERTIES (gncmod-backend-dbi PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
-  ENDIF()
+  if (APPLE)
+    set_target_properties (gncmod-backend-dbi PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
+  endif()
 
-  INSTALL(TARGETS gncmod-backend-dbi
+  install(TARGETS gncmod-backend-dbi
     LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
     ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
     RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
 # No headers to install
-ENDIF(WITH_SQL)
+endif(WITH_SQL)
diff --git a/libgnucash/backend/dbi/test/CMakeLists.txt b/libgnucash/backend/dbi/test/CMakeLists.txt
index e2be0bf..1df34f0 100644
--- a/libgnucash/backend/dbi/test/CMakeLists.txt
+++ b/libgnucash/backend/dbi/test/CMakeLists.txt
@@ -1,5 +1,5 @@
 
-SET(BACKEND_DBI_TEST_INCLUDE_DIRS
+set(BACKEND_DBI_TEST_INCLUDE_DIRS
   ${CMAKE_BINARY_DIR}/common # for config.h
   ${CMAKE_SOURCE_DIR}/libgnucash/core-utils
   ${CMAKE_SOURCE_DIR}/libgnucash/backend/dbi/test
@@ -10,9 +10,9 @@ SET(BACKEND_DBI_TEST_INCLUDE_DIRS
   ${LIBDBI_INCLUDE_PATH}
   ${GLIB2_INCLUDE_DIRS}
 )
-SET(BACKEND_DBI_TEST_LIBS gnc-backend-sql gncmod-engine gncmod-test-engine test-core ${Boost_REGEX_LIBRARY} ${LIBDBI_LIBRARY})
+set(BACKEND_DBI_TEST_LIBS gnc-backend-sql gncmod-engine gncmod-test-engine test-core ${Boost_REGEX_LIBRARY} ${LIBDBI_LIBRARY})
 
-SET(test_dbi_backend_SOURCES
+set(test_dbi_backend_SOURCES
   test-backend-dbi.cpp
   test-backend-dbi-basic.cpp
   test-dbi-business-stuff.cpp
@@ -22,19 +22,19 @@ SET(test_dbi_backend_SOURCES
   ../gnc-dbisqlresult.cpp
 )
 
-SET(test_dbi_backend_HEADERS test-dbi-business-stuff.h test-dbi-stuff.h)
+set(test_dbi_backend_HEADERS test-dbi-business-stuff.h test-dbi-stuff.h)
 
-SET_DIST_LIST(test_dbi_backend_DIST ${test_dbi_backend_SOURCES} ${test_dbi_backend_HEADERS} test-dbi.xml CMakeLists.txt )
+set_dist_list(test_dbi_backend_DIST ${test_dbi_backend_SOURCES} ${test_dbi_backend_HEADERS} test-dbi.xml CMakeLists.txt )
 
 # This test does not work on Win32
-IF (WITH_SQL AND NOT WIN32)
-  GNC_ADD_TEST(test-backend-dbi "${test_dbi_backend_SOURCES}"
+if (WITH_SQL AND NOT WIN32)
+  gnc_add_test(test-backend-dbi "${test_dbi_backend_SOURCES}"
     BACKEND_DBI_TEST_INCLUDE_DIRS BACKEND_DBI_TEST_LIBS
   )
 
-  TARGET_COMPILE_DEFINITIONS(test-backend-dbi PRIVATE
+  target_compile_definitions(test-backend-dbi PRIVATE
     TEST_MYSQL_URL=\"${TEST_MYSQL_URL}\"
     TEST_PGSQL_URL=\"${TEST_PGSQL_URL}\"
     DBI_TEST_XML_FILENAME=\"${CMAKE_CURRENT_SOURCE_DIR}/test-dbi.xml\"
   )
-ENDIF()
+endif()
diff --git a/libgnucash/backend/sql/CMakeLists.txt b/libgnucash/backend/sql/CMakeLists.txt
index 612b868..ebd2a83 100644
--- a/libgnucash/backend/sql/CMakeLists.txt
+++ b/libgnucash/backend/sql/CMakeLists.txt
@@ -1,8 +1,8 @@
 # CMakeLists.txt for libgnucash/backend/dbi
 
-ADD_SUBDIRECTORY(test)
+add_subdirectory(test)
 
-SET (backend_sql_SOURCES
+set (backend_sql_SOURCES
   gnc-account-sql.cpp
   gnc-address-sql.cpp
   gnc-bill-term-sql.cpp
@@ -30,7 +30,7 @@ SET (backend_sql_SOURCES
   gnc-sql-object-backend.cpp
   escape.cpp
 )
-SET (backend_sql_noinst_HEADERS
+set (backend_sql_noinst_HEADERS
   gnc-account-sql.h
   gnc-bill-term-sql.h
   gnc-book-sql.h
@@ -58,27 +58,27 @@ SET (backend_sql_noinst_HEADERS
   escape.h
 )
 
-SET_LOCAL_DIST(backend_sql_DIST_local ${backend_sql_SOURCES} ${backend_sql_noinst_HEADERS} CMakeLists.txt )
-SET(backend_sql_DIST ${backend_sql_DIST_local} ${test_backend_sql_DIST} PARENT_SCOPE)
+set_local_dist(backend_sql_DIST_local ${backend_sql_SOURCES} ${backend_sql_noinst_HEADERS} CMakeLists.txt )
+set(backend_sql_DIST ${backend_sql_DIST_local} ${test_backend_sql_DIST} PARENT_SCOPE)
 
 # Add dependency on config.h
-SET_SOURCE_FILES_PROPERTIES (${gnc_backend_sql_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
-IF(WITH_SQL)
-  ADD_LIBRARY (gnc-backend-sql
+set_source_files_properties (${gnc_backend_sql_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+if(WITH_SQL)
+  add_library (gnc-backend-sql
     ${backend_sql_SOURCES}
     ${backend_sql_noinst_HEADERS}
     )
 
-  TARGET_LINK_LIBRARIES(gnc-backend-sql gncmod-engine)
+  target_link_libraries(gnc-backend-sql gncmod-engine)
 
-  TARGET_COMPILE_DEFINITIONS (gnc-backend-sql PRIVATE -DG_LOG_DOMAIN=\"gnc.backend.sql\")
+  target_compile_definitions (gnc-backend-sql PRIVATE -DG_LOG_DOMAIN=\"gnc.backend.sql\")
 
-  TARGET_INCLUDE_DIRECTORIES(gnc-backend-sql PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
+  target_include_directories(gnc-backend-sql PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
 
-  INSTALL(TARGETS gnc-backend-sql
+  install(TARGETS gnc-backend-sql
     LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
     ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
     RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
 
   # No headers to install
-ENDIF(WITH_SQL)
+endif(WITH_SQL)
diff --git a/libgnucash/backend/sql/test/CMakeLists.txt b/libgnucash/backend/sql/test/CMakeLists.txt
index 8447e91..d0c06cc 100644
--- a/libgnucash/backend/sql/test/CMakeLists.txt
+++ b/libgnucash/backend/sql/test/CMakeLists.txt
@@ -1,5 +1,5 @@
 
-SET(BACKEND_SQL_TEST_INCLUDE_DIRS
+set(BACKEND_SQL_TEST_INCLUDE_DIRS
   ${CMAKE_BINARY_DIR}/common # for config.h
   ${CMAKE_SOURCE_DIR}/libgnucash/backend/sql
   ${CMAKE_SOURCE_DIR}/libgnucash/engine
@@ -7,21 +7,21 @@ SET(BACKEND_SQL_TEST_INCLUDE_DIRS
   ${GLIB2_INCLUDE_DIRS}
 )
 
-SET(test_backend_sql_SOURCES test-sqlbe.cpp utest-gnc-backend-sql.cpp)
+set(test_backend_sql_SOURCES test-sqlbe.cpp utest-gnc-backend-sql.cpp)
 
-SET(BACKEND_SQL_TEST_LIBS gnc-backend-sql gncmod-engine test-core)
+set(BACKEND_SQL_TEST_LIBS gnc-backend-sql gncmod-engine test-core)
 
-SET_DIST_LIST(test_backend_sql_DIST ${test_backend_sql_SOURCES} CMakeLists.txt
+set_dist_list(test_backend_sql_DIST ${test_backend_sql_SOURCES} CMakeLists.txt
   test-column-types.cpp)
 
-IF(WITH_SQL)
+if(WITH_SQL)
   # This test does not actually do anything.
-  GNC_ADD_TEST(test-column-types test-column-types.cpp
+  gnc_add_test(test-column-types test-column-types.cpp
     BACKEND_SQL_TEST_INCLUDE_DIRS BACKEND_SQL_TEST_LIBS
   )
 
-  GNC_ADD_TEST(test-sqlbe "${test_backend_sql_SOURCES}"
+  gnc_add_test(test-sqlbe "${test_backend_sql_SOURCES}"
     BACKEND_SQL_TEST_INCLUDE_DIRS BACKEND_SQL_TEST_LIBS
   )
-  TARGET_COMPILE_DEFINITIONS(test-sqlbe PRIVATE TESTPROG=test_sqlbe)
-ENDIF(WITH_SQL)
+  target_compile_definitions(test-sqlbe PRIVATE TESTPROG=test_sqlbe)
+endif(WITH_SQL)
diff --git a/libgnucash/backend/xml/CMakeLists.txt b/libgnucash/backend/xml/CMakeLists.txt
index b8f9cad..3c5c96d 100644
--- a/libgnucash/backend/xml/CMakeLists.txt
+++ b/libgnucash/backend/xml/CMakeLists.txt
@@ -1,8 +1,8 @@
 # CMakeLists.txt for libgnucash/backend/xml
 
-ADD_SUBDIRECTORY(test)
+add_subdirectory(test)
 
-SET (backend_xml_utils_noinst_HEADERS
+set (backend_xml_utils_noinst_HEADERS
   gnc-backend-xml.h
   gnc-xml.h
   gnc-address-xml-v2.h
@@ -32,7 +32,7 @@ SET (backend_xml_utils_noinst_HEADERS
   xml-helpers.h
 )
 
-SET (backend_xml_utils_SOURCES
+set (backend_xml_utils_SOURCES
   gnc-account-xml-v2.cpp
   gnc-address-xml-v2.cpp
   gnc-bill-term-xml-v2.cpp
@@ -69,29 +69,29 @@ SET (backend_xml_utils_SOURCES
   sixtp.cpp
 )
 
-SET_LOCAL_DIST(backend_xml_DIST_local ${backend_xml_utils_SOURCES}
+set_local_dist(backend_xml_DIST_local ${backend_xml_utils_SOURCES}
   ${backend_xml_utils_noinst_HEADERS} gnc-backend-xml.cpp CMakeLists.txt
   )
-SET(backend_xml_DIST ${backend_xml_DIST_local} ${test_backend_xml_DIST} PARENT_SCOPE)
+set(backend_xml_DIST ${backend_xml_DIST_local} ${test_backend_xml_DIST} PARENT_SCOPE)
 
 # Add dependency on config.h
-SET_SOURCE_FILES_PROPERTIES (${backend_xml_utils_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+set_source_files_properties (${backend_xml_utils_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
 
-ADD_LIBRARY	(gnc-backend-xml-utils
+add_library	(gnc-backend-xml-utils
   ${backend_xml_utils_SOURCES}
   ${backend_xml_utils_noinst_HEADERS}
 )
 
-TARGET_LINK_LIBRARIES(gnc-backend-xml-utils gncmod-engine ${LIBXML2_LDFLAGS} ${ZLIB_LDFLAGS})
+target_link_libraries(gnc-backend-xml-utils gncmod-engine ${LIBXML2_LDFLAGS} ${ZLIB_LDFLAGS})
 
-TARGET_INCLUDE_DIRECTORIES (gnc-backend-xml-utils
+target_include_directories (gnc-backend-xml-utils
   PUBLIC  ${LIBXML2_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}
   PRIVATE ${ZLIB_INCLUDE_DIRS}
 )
 
-TARGET_COMPILE_DEFINITIONS (gnc-backend-xml-utils PRIVATE -DG_LOG_DOMAIN=\"gnc.backend.xml\" -DU_SHOW_CPLUSPLUS_API=0)
+target_compile_definitions (gnc-backend-xml-utils PRIVATE -DG_LOG_DOMAIN=\"gnc.backend.xml\" -DU_SHOW_CPLUSPLUS_API=0)
 
-INSTALL(TARGETS gnc-backend-xml-utils
+install(TARGETS gnc-backend-xml-utils
   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
   RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
@@ -99,27 +99,27 @@ INSTALL(TARGETS gnc-backend-xml-utils
 
 # ----
 
-SET(libgncmod_backend_xml_SOURCES gnc-backend-xml.cpp)
+set(libgncmod_backend_xml_SOURCES gnc-backend-xml.cpp)
 
-SET_SOURCE_FILES_PROPERTIES (${libgncmod_backend_xml_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+set_source_files_properties (${libgncmod_backend_xml_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
 
-ADD_LIBRARY(gncmod-backend-xml MODULE ${libgncmod_backend_xml_SOURCES})
-TARGET_LINK_LIBRARIES(gncmod-backend-xml gnc-backend-xml-utils gncmod-engine
+add_library(gncmod-backend-xml MODULE ${libgncmod_backend_xml_SOURCES})
+target_link_libraries(gncmod-backend-xml gnc-backend-xml-utils gncmod-engine
                         gnc-core-utils ${LIBXML2_LDFLAGS} ${GLIB2_LDFLAGS} ${ZLIB_LIBRARY})
 
-TARGET_COMPILE_DEFINITIONS (gncmod-backend-xml PRIVATE -DG_LOG_DOMAIN=\"gnc.backend.xml\" -DU_SHOW_CPLUSPLUS_API=0)
+target_compile_definitions (gncmod-backend-xml PRIVATE -DG_LOG_DOMAIN=\"gnc.backend.xml\" -DU_SHOW_CPLUSPLUS_API=0)
 
-SET(LIB_DIR ${CMAKE_INSTALL_LIBDIR}/gnucash)
-IF (WIN32)
-  SET(LIB_DIR ${CMAKE_INSTALL_BINDIR})
-ENDIF(WIN32)
+set(LIB_DIR ${CMAKE_INSTALL_LIBDIR}/gnucash)
+if (WIN32)
+  set(LIB_DIR ${CMAKE_INSTALL_BINDIR})
+endif(WIN32)
 
 
-IF (APPLE)
-  SET_TARGET_PROPERTIES (gncmod-backend-xml PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}")
-ENDIF()
+if (APPLE)
+  set_target_properties (gncmod-backend-xml PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}")
+endif()
 
-INSTALL(TARGETS gncmod-backend-xml
+install(TARGETS gncmod-backend-xml
   LIBRARY DESTINATION ${LIB_DIR}
   ARCHIVE DESTINATION ${LIB_DIR}
   RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
@@ -127,7 +127,7 @@ INSTALL(TARGETS gncmod-backend-xml
 # ----
 
 # Special normal (non-MODULE) library for cutecash only
-ADD_LIBRARY(gncmod-backend-xml-utils ${libgncmod_backend_xml_SOURCES})
-TARGET_LINK_LIBRARIES(gncmod-backend-xml-utils gnc-backend-xml-utils gncmod-engine
+add_library(gncmod-backend-xml-utils ${libgncmod_backend_xml_SOURCES})
+target_link_libraries(gncmod-backend-xml-utils gnc-backend-xml-utils gncmod-engine
                         gnc-core-utils ${LIBXML2_LDFLAGS} ${GLIB2_LDFLAGS} ${ZLIB_LIBRARY})
-TARGET_COMPILE_DEFINITIONS (gncmod-backend-xml-utils PRIVATE -DG_LOG_DOMAIN=\"gnc.backend.xml\" -DU_SHOW_CPLUSPLUS_API=0)
+target_compile_definitions (gncmod-backend-xml-utils PRIVATE -DG_LOG_DOMAIN=\"gnc.backend.xml\" -DU_SHOW_CPLUSPLUS_API=0)
diff --git a/libgnucash/backend/xml/test/CMakeLists.txt b/libgnucash/backend/xml/test/CMakeLists.txt
index 0f98769..1468dfe 100644
--- a/libgnucash/backend/xml/test/CMakeLists.txt
+++ b/libgnucash/backend/xml/test/CMakeLists.txt
@@ -1,7 +1,7 @@
 # Common stuff
-ADD_SUBDIRECTORY(test-files)
+add_subdirectory(test-files)
 
-SET(XML_TEST_INCLUDE_DIRS
+set(XML_TEST_INCLUDE_DIRS
   ${CMAKE_SOURCE_DIR}/libgnucash/backend/xml
   ${CMAKE_SOURCE_DIR}/libgnucash/backend/xml/test
   ${CMAKE_SOURCE_DIR}/libgnucash/engine
@@ -14,17 +14,17 @@ SET(XML_TEST_INCLUDE_DIRS
 )
 
 
-SET(XML_TEST_LIBS gncmod-engine gncmod-test-engine test-core ${LIBXML2_LDFLAGS} -lz)
+set(XML_TEST_LIBS gncmod-engine gncmod-test-engine test-core ${LIBXML2_LDFLAGS} -lz)
 
-FUNCTION(ADD_XML_TEST _TARGET _SOURCE_FILES)
-  GNC_ADD_TEST(${_TARGET} "${_SOURCE_FILES}" XML_TEST_INCLUDE_DIRS XML_TEST_LIBS ${ARGN})
-  TARGET_COMPILE_OPTIONS(${_TARGET} PRIVATE -DU_SHOW_CPLUSPLUS_API=0)
-ENDFUNCTION()
+function(add_xml_test _TARGET _SOURCE_FILES)
+  gnc_add_test(${_TARGET} "${_SOURCE_FILES}" XML_TEST_INCLUDE_DIRS XML_TEST_LIBS ${ARGN})
+  target_compile_options(${_TARGET} PRIVATE -DU_SHOW_CPLUSPLUS_API=0)
+endfunction()
 
 
 ################################
 
-SET(test_backend_xml_base_SOURCES
+set(test_backend_xml_base_SOURCES
   ${CMAKE_SOURCE_DIR}/libgnucash/backend/xml/sixtp-dom-parsers.cpp
   ${CMAKE_SOURCE_DIR}/libgnucash/backend/xml/sixtp-dom-generators.cpp
   ${CMAKE_SOURCE_DIR}/libgnucash/backend/xml/sixtp-utils.cpp
@@ -38,7 +38,7 @@ SET(test_backend_xml_base_SOURCES
 ## not load it as a module and cannot link to it
 ## and remain portable.
 
-SET(test_backend_xml_module_SOURCES
+set(test_backend_xml_module_SOURCES
   ${test_backend_xml_base_SOURCES}
   ${CMAKE_SOURCE_DIR}/libgnucash/backend/xml/io-example-account.cpp
   ${CMAKE_SOURCE_DIR}/libgnucash/backend/xml/io-gncxml-gen.cpp
@@ -56,53 +56,53 @@ SET(test_backend_xml_module_SOURCES
   ${CMAKE_SOURCE_DIR}/libgnucash/backend/xml/gnc-pricedb-xml-v2.cpp
 )
 
-SET_LOCAL_DIST(test_backend_xml_DIST_local CMakeLists.txt grab-types.pl
+set_local_dist(test_backend_xml_DIST_local CMakeLists.txt grab-types.pl
   README test-date-converting.cpp test-dom-converters1.cpp
   test-dom-parser1.cpp test-file-stuff.cpp test-file-stuff.h test-kvp-frames.cpp
   test-load-backend.cpp test-load-example-account.cpp  test-load-xml2.cpp
   test-save-in-lang.cpp test-string-converters.cpp test-xml2-is-file.cpp
   test-xml-account.cpp test-real-data.sh test-xml-commodity.cpp
   test-xml-pricedb.cpp test-xml-transaction.cpp)
-SET(test_backend_xml_DIST ${test_backend_xml_DIST_local} ${test_backend_xml_test_files_DIST} PARENT_SCOPE)
+set(test_backend_xml_DIST ${test_backend_xml_DIST_local} ${test_backend_xml_test_files_DIST} PARENT_SCOPE)
 
-ADD_XML_TEST(test-date-converting "${test_backend_xml_base_SOURCES};test-date-converting.cpp")
-ADD_XML_TEST(test-dom-converters1 "${test_backend_xml_base_SOURCES};test-dom-converters1.cpp")
-ADD_XML_TEST(test-kvp-frames      "${test_backend_xml_base_SOURCES};test-kvp-frames.cpp")
-ADD_XML_TEST(test-load-backend  test-load-backend.cpp)
-ADD_XML_TEST(test-load-xml2 test-load-xml2.cpp
+add_xml_test(test-date-converting "${test_backend_xml_base_SOURCES};test-date-converting.cpp")
+add_xml_test(test-dom-converters1 "${test_backend_xml_base_SOURCES};test-dom-converters1.cpp")
+add_xml_test(test-kvp-frames      "${test_backend_xml_base_SOURCES};test-kvp-frames.cpp")
+add_xml_test(test-load-backend  test-load-backend.cpp)
+add_xml_test(test-load-xml2 test-load-xml2.cpp
   GNC_TEST_FILES=${CMAKE_CURRENT_SOURCE_DIR}/test-files/xml2
 )
 # FIXME Why is this test not run/running ?
-#ADD_XML_TEST(test-save-in-lang test-save-in-lang.cpp
+#add_xml_test(test-save-in-lang test-save-in-lang.cpp
 #  GNC_TEST_FILES=${CMAKE_CURRENT_SOURCE_DIR}/test-files/xml2
 #)
 
-GNC_ADD_TEST_WITH_GUILE(test-load-example-account
+gnc_add_test_with_guile(test-load-example-account
   "${test_backend_xml_module_SOURCES};test-load-example-account.cpp"
   XML_TEST_INCLUDE_DIRS XML_TEST_LIBS
   GNC_ACCOUNT_PATH=${CMAKE_SOURCE_DIR}/data/accounts/C
 )
-TARGET_COMPILE_OPTIONS(test-load-example-account PRIVATE -DU_SHOW_CPLUSPLUS_API=0)
-ADD_XML_TEST(test-string-converters "${test_backend_xml_base_SOURCES};test-string-converters.cpp")
-ADD_XML_TEST(test-xml-account "${test_backend_xml_module_SOURCES};test-xml-account.cpp;test-file-stuff.cpp")
-ADD_XML_TEST(test-xml-commodity "${test_backend_xml_module_SOURCES};test-xml-commodity.cpp;test-file-stuff.cpp")
-ADD_XML_TEST(test-xml-pricedb "${test_backend_xml_module_SOURCES};test-xml-pricedb.cpp;test-file-stuff.cpp")
-ADD_XML_TEST(test-xml-transaction "${test_backend_xml_module_SOURCES};test-xml-transaction.cpp;test-file-stuff.cpp")
-ADD_XML_TEST(test-xml2-is-file "${test_backend_xml_module_SOURCES};test-xml2-is-file.cpp"
+target_compile_options(test-load-example-account PRIVATE -DU_SHOW_CPLUSPLUS_API=0)
+add_xml_test(test-string-converters "${test_backend_xml_base_SOURCES};test-string-converters.cpp")
+add_xml_test(test-xml-account "${test_backend_xml_module_SOURCES};test-xml-account.cpp;test-file-stuff.cpp")
+add_xml_test(test-xml-commodity "${test_backend_xml_module_SOURCES};test-xml-commodity.cpp;test-file-stuff.cpp")
+add_xml_test(test-xml-pricedb "${test_backend_xml_module_SOURCES};test-xml-pricedb.cpp;test-file-stuff.cpp")
+add_xml_test(test-xml-transaction "${test_backend_xml_module_SOURCES};test-xml-transaction.cpp;test-file-stuff.cpp")
+add_xml_test(test-xml2-is-file "${test_backend_xml_module_SOURCES};test-xml2-is-file.cpp"
    GNC_TEST_FILES=${CMAKE_CURRENT_SOURCE_DIR}/test-files/xml2)
 
-SET(CMAKE_COMMAND_TMP "")
-IF (${CMAKE_VERSION} VERSION_GREATER 3.1)
-  SET(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env)
-ENDIF()
+set(CMAKE_COMMAND_TMP "")
+if (${CMAKE_VERSION} VERSION_GREATER 3.1)
+  set(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env)
+endif()
 
-SET(test-real-data-env
+set(test-real-data-env
   SRCDIR=${CMAKE_CURRENT_SOURCE_DIR}
   VERBOSE=yes
   TEST_PATH=${CMAKE_BINARY_DIR}/bin
 )
-ADD_TEST(NAME test-real-data
+add_test(NAME test-real-data
    COMMAND ${CMAKE_COMMAND_TMP}
     ${SHELL} ${CMAKE_CURRENT_SOURCE_DIR}/test-real-data.sh
 )
-SET_TESTS_PROPERTIES(test-real-data PROPERTIES ENVIRONMENT "${test-real-data-env}")
+set_tests_properties(test-real-data PROPERTIES ENVIRONMENT "${test-real-data-env}")
diff --git a/libgnucash/backend/xml/test/test-files/CMakeLists.txt b/libgnucash/backend/xml/test/test-files/CMakeLists.txt
index 27d115d..6f51781 100644
--- a/libgnucash/backend/xml/test/test-files/CMakeLists.txt
+++ b/libgnucash/backend/xml/test/test-files/CMakeLists.txt
@@ -1,6 +1,6 @@
 
-ADD_SUBDIRECTORY(xml2)
+add_subdirectory(xml2)
 
-SET_LOCAL_DIST(test_backend_xml_test_files_DIST_local CMakeLists.txt )
-SET(test_backend_xml_test_files_DIST ${test_backend_xml_test_files_DIST_local} ${xml2_DIST} PARENT_SCOPE)
+set_local_dist(test_backend_xml_test_files_DIST_local CMakeLists.txt )
+set(test_backend_xml_test_files_DIST ${test_backend_xml_test_files_DIST_local} ${xml2_DIST} PARENT_SCOPE)
 
diff --git a/libgnucash/backend/xml/test/test-files/xml2/CMakeLists.txt b/libgnucash/backend/xml/test/test-files/xml2/CMakeLists.txt
index 1f6382d..0b5a0ae 100644
--- a/libgnucash/backend/xml/test/test-files/xml2/CMakeLists.txt
+++ b/libgnucash/backend/xml/test/test-files/xml2/CMakeLists.txt
@@ -1,4 +1,4 @@
 
-SET_DIST_LIST(xml2_DIST abcall.gml2 abc.gml2 carols-data-file.gml2 cbb-export.gml2 CMakeLists.txt conrads-file.gml2
+set_dist_list(xml2_DIST abcall.gml2 abc.gml2 carols-data-file.gml2 cbb-export.gml2 CMakeLists.txt conrads-file.gml2
         every.gml2 goonies-file.gml2 hierachical-data-file.gml2 Money95bank_fr.gml2
         Money95invst.gml2 Money95mutual.gml2 Money95stocks.gml2 ms-money.gml2 pricedb1.gml2)
\ No newline at end of file
diff --git a/libgnucash/core-utils/CMakeLists.txt b/libgnucash/core-utils/CMakeLists.txt
index 98641fb..fa3972c 100644
--- a/libgnucash/core-utils/CMakeLists.txt
+++ b/libgnucash/core-utils/CMakeLists.txt
@@ -1,6 +1,6 @@
 # CMakeLists.txt for libgnucash/core-utils
 
-ADD_SUBDIRECTORY(test)
+add_subdirectory(test)
 
 # Command to generate the swig-core-utils-guile.c wrapper file
 gnc_add_swig_guile_command (swig-core-utils-guile-c
@@ -15,7 +15,7 @@ gnc_add_swig_python_command (swig-core-utils-python
     ${CMAKE_CURRENT_SOURCE_DIR}/core-utils.i
 )
 
-SET (core_utils_SOURCES
+set (core_utils_SOURCES
   binreloc.c
   gnc-prefs.c
   gnc-environment.c
@@ -29,27 +29,27 @@ SET (core_utils_SOURCES
 )
 
 # Add dependency on config.h
-SET_SOURCE_FILES_PROPERTIES (${core_utils_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+set_source_files_properties (${core_utils_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
 
-SET(prefix ${CMAKE_INSTALL_PREFIX})
+set(prefix ${CMAKE_INSTALL_PREFIX})
 if(ENABLE_BINRELOC)
-  SET(datadir ${DATADIR})
-  SET(bindir ${BINDIR})
-  SET(libdir ${LIBDIR})
-  SET(sysconfdir ${SYSCONFDIR})
-  SET(localedir ${LOCALEDIR})
+  set(datadir ${DATADIR})
+  set(bindir ${BINDIR})
+  set(libdir ${LIBDIR})
+  set(sysconfdir ${SYSCONFDIR})
+  set(localedir ${LOCALEDIR})
 else()
-  SET(datadir ${CMAKE_INSTALL_FULL_DATADIR})
-  SET(bindir ${CMAKE_INSTALL_FULL_BINDIR})
-  SET(libdir ${CMAKE_INSTALL_FULL_LIBDIR})
-  SET(sysconfdir ${CMAKE_INSTALL_FULL_SYSCONFDIR})
-  SET(localedir "${CMAKE_INSTALL_FULL_DATAROOTDIR}/locale")
+  set(datadir ${CMAKE_INSTALL_FULL_DATADIR})
+  set(bindir ${CMAKE_INSTALL_FULL_BINDIR})
+  set(libdir ${CMAKE_INSTALL_FULL_LIBDIR})
+  set(sysconfdir ${CMAKE_INSTALL_FULL_SYSCONFDIR})
+  set(localedir "${CMAKE_INSTALL_FULL_DATAROOTDIR}/locale")
 endif()
 configure_file(gncla-dir.h.in gncla-dir.h)
 
 ### Create gnc-version.h ###
 
-SET (GNC_VERSION_H_IN
+set (GNC_VERSION_H_IN
 "/* Autogenerated. Do not change. */
 #ifndef GNC_VERSION_H
 #define GNC_VERSION_H
@@ -58,15 +58,15 @@ SET (GNC_VERSION_H_IN
 #endif
 ")
 
-STRING(CONFIGURE ${GNC_VERSION_H_IN} GNC_VERSION_H_CONTENT)
-FILE (WRITE ${CMAKE_CURRENT_BINARY_DIR}/gnc-version.h ${GNC_VERSION_H_CONTENT})
+string(CONFIGURE ${GNC_VERSION_H_IN} GNC_VERSION_H_CONTENT)
+file (WRITE ${CMAKE_CURRENT_BINARY_DIR}/gnc-version.h ${GNC_VERSION_H_CONTENT})
 
 ### Create gnc-vcs-info.h
 # This can only be done when building from a vcs (git/svn/bzr/svk) working directory.
 # This file is shipped in the distribution tarball, so no need to generate it in that case anyway.
 # The meta-cmake gymnastics here come from https://cmake.org/pipermail/cmake/2010-July/038015.html
-IF (BUILDING_FROM_VCS)
-FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/gnc-vcs-info.h.in
+if (BUILDING_FROM_VCS)
+file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/gnc-vcs-info.h.in
 "/* Autogenerated. Do not change. */
 #define GNC_VCS_REV \"@GNC_VCS_REV@\"
 #define GNC_VCS_REV_DATE \"@GNC_VCS_REV_DATE@\"
@@ -74,46 +74,46 @@ FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/gnc-vcs-info.h.in
 #define GNC_VCS_REV_Y_M \"@GNC_VCS_REV_Y_M@\"
 ")
 
-SET(SCM_REV_COMMAND "${CMAKE_SOURCE_DIR}/util/gnc-vcs-info -r")
-SET(SCM_REV_DATE_COMMAND "${CMAKE_SOURCE_DIR}/util/gnc-vcs-info -d")
-FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/version.cmake
-  "EXECUTE_PROCESS(
+set(SCM_REV_COMMAND "${CMAKE_SOURCE_DIR}/util/gnc-vcs-info -r")
+set(SCM_REV_DATE_COMMAND "${CMAKE_SOURCE_DIR}/util/gnc-vcs-info -d")
+file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/version.cmake
+  "execute_process(
     COMMAND ${SHELL} ${SCM_REV_COMMAND} ${CMAKE_SOURCE_DIR}
     OUTPUT_VARIABLE GNC_VCS_REV
     OUTPUT_STRIP_TRAILING_WHITESPACE
   )
-  EXECUTE_PROCESS(
+  execute_process(
     COMMAND ${SHELL} ${SCM_REV_DATE_COMMAND} ${CMAKE_SOURCE_DIR}
     OUTPUT_VARIABLE GNC_VCS_REV_DATE
     OUTPUT_STRIP_TRAILING_WHITESPACE
   )
-  STRING(SUBSTRING \${GNC_VCS_REV_DATE} 0 4 GNC_VCS_REV_YEAR)
-  STRING(SUBSTRING \${GNC_VCS_REV_DATE} 0 7 GNC_VCS_REV_Y_M)
-  CONFIGURE_FILE(\${SRC} \${DST} @ONLY)
+  string(SUBSTRING \${GNC_VCS_REV_DATE} 0 4 GNC_VCS_REV_YEAR)
+  string(SUBSTRING \${GNC_VCS_REV_DATE} 0 7 GNC_VCS_REV_Y_M)
+  configure_file(\${SRC} \${DST} @ONLY)
 ")
 
-IF (${CMAKE_VERSION} VERSION_GREATER "3.1")
-  ADD_CUSTOM_TARGET(gnc-vcs-info ALL
+if (${CMAKE_VERSION} VERSION_GREATER "3.1")
+  add_custom_target(gnc-vcs-info ALL
     BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/gnc-vcs-info.h
     COMMAND ${CMAKE_COMMAND} -D SRC=${CMAKE_CURRENT_BINARY_DIR}/gnc-vcs-info.h.in
                      -D DST=${CMAKE_CURRENT_BINARY_DIR}/gnc-vcs-info.h
                      -P ${CMAKE_CURRENT_BINARY_DIR}/version.cmake
   )
-ELSE()
+else()
   # BYPRODUCTS keyword not supported below 3.2
-  ADD_CUSTOM_TARGET(gnc-vcs-info ALL
+  add_custom_target(gnc-vcs-info ALL
     COMMAND ${CMAKE_COMMAND} -D SRC=${CMAKE_CURRENT_BINARY_DIR}/gnc-vcs-info.h.in
                      -D DST=${CMAKE_CURRENT_BINARY_DIR}/gnc-vcs-info.h
                      -P ${CMAKE_CURRENT_BINARY_DIR}/version.cmake
   )
-ENDIF()
-ELSE(BUILDING_FROM_VCS)
-  ADD_CUSTOM_TARGET(gnc-vcs-info DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/gnc-vcs-info.h)
-ENDIF(BUILDING_FROM_VCS)
+endif()
+else(BUILDING_FROM_VCS)
+  add_custom_target(gnc-vcs-info DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/gnc-vcs-info.h)
+endif(BUILDING_FROM_VCS)
 dist_add_generated (${BUILDING_FROM_VCS} gnc-vcs-info.h)
 ### Compile library
 
-SET(core_utils_noinst_HEADERS
+set(core_utils_noinst_HEADERS
   binreloc.h
   gnc-prefs.h
   gnc-prefs-p.h
@@ -127,9 +127,9 @@ SET(core_utils_noinst_HEADERS
   gnc-path.h
 )
 
-SET(core_utils_ALL_SOURCES ${core_utils_SOURCES} ${core_utils_noinst_HEADERS})
-SET(core_utils_ALL_LIBRARIES ${Boost_LIBRARIES} ${GUILE_LDFLAGS} ${GLIB2_LDFLAGS} ${GOBJECT_LDFLAGS} ${GTK_MAC_LDFLAGS})
-SET(core_utils_ALL_INCLUDES
+set(core_utils_ALL_SOURCES ${core_utils_SOURCES} ${core_utils_noinst_HEADERS})
+set(core_utils_ALL_LIBRARIES ${Boost_LIBRARIES} ${GUILE_LDFLAGS} ${GLIB2_LDFLAGS} ${GOBJECT_LDFLAGS} ${GTK_MAC_LDFLAGS})
+set(core_utils_ALL_INCLUDES
   ${CMAKE_SOURCE_DIR}/common
   ${CMAKE_BINARY_DIR}/common
   ${CMAKE_CURRENT_BINARY_DIR}
@@ -138,74 +138,74 @@ SET(core_utils_ALL_INCLUDES
   ${GUILE_INCLUDE_DIRS}
   ${GTK_MAC_INCLUDE_DIRS})
 
-SET_LOCAL_DIST(core_utils_DIST_local ${core_utils_ALL_SOURCES} CMakeLists.txt core-utils.i core-utils.scm gncla-dir.h.in)
-SET(core_utils_DIST ${core_utils_DIST_local} ${test_core_utils_DIST} PARENT_SCOPE)
+set_local_dist(core_utils_DIST_local ${core_utils_ALL_SOURCES} CMakeLists.txt core-utils.i core-utils.scm gncla-dir.h.in)
+set(core_utils_DIST ${core_utils_DIST_local} ${test_core_utils_DIST} PARENT_SCOPE)
 
-IF (MAC_INTEGRATION)
-  LIST(APPEND core_utils_ALL_LIBRARIES ${OSX_EXTRA_LIBRARIES})
-ENDIF()
+if (MAC_INTEGRATION)
+  list(APPEND core_utils_ALL_LIBRARIES ${OSX_EXTRA_LIBRARIES})
+endif()
 
-ADD_LIBRARY(gnc-core-utils ${core_utils_ALL_SOURCES} ${SWIG_CORE_UTILS_GUILE_C})
+add_library(gnc-core-utils ${core_utils_ALL_SOURCES} ${SWIG_CORE_UTILS_GUILE_C})
 add_dependencies(gnc-core-utils gnc-vcs-info swig-runtime-h)
 
-TARGET_LINK_LIBRARIES(gnc-core-utils ${core_utils_ALL_LIBRARIES})
+target_link_libraries(gnc-core-utils ${core_utils_ALL_LIBRARIES})
 
-TARGET_COMPILE_DEFINITIONS(gnc-core-utils
+target_compile_definitions(gnc-core-utils
     PRIVATE -DG_LOG_DOMAIN=\"gnc.core-utils\" ${GTK_MAC_CFLAGS_OTHER})
 
-TARGET_INCLUDE_DIRECTORIES(gnc-core-utils PUBLIC ${core_utils_ALL_INCLUDES})
+target_include_directories(gnc-core-utils PUBLIC ${core_utils_ALL_INCLUDES})
 
-IF (MAC_INTEGRATION)
-  TARGET_COMPILE_OPTIONS(gnc-core-utils PRIVATE ${OSX_EXTRA_COMPILE_FLAGS})
-ENDIF(MAC_INTEGRATION)
+if (MAC_INTEGRATION)
+  target_compile_options(gnc-core-utils PRIVATE ${OSX_EXTRA_COMPILE_FLAGS})
+endif(MAC_INTEGRATION)
 
-INSTALL(TARGETS gnc-core-utils
+install(TARGETS gnc-core-utils
   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
   RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
 )
 
-IF (WITH_PYTHON)
-  ADD_LIBRARY (sw_core_utils MODULE ${SWIG_CORE_UTILS_PYTHON_C})
+if (WITH_PYTHON)
+  add_library (sw_core_utils MODULE ${SWIG_CORE_UTILS_PYTHON_C})
 
-  TARGET_LINK_LIBRARIES(sw_core_utils gnc-core-utils ${core_utils_ALL_LIBRARIES} ${PYTHON_LIBRARIES})
-  SET_TARGET_PROPERTIES(sw_core_utils PROPERTIES PREFIX "_")
+  target_link_libraries(sw_core_utils gnc-core-utils ${core_utils_ALL_LIBRARIES} ${PYTHON_LIBRARIES})
+  set_target_properties(sw_core_utils PROPERTIES PREFIX "_")
 
-  TARGET_INCLUDE_DIRECTORIES (sw_core_utils
+  target_include_directories (sw_core_utils
     PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
     PRIVATE ${core_utils_ALL_INCLUDES} ${PYTHON_INCLUDE_DIRS}
   )
-  TARGET_COMPILE_DEFINITIONS (sw_core_utils PRIVATE -DG_LOG_DOMAIN=\"gnc.core-utils\")
+  target_compile_definitions (sw_core_utils PRIVATE -DG_LOG_DOMAIN=\"gnc.core-utils\")
 
-  IF (CORELE)
-    SET_TARGET_PROPERTIES (sw_core_utils PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
-  ENDIF()
+  if (CORELE)
+    set_target_properties (sw_core_utils PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
+  endif()
 
-  INSTALL(TARGETS sw_core_utils
+  install(TARGETS sw_core_utils
     LIBRARY DESTINATION ${PYTHON_SYSCONFIG_OUTPUT}/gnucash
     ARCHIVE DESTINATION ${PYTHON_SYSCONFIG_OUTPUT}/gnucash
   )
 
-  ADD_CUSTOM_TARGET(sw-core-utils-py ALL
+  add_custom_target(sw-core-utils-py ALL
     COMMAND ${CMAKE_COMMAND} -E copy ${SWIG_CORE_UTILS_PYTHON_PY} ${PYTHON_SYSCONFIG_BUILD}/gnucash
     DEPENDS ${SWIG_CORE_UTILS_PYTHON_C})
 
-  ADD_CUSTOM_TARGET(sw-core-utils-build ALL
+  add_custom_target(sw-core-utils-build ALL
     COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR_BUILD}/gnucash/_sw_core_utils${CMAKE_SHARED_MODULE_SUFFIX} ${PYTHON_SYSCONFIG_BUILD}/gnucash
     DEPENDS sw_core_utils)
-    
-ENDIF()
+
+endif()
 
 # No headers to install
 
 # Scheme
 
-SET (core_utils_SCHEME core-utils.scm)
+set (core_utils_SCHEME core-utils.scm)
 
-SET(GUILE_OUTPUT_DIR   gnucash)
-SET(GUILE_DEPENDS      gnc-core-utils)
+set(GUILE_OUTPUT_DIR   gnucash)
+set(GUILE_DEPENDS      gnc-core-utils)
 
-GNC_ADD_SCHEME_TARGETS(scm-core-utils
+gnc_add_scheme_targets(scm-core-utils
     "${core_utils_SCHEME}"
     ${GUILE_OUTPUT_DIR}
     "${GUILE_DEPENDS}"
diff --git a/libgnucash/core-utils/test/CMakeLists.txt b/libgnucash/core-utils/test/CMakeLists.txt
index 10d5352..fe92a2c 100644
--- a/libgnucash/core-utils/test/CMakeLists.txt
+++ b/libgnucash/core-utils/test/CMakeLists.txt
@@ -1,31 +1,31 @@
 set(MODULEPATH ${CMAKE_SOURCE_DIR}/libgnucash/core-utils)
 
-SET(CORE_UTILS_TEST_INCLUDE_DIRS
+set(CORE_UTILS_TEST_INCLUDE_DIRS
   ${CMAKE_BINARY_DIR}/common # for config.h
   ${MODULEPATH}
   ${CMAKE_SOURCE_DIR}/common/test-core
   ${GLIB2_INCLUDE_DIRS}
   ${GTK_MAC_INCLUDE_DIRS}
 )
-SET(CORE_UTILS_TEST_LIBS gnc-core-utils test-core)
-IF (MAC_INTEGRATION)
-  LIST(APPEND CORE_UTILS_TEST_LIBS ${OSX_EXTRA_LIBRARIES})
-ENDIF()
-
-MACRO(ADD_CORE_UTILS_TEST _TARGET _SOURCE_FILES)
-  GNC_ADD_TEST(${_TARGET} "${_SOURCE_FILES}" CORE_UTILS_TEST_INCLUDE_DIRS CORE_UTILS_TEST_LIBS)
-ENDMACRO()
-
-ADD_CORE_UTILS_TEST(test-gnc-glib-utils test-gnc-glib-utils.c)
-ADD_CORE_UTILS_TEST(test-resolve-file-path test-resolve-file-path.c)
-ADD_CORE_UTILS_TEST(test-userdata-dir test-userdata-dir.c)
-IF (NOT MAC_INTEGRATION AND NOT WIN32)
-  ADD_CORE_UTILS_TEST(test-userdata-dir-invalid-home test-userdata-dir-invalid-home.c)
-ENDIF()
-IF (MAC_INTEGRATION)
-  TARGET_COMPILE_OPTIONS(test-userdata-dir PRIVATE ${OSX_EXTRA_COMPILE_FLAGS})
-  TARGET_COMPILE_DEFINITIONS(test-userdata-dir PRIVATE ${GTK_MAC_CFLAGS_OTHER})
-ENDIF(MAC_INTEGRATION)
+set(CORE_UTILS_TEST_LIBS gnc-core-utils test-core)
+if (MAC_INTEGRATION)
+  list(APPEND CORE_UTILS_TEST_LIBS ${OSX_EXTRA_LIBRARIES})
+endif()
+
+macro(add_core_utils_test _TARGET _SOURCE_FILES)
+  gnc_add_test(${_TARGET} "${_SOURCE_FILES}" CORE_UTILS_TEST_INCLUDE_DIRS CORE_UTILS_TEST_LIBS)
+endmacro()
+
+add_core_utils_test(test-gnc-glib-utils test-gnc-glib-utils.c)
+add_core_utils_test(test-resolve-file-path test-resolve-file-path.c)
+add_core_utils_test(test-userdata-dir test-userdata-dir.c)
+if (NOT MAC_INTEGRATION AND NOT WIN32)
+  add_core_utils_test(test-userdata-dir-invalid-home test-userdata-dir-invalid-home.c)
+endif()
+if (MAC_INTEGRATION)
+  target_compile_options(test-userdata-dir PRIVATE ${OSX_EXTRA_COMPILE_FLAGS})
+  target_compile_definitions(test-userdata-dir PRIVATE ${GTK_MAC_CFLAGS_OTHER})
+endif(MAC_INTEGRATION)
 
 set(gtest_core_utils_INCLUDES
   ${MODULEPATH}
@@ -36,7 +36,7 @@ set(gtest_core_utils_INCLUDES
   ${GTEST_INCLUDE_DIR}
   )
 
-SET(gtest_core_utils_LIBS
+set(gtest_core_utils_LIBS
   ${GLIB2_LDFLAGS}
   ${Boost_LIBRARIES}
   ${GTHREAD_LDFLAGS}
@@ -52,6 +52,6 @@ set(test_gnc_path_util_SOURCES
 gnc_add_test(test-gnc-path-util "${test_gnc_path_util_SOURCES}"
   gtest_core_utils_INCLUDES gtest_core_utils_LIBS "GNC_UNINSTALLED=yes")
 
-SET_DIST_LIST(test_core_utils_DIST CMakeLists.txt
+set_dist_list(test_core_utils_DIST CMakeLists.txt
   test-gnc-glib-utils.c test-resolve-file-path.c test-userdata-dir.c
   test-userdata-dir-invalid-home.c gtest-path-utilities.cpp)
diff --git a/libgnucash/doc/CMakeLists.txt b/libgnucash/doc/CMakeLists.txt
index b0843f5..3951484 100644
--- a/libgnucash/doc/CMakeLists.txt
+++ b/libgnucash/doc/CMakeLists.txt
@@ -1,9 +1,9 @@
 if (NOT WIN32)
-  ADD_SUBDIRECTORY(design)
+  add_subdirectory(design)
 endif()
-ADD_SUBDIRECTORY(xml)
+add_subdirectory(xml)
 
-SET(doc_FILES
+set(doc_FILES
         backup.txt
         books.txt
         budget.txt
@@ -35,8 +35,8 @@ SET(doc_FILES
         user-prefs-howto.txt
         )
 
-SET_LOCAL_DIST(doc_DIST_local CMakeLists.txt ${doc_FILES})
-SET(doc_DIST ${doc_DIST_local} ${doc_design_DIST} ${doc_xml_DIST} PARENT_SCOPE)
+set_local_dist(doc_DIST_local CMakeLists.txt ${doc_FILES})
+set(doc_DIST ${doc_DIST_local} ${doc_design_DIST} ${doc_xml_DIST} PARENT_SCOPE)
 
 find_program(DOXYGEN doxygen)
 if (NOT ${DOXYGEN} STREQUAL "DOXYGEN-NOTFOUND")
diff --git a/libgnucash/doc/design/CMakeLists.txt b/libgnucash/doc/design/CMakeLists.txt
index 31caf62..8e50686 100644
--- a/libgnucash/doc/design/CMakeLists.txt
+++ b/libgnucash/doc/design/CMakeLists.txt
@@ -1,5 +1,5 @@
 
-SET(gnucash_design_TEXINFOS
+set(gnucash_design_TEXINFOS
   component-manager.texi
   concept-index.texi
   engine.texi
@@ -13,41 +13,41 @@ SET(gnucash_design_TEXINFOS
   user-preferences.texi
 )
 
-  EXECUTE_PROCESS(COMMAND date +%e OUTPUT_VARIABLE CURRENT_DATE OUTPUT_STRIP_TRAILING_WHITESPACE)
-  EXECUTE_PROCESS(COMMAND date +%B OUTPUT_VARIABLE CURRENT_MONTH OUTPUT_STRIP_TRAILING_WHITESPACE)
-  EXECUTE_PROCESS(COMMAND date +%Y OUTPUT_VARIABLE CURRENT_YEAR OUTPUT_STRIP_TRAILING_WHITESPACE)
-SET(UPDATED "${CURRENT_DATE} ${CURRENT_MONTH} ${CURRENT_YEAR}")
-SET(UPDATED_MONTH "${CURRENT_MONTH} ${CURRENT_YEAR}")
+  execute_process(COMMAND date +%e OUTPUT_VARIABLE CURRENT_DATE OUTPUT_STRIP_TRAILING_WHITESPACE)
+  execute_process(COMMAND date +%B OUTPUT_VARIABLE CURRENT_MONTH OUTPUT_STRIP_TRAILING_WHITESPACE)
+  execute_process(COMMAND date +%Y OUTPUT_VARIABLE CURRENT_YEAR OUTPUT_STRIP_TRAILING_WHITESPACE)
+set(UPDATED "${CURRENT_DATE} ${CURRENT_MONTH} ${CURRENT_YEAR}")
+set(UPDATED_MONTH "${CURRENT_MONTH} ${CURRENT_YEAR}")
 
-SET(VERSION_TEXI_IN
+set(VERSION_TEXI_IN
   "@set UPDATED ${UPDATED}
 @set UPDATED-MONTH ${UPDATED_MONTH}
 @set EDITION ${VERSION}
 @set VERSION ${VERSION}
 ")
 
-FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/version.texi ${VERSION_TEXI_IN})
-FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/stamp-vti ${VERSION_TEXI_IN})
+file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/version.texi ${VERSION_TEXI_IN})
+file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/stamp-vti ${VERSION_TEXI_IN})
 
-FILE(TO_NATIVE_PATH "${CMAKE_CURRENT_BINARY_DIR}" TEXI_BINARY_DIR)
-FILE(TO_NATIVE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/gnucash-design.texi" TEXI_SOURCE_FILE)
+file(TO_NATIVE_PATH "${CMAKE_CURRENT_BINARY_DIR}" TEXI_BINARY_DIR)
+file(TO_NATIVE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/gnucash-design.texi" TEXI_SOURCE_FILE)
 find_program(MAKEINFO makeinfo)
 if (NOT ${MAKEINFO} STREQUAL "MAKEINFO-NOTFOUND")
 
-  IF(${CMAKE_VERSION} VERSION_GREATER 3.1)
+  if(${CMAKE_VERSION} VERSION_GREATER 3.1)
     add_custom_command(
       OUTPUT gnucash-design.info
       COMMAND ${MAKEINFO} -I ${TEXI_BINARY_DIR} ${TEXI_SOURCE_FILE}
       DEPENDS ${gnucash_design_TEXINFOS}
       )
-  ELSE()
+  else()
     add_custom_command(
       OUTPUT gnucash-design.info
       COMMAND ${MAKEINFO} -I ${TEXI_BINARY_DIR} ${TEXI_SOURCE_FILE}
       DEPENDS ${gnucash_design_TEXINFOS}
       )
-  ENDIF()
+  endif()
 endif (NOT ${MAKEINFO} STREQUAL "MAKEINFO-NOTFOUND")
 dist_add_generated (${BUILDING_FROM_VCS} gnucash-design.info)
 
-SET_DIST_LIST(doc_design_DIST CMakeLists.txt gnucash-design.texi ${gnucash_design_TEXINFOS})
+set_dist_list(doc_design_DIST CMakeLists.txt gnucash-design.texi ${gnucash_design_TEXINFOS})
diff --git a/libgnucash/doc/xml/CMakeLists.txt b/libgnucash/doc/xml/CMakeLists.txt
index 08de6ae..94d6fa5 100644
--- a/libgnucash/doc/xml/CMakeLists.txt
+++ b/libgnucash/doc/xml/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(doc_xml_FILES
+set(doc_xml_FILES
         account-v2.dtd
         commodity-v2.dtd
         defaults-v1.dtd
@@ -12,4 +12,4 @@ SET(doc_xml_FILES
         types.dtd
 )
 
-SET_DIST_LIST(doc_xml_DIST CMakeLists.txt ${doc_xml_FILES})
\ No newline at end of file
+set_dist_list(doc_xml_DIST CMakeLists.txt ${doc_xml_FILES})
\ No newline at end of file
diff --git a/libgnucash/engine/CMakeLists.txt b/libgnucash/engine/CMakeLists.txt
index 169f7d1..72f9417 100644
--- a/libgnucash/engine/CMakeLists.txt
+++ b/libgnucash/engine/CMakeLists.txt
@@ -1,9 +1,9 @@
 # CMakeLists.txt for libgnucash/engine
 
-ADD_SUBDIRECTORY(test-core)
-ADD_SUBDIRECTORY(test)
+add_subdirectory(test-core)
+add_subdirectory(test)
 
-SET(engine_noinst_HEADERS
+set(engine_noinst_HEADERS
   AccountP.h
   ScrubP.h
   SplitP.h
@@ -26,7 +26,7 @@ SET(engine_noinst_HEADERS
   qofquerycore-p.h
 )
 
-SET (engine_HEADERS
+set (engine_HEADERS
   Account.h
   FreqSpec.h
   Recurrence.h
@@ -124,16 +124,16 @@ gnc_add_swig_guile_command (swig-engine-c
 )
 
 # Command to generate the iso-4217-currencies.c file
-SET (ISO_4217_C ${CMAKE_CURRENT_BINARY_DIR}/iso-4217-currencies.c)
-ADD_CUSTOM_COMMAND (
+set (ISO_4217_C ${CMAKE_CURRENT_BINARY_DIR}/iso-4217-currencies.c)
+add_custom_command (
   OUTPUT ${ISO_4217_C}
   DEPENDS iso-4217-currencies.xml iso-currencies-to-c.xsl
   COMMAND
     ${LIBXSLT_XSLTPROC_EXECUTABLE} -o ${ISO_4217_C} "${CMAKE_CURRENT_SOURCE_DIR}/iso-currencies-to-c.xsl" "${CMAKE_CURRENT_SOURCE_DIR}/iso-4217-currencies.xml"
     )
-ADD_CUSTOM_TARGET(iso-4217-c DEPENDS ${ISO_4217_C})
+add_custom_target(iso-4217-c DEPENDS ${ISO_4217_C})
 
-SET (engine_SOURCES
+set (engine_SOURCES
   Account.cpp
   Recurrence.c
   Query.c
@@ -204,23 +204,23 @@ SET (engine_SOURCES
   qof-string-cache.cpp
 )
 
-IF (WIN32)
-  ADD_DEFINITIONS (-DOS_WIN32)
-  SET (engine_SOURCES ${engine_SOURCES}
+if (WIN32)
+  add_definitions (-DOS_WIN32)
+  set (engine_SOURCES ${engine_SOURCES}
   qof-win32.cpp
   ../../borrowed/libc/strptime.c
   )
-ENDIF (WIN32)
+endif (WIN32)
 
 # Add dependency on config.h
-SET_SOURCE_FILES_PROPERTIES (${engine_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+set_source_files_properties (${engine_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
 
 # Add dependency on iso-4217-currencies.c
-SET_SOURCE_FILES_PROPERTIES (gnc-commodity.c PROPERTIES OBJECT_DEPENDS "${ISO_4217_C};${CONFIG_H}")
+set_source_files_properties (gnc-commodity.c PROPERTIES OBJECT_DEPENDS "${ISO_4217_C};${CONFIG_H}")
 
 
 
-ADD_LIBRARY (gncmod-engine
+add_library (gncmod-engine
   ${engine_SOURCES}
   ${engine_HEADERS}
   ${SWIG_ENGINE_C}
@@ -230,12 +230,12 @@ ADD_LIBRARY (gncmod-engine
 # Add dependency on swig-runtime.h and iso-4217-currencies.c
 add_dependencies (gncmod-engine swig-runtime-h iso-4217-c)
 
-TARGET_LINK_LIBRARIES(gncmod-engine gnc-core-utils gnc-module ${Boost_DATE_TIME_LIBRARIES}  ${Boost_REGEX_LIBRARIES} ${REGEX_LDFLAGS} ${GMODULE_LDFLAGS} ${GLIB2_LDFLAGS} ${GOBJECT_LDFLAGS} ${GUILE_LDFLAGS})
+target_link_libraries(gncmod-engine gnc-core-utils gnc-module ${Boost_DATE_TIME_LIBRARIES}  ${Boost_REGEX_LIBRARIES} ${REGEX_LDFLAGS} ${GMODULE_LDFLAGS} ${GLIB2_LDFLAGS} ${GOBJECT_LDFLAGS} ${GUILE_LDFLAGS})
 
-TARGET_COMPILE_DEFINITIONS (gncmod-engine PRIVATE -DG_LOG_DOMAIN=\"gnc.engine\")
-TARGET_COMPILE_OPTIONS (gncmod-engine PRIVATE -Wno-deprecated-register)
+target_compile_definitions (gncmod-engine PRIVATE -DG_LOG_DOMAIN=\"gnc.engine\")
+target_compile_options (gncmod-engine PRIVATE -Wno-deprecated-register)
 
-TARGET_INCLUDE_DIRECTORIES (gncmod-engine
+target_include_directories (gncmod-engine
     PRIVATE ${CMAKE_CURRENT_BINARY_DIR} # for iso-4217-currencies.c
     PUBLIC
         ${CMAKE_CURRENT_SOURCE_DIR}
@@ -247,59 +247,59 @@ TARGET_INCLUDE_DIRECTORIES (gncmod-engine
         ${CMAKE_SOURCE_DIR}/borrowed/libc # for strptime.h
 )
 
-IF (APPLE)
-  SET_TARGET_PROPERTIES (gncmod-engine PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
-ENDIF()
+if (APPLE)
+  set_target_properties (gncmod-engine PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
+endif()
 
-INSTALL(TARGETS gncmod-engine
+install(TARGETS gncmod-engine
   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
 
-INSTALL(FILES ${engine_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gnucash)
+install(FILES ${engine_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gnucash)
 
 # Scheme
 
-SET (engine_SCHEME_0
+set (engine_SCHEME_0
     engine.scm
     business-core.scm
 )
 
-SET (engine_SCHEME_1
+set (engine_SCHEME_1
     commodity-table.scm
     engine-interface.scm
     engine-utilities.scm
     gnc-numeric.scm
 )
 
-SET(BACKEND_DEPENDS gncmod-backend-xml)
-IF (WITH_SQL)
-    LIST(APPEND BACKEND_DEPENDS gncmod-backend-dbi)
-ENDIF(WITH_SQL)
+set(BACKEND_DEPENDS gncmod-backend-xml)
+if (WITH_SQL)
+    list(APPEND BACKEND_DEPENDS gncmod-backend-dbi)
+endif(WITH_SQL)
 
-SET(GUILE_DEPENDS
+set(GUILE_DEPENDS
   ${BACKEND_DEPENDS}
   gncmod-engine
   scm-gnc-module)
 
 
-GNC_ADD_SCHEME_TARGETS(scm-engine-0
+gnc_add_scheme_targets(scm-engine-0
   "${engine_SCHEME_0}"
   gnucash
   "${GUILE_DEPENDS}"
   FALSE
 )
 
-GNC_ADD_SCHEME_TARGETS(scm-engine-1
+gnc_add_scheme_targets(scm-engine-1
   "${engine_SCHEME_1}"
   ""
   "scm-engine-0;${GUILE_DEPENDS}"
   FALSE
 )
 
-ADD_CUSTOM_TARGET(scm-engine ALL DEPENDS scm-engine-1 scm-engine-0)
+add_custom_target(scm-engine ALL DEPENDS scm-engine-1 scm-engine-0)
 
-SET(engine_EXTRA_DIST
+set(engine_EXTRA_DIST
         business-core.i
         design.txt
         engine.i
@@ -313,9 +313,9 @@ SET(engine_EXTRA_DIST
         SX-book-p.h
         )
 
-IF (NOT WIN32)
-  LIST(APPEND engine_EXTRA_DIST qof-win32.cpp)
-ENDIF (NOT WIN32)
-SET_LOCAL_DIST(engine_DIST_local CMakeLists.txt ${engine_SOURCES} ${engine_HEADERS}
+if (NOT WIN32)
+  list(APPEND engine_EXTRA_DIST qof-win32.cpp)
+endif (NOT WIN32)
+set_local_dist(engine_DIST_local CMakeLists.txt ${engine_SOURCES} ${engine_HEADERS}
                      ${engine_noinst_HEADERS} ${engine_SCHEME_0} ${engine_SCHEME_1} ${engine_EXTRA_DIST})
-SET(engine_DIST ${engine_DIST_local} ${engine_test_core_DIST} ${test_engine_DIST} PARENT_SCOPE)
+set(engine_DIST ${engine_DIST_local} ${engine_test_core_DIST} ${test_engine_DIST} PARENT_SCOPE)
diff --git a/libgnucash/engine/test-core/CMakeLists.txt b/libgnucash/engine/test-core/CMakeLists.txt
index d5572b5..9dddffd 100644
--- a/libgnucash/engine/test-core/CMakeLists.txt
+++ b/libgnucash/engine/test-core/CMakeLists.txt
@@ -1,12 +1,12 @@
 
 
-SET(libgncmod_test_engine_SOURCES
+set(libgncmod_test_engine_SOURCES
   gncmod-test-engine.c test-engine-stuff.cpp
 )
 
-ADD_LIBRARY(gncmod-test-engine STATIC ${libgncmod_test_engine_SOURCES})
+add_library(gncmod-test-engine STATIC ${libgncmod_test_engine_SOURCES})
 
-TARGET_INCLUDE_DIRECTORIES(gncmod-test-engine PRIVATE
+target_include_directories(gncmod-test-engine PRIVATE
   ${CMAKE_PREFIX_PATH}/include
   ${GMODULE_INCLUDE_DIRS}
   ${CMAKE_SOURCE_DIR}/libgnucash/gnc-module
@@ -16,5 +16,5 @@ TARGET_INCLUDE_DIRECTORIES(gncmod-test-engine PRIVATE
   ${CMAKE_SOURCE_DIR}/common/test-core
 )
 
-SET_DIST_LIST(engine_test_core_DIST CMakeLists.txt ${libgncmod_test_engine_SOURCES}
+set_dist_list(engine_test_core_DIST CMakeLists.txt ${libgncmod_test_engine_SOURCES}
         test-engine-stuff.h test-engine-strings.h)
diff --git a/libgnucash/engine/test/CMakeLists.txt b/libgnucash/engine/test/CMakeLists.txt
index caf427e..587c0eb 100644
--- a/libgnucash/engine/test/CMakeLists.txt
+++ b/libgnucash/engine/test/CMakeLists.txt
@@ -1,6 +1,6 @@
 # Common stuff
 
-SET(ENGINE_TEST_INCLUDE_DIRS
+set(ENGINE_TEST_INCLUDE_DIRS
   ${CMAKE_SOURCE_DIR}/libgnucash/backend/xml
   ${CMAKE_SOURCE_DIR}/libgnucash/engine
   ${CMAKE_SOURCE_DIR}/libgnucash/engine/test-core
@@ -9,28 +9,28 @@ SET(ENGINE_TEST_INCLUDE_DIRS
   ${GLIB2_INCLUDE_DIRS}
 )
 
-SET(ENGINE_TEST_LIBS gncmod-engine gncmod-test-engine test-core ${LIBXML2_LDFLAGS} -lm)
+set(ENGINE_TEST_LIBS gncmod-engine gncmod-test-engine test-core ${LIBXML2_LDFLAGS} -lm)
 
-MACRO(ADD_ENGINE_TEST _TARGET _SOURCE_FILES)
-  GNC_ADD_TEST(${_TARGET} "${_SOURCE_FILES}" ENGINE_TEST_INCLUDE_DIRS ENGINE_TEST_LIBS)
-ENDMACRO()
+macro(add_engine_test _TARGET _SOURCE_FILES)
+  gnc_add_test(${_TARGET} "${_SOURCE_FILES}" ENGINE_TEST_INCLUDE_DIRS ENGINE_TEST_LIBS)
+endmacro()
 
 # Not via macro because of unique link requirements
 
-ADD_EXECUTABLE(test-link EXCLUDE_FROM_ALL test-link.c)
-TARGET_LINK_LIBRARIES(test-link gnc-core-utils)
-ADD_TEST(NAME test-link COMMAND test-link)
-ADD_DEPENDENCIES(check test-link)
+add_executable(test-link EXCLUDE_FROM_ALL test-link.c)
+target_link_libraries(test-link gnc-core-utils)
+add_test(NAME test-link COMMAND test-link)
+add_dependencies(check test-link)
 
 #################################################
 
-ADD_ENGINE_TEST(test-load-engine test-load-engine.c)
-ADD_ENGINE_TEST(test-guid test-guid.cpp)
-ADD_ENGINE_TEST(test-date test-date.cpp)
-ADD_ENGINE_TEST(test-object test-object.c)
-ADD_ENGINE_TEST(test-commodities test-commodities.cpp)
+add_engine_test(test-load-engine test-load-engine.c)
+add_engine_test(test-guid test-guid.cpp)
+add_engine_test(test-date test-date.cpp)
+add_engine_test(test-object test-object.c)
+add_engine_test(test-commodities test-commodities.cpp)
 
-SET(test_qof_SOURCES
+set(test_qof_SOURCES
   test-gnc-date.c
   test-qof.c
   test-qofbook.c
@@ -39,7 +39,7 @@ SET(test_qof_SOURCES
   test-qof-string-cache.c
 )
 
-SET(test_engine_SOURCES
+set(test_engine_SOURCES
   test-engine.c
   test-engine-kvp-properties.c
   test-gnc-uri-utils.c
@@ -53,49 +53,49 @@ SET(test_engine_SOURCES
 )
 
 # This test does not run on Win32
-IF (NOT WIN32)
-  SET(SOURCES ${test_qof_SOURCES} ${CMAKE_SOURCE_DIR}/common/test-core/unittest-support.c)
-  ADD_ENGINE_TEST(test-qof "${SOURCES}")
-  TARGET_COMPILE_DEFINITIONS(test-qof PRIVATE TESTPROG=test_qof)
-
-  SET(SOURCES ${test_engine_SOURCES} ${CMAKE_SOURCE_DIR}/common/test-core/unittest-support.c)
-  ADD_ENGINE_TEST(test-engine "${SOURCES}")
-  TARGET_COMPILE_OPTIONS(test-engine PRIVATE -Wno-write-strings)
-  TARGET_COMPILE_DEFINITIONS(test-engine PRIVATE TESTPROG=test_engine)
-ENDIF()
-
-ADD_ENGINE_TEST(test-account-object test-account-object.cpp)
-ADD_ENGINE_TEST(test-group-vs-book test-group-vs-book.cpp)
-ADD_ENGINE_TEST(test-lots test-lots.cpp)
-ADD_ENGINE_TEST(test-querynew test-querynew.c)
-ADD_ENGINE_TEST(test-query test-query.cpp)
-ADD_ENGINE_TEST(test-split-vs-account test-split-vs-account.cpp)
-ADD_ENGINE_TEST(test-transaction-reversal test-transaction-reversal.cpp)
-ADD_ENGINE_TEST(test-transaction-voiding test-transaction-voiding.cpp)
-ADD_ENGINE_TEST(test-recurrence test-recurrence.c)
-ADD_ENGINE_TEST(test-business test-business.c)
-ADD_ENGINE_TEST(test-address test-address.c)
-ADD_ENGINE_TEST(test-customer test-customer.c)
-ADD_ENGINE_TEST(test-employee test-employee.c)
-ADD_ENGINE_TEST(test-job test-job.c)
-ADD_ENGINE_TEST(test-vendor test-vendor.c)
-
-SET(test_numeric_SOURCES
+if (NOT WIN32)
+  set(SOURCES ${test_qof_SOURCES} ${CMAKE_SOURCE_DIR}/common/test-core/unittest-support.c)
+  add_engine_test(test-qof "${SOURCES}")
+  target_compile_definitions(test-qof PRIVATE TESTPROG=test_qof)
+
+  set(SOURCES ${test_engine_SOURCES} ${CMAKE_SOURCE_DIR}/common/test-core/unittest-support.c)
+  add_engine_test(test-engine "${SOURCES}")
+  target_compile_options(test-engine PRIVATE -Wno-write-strings)
+  target_compile_definitions(test-engine PRIVATE TESTPROG=test_engine)
+endif()
+
+add_engine_test(test-account-object test-account-object.cpp)
+add_engine_test(test-group-vs-book test-group-vs-book.cpp)
+add_engine_test(test-lots test-lots.cpp)
+add_engine_test(test-querynew test-querynew.c)
+add_engine_test(test-query test-query.cpp)
+add_engine_test(test-split-vs-account test-split-vs-account.cpp)
+add_engine_test(test-transaction-reversal test-transaction-reversal.cpp)
+add_engine_test(test-transaction-voiding test-transaction-voiding.cpp)
+add_engine_test(test-recurrence test-recurrence.c)
+add_engine_test(test-business test-business.c)
+add_engine_test(test-address test-address.c)
+add_engine_test(test-customer test-customer.c)
+add_engine_test(test-employee test-employee.c)
+add_engine_test(test-job test-job.c)
+add_engine_test(test-vendor test-vendor.c)
+
+set(test_numeric_SOURCES
   ${CMAKE_SOURCE_DIR}/libgnucash/engine/gnc-numeric.cpp
   ${CMAKE_SOURCE_DIR}/libgnucash/engine/gnc-rational.cpp
   ${CMAKE_SOURCE_DIR}/libgnucash/engine/gnc-int128.cpp
   ${CMAKE_SOURCE_DIR}/libgnucash/engine/test/test-numeric.cpp
 )
-ADD_ENGINE_TEST(test-numeric "${test_numeric_SOURCES}")
+add_engine_test(test-numeric "${test_numeric_SOURCES}")
 
-SET(MODULEPATH ${CMAKE_SOURCE_DIR}/libgnucash/engine)
-SET(gtest_old_engine_LIBS
+set(MODULEPATH ${CMAKE_SOURCE_DIR}/libgnucash/engine)
+set(gtest_old_engine_LIBS
   gncmod-engine
   ${GLIB2_LDFLAGS}
   ${Boost_LIBRARIES}
   ${GTEST_LIB})
 
-SET(gtest_qof_LIBS
+set(gtest_qof_LIBS
   ${GLIB2_LDFLAGS}
   ${GOBJECT_LDFLAGS}
   ${GMODULE_LDFLAGS}
@@ -103,7 +103,7 @@ SET(gtest_qof_LIBS
   ${Boost_LIBRARIES}
   ${GTEST_LIB})
 
-SET(gtest_engine_INCLUDES
+set(gtest_engine_INCLUDES
   ${MODULEPATH}
   ${CMAKE_BINARY_DIR}/common # for config.h
   ${CMAKE_SOURCE_DIR}/common # for platform.h
@@ -112,44 +112,44 @@ SET(gtest_engine_INCLUDES
   ../../../borrowed/libc
 )
 
-IF (WIN32)
-  ADD_DEFINITIONS (-DOS_WIN32)
-  SET (gtest_engine_win32_SOURCES
+if (WIN32)
+  add_definitions (-DOS_WIN32)
+  set (gtest_engine_win32_SOURCES
     ${MODULEPATH}/qof-win32.cpp
     ../../../borrowed/libc/strptime.c
   )
-ENDIF (WIN32)
+endif (WIN32)
 
-SET(test_gnc_guid_SOURCES
+set(test_gnc_guid_SOURCES
   ${MODULEPATH}/guid.cpp
   test-gnc-guid.cpp
   ${GTEST_SRC})
-GNC_ADD_TEST(test-gnc-guid "${test_gnc_guid_SOURCES}"
+gnc_add_test(test-gnc-guid "${test_gnc_guid_SOURCES}"
   gtest_engine_INCLUDES gtest_old_engine_LIBS)
 
-SET(test_kvp_value_SOURCES
+set(test_kvp_value_SOURCES
   ${MODULEPATH}/kvp-value.cpp
   test-kvp-value.cpp
   test-kvp-frame.cpp
   ${GTEST_SRC})
-GNC_ADD_TEST(test-kvp-value "${test_kvp_value_SOURCES}"
+gnc_add_test(test-kvp-value "${test_kvp_value_SOURCES}"
   gtest_engine_INCLUDES gtest_old_engine_LIBS)
 
-SET(test_qofsession_SOURCES
+set(test_qofsession_SOURCES
   ${MODULEPATH}/qofsession.cpp
   test-qofsession.cpp
   ${GTEST_SRC})
-GNC_ADD_TEST(test-qofsession "${test_qofsession_SOURCES}"
+gnc_add_test(test-qofsession "${test_qofsession_SOURCES}"
   gtest_engine_INCLUDES gtest_old_engine_LIBS)
 
-SET(test_gnc_int128_SOURCES
+set(test_gnc_int128_SOURCES
   ${MODULEPATH}/gnc-int128.cpp
   gtest-gnc-int128.cpp
   ${GTEST_SRC})
-GNC_ADD_TEST(test-gnc-int128 "${test_gnc_int128_SOURCES}"
+gnc_add_test(test-gnc-int128 "${test_gnc_int128_SOURCES}"
   gtest_engine_INCLUDES gtest_qof_LIBS)
 
-SET(test_gnc_rational_SOURCES
+set(test_gnc_rational_SOURCES
   ${MODULEPATH}/gnc-rational.cpp
   ${MODULEPATH}/gnc-numeric.cpp
   ${MODULEPATH}/gnc-int128.cpp
@@ -161,10 +161,10 @@ SET(test_gnc_rational_SOURCES
   gtest-gnc-rational.cpp
   ${GTEST_SRC})
 
-GNC_ADD_TEST(test-gnc-rational "${test_gnc_rational_SOURCES}"
+gnc_add_test(test-gnc-rational "${test_gnc_rational_SOURCES}"
   gtest_engine_INCLUDES gtest_qof_LIBS)
 
-SET(test_gnc_numeric_SOURCES
+set(test_gnc_numeric_SOURCES
   ${MODULEPATH}/gnc-rational.cpp
   ${MODULEPATH}/gnc-int128.cpp
   ${MODULEPATH}/gnc-numeric.cpp
@@ -175,17 +175,17 @@ SET(test_gnc_numeric_SOURCES
   ${gtest_engine_win32_SOURCES}
   gtest-gnc-numeric.cpp
   ${GTEST_SRC})
-GNC_ADD_TEST(test-gnc-numeric "${test_gnc_numeric_SOURCES}"
+gnc_add_test(test-gnc-numeric "${test_gnc_numeric_SOURCES}"
   gtest_engine_INCLUDES gtest_qof_LIBS)
 
-SET(test_gnc_timezone_SOURCES
+set(test_gnc_timezone_SOURCES
   ${MODULEPATH}/gnc-timezone.cpp
   gtest-gnc-timezone.cpp
   ${GTEST_SRC})
-GNC_ADD_TEST(test-gnc-timezone "${test_gnc_timezone_SOURCES}"
+gnc_add_test(test-gnc-timezone "${test_gnc_timezone_SOURCES}"
   gtest_engine_INCLUDES gtest_old_engine_LIBS)
 
-SET(test_gnc_datetime_SOURCES
+set(test_gnc_datetime_SOURCES
   ${MODULEPATH}/gnc-datetime.cpp
   ${MODULEPATH}/gnc-timezone.cpp
   ${MODULEPATH}/gnc-date.cpp
@@ -193,13 +193,13 @@ SET(test_gnc_datetime_SOURCES
   ${gtest_engine_win32_SOURCES}
   gtest-gnc-datetime.cpp
   ${GTEST_SRC})
-GNC_ADD_TEST(test-gnc-datetime "${test_gnc_datetime_SOURCES}"
+gnc_add_test(test-gnc-datetime "${test_gnc_datetime_SOURCES}"
   gtest_engine_INCLUDES gtest_qof_LIBS)
 
-SET(test_import_map_SOURCES
+set(test_import_map_SOURCES
   gtest-import-map.cpp
   ${GTEST_SRC})
-GNC_ADD_TEST(test-import-map "${test_import_map_SOURCES}"
+gnc_add_test(test-import-map "${test_import_map_SOURCES}"
   gtest_engine_INCLUDES gtest_old_engine_LIBS)
 
 set(test_qofquerycore_SOURCES
@@ -211,29 +211,29 @@ gnc_add_test(test-qofquerycore "${test_qofquerycore_SOURCES}"
 ############################
 # This is a C test that needs GUILE environment variables set.
 # It does not pass on Win32.
-GNC_ADD_TEST_WITH_GUILE(test-scm-query test-scm-query.cpp ENGINE_TEST_INCLUDE_DIRS ENGINE_TEST_LIBS)
+gnc_add_test_with_guile(test-scm-query test-scm-query.cpp ENGINE_TEST_INCLUDE_DIRS ENGINE_TEST_LIBS)
 ############################
 
 
-SET(engine_test_SCHEME
+set(engine_test_SCHEME
   test-account.scm
   test-create-account.scm
   test-test-extras.scm
   test-split.scm
   )
 
-#LIST(APPEND engine_test_SCHEME  test-scm-query-import.scm) Fails
+#list(APPEND engine_test_SCHEME  test-scm-query-import.scm) Fails
 
-SET(GUILE_DEPENDS      scm-gnc-module scm-app-utils scm-scm scm-engine)
+set(GUILE_DEPENDS      scm-gnc-module scm-app-utils scm-scm scm-engine)
 
-GNC_ADD_SCHEME_TARGETS(scm-test-engine-extras
+gnc_add_scheme_targets(scm-test-engine-extras
   "test-extras.scm"
   "gnucash/engine/test/"
   "${GUILE_DEPENDS}"
   FALSE
   )
 
-GNC_ADD_SCHEME_TARGETS(scm-test-engine
+gnc_add_scheme_targets(scm-test-engine
   "${engine_test_SCHEME}"
   ""
   "${GUILE_DEPENDS};scm-test-engine-extras"
@@ -241,9 +241,9 @@ GNC_ADD_SCHEME_TARGETS(scm-test-engine
   )
 
 add_dependencies(check scm-test-engine)
-GNC_ADD_SCHEME_TESTS("${engine_test_SCHEME}")
+gnc_add_scheme_tests("${engine_test_SCHEME}")
 
-SET(test_engine_SOURCES_DIST
+set(test_engine_SOURCES_DIST
         dummy.cpp
         gtest-gnc-int128.cpp
         gtest-gnc-rational.cpp
@@ -297,7 +297,7 @@ SET(test_engine_SOURCES_DIST
         utest-gnc-pricedb.c
 )
 
-SET(test_engine_SCHEME_DIST
+set(test_engine_SCHEME_DIST
         test-account.scm
         test-create-account.scm
         test-extras.scm
@@ -306,9 +306,9 @@ SET(test_engine_SCHEME_DIST
         test-test-extras.scm
 )
 
-SET(test_engine_EXTRA_DIST
+set(test_engine_EXTRA_DIST
         README
 )
 
-SET_DIST_LIST(test_engine_DIST CMakeLists.txt 
+set_dist_list(test_engine_DIST CMakeLists.txt
         ${test_engine_SOURCES_DIST} ${test_engine_SCHEME_DIST} ${test_engine_EXTRA_DIST})
diff --git a/libgnucash/gnc-module/CMakeLists.txt b/libgnucash/gnc-module/CMakeLists.txt
index c5ce2fe..b84654b 100644
--- a/libgnucash/gnc-module/CMakeLists.txt
+++ b/libgnucash/gnc-module/CMakeLists.txt
@@ -1,6 +1,6 @@
 # CMakeLists.txt for libgnucash/gnc-module
-ADD_SUBDIRECTORY(test)
-ADD_SUBDIRECTORY(example)
+add_subdirectory(test)
+add_subdirectory(example)
 
 # Command to generate the swig-gnc-module.c wrapper file
 gnc_add_swig_guile_command (swig-gnc-module-c
@@ -8,27 +8,27 @@ gnc_add_swig_guile_command (swig-gnc-module-c
     ${CMAKE_CURRENT_SOURCE_DIR}/gnc-module.i
 )
 
-SET (gnc_module_SOURCES gnc-module.c)
+set (gnc_module_SOURCES gnc-module.c)
 
 # Add dependency on config.h
-SET_SOURCE_FILES_PROPERTIES (${gnc_module_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+set_source_files_properties (${gnc_module_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
 
-SET (gnc_module_HEADERS
+set (gnc_module_HEADERS
   gnc-module.h
   gnc-module-api.h
 )
 
-ADD_LIBRARY	(gnc-module
+add_library	(gnc-module
   ${gnc_module_SOURCES}
   ${gnc_module_HEADERS}
   ${SWIG_GNC_MODULE_C}
 )
 
-TARGET_LINK_LIBRARIES(gnc-module ${GUILE_LDFLAGS} ${GMODULE_LDFLAGS} ${GLIB2_LDFLAGS})
+target_link_libraries(gnc-module ${GUILE_LDFLAGS} ${GMODULE_LDFLAGS} ${GLIB2_LDFLAGS})
 
-TARGET_COMPILE_DEFINITIONS (gnc-module PRIVATE -DG_LOG_DOMAIN=\"gnc.module\")
+target_compile_definitions (gnc-module PRIVATE -DG_LOG_DOMAIN=\"gnc.module\")
 
-TARGET_INCLUDE_DIRECTORIES (gnc-module
+target_include_directories (gnc-module
     PRIVATE ${GUILE_INCLUDE_DIRS}
     PUBLIC  ${CMAKE_CURRENT_SOURCE_DIR}
             ${CMAKE_SOURCE_DIR}/common
@@ -36,27 +36,27 @@ TARGET_INCLUDE_DIRECTORIES (gnc-module
             ${GLIB2_INCLUDE_DIRS}
 )
 
-INSTALL(TARGETS gnc-module
+install(TARGETS gnc-module
   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
   RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
 
-INSTALL(FILES ${gnc_module_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gnucash)
+install(FILES ${gnc_module_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gnucash)
 
 # --- Compile Scheme file(s) ---
 
-SET (gnc_module_SCHEME gnc-module.scm)
+set (gnc_module_SCHEME gnc-module.scm)
 
-SET(GUILE_OUTPUT_DIR   gnucash)
-SET(GUILE_DEPENDS      gnc-module)
+set(GUILE_OUTPUT_DIR   gnucash)
+set(GUILE_DEPENDS      gnc-module)
 
-GNC_ADD_SCHEME_TARGETS(scm-gnc-module
+gnc_add_scheme_targets(scm-gnc-module
   "${gnc_module_SCHEME}"
   ${GUILE_OUTPUT_DIR}
   "${GUILE_DEPENDS}"
   FALSE
 )
 
-SET_LOCAL_DIST(gnc_module_DIST_local CMakeLists.txt ${gnc_module_SOURCES} ${gnc_module_HEADERS}
+set_local_dist(gnc_module_DIST_local CMakeLists.txt ${gnc_module_SOURCES} ${gnc_module_HEADERS}
         gnc-module.i gnc-module.scm README)
-SET(gnc_module_DIST ${gnc_module_DIST_local} ${test_gnc_module_DIST} ${example_DIST} PARENT_SCOPE)
+set(gnc_module_DIST ${gnc_module_DIST_local} ${test_gnc_module_DIST} ${example_DIST} PARENT_SCOPE)
diff --git a/libgnucash/gnc-module/example/CMakeLists.txt b/libgnucash/gnc-module/example/CMakeLists.txt
index 62830ea..8385490 100644
--- a/libgnucash/gnc-module/example/CMakeLists.txt
+++ b/libgnucash/gnc-module/example/CMakeLists.txt
@@ -1,8 +1,8 @@
-ADD_SUBDIRECTORY(glade)
-ADD_SUBDIRECTORY(ui)
+add_subdirectory(glade)
+add_subdirectory(ui)
 
-SET(example_SOURCES gnc-plugin.example.c gncmod-example.c)
-SET(example_noinst_HEADERS gnc-plugin.example.h)
+set(example_SOURCES gnc-plugin.example.c gncmod-example.c)
+set(example_noinst_HEADERS gnc-plugin.example.h)
 
-SET_LOCAL_DIST(example_DIST_local CMakeLists.txt ${example_SOURCES} ${example_noinst_HEADERS})
-SET(example_DIST ${example_DIST_local} ${example_glade_DIST} ${example_ui_DIST} PARENT_SCOPE)
\ No newline at end of file
+set_local_dist(example_DIST_local CMakeLists.txt ${example_SOURCES} ${example_noinst_HEADERS})
+set(example_DIST ${example_DIST_local} ${example_glade_DIST} ${example_ui_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/libgnucash/gnc-module/example/glade/CMakeLists.txt b/libgnucash/gnc-module/example/glade/CMakeLists.txt
index e7f9b23..24f0a3b 100644
--- a/libgnucash/gnc-module/example/glade/CMakeLists.txt
+++ b/libgnucash/gnc-module/example/glade/CMakeLists.txt
@@ -1 +1 @@
-SET_DIST_LIST(example_glade_DIST CMakeLists.txt )
\ No newline at end of file
+set_dist_list(example_glade_DIST CMakeLists.txt )
\ No newline at end of file
diff --git a/libgnucash/gnc-module/example/ui/CMakeLists.txt b/libgnucash/gnc-module/example/ui/CMakeLists.txt
index ae3ea5b..0238071 100644
--- a/libgnucash/gnc-module/example/ui/CMakeLists.txt
+++ b/libgnucash/gnc-module/example/ui/CMakeLists.txt
@@ -1 +1 @@
-SET_DIST_LIST(example_ui_DIST CMakeLists.txt gnc-plugin-example-ui.xml)
+set_dist_list(example_ui_DIST CMakeLists.txt gnc-plugin-example-ui.xml)
diff --git a/libgnucash/gnc-module/test/CMakeLists.txt b/libgnucash/gnc-module/test/CMakeLists.txt
index aa34bbf..e13b8d6 100644
--- a/libgnucash/gnc-module/test/CMakeLists.txt
+++ b/libgnucash/gnc-module/test/CMakeLists.txt
@@ -1,10 +1,10 @@
 
-ADD_SUBDIRECTORY(mod-foo)
-ADD_SUBDIRECTORY(mod-bar)
-ADD_SUBDIRECTORY(mod-baz)
-ADD_SUBDIRECTORY(misc-mods)
+add_subdirectory(mod-foo)
+add_subdirectory(mod-bar)
+add_subdirectory(mod-baz)
+add_subdirectory(misc-mods)
 
-SET(GNC_MODULE_TEST_INCLUDE_DIRS
+set(GNC_MODULE_TEST_INCLUDE_DIRS
   ${CMAKE_BINARY_DIR}/common # for config.h
   ${CMAKE_SOURCE_DIR}/libgnucash/gnc-module
   ${CMAKE_SOURCE_DIR}/common/test-core
@@ -12,7 +12,7 @@ SET(GNC_MODULE_TEST_INCLUDE_DIRS
   ${GUILE_INCLUDE_DIRS}
 )
 
-SET(GNC_MODULE_TEST_LIBS
+set(GNC_MODULE_TEST_LIBS
   gnc-module
   test-core
   gncmod-foo
@@ -23,47 +23,29 @@ SET(GNC_MODULE_TEST_LIBS
   gncmod-incompatdep
   )
 
-MACRO(ADD_GNC_MODULE_TEST _TARGET _SOURCE_FILES)
-  GNC_ADD_TEST(${_TARGET} "${_SOURCE_FILES}" GNC_MODULE_TEST_INCLUDE_DIRS GNC_MODULE_TEST_LIBS)
-ENDMACRO()
+gnc_add_test_with_guile(test-load-c test-load-c.c GNC_MODULE_TEST_INCLUDE_DIRS GNC_MODULE_TEST_LIBS "GNC_MODULE_PATH=${LIBDIR_BUILD}/gnucash/test")
 
-FUNCTION(RUN_TEST_WITH_GUILE _TARGET _SOURCE_FILE)
-  GET_GUILE_ENV()
-  SET(CMAKE_COMMAND_TMP "")
-  IF (${CMAKE_VERSION} VERSION_GREATER 3.1)
-  SET(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env "${GUILE_ENV};GNC_MODULE_PATH=$${LIBDIR_BUILD}/gnucash/test")
-  ENDIF()
-  ADD_TEST(NAME ${_TARGET}
-    COMMAND ${CMAKE_COMMAND_TMP}
-      ${GUILE_EXECUTABLE} -s ${_SOURCE_FILE}
-  )
-
-  SET_TESTS_PROPERTIES(${_TARGET} PROPERTIES ENVIRONMENT "${GUILE_ENV};${ARGN}")
-ENDFUNCTION()
-
-GNC_ADD_TEST_WITH_GUILE(test-load-c test-load-c.c GNC_MODULE_TEST_INCLUDE_DIRS GNC_MODULE_TEST_LIBS "GNC_MODULE_PATH=${LIBDIR_BUILD}/gnucash/test")
-
-GNC_ADD_TEST_WITH_GUILE(test-modsysver test-modsysver.c
+gnc_add_test_with_guile(test-modsysver test-modsysver.c
   GNC_MODULE_TEST_INCLUDE_DIRS GNC_MODULE_TEST_LIBS
 )
-GNC_ADD_TEST_WITH_GUILE(test-incompatdep test-incompatdep.c
+gnc_add_test_with_guile(test-incompatdep test-incompatdep.c
   GNC_MODULE_TEST_INCLUDE_DIRS GNC_MODULE_TEST_LIBS
 )
-GNC_ADD_TEST_WITH_GUILE(test-agedver test-agedver.c
+gnc_add_test_with_guile(test-agedver test-agedver.c
   GNC_MODULE_TEST_INCLUDE_DIRS GNC_MODULE_TEST_LIBS
   "GNC_MODULE_PATH=${LIBDIR_BUILD}/gnucash/test"
   )
 
-SET(_LIBDIR ${LIBDIR_BUILD})
-IF (WIN32)
-  SET(_LIBDIR ${CMAKE_BINARY_DIR}/bin)
-ENDIF()
-GNC_ADD_TEST(test-dynload test-dynload.c
+set(_LIBDIR ${LIBDIR_BUILD})
+if (WIN32)
+  set(_LIBDIR ${CMAKE_BINARY_DIR}/bin)
+endif()
+gnc_add_test(test-dynload test-dynload.c
   GNC_MODULE_TEST_INCLUDE_DIRS GNC_MODULE_TEST_LIBS
   LIBDIR=${_LIBDIR}
 )
 
-SET(test_gnc_module_SCHEME
+set(test_gnc_module_SCHEME
   test-gnc-module-scm-init.scm
   test-gnc-module-load-scm.scm
   test-gnc-module-swigged-c.scm
@@ -73,7 +55,7 @@ SET(test_gnc_module_SCHEME
   test-gnc-module-scm-multi.scm
   )
 
-SET(GUILE_DEPENDS
+set(GUILE_DEPENDS
   gnc-module
   scm-test-core
   scm-mod-foo
@@ -84,26 +66,26 @@ SET(GUILE_DEPENDS
   gncmod-futuremodsys
   )
 
-GNC_ADD_SCHEME_TARGETS(test-gnc-modules-scm
+gnc_add_scheme_targets(test-gnc-modules-scm
   "${test_gnc_module_SCHEME}"
   "gnucash/gnc-modules/test"
   "${GUILE_DEPENDS}"
   TRUE
   )
 
-GNC_ADD_SCHEME_TESTS("${test_gnc_module_SCHEME}")
-IF(NOT WIN32)
+gnc_add_scheme_tests("${test_gnc_module_SCHEME}")
+if(NOT WIN32)
   # This little dance is needed because gnc_module_init will assert if
   # it finds libgncmod-futuremod.so outside of a test that expects it.
-  GET_GUILE_ENV()
-  SET(_GNC_MODULE_PATH "${LIBDIR_BUILD}:${LIBDIR_BUILD}/gnucash:${LIBDIR_BUILD}/gnucash/test")
-  FOREACH(test_file ${test_gnc_module_SCHEME})
-    GET_FILENAME_COMPONENT(basename ${test_file} NAME_WE)
-    SET_TESTS_PROPERTIES(${basename} PROPERTIES ENVIRONMENT "${GUILE_ENV};GNC_MODULE_PATH=${_GNC_MODULE_PATH}")
-  ENDFOREACH()
-ENDIF()
-
-SET(test_gnc_module_SOURCE_DIST
+  get_guile_env()
+  set(_GNC_MODULE_PATH "${LIBDIR_BUILD}:${LIBDIR_BUILD}/gnucash:${LIBDIR_BUILD}/gnucash/test")
+  foreach(test_file ${test_gnc_module_SCHEME})
+    get_filename_component(basename ${test_file} NAME_WE)
+    set_tests_properties(${basename} PROPERTIES ENVIRONMENT "${GUILE_ENV};GNC_MODULE_PATH=${_GNC_MODULE_PATH}")
+  endforeach()
+endif()
+
+set(test_gnc_module_SOURCE_DIST
   test-agedver.c
   test-dynload.c
   test-incompatdep.c
@@ -111,12 +93,12 @@ SET(test_gnc_module_SOURCE_DIST
   test-modsysver.c
 )
 
-SET(test_gnc_module_EXTRA_DIST
+set(test_gnc_module_EXTRA_DIST
   README
   ${test_gnc_module_SCHEME}
 )
 
-SET_LOCAL_DIST(test_gnc_module_DIST_local CMakeLists.txt README ${test_gnc_module_SOURCE_DIST} ${test_gnc_module_EXTRA_DIST})
+set_local_dist(test_gnc_module_DIST_local CMakeLists.txt README ${test_gnc_module_SOURCE_DIST} ${test_gnc_module_EXTRA_DIST})
 
-SET(test_gnc_module_DIST ${test_gnc_module_DIST_local} ${misc_mods_DIST}
+set(test_gnc_module_DIST ${test_gnc_module_DIST_local} ${misc_mods_DIST}
                          ${mod_bar_DIST} ${mod_baz_DIST} ${mod_foo_DIST} PARENT_SCOPE)
diff --git a/libgnucash/gnc-module/test/misc-mods/CMakeLists.txt b/libgnucash/gnc-module/test/misc-mods/CMakeLists.txt
index 6c4b004..b3cf730 100644
--- a/libgnucash/gnc-module/test/misc-mods/CMakeLists.txt
+++ b/libgnucash/gnc-module/test/misc-mods/CMakeLists.txt
@@ -4,18 +4,18 @@ INCLUDE_DIRECTORIES(
   ${GLIB2_INCLUDE_DIRS}
 )
 
-ADD_LIBRARY(gncmod-agedver EXCLUDE_FROM_ALL agedver.c)
-TARGET_LINK_LIBRARIES(gncmod-agedver ${GLIB2_LDFLAGS})
+add_library(gncmod-agedver EXCLUDE_FROM_ALL agedver.c)
+target_link_libraries(gncmod-agedver ${GLIB2_LDFLAGS})
 
-ADD_LIBRARY(gncmod-futuremodsys  EXCLUDE_FROM_ALL futuremodsys.c)
-TARGET_LINK_LIBRARIES(gncmod-futuremodsys ${GLIB2_LDFLAGS})
+add_library(gncmod-futuremodsys  EXCLUDE_FROM_ALL futuremodsys.c)
+target_link_libraries(gncmod-futuremodsys ${GLIB2_LDFLAGS})
 
-ADD_LIBRARY(gncmod-incompatdep  EXCLUDE_FROM_ALL incompatdep.c)
-TARGET_LINK_LIBRARIES(gncmod-incompatdep gnc-module ${GLIB2_LDFLAGS})
+add_library(gncmod-incompatdep  EXCLUDE_FROM_ALL incompatdep.c)
+target_link_libraries(gncmod-incompatdep gnc-module ${GLIB2_LDFLAGS})
 
-SET_TARGET_PROPERTIES(gncmod-agedver gncmod-futuremodsys gncmod-incompatdep PROPERTIES
+set_target_properties(gncmod-agedver gncmod-futuremodsys gncmod-incompatdep PROPERTIES
 LIBRARY_OUTPUT_DIRECTORY ${LIBDIR_BUILD}/gnucash/test
 ARCHIVE_OUTPUT_DIRECTORY ${LIBDIR_BUILD}/gnucash/test
 RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
 
-SET_DIST_LIST(misc_mods_DIST CMakeLists.txt agedver.c futuremodsys.c incompatdep.c)
+set_dist_list(misc_mods_DIST CMakeLists.txt agedver.c futuremodsys.c incompatdep.c)
diff --git a/libgnucash/gnc-module/test/mod-bar/CMakeLists.txt b/libgnucash/gnc-module/test/mod-bar/CMakeLists.txt
index 068fc8e..e86921c 100644
--- a/libgnucash/gnc-module/test/mod-bar/CMakeLists.txt
+++ b/libgnucash/gnc-module/test/mod-bar/CMakeLists.txt
@@ -4,12 +4,12 @@ gnc_add_swig_guile_command (swig-bar-c
     ${CMAKE_CURRENT_SOURCE_DIR}/bar.i bar.h
 )
 
-ADD_LIBRARY(bar EXCLUDE_FROM_ALL bar.c bar.h)
-ADD_LIBRARY(gncmod-bar EXCLUDE_FROM_ALL gnc-mod-bar.c)
-SET_SOURCE_FILES_PROPERTIES (gnc-mod-bar.c PROPERTY OBJECT_DEPENDS ${SWIG_BAR_C})
+add_library(bar EXCLUDE_FROM_ALL bar.c bar.h)
+add_library(gncmod-bar EXCLUDE_FROM_ALL gnc-mod-bar.c)
+set_source_files_properties (gnc-mod-bar.c PROPERTY OBJECT_DEPENDS ${SWIG_BAR_C})
 
-TARGET_LINK_LIBRARIES(gncmod-bar bar gnc-module)
-TARGET_INCLUDE_DIRECTORIES(gncmod-bar PRIVATE
+target_link_libraries(gncmod-bar bar gnc-module)
+target_include_directories(gncmod-bar PRIVATE
   ${CMAKE_BINARY_DIR}/common
   ${CMAKE_CURRENT_SOURCE_DIR}
   ${CMAKE_CURRENT_BINARY_DIR}
@@ -19,10 +19,10 @@ TARGET_INCLUDE_DIRECTORIES(gncmod-bar PRIVATE
   ${GUILE_INCLUDE_DIRS}
 )
 
-SET_TARGET_PROPERTIES(bar gncmod-bar PROPERTIES
+set_target_properties(bar gncmod-bar PROPERTIES
   LIBRARY_OUTPUT_DIRECTORY ${LIBDIR_BUILD}/gnucash/test
   ARCHIVE_OUTPUT_DIRECTORY ${LIBDIR_BUILD}/gnucash/test
   RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
   )
 
-SET_DIST_LIST(mod_bar_DIST CMakeLists.txt bar.c gnucash/bar.scm bar.h bar.i gnc-mod-bar.c)
+set_dist_list(mod_bar_DIST CMakeLists.txt bar.c gnucash/bar.scm bar.h bar.i gnc-mod-bar.c)
diff --git a/libgnucash/gnc-module/test/mod-baz/CMakeLists.txt b/libgnucash/gnc-module/test/mod-baz/CMakeLists.txt
index 0d70b3c..acd1e42 100644
--- a/libgnucash/gnc-module/test/mod-baz/CMakeLists.txt
+++ b/libgnucash/gnc-module/test/mod-baz/CMakeLists.txt
@@ -4,18 +4,18 @@ gnc_add_swig_guile_command (swig-baz-c
     ${CMAKE_CURRENT_SOURCE_DIR}/baz.i baz.h
 )
 
-ADD_LIBRARY(baz EXCLUDE_FROM_ALL baz.c baz.h)
-TARGET_INCLUDE_DIRECTORIES(baz PRIVATE
+add_library(baz EXCLUDE_FROM_ALL baz.c baz.h)
+target_include_directories(baz PRIVATE
   ${CMAKE_SOURCE_DIR}/libgnucash/gnc-module/test/mod-foo
 )
-TARGET_LINK_LIBRARIES(baz foo)
+target_link_libraries(baz foo)
 
 
-ADD_LIBRARY(gncmod-baz EXCLUDE_FROM_ALL gnc-mod-baz.c)
-SET_SOURCE_FILES_PROPERTIES (gnc-mod-baz.c PROPERTY OBJECT_DEPENDS ${SWIG_BAZ_C})
+add_library(gncmod-baz EXCLUDE_FROM_ALL gnc-mod-baz.c)
+set_source_files_properties (gnc-mod-baz.c PROPERTY OBJECT_DEPENDS ${SWIG_BAZ_C})
 
-TARGET_LINK_LIBRARIES(gncmod-baz baz gnc-module)
-TARGET_INCLUDE_DIRECTORIES(gncmod-baz PRIVATE
+target_link_libraries(gncmod-baz baz gnc-module)
+target_include_directories(gncmod-baz PRIVATE
   ${CMAKE_BINARY_DIR}/common
   ${CMAKE_CURRENT_SOURCE_DIR}
   ${CMAKE_CURRENT_BINARY_DIR}
@@ -25,16 +25,16 @@ TARGET_INCLUDE_DIRECTORIES(gncmod-baz PRIVATE
   ${GUILE_INCLUDE_DIRS}
 )
 
-GNC_ADD_SCHEME_TARGETS(scm-mod-baz
+gnc_add_scheme_targets(scm-mod-baz
   gnucash/baz.scm
   "gnucash"
   gncmod-baz
   TRUE
   )
 
-SET_TARGET_PROPERTIES(baz gncmod-baz PROPERTIES
+set_target_properties(baz gncmod-baz PROPERTIES
 LIBRARY_OUTPUT_DIRECTORY ${LIBDIR_BUILD}/gnucash/test
 ARCHIVE_OUTPUT_DIRECTORY ${LIBDIR_BUILD}/gnucash/test
 RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
 
-SET_DIST_LIST(mod_baz_DIST CMakeLists.txt baz.c gnucash/baz.scm baz.h baz.i gnc-mod-baz.c)
+set_dist_list(mod_baz_DIST CMakeLists.txt baz.c gnucash/baz.scm baz.h baz.i gnc-mod-baz.c)
diff --git a/libgnucash/gnc-module/test/mod-foo/CMakeLists.txt b/libgnucash/gnc-module/test/mod-foo/CMakeLists.txt
index b40ab95..290ce6a 100644
--- a/libgnucash/gnc-module/test/mod-foo/CMakeLists.txt
+++ b/libgnucash/gnc-module/test/mod-foo/CMakeLists.txt
@@ -4,12 +4,12 @@ gnc_add_swig_guile_command (swig-foo-c
     ${CMAKE_CURRENT_SOURCE_DIR}/foo.i foo.h
 )
 
-ADD_LIBRARY(foo EXCLUDE_FROM_ALL foo.c foo.h)
-ADD_LIBRARY(gncmod-foo EXCLUDE_FROM_ALL gnc-mod-foo.c)
-SET_SOURCE_FILES_PROPERTIES (gnc-mod-foo.c PROPERTY OBJECT_DEPENDS ${SWIG_FOO_C})
+add_library(foo EXCLUDE_FROM_ALL foo.c foo.h)
+add_library(gncmod-foo EXCLUDE_FROM_ALL gnc-mod-foo.c)
+set_source_files_properties (gnc-mod-foo.c PROPERTY OBJECT_DEPENDS ${SWIG_FOO_C})
 
-TARGET_LINK_LIBRARIES(gncmod-foo foo gnc-module)
-TARGET_INCLUDE_DIRECTORIES(gncmod-foo PRIVATE
+target_link_libraries(gncmod-foo foo gnc-module)
+target_include_directories(gncmod-foo PRIVATE
   ${CMAKE_BINARY_DIR}/common
   ${CMAKE_CURRENT_SOURCE_DIR}
   ${CMAKE_CURRENT_BINARY_DIR}
@@ -19,16 +19,16 @@ TARGET_INCLUDE_DIRECTORIES(gncmod-foo PRIVATE
   ${GUILE_INCLUDE_DIRS}
 )
 
-GNC_ADD_SCHEME_TARGETS(scm-mod-foo
+gnc_add_scheme_targets(scm-mod-foo
   gnucash/foo.scm
   "gnucash"
   gncmod-foo
   TRUE
   )
 
-SET_TARGET_PROPERTIES(foo gncmod-foo PROPERTIES
+set_target_properties(foo gncmod-foo PROPERTIES
 LIBRARY_OUTPUT_DIRECTORY ${LIBDIR_BUILD}/gnucash/test
 ARCHIVE_OUTPUT_DIRECTORY ${LIBDIR_BUILD}/gnucash/test
 RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
 
-SET_DIST_LIST(mod_foo_DIST CMakeLists.txt foo.i gnucash/foo.scm foo.c foo.h gnc-mod-foo.c)
+set_dist_list(mod_foo_DIST CMakeLists.txt foo.i gnucash/foo.scm foo.c foo.h gnc-mod-foo.c)
diff --git a/libgnucash/quotes/CMakeLists.txt b/libgnucash/quotes/CMakeLists.txt
index 7b6ef13..1f98035 100644
--- a/libgnucash/quotes/CMakeLists.txt
+++ b/libgnucash/quotes/CMakeLists.txt
@@ -1,35 +1,35 @@
 
-SET(_BIN_FILES "")
-FOREACH(file gnc-fq-check.in gnc-fq-helper.in gnc-fq-update.in gnc-fq-dump)
-  STRING(REPLACE ".in" "" _OUTPUT_FILE_NAME ${file})
-  SET(_ABS_OUTPUT_FILE ${BINDIR_BUILD}/${_OUTPUT_FILE_NAME})
+set(_BIN_FILES "")
+foreach(file gnc-fq-check.in gnc-fq-helper.in gnc-fq-update.in gnc-fq-dump)
+  string(REPLACE ".in" "" _OUTPUT_FILE_NAME ${file})
+  set(_ABS_OUTPUT_FILE ${BINDIR_BUILD}/${_OUTPUT_FILE_NAME})
   configure_file( ${file} ${_ABS_OUTPUT_FILE} @ONLY)
-  LIST(APPEND _BIN_FILES ${_ABS_OUTPUT_FILE})
-ENDFOREACH(file)
+  list(APPEND _BIN_FILES ${_ABS_OUTPUT_FILE})
+endforeach(file)
 
-SET(CMAKE_COMMAND_TMP "")
-IF (${CMAKE_VERSION} VERSION_GREATER 3.1)
-  SET(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env)
-ENDIF()
+set(CMAKE_COMMAND_TMP "")
+if (${CMAKE_VERSION} VERSION_GREATER 3.1)
+  set(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env)
+endif()
 
 
-SET(_MAN_FILES "")
-FOREACH(file gnc-fq-dump gnc-fq-helper)
-  SET(_POD_INPUT ${BINDIR_BUILD}/${file})
-  SET(_MAN_OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${file}.1)
-  LIST(APPEND _MAN_FILES ${_MAN_OUTPUT})
-  ADD_CUSTOM_COMMAND(
+set(_MAN_FILES "")
+foreach(file gnc-fq-dump gnc-fq-helper)
+  set(_POD_INPUT ${BINDIR_BUILD}/${file})
+  set(_MAN_OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${file}.1)
+  list(APPEND _MAN_FILES ${_MAN_OUTPUT})
+  add_custom_command(
       OUTPUT ${_MAN_OUTPUT}
       COMMAND
         ${CMAKE_COMMAND_TMP} ${PERL_EXECUTABLE} ${POD2MAN_EXECUTABLE} ${_POD_INPUT} ${_MAN_OUTPUT}
       DEPENDS ${_POD_INPUT}
   )
-ENDFOREACH(file)
+endforeach(file)
 
 
-ADD_CUSTOM_TARGET(quotes-man ALL DEPENDS ${_MAN_FILES})
-ADD_CUSTOM_TARGET(quotes-bin ALL DEPENDS ${_BIN_FILES})
-INSTALL(FILES ${_MAN_FILES} DESTINATION  ${CMAKE_INSTALL_MANDIR}/man1)
-INSTALL(PROGRAMS ${_BIN_FILES} DESTINATION ${CMAKE_INSTALL_BINDIR})
+add_custom_target(quotes-man ALL DEPENDS ${_MAN_FILES})
+add_custom_target(quotes-bin ALL DEPENDS ${_BIN_FILES})
+install(FILES ${_MAN_FILES} DESTINATION  ${CMAKE_INSTALL_MANDIR}/man1)
+install(PROGRAMS ${_BIN_FILES} DESTINATION ${CMAKE_INSTALL_BINDIR})
 
-SET_DIST_LIST(quotes_DIST CMakeLists.txt gnc-fq-check.in gnc-fq-dump gnc-fq-helper.in gnc-fq-update.in Quote_example.pl README)
+set_dist_list(quotes_DIST CMakeLists.txt gnc-fq-check.in gnc-fq-dump gnc-fq-helper.in gnc-fq-update.in Quote_example.pl README)
diff --git a/libgnucash/scm/CMakeLists.txt b/libgnucash/scm/CMakeLists.txt
index 3f18ccc..518ecb9 100644
--- a/libgnucash/scm/CMakeLists.txt
+++ b/libgnucash/scm/CMakeLists.txt
@@ -1,7 +1,7 @@
-SET(GUILE_DEPENDS      scm-core-utils scm-gnc-module)
+set(GUILE_DEPENDS      scm-core-utils scm-gnc-module)
 
 
-GNC_ADD_SCHEME_TARGETS(scm-scm
+gnc_add_scheme_targets(scm-scm
   "utilities.scm"
   gnucash
   "${GUILE_DEPENDS}"
@@ -9,14 +9,14 @@ GNC_ADD_SCHEME_TARGETS(scm-scm
 )
 
 # depends on main.scm
-GNC_ADD_SCHEME_TARGETS(price-quotes
+gnc_add_scheme_targets(price-quotes
   price-quotes.scm
   gnucash
   "scm-scm;scm-gnome-utils;scm-app-utils"
   FALSE)
 
 
-SET_LOCAL_DIST(scm_DIST_local CMakeLists.txt utilities.scm price-quotes.scm)
-SET(scm_DIST ${scm_DIST_local} ${scm_gnumeric_DIST} PARENT_SCOPE)
+set_local_dist(scm_DIST_local CMakeLists.txt utilities.scm price-quotes.scm)
+set(scm_DIST ${scm_DIST_local} ${scm_gnumeric_DIST} PARENT_SCOPE)
 
 
diff --git a/libgnucash/tax/CMakeLists.txt b/libgnucash/tax/CMakeLists.txt
index b1a0c84..ae8c641 100644
--- a/libgnucash/tax/CMakeLists.txt
+++ b/libgnucash/tax/CMakeLists.txt
@@ -1,5 +1,5 @@
 
-ADD_SUBDIRECTORY(us)
+add_subdirectory(us)
 
-SET_LOCAL_DIST(tax_DIST_local CMakeLists.txt )
-SET(tax_DIST ${tax_DIST_local} ${tax_us_DIST} PARENT_SCOPE)
\ No newline at end of file
+set_local_dist(tax_DIST_local CMakeLists.txt )
+set(tax_DIST ${tax_DIST_local} ${tax_us_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/libgnucash/tax/us/CMakeLists.txt b/libgnucash/tax/us/CMakeLists.txt
index 7feb344..56da48b 100644
--- a/libgnucash/tax/us/CMakeLists.txt
+++ b/libgnucash/tax/us/CMakeLists.txt
@@ -1,21 +1,21 @@
-ADD_SUBDIRECTORY(test)
+add_subdirectory(test)
 
-SET(tax_us_SOURCES gncmod-tax-us.c)
+set(tax_us_SOURCES gncmod-tax-us.c)
 
 # Add dependency on config.h
-SET_SOURCE_FILES_PROPERTIES (${tax_us_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+set_source_files_properties (${tax_us_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
 
-ADD_LIBRARY(gncmod-tax-us ${tax_us_SOURCES})
-TARGET_LINK_LIBRARIES(gncmod-tax-us gnc-module ${GLIB2_LDFLAGS} ${GUILE_LDFLAGS})
+add_library(gncmod-tax-us ${tax_us_SOURCES})
+target_link_libraries(gncmod-tax-us gnc-module ${GLIB2_LDFLAGS} ${GUILE_LDFLAGS})
 
-TARGET_INCLUDE_DIRECTORIES(gncmod-tax-us
+target_include_directories(gncmod-tax-us
     PRIVATE ${CMAKE_BINARY_DIR}/common ${GUILE_INCLUDE_DIRS})
 
-IF (APPLE)
-  SET_TARGET_PROPERTIES (gncmod-tax-us PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
-ENDIF()
+if (APPLE)
+  set_target_properties (gncmod-tax-us PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
+endif()
 
-INSTALL(TARGETS gncmod-tax-us
+install(TARGETS gncmod-tax-us
   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
@@ -23,18 +23,18 @@ INSTALL(TARGETS gncmod-tax-us
 
 # Scheme
 
-SET(gncmod_tax_us_SCHEME_1 txf.scm txf-help.scm txf-de_DE.scm txf-help-de_DE.scm)
-SET(gncmod_tax_us_SCHEME_2 de_DE.scm us.scm)
+set(gncmod_tax_us_SCHEME_1 txf.scm txf-help.scm txf-de_DE.scm txf-help-de_DE.scm)
+set(gncmod_tax_us_SCHEME_2 de_DE.scm us.scm)
 
-SET(GUILE_DEPENDS      scm-app-utils scm-gnc-module)
+set(GUILE_DEPENDS      scm-app-utils scm-gnc-module)
 
-GNC_ADD_SCHEME_TARGETS(scm-tax-us-1
+gnc_add_scheme_targets(scm-tax-us-1
   "${gncmod_tax_us_SCHEME_1}"
   ""
   "${GUILE_DEPENDS}"
   FALSE
   )
-GNC_ADD_SCHEME_TARGETS(scm-tax-us-2
+gnc_add_scheme_targets(scm-tax-us-2
   "${gncmod_tax_us_SCHEME_2}"
   gnucash/tax
   "${GUILE_DEPENDS}"
@@ -43,6 +43,6 @@ GNC_ADD_SCHEME_TARGETS(scm-tax-us-2
 
 add_custom_target(scm-tax-us ALL DEPENDS scm-tax-us-1 scm-tax-us-2)
 
-SET_LOCAL_DIST(tax_us_DIST_local CMakeLists.txt ${tax_us_SOURCES} ${gncmod_tax_us_SCHEME_1} ${gncmod_tax_us_SCHEME_2})
-SET(tax_us_DIST ${tax_us_DIST_local} ${test_tax_us_DIST} PARENT_SCOPE)
+set_local_dist(tax_us_DIST_local CMakeLists.txt ${tax_us_SOURCES} ${gncmod_tax_us_SCHEME_1} ${gncmod_tax_us_SCHEME_2})
+set(tax_us_DIST ${tax_us_DIST_local} ${test_tax_us_DIST} PARENT_SCOPE)
 
diff --git a/libgnucash/tax/us/test/CMakeLists.txt b/libgnucash/tax/us/test/CMakeLists.txt
index d87efe8..be2e11d 100644
--- a/libgnucash/tax/us/test/CMakeLists.txt
+++ b/libgnucash/tax/us/test/CMakeLists.txt
@@ -1,22 +1,22 @@
-SET(TAX_US_TEST_INCLUDE_DIRS "")
-SET(TAX_US_TEST_LIBS "")
+set(TAX_US_TEST_INCLUDE_DIRS "")
+set(TAX_US_TEST_LIBS "")
 
-GNC_ADD_TEST(test-link-module-tax-us test-link-module.c
+gnc_add_test(test-link-module-tax-us test-link-module.c
   TAX_US_TEST_INCLUDE_DIRS TAX_US_TEST_LIBS
 )
 
 # FIXME why is this test not run ?
-#SET(GUILE_DEPENDS
+#set(GUILE_DEPENDS
 #  gnc-core-utils
 #  scm-gnc-module
 #)
 #
-#GNC_ADD_SCHEME_TARGETS(scm-test-load-tax-us-module
+#gnc_add_scheme_targets(scm-test-load-tax-us-module
 #  "test-load-tax-us-module.scm"
 #  "gnucash/reports"
 #  "${GUILE_DEPENDS}"
 #  FALSE
 #)
-#GNC_ADD_SCHEME_TEST(test-load-tax-us-module.scm)
+#gnc_add_scheme_test(test-load-tax-us-module.scm)
 
-SET_DIST_LIST(test_tax_us_DIST CMakeLists.txt test-link-module.c test-load-tax-us-module.scm)
+set_dist_list(test_tax_us_DIST CMakeLists.txt test-link-module.c test-load-tax-us-module.scm)
diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt
index 27c639d..2a50460 100644
--- a/po/CMakeLists.txt
+++ b/po/CMakeLists.txt
@@ -1,76 +1,76 @@
-ADD_SUBDIRECTORY(glossary)
+add_subdirectory(glossary)
 
 # Set of available languages.
-SET (TP_LINGUAS az ca cs da eu fa ja nl rw sk sr sv tr uk zh_CN)
+set (TP_LINGUAS az ca cs da eu fa ja nl rw sk sr sv tr uk zh_CN)
 # already marked as external at TP:
-SET (GC_LINGUAS ar bg de el en_GB es fi fr gu he hi hu it kn ko lt lv mr nb ne pl pt pt_BR ro ru ta te ur vi zh_TW)
+set (GC_LINGUAS ar bg de el en_GB es fi fr gu he hi hu it kn ko lt lv mr nb ne pl pt pt_BR ro ru ta te ur vi zh_TW)
 # not marked or no TP team:
-SET (NEW_LINGUAS as brx doi es_NI kok kok at latin ks mai mni mni at bengali)
+set (NEW_LINGUAS as brx doi es_NI kok kok at latin ks mai mni mni at bengali)
 
-SET (ALL_LINGUAS ${TP_LINGUAS} ${GC_LINGUAS} ${NEW_LINGUAS})
+set (ALL_LINGUAS ${TP_LINGUAS} ${GC_LINGUAS} ${NEW_LINGUAS})
 
 file (WRITE LINGUAS "${ALL_LINGUAS}")
 
-SET (CATALOGS "")
-SET (BUILD_CATALOGS "")
+set (CATALOGS "")
+set (BUILD_CATALOGS "")
 
-SET(CMAKE_COMMAND_TMP "")
-IF (${CMAKE_VERSION} VERSION_GREATER 3.1)
-  SET(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env)
-ENDIF()
+set(CMAKE_COMMAND_TMP "")
+if (${CMAKE_VERSION} VERSION_GREATER 3.1)
+  set(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env)
+endif()
 
-SET(po_SOURCES "")
+set(po_SOURCES "")
 file (WRITE LINGUAS "")
-FOREACH(lingua ${ALL_LINGUAS})
-  LIST(APPEND po_SOURCES ${lingua}.po)
+foreach(lingua ${ALL_LINGUAS})
+  list(APPEND po_SOURCES ${lingua}.po)
   file (APPEND LINGUAS "${lingua} ")
-ENDFOREACH()
+endforeach()
 
-SET_LOCAL_DIST(po_DIST_local ${po_SOURCES} CMakeLists.txt ChangeLog Makevars
+set_local_dist(po_DIST_local ${po_SOURCES} CMakeLists.txt ChangeLog Makevars
   POTFILES.in POTFILES.skip README gnucash-pot.cmake)
-SET(po_DIST ${po_DIST_local} ${po_glossary_DIST} PARENT_SCOPE)
+set(po_DIST ${po_DIST_local} ${po_glossary_DIST} PARENT_SCOPE)
 
-FOREACH(lingua ${ALL_LINGUAS})
-  SET(_OUTPUT_FILE ${lingua}.mo)
-  LIST(APPEND CATALOGS ${_OUTPUT_FILE})
-  ADD_CUSTOM_COMMAND(
+foreach(lingua ${ALL_LINGUAS})
+  set(_OUTPUT_FILE ${lingua}.mo)
+  list(APPEND CATALOGS ${_OUTPUT_FILE})
+  add_custom_command(
       OUTPUT ${_OUTPUT_FILE}
       COMMAND ${CMAKE_COMMAND_TMP}
         ${GETTEXT_MSGFMT_EXECUTABLE}
             -o ${_OUTPUT_FILE} ${CMAKE_CURRENT_SOURCE_DIR}/${lingua}.po
   )
-  SET(_BUILD_FILE_DIR ${DATADIR_BUILD}/locale/${lingua}/LC_MESSAGES)
-  MAKE_DIRECTORY(${_BUILD_FILE_DIR})
-  SET(_BUILD_FILE ${_BUILD_FILE_DIR}/gnucash.mo)
-  LIST(APPEND BUILD_CATALOGS ${_BUILD_FILE})
-  ADD_CUSTOM_COMMAND(
+  set(_BUILD_FILE_DIR ${DATADIR_BUILD}/locale/${lingua}/LC_MESSAGES)
+  make_directory(${_BUILD_FILE_DIR})
+  set(_BUILD_FILE ${_BUILD_FILE_DIR}/gnucash.mo)
+  list(APPEND BUILD_CATALOGS ${_BUILD_FILE})
+  add_custom_command(
     OUTPUT ${_BUILD_FILE}
     COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/${lingua}.mo ${_BUILD_FILE}
     DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${_OUTPUT_FILE}
     #APPEND
     )
-ENDFOREACH(lingua)
+endforeach(lingua)
 
-ADD_CUSTOM_TARGET(po-gmo ALL DEPENDS ${CATALOGS})
-ADD_CUSTOM_TARGET(po-gmo-build ALL DEPENDS ${BUILD_CATALOGS})
+add_custom_target(po-gmo ALL DEPENDS ${CATALOGS})
+add_custom_target(po-gmo-build ALL DEPENDS ${BUILD_CATALOGS})
 
 
-FOREACH(lingua ${ALL_LINGUAS})
-  INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${lingua}.mo RENAME gnucash.mo DESTINATION ${CMAKE_INSTALL_DATADIR}/locale/${lingua}/LC_MESSAGES)
-ENDFOREACH(lingua)
+foreach(lingua ${ALL_LINGUAS})
+  install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${lingua}.mo RENAME gnucash.mo DESTINATION ${CMAKE_INSTALL_DATADIR}/locale/${lingua}/LC_MESSAGES)
+endforeach(lingua)
 
-FUNCTION(READ_FILE_REMOVING_COMMENTS OUTPUT PATH)
-  SET(RESULT "")
-  FILE(STRINGS "${PATH}" LINES_IN)
-  FOREACH(line ${LINES_IN})
-    STRING(REGEX REPLACE "#.*" "" line2 ${line})
-    LIST(APPEND RESULT ${line2})
-  ENDFOREACH()
-  SET(${OUTPUT} ${RESULT} PARENT_SCOPE)
-ENDFUNCTION()
+function(read_file_removing_comments OUTPUT PATH)
+  set(RESULT "")
+  file(STRINGS "${PATH}" LINES_IN)
+  foreach(line ${LINES_IN})
+    string(REGEX REPLACE "#.*" "" line2 ${line})
+    list(APPEND RESULT ${line2})
+  endforeach()
+  set(${OUTPUT} ${RESULT} PARENT_SCOPE)
+endfunction()
 
 
-FUNCTION(MAKE_GNUCASH_POTFILES)
+function(make_gnucash_potfiles)
   # Create a list of candidate translation files
   file (GLOB_RECURSE FILES_IN RELATIVE ${CMAKE_SOURCE_DIR}
     ${CMAKE_SOURCE_DIR}/*.c ${CMAKE_SOURCE_DIR}/*.cpp
@@ -92,7 +92,7 @@ FUNCTION(MAKE_GNUCASH_POTFILES)
   endforeach (path)
 
   # Remove the paths that we have marked as explicitly skipped
-  READ_FILE_REMOVING_COMMENTS(SKIP_LINES POTFILES.skip)
+  read_file_removing_comments(SKIP_LINES POTFILES.skip)
   foreach (path ${SKIP_LINES})
       list(REMOVE_ITEM GOOD_FILES ${path})
   endforeach ()
@@ -101,45 +101,45 @@ FUNCTION(MAKE_GNUCASH_POTFILES)
   # CMake sorting is different from UNIX sorting. Use perl to
   # sort POTFILES.in universally. This may no longer be needed
   # now we have dropped autotools support.
-  STRING(REPLACE ";" "\n" SORT_IN "${GOOD_FILES}")
-  SET(SORT_IN "${SORT_IN}\n")
-  FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/POTFILES.in.in "${SORT_IN}")
+  string(REPLACE ";" "\n" SORT_IN "${GOOD_FILES}")
+  set(SORT_IN "${SORT_IN}\n")
+  file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/POTFILES.in.in "${SORT_IN}")
 
-  EXECUTE_PROCESS(COMMAND "${PERL_EXECUTABLE}" "${CMAKE_SOURCE_DIR}/util/elegant-sort.pl"
+  execute_process(COMMAND "${PERL_EXECUTABLE}" "${CMAKE_SOURCE_DIR}/util/elegant-sort.pl"
     INPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/POTFILES.in.in
     OUTPUT_VARIABLE POTFILES_IN
   )
-  STRING(REPLACE "\n" ";" POTFILES "${POTFILES_IN}")
+  string(REPLACE "\n" ";" POTFILES "${POTFILES_IN}")
 
   # Write out the final list.
   # intltool-update insists that this file be in the source directory. :-(
-  SET(POTFILES_IN_PATH ${CMAKE_CURRENT_BINARY_DIR}/POTFILES.in)
-  FILE(WRITE ${POTFILES_IN_PATH} "# This is a list of files which contain translatable strings.
+  set(POTFILES_IN_PATH ${CMAKE_CURRENT_BINARY_DIR}/POTFILES.in)
+  file(WRITE ${POTFILES_IN_PATH} "# This is a list of files which contain translatable strings.
 # This file was autogenerated by cmake.
 ")
 
   set(POTFILE_DEPS "")
-  FOREACH(path ${POTFILES})
+  foreach(path ${POTFILES})
     list(APPEND POTFILE_DEPS ${CMAKE_SOURCE_DIR}/${path})
-    FILE(APPEND ${POTFILES_IN_PATH} "${path}\n")
-  ENDFOREACH()
+    file(APPEND ${POTFILES_IN_PATH} "${path}\n")
+  endforeach()
 
-  CONFIGURE_FILE(${POTFILES_IN_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/POTFILES.in NEWLINE_STYLE LF)
+  configure_file(${POTFILES_IN_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/POTFILES.in NEWLINE_STYLE LF)
 
   set(gnucash_pot_depends ${POTFILE_DEPS}  CACHE INTERNAL "List of files with translatable strings. If any of these change, gnucash.pot should be regenerated")
-ENDFUNCTION()
+endfunction()
 
-IF(BUILDING_FROM_VCS)
+if(BUILDING_FROM_VCS)
 
-  MAKE_GNUCASH_POTFILES()
+  make_gnucash_potfiles()
 
   find_program(XGETTEXT xgettext)
   configure_file (${CMAKE_CURRENT_SOURCE_DIR}/Makevars
     ${CMAKE_CURRENT_BINARY_DIR}/Makevars COPYONLY)
 
-  IF (${XGETTEXT} STREQUAL "XGETTEXT-NOTFOUND")
-    MESSAGE(FATAL_ERROR "Can't find the 'xgettext' program.")
-  ENDIF ()
+  if (${XGETTEXT} STREQUAL "XGETTEXT-NOTFOUND")
+    message(FATAL_ERROR "Can't find the 'xgettext' program.")
+  endif ()
 
   add_custom_command(OUTPUT gnucash.pot
         COMMAND ${CMAKE_COMMAND}
@@ -155,5 +155,5 @@ IF(BUILDING_FROM_VCS)
         WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
   )
   add_custom_target (pot DEPENDS gnucash.pot)
-ENDIF()
+endif()
 dist_add_generated (${BUILDING_FROM_VCS} gnucash.pot)
diff --git a/po/glossary/CMakeLists.txt b/po/glossary/CMakeLists.txt
index 12e38e8..9cb7be0 100644
--- a/po/glossary/CMakeLists.txt
+++ b/po/glossary/CMakeLists.txt
@@ -1,3 +1,3 @@
 
-SET_DIST_LIST(po_glossary_DIST CMakeLists.txt bg.po ca.po da.po de.po el.po es_NI-policy.txt es.po fr.po gnc-glossary.txt he.po
+set_dist_list(po_glossary_DIST CMakeLists.txt bg.po ca.po da.po de.po el.po es_NI-policy.txt es.po fr.po gnc-glossary.txt he.po
         hu.po it.po nb.po nl.po pl.po pt_BR.po pt.po ru.po rw.po sk.po sv.po txt-to-pot.sh vi.po zh_CN.po zh_TW.po)
\ No newline at end of file
diff --git a/test-templates/CMakeLists.txt b/test-templates/CMakeLists.txt
index b31c503..b90d150 100644
--- a/test-templates/CMakeLists.txt
+++ b/test-templates/CMakeLists.txt
@@ -1,2 +1,2 @@
 
-SET_DIST_LIST(test_templates_DIST CMakeLists.txt Makefile.decl)
\ No newline at end of file
+set_dist_list(test_templates_DIST CMakeLists.txt Makefile.decl)
\ No newline at end of file
diff --git a/util/CMakeLists.txt b/util/CMakeLists.txt
index 2eb9d88..c2ec838 100644
--- a/util/CMakeLists.txt
+++ b/util/CMakeLists.txt
@@ -1,2 +1,2 @@
 
-SET_DIST_LIST(util_DIST elegant-sort.pl gnc-vcs-info guile.c CMakeLists.txt)
+set_dist_list(util_DIST elegant-sort.pl gnc-vcs-info guile.c CMakeLists.txt)

commit 65c7139072d49564a2569f675db46eef73a35669
Merge: 85e0a73 92afea5
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Thu May 3 21:20:28 2018 +0200

    Merge branch 'import_guile_json' into maint


commit 92afea59ae9fef1bfe0121677292a85596b718a5
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Thu May 3 20:52:17 2018 +0200

    Fix guile-json inclusion

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4fff8a2..bdb69f7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -342,19 +342,6 @@ if (GNC_SRFI64_RESULT EQUAL 0)
   set (HAVE_SRFI64 TRUE)
 endif ()
 
-# Test that guile has guile-json.
-execute_process (COMMAND ${GUILE_EXECUTABLE} -c "(load-from-path \"json.scm\") (use-modules (json builder))"
-  RESULT_VARIABLE GNC_GUILE_JSON
-#  ERROR_QUIET
-)
-
-if (GNC_GUILE_JSON EQUAL 0)
-  message (STATUS "guile-json is present.")
-  set (HAVE_GUILE_JSON TRUE)
-else ()
-  message (STATUS "guile-json cannot be imported. Abort.")
-endif ()
-
 # ############################################################
 IF (WITH_AQBANKING)
   GNC_PKG_CHECK_MODULES (GWENHYWFAR REQUIRED gwenhywfar)
diff --git a/borrowed/guile-json/CMakeLists.txt b/borrowed/guile-json/CMakeLists.txt
index fb3a8d1..848a067 100644
--- a/borrowed/guile-json/CMakeLists.txt
+++ b/borrowed/guile-json/CMakeLists.txt
@@ -1,18 +1,19 @@
-set (guile-json_SCHEME
-  json.scm
-  json/builder.scm
-  json/parser.scm
-  json/syntax.scm
-  )
+add_subdirectory(json)
 
 gnc_add_scheme_targets (guile-json
-  "${guile-json_SCHEME}"
-  ""
+  json.scm
+  gnucash
   ""
   FALSE
-  )
+)
 
-set_dist_list (guile-json_DIST
+set_local_dist(guile-json_DIST_LOCAL
+  AUTHORS
   CMakeLists.txt
-  ${guile-json_SCHEME}
-  )
+  COPYING.LESSER
+  json.scm
+  NEWS
+  README
+)
+
+SET(guile-json_DIST ${guile-json_DIST_LOCAL} ${guile-json-details_DIST} PARENT_SCOPE)
diff --git a/borrowed/guile-json/json/CMakeLists.txt b/borrowed/guile-json/json/CMakeLists.txt
new file mode 100644
index 0000000..8250b8a
--- /dev/null
+++ b/borrowed/guile-json/json/CMakeLists.txt
@@ -0,0 +1,17 @@
+set (scm-guile-json-details
+  builder.scm
+  parser.scm
+  syntax.scm
+)
+
+gnc_add_scheme_targets (guile-json-details
+  "${scm-guile-json-details}"
+  gnucash/json
+  ""
+  FALSE
+)
+
+set_dist_list (guile-json-details_DIST
+  CMakeLists.txt
+  ${scm-guile-json-details}
+)
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 9cdb537..d5cfd96 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -3,6 +3,10 @@
 borrowed/goffice/go-charmap-sel.c
 borrowed/goffice/go-glib-extras.c
 borrowed/goffice/go-optionmenu.c
+borrowed/guile-json/json/builder.scm
+borrowed/guile-json/json/parser.scm
+borrowed/guile-json/json/syntax.scm
+borrowed/guile-json/json.scm
 borrowed/gwengui-gtk3/gtk3_gui.c
 borrowed/gwengui-gtk3/gtk3_gui_dialog.c
 borrowed/gwengui-gtk3/w_checkbox.c

commit 50e109a9fae3d0b9152b511264244fbe70256409
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Sun Apr 22 21:20:10 2018 +0800

    guile-json: attempt cmake

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 21e7d2c..4fff8a2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -343,16 +343,16 @@ if (GNC_SRFI64_RESULT EQUAL 0)
 endif ()
 
 # Test that guile has guile-json.
-execute_process (COMMAND ${GUILE_EXECUTABLE} -c "(use-modules (json builder) (json parser) (json syntax))"
+execute_process (COMMAND ${GUILE_EXECUTABLE} -c "(load-from-path \"json.scm\") (use-modules (json builder))"
   RESULT_VARIABLE GNC_GUILE_JSON
-  ERROR_QUIET
+#  ERROR_QUIET
 )
 
 if (GNC_GUILE_JSON EQUAL 0)
   message (STATUS "guile-json is present.")
   set (HAVE_GUILE_JSON TRUE)
 else ()
-  message (FATAL_ERROR "guile-json cannot be imported. Abort.")
+  message (STATUS "guile-json cannot be imported. Abort.")
 endif ()
 
 # ############################################################
diff --git a/borrowed/guile-json/CMakeLists.txt b/borrowed/guile-json/CMakeLists.txt
index aeb9703..fb3a8d1 100644
--- a/borrowed/guile-json/CMakeLists.txt
+++ b/borrowed/guile-json/CMakeLists.txt
@@ -1,9 +1,18 @@
-
-GNC_ADD_SCHEME_TARGETS(guile-json
+set (guile-json_SCHEME
   json.scm
   json/builder.scm
   json/parser.scm
   json/syntax.scm
-)
+  )
+
+gnc_add_scheme_targets (guile-json
+  "${guile-json_SCHEME}"
+  ""
+  ""
+  FALSE
+  )
 
-SET_DIST_LIST(guile-json_DIST CMakeLists.txt ${guile-json_DATA})
+set_dist_list (guile-json_DIST
+  CMakeLists.txt
+  ${guile-json_SCHEME}
+  )

commit 02cfd017e93dd835c235d89f1a5e596376195bf8
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Thu Apr 26 06:25:43 2018 +0800

    guile-json: upgrade to 4-byte unicode chars.

diff --git a/borrowed/guile-json/json/builder.scm b/borrowed/guile-json/json/builder.scm
index e1339b2..d235d65 100644
--- a/borrowed/guile-json/json/builder.scm
+++ b/borrowed/guile-json/json/builder.scm
@@ -72,6 +72,14 @@
                          (u8v-2->unicode bv)
                          (u8v-3->unicode bv))))
         (unicode->string unicode)))
+     ;; A 4 byte UTF-8 needs to output as \uHHHH\uHHHH
+     ((eq? len 4)
+      (let ((bv4 (string->utf16 (string c))))
+        (string-append
+         (unicode->string (+ (ash (bytevector-u8-ref bv4 0) 8)
+                             (bytevector-u8-ref bv4 1)))
+         (unicode->string (+ (ash (bytevector-u8-ref bv4 2) 8)
+                             (bytevector-u8-ref bv4 3))))))
      ;; Anything else should wrong, hopefully.
      (else (throw 'json-invalid)))))
 

commit f2337406a34e2a0fe0a6786d648b9934ae7afd89
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Thu Apr 19 21:57:10 2018 +0800

    Modify CMakeLists to test for presence of guile-json

diff --git a/CMakeLists.txt b/CMakeLists.txt
index bdb69f7..21e7d2c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -342,6 +342,19 @@ if (GNC_SRFI64_RESULT EQUAL 0)
   set (HAVE_SRFI64 TRUE)
 endif ()
 
+# Test that guile has guile-json.
+execute_process (COMMAND ${GUILE_EXECUTABLE} -c "(use-modules (json builder) (json parser) (json syntax))"
+  RESULT_VARIABLE GNC_GUILE_JSON
+  ERROR_QUIET
+)
+
+if (GNC_GUILE_JSON EQUAL 0)
+  message (STATUS "guile-json is present.")
+  set (HAVE_GUILE_JSON TRUE)
+else ()
+  message (FATAL_ERROR "guile-json cannot be imported. Abort.")
+endif ()
+
 # ############################################################
 IF (WITH_AQBANKING)
   GNC_PKG_CHECK_MODULES (GWENHYWFAR REQUIRED gwenhywfar)

commit 52d5f0ba2db43d812c4f13e4c2de4a1702b0ab64
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Sun Mar 4 19:10:58 2018 +0800

    guile-json - initial commit

diff --git a/borrowed/CMakeLists.txt b/borrowed/CMakeLists.txt
index c88aa61..f9d588e 100644
--- a/borrowed/CMakeLists.txt
+++ b/borrowed/CMakeLists.txt
@@ -1,6 +1,7 @@
 ADD_SUBDIRECTORY(libc)
 ADD_SUBDIRECTORY(goffice)
+ADD_SUBDIRECTORY(guile-json)
 ADD_SUBDIRECTORY(gwengui-gtk3)
 
 SET_LOCAL_DIST(borrowed_DIST_local CMakeLists.txt README)
-SET(borrowed_DIST ${borrowed_DIST_local} ${libc_DIST} ${goffice_DIST} ${gwengui_gtk3_DIST} PARENT_SCOPE)
+SET(borrowed_DIST ${borrowed_DIST_local} ${libc_DIST} ${guile-json_DIST} ${goffice_DIST} ${gwengui_gtk3_DIST} PARENT_SCOPE)
diff --git a/borrowed/guile-json/AUTHORS b/borrowed/guile-json/AUTHORS
new file mode 100644
index 0000000..3343d4c
--- /dev/null
+++ b/borrowed/guile-json/AUTHORS
@@ -0,0 +1,9 @@
+Aleix Conchillo Flaque <aconchillo at gmail.com> is the author and current
+maintainer of guile-json. More details at <http://hacks-galore.org/aleix>.
+
+List of contributors (in alphabetical order):
+
+Jan Nieuwenhuizen <janneke at gnu.org>
+Ian Price <ianprice90 at googlemail.com>
+David Thompson <dthompson2 at worcester.edu>
+Doug Woos <doug at gamechanger.io>
diff --git a/borrowed/guile-json/CMakeLists.txt b/borrowed/guile-json/CMakeLists.txt
new file mode 100644
index 0000000..aeb9703
--- /dev/null
+++ b/borrowed/guile-json/CMakeLists.txt
@@ -0,0 +1,9 @@
+
+GNC_ADD_SCHEME_TARGETS(guile-json
+  json.scm
+  json/builder.scm
+  json/parser.scm
+  json/syntax.scm
+)
+
+SET_DIST_LIST(guile-json_DIST CMakeLists.txt ${guile-json_DATA})
diff --git a/borrowed/guile-json/COPYING.LESSER b/borrowed/guile-json/COPYING.LESSER
new file mode 100644
index 0000000..65c5ca8
--- /dev/null
+++ b/borrowed/guile-json/COPYING.LESSER
@@ -0,0 +1,165 @@
+                   GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+  This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+  0. Additional Definitions.
+
+  As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+  "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+  An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+  A "Combined Work" is a work produced by combining or linking an
+Application with the Library.  The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+  The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+  The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+  1. Exception to Section 3 of the GNU GPL.
+
+  You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+  2. Conveying Modified Versions.
+
+  If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+   a) under this License, provided that you make a good faith effort to
+   ensure that, in the event an Application does not supply the
+   function or data, the facility still operates, and performs
+   whatever part of its purpose remains meaningful, or
+
+   b) under the GNU GPL, with none of the additional permissions of
+   this License applicable to that copy.
+
+  3. Object Code Incorporating Material from Library Header Files.
+
+  The object code form of an Application may incorporate material from
+a header file that is part of the Library.  You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+   a) Give prominent notice with each copy of the object code that the
+   Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the object code with a copy of the GNU GPL and this license
+   document.
+
+  4. Combined Works.
+
+  You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+   a) Give prominent notice with each copy of the Combined Work that
+   the Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the Combined Work with a copy of the GNU GPL and this license
+   document.
+
+   c) For a Combined Work that displays copyright notices during
+   execution, include the copyright notice for the Library among
+   these notices, as well as a reference directing the user to the
+   copies of the GNU GPL and this license document.
+
+   d) Do one of the following:
+
+       0) Convey the Minimal Corresponding Source under the terms of this
+       License, and the Corresponding Application Code in a form
+       suitable for, and under terms that permit, the user to
+       recombine or relink the Application with a modified version of
+       the Linked Version to produce a modified Combined Work, in the
+       manner specified by section 6 of the GNU GPL for conveying
+       Corresponding Source.
+
+       1) Use a suitable shared library mechanism for linking with the
+       Library.  A suitable mechanism is one that (a) uses at run time
+       a copy of the Library already present on the user's computer
+       system, and (b) will operate properly with a modified version
+       of the Library that is interface-compatible with the Linked
+       Version.
+
+   e) Provide Installation Information, but only if you would otherwise
+   be required to provide such information under section 6 of the
+   GNU GPL, and only to the extent that such information is
+   necessary to install and execute a modified version of the
+   Combined Work produced by recombining or relinking the
+   Application with a modified version of the Linked Version. (If
+   you use option 4d0, the Installation Information must accompany
+   the Minimal Corresponding Source and Corresponding Application
+   Code. If you use option 4d1, you must provide the Installation
+   Information in the manner specified by section 6 of the GNU GPL
+   for conveying Corresponding Source.)
+
+  5. Combined Libraries.
+
+  You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+   a) Accompany the combined library with a copy of the same work based
+   on the Library, uncombined with any other library facilities,
+   conveyed under the terms of this License.
+
+   b) Give prominent notice with the combined library that part of it
+   is a work based on the Library, and explaining where to find the
+   accompanying uncombined form of the same work.
+
+  6. Revised Versions of the GNU Lesser General Public License.
+
+  The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+  Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+  If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
diff --git a/borrowed/guile-json/NEWS b/borrowed/guile-json/NEWS
new file mode 100644
index 0000000..d4317c1
--- /dev/null
+++ b/borrowed/guile-json/NEWS
@@ -0,0 +1,62 @@
+
+* Version 0.6.0 (Jan 16, 2017)
+
+  - Deprecate json macro in favor of scheme data types.
+
+
+* Version 0.5.0 (Feb 21, 2015)
+
+  - Allow converting simple alists to json
+      e.g.: (scm->json-string '((a . 1) (b . 2))))
+    (thanks to Jan Nieuwenhuizen)
+
+
+* Version 0.4.0 (Aug 17, 2014)
+
+  - Add unquote-splicing support to json form.
+    (thanks to David Thompson)
+
+
+* Version 0.3.1 (Jul 6, 2013)
+
+  - Use pure sh script syntax in env.in.
+    (thanks to Andrew Gaylard)
+
+
+* Version 0.3.0 (May 13, 2013)
+
+  - Re-licensed under LGPLv3.
+
+  - Use new guile.m4 macro.
+
+  - Convert rationals to floats to comply with JSON spec.
+    (closes github #3, patch from Doug Woos)
+
+
+* Version 0.2.0 (Apr 2, 2013)
+
+  - Improve parser errors by providing an additional parser argument to
+    the json-invalid exception.
+
+
+* Version 0.1.3 (Feb 10, 2013)
+
+  - Automatically update pkg-list.scm version.
+
+
+* Version 0.1.2 (Feb 7, 2013)
+
+  - Fix pretty printing.
+
+  - Use (display) instead of (simple-format) when possible.
+
+
+* Version 0.1.1 (Feb 2, 2013)
+
+  - Use (car)/(cdr) instead of (drop-right)/(last). This should be more
+    efficient.
+
+
+* Version 0.1.0 (Jan 30, 2013)
+
+  Initial release.
diff --git a/borrowed/guile-json/README b/borrowed/guile-json/README
new file mode 100644
index 0000000..920f85c
--- /dev/null
+++ b/borrowed/guile-json/README
@@ -0,0 +1,158 @@
+
+* guile-json
+
+guile-json is a JSON module for Guile. It supports parsing and
+building JSON documents according to the http://json.org
+specification. These are the main features:
+
+- Mostly complies with http://json.org specification (see UTF-8 below).
+
+- Build JSON documents programmatically using scheme data types.
+
+- Supports UTF-8 (doesn't fully support unicode hexadecimal digits).
+
+- Allows JSON pretty printing.
+
+
+* Installation
+
+guile-json is freely available for download under the terms of the GNU
+Lesser General Public License version 3 (LGPLv3+).
+
+Download the latest tarball and untar it:
+
+- [[http://download.savannah.gnu.org/releases/guile-json/guile-json-0.6.0.tar.gz][guile-json-0.6.0.tar.gz]]
+
+Then, run the typical sequence:
+
+    : $ ./configure --prefix=<guile-prefix>
+    : $ make
+    : $ sudo make install
+
+Where <guile-prefix> should preferably be the same as your system Guile
+installation directory (e.g. /usr).
+
+If everything installed successfully you should be up and running:
+
+    : $ guile
+    : scheme@(guile-user)> (use-modules (json))
+    : scheme@(guile-user)> (scm->json '(1 2 3))
+    : [1, 2, 3]
+
+It might be that you installed guile-json somewhere differently than
+your system's Guile. If so, you need to indicate Guile where to find
+guile-json, for example:
+
+    : $ GUILE_LOAD_PATH=/usr/local/share/guile/site guile
+
+A pkg-list.scm file is also provided for users of the
+Guildhall/Dorodango packaging system.
+
+
+* Usage
+
+guile-json provides a few procedures to parse and build a JSON
+document. A JSON document is transformed into or from native Guile
+values according to the following table:
+
+| JSON   | Guile       |
+|--------+-------------|
+| string | string      |
+| number | number      |
+| object | hash-table* |
+| array  | list        |
+| true   | #t          |
+| false  | #f          |
+| null   | #nil        |
+
+*Note* (*): Association lists are also tranformed to JSON objects, in
+this case ordered will be preserved.
+
+To start using guile-json procedures and macros you first need to load
+the module:
+
+    : scheme@(guile-user)> (use-modules (json))
+
+
+** Procedures
+
+- (*json->scm* #:optional port) : Reads a JSON document from the given
+  port, or from the current input port if none is given.
+
+  - /port/ : is optional, it defaults to the current input port.
+
+- (*json-string->scm* str) : Reads a JSON document from the given
+  string.
+
+- (*scm->json* native #:optional port #:key escape pretty) : Creates a
+  JSON document from the given native Guile value. The JSON document is
+  written into the given port, or to the current output port if non is
+  given.
+
+  - /port/ : it defaults to the current output port.
+  - /escape/ : if true, the slash (/ solidus) character will be escaped.
+  - /pretty/ : if true, the JSON document will be pretty printed.
+
+- (*scm->json-string* native #:key escape pretty) : Creates a JSON
+  document from the given native Guile value into a string.
+
+  - /escape/ : if true, the slash (/ solidus) character will be escaped.
+  - /pretty/ : if true, the JSON document will be pretty printed.
+
+
+** Exceptions
+
+A /json-invalid/ exception is thrown if an error is found during the
+JSON parsing. Since version 0.2.0, the /json-invalid/ exception has a
+single parser argument (see predicate and accessors below). The line or
+column where the error occured can be easily obtained from the parser
+port (calling /port-line/ or /port-column/ on the port).
+
+- (*json-parser?* parser) : Tells whether the given argument is a JSON
+  parser record type.
+
+- (*json-parser-port* parser) : Get the port that the parser was reading
+  from.
+
+
+** Examples
+
+- Build the string "hello world":
+
+    : scheme@(guile-user)> (scm->json "hello world")
+    : "hello world"
+
+- Build the [1, 2, 3] array:
+
+    : scheme@(guile-user)> (scm->json '(1 2 3))
+    : [1, 2, 3]
+
+- Build the [1, 2, 3, 4] array using unquote-splicing:
+
+    : scheme@(guile-user)> (define values '(2 3))
+    : scheme@(guile-user)> (scm->json `(1 , at values 4))
+    : [1, 2, 3, 4]
+
+- Build the object { "project" : "foo", "author" : "bar" } using an
+  association list (see how symbols can also be used):
+
+    : scheme@(guile-user)> (scm->json '(("project" . "foo") (author . bar)))
+    : {"project" : "foo","author" : "bar"}
+
+- Build again the same object { "project" : "foo", "author" : "bar" }
+  using a hash table:
+
+    : scheme@(guile-user)> (scm->json (alist->hash-table '((project . foo) (author . bar))))
+    : {"project" : "foo","author" : "bar"}
+
+- Build the object { "values" : [ 234, 98.56 ] }:
+
+    : scheme@(guile-user)> (scm->json '(("values" 234 98.56)))
+    : {"values" : [234, 98.56]}
+
+- Build the object { "values" : [ 234, 98.56 ] } again, this time using
+  a variable:
+
+    : scheme@(guile-user)> (define values '(234 98.56))
+    : scheme@(guile-user)> (scm->json `(("values" , at values)))
+    : {"values" : [234, 98.56]}
diff --git a/borrowed/guile-json/json.scm b/borrowed/guile-json/json.scm
new file mode 100644
index 0000000..8e45f93
--- /dev/null
+++ b/borrowed/guile-json/json.scm
@@ -0,0 +1,45 @@
+;;; (json) --- Guile JSON implementation.
+
+;; Copyright (C) 2013 Aleix Conchillo Flaque <aconchillo at gmail.com>
+;;
+;; This file is part of guile-json.
+;;
+;; guile-json is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public
+;; License as published by the Free Software Foundation; either
+;; version 3 of the License, or (at your option) any later version.
+;;
+;; guile-json 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
+;; Lesser General Public License for more details.
+;;
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with guile-json; if not, write to the Free Software
+;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+;; 02110-1301 USA
+
+;;; Commentary:
+
+;; JSON module for Guile
+
+;;; Code:
+
+(define-module (json)
+  #:use-module (json builder)
+  #:use-module (json parser)
+  #:use-module (json syntax))
+
+(define-syntax re-export-modules
+  (syntax-rules ()
+    ((_ (mod ...) ...)
+     (begin
+       (module-use! (module-public-interface (current-module))
+                    (resolve-interface '(mod ...)))
+       ...))))
+
+(re-export-modules (json builder)
+                   (json parser)
+                   (json syntax))
+
+;;; (json) ends here
diff --git a/borrowed/guile-json/json/builder.scm b/borrowed/guile-json/json/builder.scm
new file mode 100644
index 0000000..e1339b2
--- /dev/null
+++ b/borrowed/guile-json/json/builder.scm
@@ -0,0 +1,204 @@
+;;; (json builder) --- Guile JSON implementation.
+
+;; Copyright (C) 2013 Aleix Conchillo Flaque <aconchillo at gmail.com>
+;; Copyright (C) 2015,2016 Jan Nieuwenhuizen <janneke at gnu.org>
+;;
+;; This file is part of guile-json.
+;;
+;; guile-json is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public
+;; License as published by the Free Software Foundation; either
+;; version 3 of the License, or (at your option) any later version.
+;;
+;; guile-json 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
+;; Lesser General Public License for more details.
+;;
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with guile-json; if not, write to the Free Software
+;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+;; 02110-1301 USA
+
+;;; Commentary:
+
+;; JSON module for Guile
+
+;;; Code:
+
+(define-module (json builder)
+  #:use-module (ice-9 format)
+  #:use-module (srfi srfi-1)
+  #:use-module (rnrs bytevectors)
+  #:export (scm->json
+            scm->json-string))
+
+;;
+;; String builder helpers
+;;
+
+(define (unicode->string unicode)
+  (format #f "\\u~4,'0x" unicode))
+
+(define (char->unicode-string c)
+  (let ((unicode (char->integer c)))
+    (if (< unicode 32)
+        (unicode->string unicode)
+        (string c))))
+
+(define (u8v-2->unicode bv)
+  (let ((bv0 (bytevector-u8-ref bv 0))
+        (bv1 (bytevector-u8-ref bv 1)))
+    (+ (ash (logand bv0 #b00011111) 6)
+       (logand bv1 #b00111111))))
+
+(define (u8v-3->unicode bv)
+  (let ((bv0 (bytevector-u8-ref bv 0))
+        (bv1 (bytevector-u8-ref bv 1))
+        (bv2 (bytevector-u8-ref bv 2)))
+    (+ (ash (logand bv0 #b00001111) 12)
+       (ash (logand bv1 #b00111111) 6)
+       (logand bv2 #b00111111))))
+
+(define (build-char-string c)
+  (let* ((bv (string->utf8 (string c)))
+         (len (bytevector-length bv)))
+    (cond
+     ;; A single byte UTF-8
+     ((eq? len 1) (char->unicode-string c))
+     ;; If we have a 2 or 3 byte UTF-8 we need to output it as \uHHHH
+     ((or (eq? len 2) (eq? len 3))
+      (let ((unicode (if (eq? len 2)
+                         (u8v-2->unicode bv)
+                         (u8v-3->unicode bv))))
+        (unicode->string unicode)))
+     ;; Anything else should wrong, hopefully.
+     (else (throw 'json-invalid)))))
+
+;;
+;; Object builder functions
+;;
+
+(define (build-object-pair p port escape pretty level)
+  (display (indent-string pretty level) port)
+  (json-build-string (car p) port escape)
+  (display " : " port)
+  (json-build (cdr p) port escape pretty level))
+
+(define (build-newline port pretty)
+  (cond (pretty (newline port))))
+
+(define (indent-string pretty level)
+  (if pretty (format #f "~v_" (* 4 level)) ""))
+
+;;
+;; Main builder functions
+;;
+
+(define (json-build-null port)
+  (display "null" port))
+
+(define (json-build-boolean scm port)
+  (display (if scm "true" "false") port))
+
+(define (json-build-number scm port)
+  (if (and (rational? scm) (not (integer? scm)))
+      (display (number->string (exact->inexact scm)) port)
+      (display (number->string scm) port)))
+
+(define (->string x)
+  (cond ((char? x) (make-string 1 x))
+        ((number? x) (number->string x))
+        ((symbol? x) (symbol->string x))
+        (else x)))
+
+(define (atom? x)
+  (or (char? x) (number? x) (string? x) (symbol? x)))
+
+(define (json-alist? x)
+  (and (pair? x)
+       (let loop ((x x))
+         (or (null? x)
+             (null? (car x))
+             (and (pair? (car x)) (atom? (caar x))
+                  (loop (cdr x)))))))
+
+(define (json-build-string scm port escape)
+  (display "\"" port)
+  (display
+   (list->string
+    (fold-right append '()
+                (map
+                 (lambda (c)
+                   (case c
+                     ((#\" #\\) `(#\\ ,c))
+                     ((#\bs) '(#\\ #\b))
+                     ((#\ff) '(#\\ #\f))
+                     ((#\lf) '(#\\ #\n))
+                     ((#\cr) '(#\\ #\r))
+                     ((#\ht) '(#\\ #\t))
+                     ((#\/) (if escape `(#\\ ,c) (list c)))
+                     (else (string->list (build-char-string c)))))
+                 (string->list (->string scm)))))
+   port)
+  (display "\"" port))
+
+(define (json-build-array scm port escape pretty level)
+  (display "[" port)
+  (unless (null? scm)
+    (json-build (car scm) port escape pretty (+ level 1))
+    (for-each (lambda (v)
+                (display ", " port)
+                (json-build v port escape pretty (+ level 1)))
+              (cdr scm)))
+  (display "]" port))
+
+(define (json-build-object scm port escape pretty level)
+  (build-newline port pretty)
+  (simple-format port "~A{" (indent-string pretty level))
+  (build-newline port pretty)
+  (let ((pairs scm))
+    (unless (null? pairs)
+      (build-object-pair (car pairs) port escape pretty (+ level 1))
+      (for-each (lambda (p)
+                  (display "," port)
+                  (build-newline port pretty)
+                  (build-object-pair p port escape pretty (+ level 1)))
+                (cdr pairs))))
+  (build-newline port pretty)
+  (simple-format port "~A}" (indent-string pretty level)))
+
+(define (json-build scm port escape pretty level)
+  (cond
+   ((eq? scm #nil) (json-build-null port))
+   ((boolean? scm) (json-build-boolean scm port))
+   ((number? scm) (json-build-number scm port))
+   ((symbol? scm) (json-build-string (symbol->string scm) port escape))
+   ((string? scm) (json-build-string scm port escape))
+   ((json-alist? scm) (json-build-object scm port escape pretty level))
+   ((list? scm) (json-build-array scm port escape pretty level))
+   ((hash-table? scm)
+    (json-build-object (hash-map->list cons scm) port escape pretty level))
+   (else (throw 'json-invalid))))
+
+;;
+;; Public procedures
+;;
+
+(define* (scm->json scm
+                    #:optional (port (current-output-port))
+                    #:key (escape #f) (pretty #f))
+  "Creates a JSON document from native. The argument @var{scm} contains
+the native value of the JSON document. Takes one optional argument,
+ at var{port}, which defaults to the current output port where the JSON
+document will be written."
+  (json-build scm port escape pretty 0))
+
+(define* (scm->json-string scm #:key (escape #f) (pretty #f))
+  "Creates a JSON document from native into a string. The argument
+ at var{scm} contains the native value of the JSON document."
+  (call-with-output-string
+   (lambda (p)
+     (scm->json scm p #:escape escape #:pretty pretty))))
+
+;;; (json builder) ends here
diff --git a/borrowed/guile-json/json/parser.scm b/borrowed/guile-json/json/parser.scm
new file mode 100644
index 0000000..e285803
--- /dev/null
+++ b/borrowed/guile-json/json/parser.scm
@@ -0,0 +1,351 @@
+;;; (json parser) --- Guile JSON implementation.
+
+;; Copyright (C) 2013 Aleix Conchillo Flaque <aconchillo at gmail.com>
+;;
+;; This file is part of guile-json.
+;;
+;; guile-json is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public
+;; License as published by the Free Software Foundation; either
+;; version 3 of the License, or (at your option) any later version.
+;;
+;; guile-json 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
+;; Lesser General Public License for more details.
+;;
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with guile-json; if not, write to the Free Software
+;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+;; 02110-1301 USA
+
+;;; Commentary:
+
+;; JSON module for Guile
+
+;;; Code:
+
+(define-module (json parser)
+  #:use-module (ice-9 rdelim)
+  #:use-module (rnrs bytevectors)
+  #:use-module (srfi srfi-9)
+  #:export (json->scm
+            json-string->scm
+            json-parser?
+            json-parser-port))
+
+;;
+;; Parser record and read helpers
+;;
+
+(define-record-type json-parser
+  (make-json-parser port)
+  json-parser?
+  (port json-parser-port))
+
+(define (parser-peek-char parser)
+  (peek-char (json-parser-port parser)))
+
+(define (parser-read-char parser)
+  (read-char (json-parser-port parser)))
+
+(define (parser-read-delimited parser delim handle-delim)
+  (let ((port (json-parser-port parser)))
+    (read-delimited delim port handle-delim)))
+
+;;
+;; Number parsing helpers
+;;
+
+;; Read + or -. . If something different is found, return empty string.
+(define (read-sign parser)
+  (let loop ((c (parser-peek-char parser)) (s ""))
+    (case c
+      ((#\+ #\-)
+       (let ((ch (parser-read-char parser)))
+         (string-append s (string ch))))
+      (else s))))
+
+;; Read digits [0..9]. If something different is found, return empty
+;; string.
+(define (read-digits parser)
+  (let loop ((c (parser-peek-char parser)) (s ""))
+    (case c
+      ((#\0 #\1 #\2 #\3 #\4 #\5 #\6 #\7 #\8 #\9)
+       (let ((ch (parser-read-char parser)))
+         (loop (parser-peek-char parser)
+               (string-append s (string ch)))))
+      (else s))))
+
+(define (read-exp-part parser)
+  (let ((c (parser-peek-char parser)) (s ""))
+    (case c
+      ;; Stop parsing if whitespace found.
+      ((#\ht #\vt #\lf #\cr #\sp) s)
+      ;; We might be in an array or object, so stop here too.
+      ((#\, #\] #\}) s)
+      ;; We might have the exponential part
+      ((#\e #\E)
+       (let ((ch (parser-read-char parser)) ; current char
+             (sign (read-sign parser))
+             (digits (read-digits parser)))
+         ;; If we don't have sign or digits, we have an invalid
+         ;; number.
+         (if (not (and (string-null? sign)
+                       (string-null? digits)))
+             (string-append s (string ch) sign digits)
+             #f)))
+      ;; If we have a character different than e or E, we have an
+      ;; invalid number.
+      (else #f))))
+
+(define (read-real-part parser)
+  (let ((c (parser-peek-char parser)) (s ""))
+    (case c
+      ;; Stop parsing if whitespace found.
+      ((#\ht #\vt #\lf #\cr #\sp) s)
+      ;; We might be in an array or object, so stop here too.
+      ((#\, #\] #\}) s)
+      ;; If we read . we might have a real number
+      ((#\.)
+       (let ((ch (parser-read-char parser))
+             (digits (read-digits parser)))
+         ;; If we have digits, try to read the exponential part,
+         ;; otherwise we have an invalid number.
+         (cond
+          ((not (string-null? digits))
+           (let ((exp (read-exp-part parser)))
+             (cond
+              (exp (string-append s (string ch) digits exp))
+              (else #f))))
+          (else #f))))
+      ;; If we have a character different than . we might continue
+      ;; processing.
+      (else #f))))
+
+(define (read-number parser)
+  (let loop ((c (parser-peek-char parser)) (s ""))
+    (case c
+      ;; Stop parsing if whitespace found.
+      ((#\ht #\vt #\lf #\cr #\sp) s)
+      ;; We might be in an array or object, so stop here too.
+      ((#\, #\] #\}) s)
+      ((#\-)
+       (let ((ch (parser-read-char parser)))
+         (loop (parser-peek-char parser)
+               (string-append s (string ch)))))
+      ((#\0)
+       (let ((ch (parser-read-char parser)))
+         (string-append s
+                        (string ch)
+                        (or (read-real-part parser)
+                            (throw 'json-invalid parser)))))
+      ((#\1 #\2 #\3 #\4 #\5 #\6 #\7 #\8 #\9)
+       (let ((ch (parser-read-char parser)))
+         (string-append s
+                        (string ch)
+                        (read-digits parser)
+                        (or (read-real-part parser)
+                            (read-exp-part parser)
+                            (throw 'json-invalid parser)))))
+      (else (throw 'json-invalid parser)))))
+
+;;
+;; Object parsing helpers
+;;
+
+(define (read-pair parser)
+  ;; Read string key
+  (let ((key (json-read-string parser)))
+    (let loop ((c (parser-peek-char parser)))
+      (case c
+      ;; Skip whitespaces
+      ((#\ht #\vt #\lf #\cr #\sp)
+       (parser-read-char parser)
+       (loop (parser-peek-char parser)))
+      ;; Skip colon and read value
+      ((#\:)
+       (parser-read-char parser)
+       (cons key (json-read parser)))
+      ;; invalid object
+      (else (throw 'json-invalid parser))))))
+
+(define (read-object parser)
+  (let loop ((c (parser-peek-char parser))
+             (pairs (make-hash-table)))
+    (case c
+      ;; Skip whitespaces
+      ((#\ht #\vt #\lf #\cr #\sp)
+       (parser-read-char parser)
+       (loop (parser-peek-char parser) pairs))
+      ;; end of object
+      ((#\})
+       (parser-read-char parser)
+       pairs)
+      ;; Read one pair and continue
+      ((#\")
+       (let ((pair (read-pair parser)))
+         (hash-set! pairs (car pair) (cdr pair))
+         (loop (parser-peek-char parser) pairs)))
+      ;; Skip comma and read more pairs
+      ((#\,)
+       (parser-read-char parser)
+       (loop (parser-peek-char parser) pairs))
+      ;; invalid object
+      (else (throw 'json-invalid parser)))))
+
+;;
+;; Array parsing helpers
+;;
+
+(define (read-array parser)
+  (let loop ((c (parser-peek-char parser)) (values '()))
+    (case c
+      ;; Skip whitespace and comma
+      ((#\ht #\vt #\lf #\cr #\sp #\,)
+       (parser-read-char parser)
+       (loop (parser-peek-char parser) values))
+      ;; end of array
+      ((#\])
+       (parser-read-char parser)
+       values)
+      ;; this can be any json object
+      (else
+       (let ((value (json-read parser)))
+         (loop (parser-peek-char parser)
+               (append values (list value))))))))
+
+;;
+;; String parsing helpers
+;;
+
+(define (expect parser expected)
+  (let ((ch (parser-read-char parser)))
+    (if (not (char=? ch expected))
+      (throw 'json-invalid parser)
+      ch)))
+
+(define (expect-string parser expected)
+  (list->string
+   (map (lambda (ch) (expect parser ch))
+        (string->list expected))))
+
+(define (read-hex-digit parser)
+  (let ((c (parser-read-char parser)))
+    (case c
+      ((#\0 #\1 #\2 #\3 #\4 #\5 #\6 #\7 #\8 #\9
+        #\A #\B #\C #\D #\E #\F #\a #\b #\c #\d #\e #\f) c)
+      (else (throw 'json-invalid parser)))))
+
+(define (read-control-char parser)
+  (let ((c (parser-read-char parser)))
+    (case c
+      ((#\" #\\ #\/) (string c))
+      ((#\b) (string #\bs))
+      ((#\f) (string #\ff))
+      ((#\n) (string #\lf))
+      ((#\r) (string #\cr))
+      ((#\t) (string #\ht))
+      ((#\u)
+       (let* ((utf1 (string (read-hex-digit parser)
+                            (read-hex-digit parser)))
+              (utf2 (string (read-hex-digit parser)
+                            (read-hex-digit parser)))
+              (vu8 (list (string->number utf1 16)
+                         (string->number utf2 16)))
+              (utf (u8-list->bytevector vu8)))
+         (utf16->string utf)))
+      (else #f))))
+
+(define (read-string parser)
+  ;; Read characters until \ or " are found.
+  (let loop ((result "")
+             (current (parser-read-delimited parser "\\\"" 'split)))
+    (case (cdr current)
+      ((#\")
+       (string-append result (car current)))
+      ((#\\)
+       (let ((ch (read-control-char parser)))
+         (if ch
+             (loop (string-append result (car current) ch)
+                   (parser-read-delimited parser "\\\"" 'split))
+             (throw 'json-invalid parser ))))
+      (else
+       (throw 'json-invalid parser)))))
+
+;;
+;; Main parser functions
+;;
+
+(define-syntax json-read-delimited
+  (syntax-rules ()
+    ((json-read-delimited parser delim read-func)
+     (let loop ((c (parser-read-char parser)))
+       (case c
+         ;; skip whitespace
+         ((#\ht #\vt #\lf #\cr #\sp) (loop (parser-peek-char parser)))
+         ;; read contents
+         ((delim) (read-func parser))
+         (else (throw 'json-invalid parser)))))))
+
+(define (json-read-true parser)
+  (expect-string parser "true")
+  #t)
+
+(define (json-read-false parser)
+  (expect-string parser "false")
+  #f)
+
+(define (json-read-null parser)
+  (expect-string parser "null")
+  #nil)
+
+(define (json-read-object parser)
+  (json-read-delimited parser #\{ read-object))
+
+(define (json-read-array parser)
+  (json-read-delimited parser #\[ read-array))
+
+(define (json-read-string parser)
+  (json-read-delimited parser #\" read-string))
+
+(define (json-read-number parser)
+  (string->number (read-number parser)))
+
+(define (json-read parser)
+  (let loop ((c (parser-peek-char parser)))
+    (cond
+     ;;If we reach the end we might have an incomplete document
+     ((eof-object? c) (throw 'json-invalid parser))
+     (else
+      (case c
+        ;; skip whitespaces
+        ((#\ht #\vt #\lf #\cr #\sp)
+         (parser-read-char parser)
+         (loop (parser-peek-char parser)))
+        ;; read json values
+        ((#\t) (json-read-true parser))
+        ((#\f) (json-read-false parser))
+        ((#\n) (json-read-null parser))
+        ((#\{) (json-read-object parser))
+        ((#\[) (json-read-array parser))
+        ((#\") (json-read-string parser))
+        ;; anything else should be a number
+        (else (json-read-number parser)))))))
+
+;;
+;; Public procedures
+;;
+
+(define* (json->scm #:optional (port (current-input-port)))
+  "Parse a JSON document into native. Takes one optional argument,
+ at var{port}, which defaults to the current input port from where the JSON
+document is read."
+  (json-read (make-json-parser port)))
+
+(define* (json-string->scm str)
+  "Parse a JSON document into native. Takes a string argument,
+ at var{str}, that contains the JSON document."
+  (call-with-input-string str (lambda (p) (json->scm p))))
+
+;;; (json parser) ends here
diff --git a/borrowed/guile-json/json/syntax.scm b/borrowed/guile-json/json/syntax.scm
new file mode 100644
index 0000000..10e2099
--- /dev/null
+++ b/borrowed/guile-json/json/syntax.scm
@@ -0,0 +1,76 @@
+;;; (json syntax) --- Guile JSON implementation.
+
+;; Copyright (C) 2013-2017 Aleix Conchillo Flaque <aconchillo at gmail.com>
+;;
+;; This file is part of guile-json.
+;;
+;; guile-json is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public
+;; License as published by the Free Software Foundation; either
+;; version 3 of the License, or (at your option) any later version.
+;;
+;; guile-json 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
+;; Lesser General Public License for more details.
+;;
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with guile-json; if not, write to the Free Software
+;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+;; 02110-1301 USA
+
+;;; Commentary:
+
+;; JSON module for Guile
+
+;;; Code:
+
+(define-module (json syntax)
+  #:use-module (ice-9 deprecated)
+  #:use-module (ice-9 match)
+  #:export (json))
+
+(define (list->hash-table lst)
+  (let loop ((table (make-hash-table))
+             (lst lst))
+    (match lst
+      (((key value) . rest)
+       (hash-set! table key value)
+       (loop table rest))
+      (() table))))
+
+(define-syntax json
+  (syntax-rules (unquote unquote-splicing array object)
+    ((_ (unquote val))
+     (begin
+       (issue-deprecation-warning
+	"`json' macro is deprecated. Use scheme data types instead.")
+       val))
+    ((_ ((unquote-splicing val) . rest))
+     (begin
+       (issue-deprecation-warning
+	"`json' macro is deprecated. Use scheme data types instead.")
+       (append val (json rest))))
+    ((_ (array val . rest))
+     (begin
+       (issue-deprecation-warning
+	"`json' macro is deprecated. Use scheme data types instead.")
+       (cons (json val) (json rest))))
+    ((_ (object key+val ...))
+     (begin
+       (issue-deprecation-warning
+	"`json' macro is deprecated. Use scheme data types instead.")
+       (list->hash-table
+	(json (array key+val ...)))))
+    ((_ (val . rest))
+     (begin
+       (issue-deprecation-warning
+	"`json' macro is deprecated. Use scheme data types instead.")
+       (cons (json val) (json rest))))
+    ((_ val)
+     (begin
+       (issue-deprecation-warning
+	"`json' macro is deprecated. Use scheme data types instead.")
+       (quote val)))))
+
+;;; (json syntax) ends here

commit 85e0a73739009c15bc681d961445759286578ad3
Merge: 075c0c4 07a5485
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Thu May 3 19:07:36 2018 +0200

    Merge branch 'patch-1' of https://github.com/fkoester/gnucash into maint


commit 075c0c4db327b4b58a798f9a999d8207e2517211
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Thu May 3 19:00:45 2018 +0200

    Make 'Printable report' in invoice search dialog work
    
    The code couldn't find a proper main window to attach
    the report(s) to.

diff --git a/gnucash/gnome/dialog-invoice.c b/gnucash/gnome/dialog-invoice.c
index 82afc93..3606e32 100644
--- a/gnucash/gnome/dialog-invoice.c
+++ b/gnucash/gnome/dialog-invoice.c
@@ -2999,7 +2999,7 @@ static void
 multi_print_invoice_one (gpointer data, gpointer user_data)
 {
     struct multi_edit_invoice_data *meid = user_data;
-    print_one_invoice_cb (meid->parent, data, meid->user_data);
+    print_one_invoice_cb (gnc_ui_get_main_window (GTK_WIDGET(meid->parent)), data, meid->user_data);
 }
 
 static void

commit 0c6b92959a9e1ef1e9a8d00cea3992f483b1c787
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Mon Apr 30 20:59:25 2018 +0200

    Get metadata migration working again when upgrading from 2.6 to 3.1
    
    Due to a typo the old GNC_DOT_DIR path was wrong
    ($HOME.gnucash instead of $HOME/.gnucash)

diff --git a/libgnucash/core-utils/gnc-filepath-utils.cpp b/libgnucash/core-utils/gnc-filepath-utils.cpp
index 4d00bab..67e930d 100644
--- a/libgnucash/core-utils/gnc-filepath-utils.cpp
+++ b/libgnucash/core-utils/gnc-filepath-utils.cpp
@@ -585,7 +585,7 @@ static std::string migrate_gnc_datahome()
     auto success = false;
     // Specify location of dictionaries
     bfs::path old_dir(g_get_home_dir(), cvt);
-    old_dir += ".gnucash";
+    old_dir /= ".gnucash";
 
     bl::generator gen;
     gen.add_messages_path(gnc_path_get_datadir());

commit 02266d72d99cf11842d385d116335a4acae29a63
Author: John Ralls <jralls at ceridwen.us>
Date:   Sun Apr 29 21:48:51 2018 -0700

    Add GNC_DBD_DIR to etc/gnucash/environment for MacOS builds.

diff --git a/gnucash/CMakeLists.txt b/gnucash/CMakeLists.txt
index 39481d2..98d42d0 100644
--- a/gnucash/CMakeLists.txt
+++ b/gnucash/CMakeLists.txt
@@ -187,6 +187,7 @@ IF (MAC_INTEGRATION)
   file(APPEND ${ENV_FILE_OUT} "GDK_PIXBUF_MODULE_FILE={SYS_LIB}/gdk-pixbuf-2.0/2.10.0/loaders.cache\n")
   file(APPEND ${ENV_FILE_OUT} "FONTCONFIG_FILE={GNC_HOME}/etc/fonts/fonts.conf\n")
   file(APPEND ${ENV_FILE_OUT} "OFX_DTD_PATH={GNC_HOME}/share/libofx/dtd\n")
+  file(APPEND ${ENV_FILE_OUT} "GNC_DBD_DIR={SYS_LIB}/dbd\n")
 ENDIF()
 
 FILE(COPY ${BUILD_ENV_FILE_OUT}

commit 07a54858141dcaf5dcfa1a16a6d3e482997d22e6
Author: Fabian Köster <mail at fabian-koester.com>
Date:   Wed Apr 18 17:45:24 2018 +0200

    Fix syntax

diff --git a/bindings/python/example_scripts/rest-api/gnucash_rest.py b/bindings/python/example_scripts/rest-api/gnucash_rest.py
index 5444b98..3ee4ad8 100644
--- a/bindings/python/example_scripts/rest-api/gnucash_rest.py
+++ b/bindings/python/example_scripts/rest-api/gnucash_rest.py
@@ -1858,7 +1858,7 @@ class Error(Exception):
 try:
     options, arguments = getopt.getopt(sys.argv[1:], 'nh:', ['host=', 'new='])
 except getopt.GetoptError as err:
-    print(str(err) # will print something like "option -a not recognized")
+    print(str(err)) # will print something like "option -a not recognized"
     print('Usage: python-rest.py <connection string>')
     sys.exit(2)
 

commit 1b814f441cb8abd6b4f5596897d2d4cf6c342b43
Author: Guido Falsi <mad at madpilot.net>
Date:   Tue Jul 11 21:54:31 2017 +0200

    Call tzset() to make sure tzname[] is initializaed with local timezone data.
    Perform the check on the local timezone, not the transaction one.
    Add comment explaining FreeBSD differences.

diff --git a/src/import-export/ofx/gnc-ofx-import.c b/src/import-export/ofx/gnc-ofx-import.c
index b43aa2d..159c6c9 100644
--- a/src/import-export/ofx/gnc-ofx-import.c
+++ b/src/import-export/ofx/gnc-ofx-import.c
@@ -336,10 +336,23 @@ fix_ofx_bug_39 (time64 t)
 {
 #if HAVE_OFX_BUG_39
     struct tm stm;
-    gnc_localtime_r(&t, &stm);
+
 #ifdef __FreeBSD__
+    time64 now;
+    /*
+     * FreeBSD has it's own libc implementation which differs from glibc. In particular:
+     * There is no daylight global
+     * tzname members are set to the string "   " (three spaces) when not explicitly populated
+     *
+     * To check that the current timezone does not observe DST I check if tzname[1] starts with a space.
+     */
+    now = gnc_time (NULL);
+    gnc_localtime_r(&now, &stm);
+    tzset();
+
     if (tzname[1][0] != ' ' && !stm.tm_isdst)
 #else
+    gnc_localtime_r(&t, &stm);
     if (daylight && !stm.tm_isdst)
 #endif
       t += 3600;

commit be9b16c50006a6f12d2cae9a94c8e75fb969cde1
Author: Guido Falsi <mad at madpilot.net>
Date:   Tue Jul 11 19:11:46 2017 +0200

    FreeBSD does not have the daylight global. Add alternative implementation of the check emulating the glibc daylight global.

diff --git a/src/import-export/ofx/gnc-ofx-import.c b/src/import-export/ofx/gnc-ofx-import.c
index da6a479..b43aa2d 100644
--- a/src/import-export/ofx/gnc-ofx-import.c
+++ b/src/import-export/ofx/gnc-ofx-import.c
@@ -337,7 +337,11 @@ fix_ofx_bug_39 (time64 t)
 #if HAVE_OFX_BUG_39
     struct tm stm;
     gnc_localtime_r(&t, &stm);
+#ifdef __FreeBSD__
+    if (tzname[1][0] != ' ' && !stm.tm_isdst)
+#else
     if (daylight && !stm.tm_isdst)
+#endif
       t += 3600;
 #endif
     return t;



Summary of changes:
 CMakeLists.txt                                     | 1072 ++++++++++----------
 bindings/CMakeLists.txt                            |    6 +-
 bindings/python/CMakeLists.txt                     |   52 +-
 bindings/python/example_scripts/CMakeLists.txt     |    6 +-
 .../example_scripts/rest-api/gnucash_rest.py       |    2 +-
 bindings/python/tests/CMakeLists.txt               |   12 +-
 borrowed/CMakeLists.txt                            |   11 +-
 borrowed/goffice/CMakeLists.txt                    |   10 +-
 borrowed/guile-json/AUTHORS                        |    9 +
 borrowed/guile-json/CMakeLists.txt                 |   19 +
 borrowed/guile-json/COPYING.LESSER                 |  165 +++
 borrowed/guile-json/NEWS                           |   62 ++
 borrowed/guile-json/README                         |  158 +++
 borrowed/guile-json/json.scm                       |   45 +
 borrowed/guile-json/json/CMakeLists.txt            |   17 +
 borrowed/guile-json/json/builder.scm               |  212 ++++
 borrowed/guile-json/json/parser.scm                |  351 +++++++
 borrowed/guile-json/json/syntax.scm                |   76 ++
 borrowed/gwengui-gtk3/CMakeLists.txt               |   18 +-
 borrowed/libc/CMakeLists.txt                       |    6 +-
 cmake/CMakeLists.txt                               |    8 +-
 common/CMakeLists.txt                              |   12 +-
 common/cmake_modules/CMakeLists.txt                |    4 +-
 common/cmake_modules/GncAddGSchemaTargets.cmake    |   18 +-
 common/cmake_modules/GncAddSchemeTargets.cmake     |  234 ++---
 common/cmake_modules/GncAddTest.cmake              |  266 ++---
 .../MacroAddSourceFileCompileFlags.cmake           |   10 +-
 common/cmake_modules/MacroAppendForeach.cmake      |   12 +-
 common/cmake_modules/MakeDist.cmake                |   82 +-
 common/cmake_modules/MakeDistCheck.cmake           |   60 +-
 common/cmake_modules/MakeDistFiles.cmake           |   42 +-
 common/debug/CMakeLists.txt                        |    6 +-
 common/debug/valgrind/CMakeLists.txt               |    4 +-
 common/test-core/CMakeLists.txt                    |   80 +-
 data/CMakeLists.txt                                |   10 +-
 data/accounts/C/CMakeLists.txt                     |    8 +-
 data/accounts/CMakeLists.txt                       |   80 +-
 data/accounts/ca/CMakeLists.txt                    |    8 +-
 data/accounts/cs/CMakeLists.txt                    |    8 +-
 data/accounts/da/CMakeLists.txt                    |    8 +-
 data/accounts/de_AT/CMakeLists.txt                 |    8 +-
 data/accounts/de_CH/CMakeLists.txt                 |    8 +-
 data/accounts/de_DE/CMakeLists.txt                 |    8 +-
 data/accounts/el_GR/CMakeLists.txt                 |    8 +-
 data/accounts/en_GB/CMakeLists.txt                 |    8 +-
 data/accounts/en_IN/CMakeLists.txt                 |    8 +-
 data/accounts/es_ES/CMakeLists.txt                 |    8 +-
 data/accounts/es_MX/CMakeLists.txt                 |    8 +-
 data/accounts/fi_FI/CMakeLists.txt                 |    8 +-
 data/accounts/fr_CA/CMakeLists.txt                 |    8 +-
 data/accounts/fr_CH/CMakeLists.txt                 |    8 +-
 data/accounts/fr_FR/CMakeLists.txt                 |    8 +-
 data/accounts/hu_HU/CMakeLists.txt                 |    8 +-
 data/accounts/it/CMakeLists.txt                    |    8 +-
 data/accounts/ja/CMakeLists.txt                    |    8 +-
 data/accounts/ko/CMakeLists.txt                    |    8 +-
 data/accounts/lt/CMakeLists.txt                    |    8 +-
 data/accounts/lv/CMakeLists.txt                    |    8 +-
 data/accounts/nb/CMakeLists.txt                    |    8 +-
 data/accounts/nl/CMakeLists.txt                    |    8 +-
 data/accounts/pl/CMakeLists.txt                    |    8 +-
 data/accounts/pt_BR/CMakeLists.txt                 |    8 +-
 data/accounts/pt_PT/CMakeLists.txt                 |    8 +-
 data/accounts/ru/CMakeLists.txt                    |    8 +-
 data/accounts/sk/CMakeLists.txt                    |    8 +-
 data/accounts/sv_AX/CMakeLists.txt                 |    8 +-
 data/accounts/sv_FI/CMakeLists.txt                 |    8 +-
 data/accounts/sv_SE/CMakeLists.txt                 |    8 +-
 data/accounts/tr_TR/CMakeLists.txt                 |    8 +-
 data/accounts/zh_CN/CMakeLists.txt                 |    8 +-
 data/accounts/zh_HK/CMakeLists.txt                 |    8 +-
 data/accounts/zh_TW/CMakeLists.txt                 |    8 +-
 data/checks/CMakeLists.txt                         |    8 +-
 data/pixmaps/CMakeLists.txt                        |   22 +-
 doc/CMakeLists.txt                                 |   66 +-
 doc/examples/CMakeLists.txt                        |    6 +-
 gnucash/CMakeLists.txt                             |  245 ++---
 gnucash/gnome-search/CMakeLists.txt                |   30 +-
 gnucash/gnome-utils/CMakeLists.txt                 |   58 +-
 gnucash/gnome-utils/test/CMakeLists.txt            |   20 +-
 gnucash/gnome/CMakeLists.txt                       |   51 +-
 gnucash/gnome/dialog-invoice.c                     |    2 +-
 gnucash/gschemas/CMakeLists.txt                    |   12 +-
 gnucash/gtkbuilder/CMakeLists.txt                  |    2 +-
 gnucash/html/CMakeLists.txt                        |   42 +-
 gnucash/import-export/CMakeLists.txt               |   56 +-
 gnucash/import-export/aqb/CMakeLists.txt           |   62 +-
 gnucash/import-export/aqb/gschemas/CMakeLists.txt  |    8 +-
 gnucash/import-export/aqb/test/CMakeLists.txt      |    8 +-
 gnucash/import-export/bi-import/CMakeLists.txt     |   24 +-
 gnucash/import-export/csv-exp/CMakeLists.txt       |   22 +-
 gnucash/import-export/csv-imp/CMakeLists.txt       |   32 +-
 gnucash/import-export/csv-imp/test/CMakeLists.txt  |   24 +-
 .../import-export/customer-import/CMakeLists.txt   |   24 +-
 gnucash/import-export/log-replay/CMakeLists.txt    |   22 +-
 gnucash/import-export/ofx/CMakeLists.txt           |   40 +-
 gnucash/import-export/ofx/gnc-ofx-import.c         |   17 +
 gnucash/import-export/ofx/gschemas/CMakeLists.txt  |    6 +-
 gnucash/import-export/ofx/test/CMakeLists.txt      |   12 +-
 gnucash/import-export/qif-imp/CMakeLists.txt       |   40 +-
 gnucash/import-export/qif-imp/test/CMakeLists.txt  |    8 +-
 gnucash/import-export/qif/CMakeLists.txt           |   26 +-
 gnucash/import-export/qif/test/CMakeLists.txt      |   14 +-
 gnucash/import-export/test/CMakeLists.txt          |   12 +-
 gnucash/python/CMakeLists.txt                      |   20 +-
 gnucash/register/CMakeLists.txt                    |   10 +-
 gnucash/register/ledger-core/CMakeLists.txt        |   28 +-
 gnucash/register/ledger-core/test/CMakeLists.txt   |    8 +-
 gnucash/register/register-core/CMakeLists.txt      |   32 +-
 gnucash/register/register-core/test/CMakeLists.txt |    8 +-
 gnucash/register/register-gnome/CMakeLists.txt     |   28 +-
 .../register/register-gnome/test/CMakeLists.txt    |    8 +-
 gnucash/report/CMakeLists.txt                      |   20 +-
 gnucash/report/business-reports/CMakeLists.txt     |   14 +-
 gnucash/report/jqplot/CMakeLists.txt               |    6 +-
 gnucash/report/locale-specific/CMakeLists.txt      |    6 +-
 gnucash/report/locale-specific/us/CMakeLists.txt   |   32 +-
 .../report/locale-specific/us/test/CMakeLists.txt  |   14 +-
 gnucash/report/report-gnome/CMakeLists.txt         |   36 +-
 gnucash/report/report-gnome/test/CMakeLists.txt    |   14 +-
 gnucash/report/report-system/CMakeLists.txt        |   46 +-
 gnucash/report/report-system/test/CMakeLists.txt   |   16 +-
 gnucash/report/standard-reports/CMakeLists.txt     |   18 +-
 .../report/standard-reports/test/CMakeLists.txt    |   12 +-
 gnucash/report/stylesheets/CMakeLists.txt          |   46 +-
 gnucash/report/stylesheets/test/CMakeLists.txt     |    8 +-
 gnucash/report/utility-reports/CMakeLists.txt      |   12 +-
 gnucash/ui/CMakeLists.txt                          |    2 +-
 libgnucash/CMakeLists.txt                          |   24 +-
 libgnucash/app-utils/CMakeLists.txt                |  118 +--
 libgnucash/app-utils/test/CMakeLists.txt           |   36 +-
 libgnucash/backend/CMakeLists.txt                  |   10 +-
 libgnucash/backend/dbi/CMakeLists.txt              |   40 +-
 libgnucash/backend/dbi/test/CMakeLists.txt         |   18 +-
 libgnucash/backend/sql/CMakeLists.txt              |   26 +-
 libgnucash/backend/sql/test/CMakeLists.txt         |   18 +-
 libgnucash/backend/xml/CMakeLists.txt              |   54 +-
 libgnucash/backend/xml/test/CMakeLists.txt         |   64 +-
 .../backend/xml/test/test-files/CMakeLists.txt     |    6 +-
 .../xml/test/test-files/xml2/CMakeLists.txt        |    2 +-
 libgnucash/core-utils/CMakeLists.txt               |  140 +--
 libgnucash/core-utils/gnc-filepath-utils.cpp       |    2 +-
 libgnucash/core-utils/test/CMakeLists.txt          |   44 +-
 libgnucash/doc/CMakeLists.txt                      |   10 +-
 libgnucash/doc/design/CMakeLists.txt               |   30 +-
 libgnucash/doc/xml/CMakeLists.txt                  |    4 +-
 libgnucash/engine/CMakeLists.txt                   |   80 +-
 libgnucash/engine/test-core/CMakeLists.txt         |    8 +-
 libgnucash/engine/test/CMakeLists.txt              |  164 +--
 libgnucash/gnc-module/CMakeLists.txt               |   34 +-
 libgnucash/gnc-module/example/CMakeLists.txt       |   12 +-
 libgnucash/gnc-module/example/glade/CMakeLists.txt |    2 +-
 libgnucash/gnc-module/example/ui/CMakeLists.txt    |    2 +-
 libgnucash/gnc-module/test/CMakeLists.txt          |   82 +-
 .../gnc-module/test/misc-mods/CMakeLists.txt       |   16 +-
 libgnucash/gnc-module/test/mod-bar/CMakeLists.txt  |   14 +-
 libgnucash/gnc-module/test/mod-baz/CMakeLists.txt  |   20 +-
 libgnucash/gnc-module/test/mod-foo/CMakeLists.txt  |   16 +-
 libgnucash/quotes/CMakeLists.txt                   |   44 +-
 libgnucash/scm/CMakeLists.txt                      |   10 +-
 libgnucash/tax/CMakeLists.txt                      |    6 +-
 libgnucash/tax/us/CMakeLists.txt                   |   34 +-
 libgnucash/tax/us/test/CMakeLists.txt              |   14 +-
 po/CMakeLists.txt                                  |  122 +--
 po/POTFILES.in                                     |    4 +
 po/glossary/CMakeLists.txt                         |    2 +-
 test-templates/CMakeLists.txt                      |    2 +-
 util/CMakeLists.txt                                |    2 +-
 168 files changed, 3722 insertions(+), 2604 deletions(-)
 create mode 100644 borrowed/guile-json/AUTHORS
 create mode 100644 borrowed/guile-json/CMakeLists.txt
 create mode 100644 borrowed/guile-json/COPYING.LESSER
 create mode 100644 borrowed/guile-json/NEWS
 create mode 100644 borrowed/guile-json/README
 create mode 100644 borrowed/guile-json/json.scm
 create mode 100644 borrowed/guile-json/json/CMakeLists.txt
 create mode 100644 borrowed/guile-json/json/builder.scm
 create mode 100644 borrowed/guile-json/json/parser.scm
 create mode 100644 borrowed/guile-json/json/syntax.scm



More information about the gnucash-changes mailing list