gnucash-on-windows master: Multiple changes pushed

John Ralls jralls at code.gnucash.org
Tue Dec 8 14:14:44 EST 2015


Updated	 via  https://github.com/Gnucash/gnucash-on-windows/commit/f028f410 (commit)
	 via  https://github.com/Gnucash/gnucash-on-windows/commit/8c75a428 (commit)
	 via  https://github.com/Gnucash/gnucash-on-windows/commit/3648da5b (commit)
	 via  https://github.com/Gnucash/gnucash-on-windows/commit/7746c346 (commit)
	from  https://github.com/Gnucash/gnucash-on-windows/commit/ba67ee5d (commit)



commit f028f410c5c3d1f8e6ac25f47a298f8bf62fec23
Author: Rob Gowin <robgowin at gmail.com>
Date:   Mon Dec 7 09:55:35 2015 -0600

    undo previous perl path commit; do not use seperate cmake install dir

diff --git a/defaults.sh b/defaults.sh
index dfd7edf..f109293 100644
--- a/defaults.sh
+++ b/defaults.sh
@@ -48,7 +48,7 @@ else
 fi
 set_default BUILD_DIR $GNUCASH_DIR\\build
 set_default INSTALL_DIR $GNUCASH_DIR\\inst
-set_default INSTALL_DIR_CMAKE $GNUCASH_DIR\\inst-cmake
+
 set_default DIST_DIR $GNUCASH_DIR\\dist
 
 set_default WITH_CUTECASH no
diff --git a/install-impl.sh b/install-impl.sh
index a0e7ebb..81fa9a7 100644
--- a/install-impl.sh
+++ b/install-impl.sh
@@ -1321,13 +1321,14 @@ function inst_cutecash() {
 
 function inst_gnucash_using_cmake() {
     setup "Gnucash (using cmake)"
-    _INSTALL_UDIR=`unix_path $INSTALL_DIR_CMAKE`
+    _INSTALL_UDIR=`unix_path $INSTALL_DIR`
     _BUILD_UDIR=`unix_path  $GNUCASH_CMAKE_BUILD_DIR`
     _GLOBAL_UDIR=`unix_path $GLOBAL_DIR`
     _REPOS_UDIR=`unix_path  $REPOS_DIR`
     _NINJA_UDIR=`unix_path  $NINJA_DIR`
     _MSYS_UDIR=`unix_path   $MSYS_DIR`
-
+    _LIBDBI_DRIVERS_UDIR=`unix_path ${LIBDBI_DRIVERS_DIR}`
+    
     mkdir -p $_BUILD_UDIR
     add_to_env $_INSTALL_UDIR/bin PATH
 
@@ -1345,8 +1346,9 @@ function inst_gnucash_using_cmake() {
          cmake -G "$CMAKE_GENERATOR" \
                -D CMAKE_INSTALL_PREFIX=${_INSTALL_UDIR} \
                -D CMAKE_PREFIX_PATH=${_GLOBAL_UDIR} \
-               -D PERL_EXECUTABLE=${_MSYS_UDIR}/1.0/bin/perl \
+               -D PERL_EXECUTABLE=${_MSYS_UDIR}/bin/perl \
                -D CMAKE_MAKE_PROGRAM=${_CMAKE_MAKE_PROGRAM} \
+               -D GNC_DBD_DIR=${_LIBDBI_DRIVERS_UDIR}/lib/dbd \
                ${_REPOS_UDIR}
           ${_CMAKE_MAKE_PROGRAM} install
      qpopd

commit 8c75a428bed23dd1b51ffa7612ef075bf8377199
Author: Rob Gowin <robgowin at gmail.com>
Date:   Mon Nov 30 10:04:19 2015 -0600

    Oops. Got the path to perl wrong on cmake build

diff --git a/install-impl.sh b/install-impl.sh
index 4a37856..a0e7ebb 100644
--- a/install-impl.sh
+++ b/install-impl.sh
@@ -1345,7 +1345,7 @@ function inst_gnucash_using_cmake() {
          cmake -G "$CMAKE_GENERATOR" \
                -D CMAKE_INSTALL_PREFIX=${_INSTALL_UDIR} \
                -D CMAKE_PREFIX_PATH=${_GLOBAL_UDIR} \
-               -D PERL_EXECUTABLE=${_MSYS_UDIR}/bin/perl \
+               -D PERL_EXECUTABLE=${_MSYS_UDIR}/1.0/bin/perl \
                -D CMAKE_MAKE_PROGRAM=${_CMAKE_MAKE_PROGRAM} \
                ${_REPOS_UDIR}
           ${_CMAKE_MAKE_PROGRAM} install

commit 3648da5bac28ab370d996ff11a331de3115306c7
Author: RobGowin <robgowin at gmail.com>
Date:   Sun Nov 29 20:19:45 2015 -0600

    Add support for building Gnucash using CMake and Ninja, disabled by default.
    
    This commit adds in infrastructure necessary for building GnuCash using
    CMake and Ninja. It is disabled by default with WITH_CMAKE=no and
    WITH_NINJA=no.
    
    File changes:
    
    defaults.sh:
      * add separate build and install directories for CMake build
      * add WITH_CMAKE and WITH_NINJA defaults, set to no.
      * update CMake version to 3.3.2
      * add URL and directory for ninja.
    
    devrc.sh:
      * add CMAKE_DIR to point to CMake install
      * add NINJA_DIR to point to Ninja install
      * add above to PATH
    
    install-impl.sh
      * CMake download uses HTTPS, so need --no-check-certificate on wget
      * Change directory handling to reflect use of version 3 of Cmake
      * add function to download and install ninja
      * add function to build gnucash using CMake and, optionally, ninja.
    
    install.sh
      * if WITH_CMAKE=yes, add step to install cmake
      * if also WITH_NINJA=yes, add step to install ninja
      * IF WITH_CMAKE=yes, install gnucash using CMake. Use
         MSYS Makefiles it not using ninja.

diff --git a/defaults.sh b/defaults.sh
index 5c927ae..dfd7edf 100644
--- a/defaults.sh
+++ b/defaults.sh
@@ -48,10 +48,14 @@ else
 fi
 set_default BUILD_DIR $GNUCASH_DIR\\build
 set_default INSTALL_DIR $GNUCASH_DIR\\inst
+set_default INSTALL_DIR_CMAKE $GNUCASH_DIR\\inst-cmake
 set_default DIST_DIR $GNUCASH_DIR\\dist
 
 set_default WITH_CUTECASH no
+set_default WITH_CMAKE no
+set_default WITH_NINJA no
 set_default CUTECASH_BUILD_DIR $GNUCASH_DIR\\build-cutecash
+set_default GNUCASH_CMAKE_BUILD_DIR $GNUCASH_DIR\\build-cmake
 
 
 ####
@@ -368,9 +372,12 @@ set_default LIBDBI_DRIVERS_URL "$SF_MIRROR/libdbi-drivers/libdbi-drivers-0.8.3-1
 set_default LIBDBI_DRIVERS_DIR $GLOBAL_DIR\\libdbi-drivers
 set_default LIBDBI_DRIVERS_PATCH `pwd`/libdbi-drivers-errno.patch
 
-set_default CMAKE_URL "http://www.cmake.org/files/v2.8/cmake-2.8.0-win32-x86.zip"
+set_default CMAKE_URL "https://cmake.org/files/v3.3/cmake-3.3.2-win32-x86.zip"
 set_default CMAKE_DIR $GLOBAL_DIR\\cmake
 
+set_default NINJA_URL "http://github.com/ninja-build/ninja/releases/download/v1.6.0/ninja-win.zip"
+set_default NINJA_DIR $GLOBAL_DIR\\ninja
+
 set_default DOCBOOK_XSL_URL "$SF_MIRROR/docbook/docbook-xsl-1.76.1.zip"
 set_default DOCBOOK_DTD_URL "http://www.oasis-open.org/docbook/xml/4.1.2/docbkx412.zip"
 if [ "$REPOS_TYPE" = "git" ]; then
diff --git a/devrc.sh b/devrc.sh
index 73468d5..b1bdcda 100644
--- a/devrc.sh
+++ b/devrc.sh
@@ -28,6 +28,7 @@ export OLDPATH=$PATH
 
 GLOBAL_UDIR="/c/gcdev"
 AQBANKING_UDIR=$GLOBAL_UDIR/aqbanking
+CMAKE_UDIR=$GLOBAL_UDIR/cmake
 GWENHYWFAR_UDIR=$GLOBAL_UDIR/gwenhywfar
 ENCHANT_UDIR=$GLOBAL_UDIR/enchant
 GNOME_UDIR=$GLOBAL_UDIR/gnome
@@ -41,6 +42,7 @@ LIBOFX_UDIR=$GLOBAL_UDIR/libofx
 LIBSOUP_UDIR=$GLOBAL_UDIR/libsoup
 LIBXSLT_UDIR=$GLOBAL_UDIR/libxslt
 MYSQL_UDIR=$GLOBAL_UDIR/mysql
+NINJA_UDIR=$GLOBAL_UDIR/ninja
 OPENSP_UDIR=$GLOBAL_UDIR/opensp
 PCRE_UDIR=$GLOBAL_UDIR/pcre
 PGSQL_UDIR=$GLOBAL_UDIR/pgsql
@@ -50,7 +52,7 @@ SWIG_UDIR=$GLOBAL_UDIR/swig
 WEBKIT_UDIR=$GLOBAL_UDIR/webkit
 BOOST_UDIR=$GLOBAL_UDIR/boost
 
-PATH=$AQBANKING_UDIR/bin:$GWENHYWFAR_UDIR/bin:$ENCHANT_UDIR/bin:$GNOME_UDIR/bin:$GNUCASH_UDIR/bin:$GNUCASH_UDIR/lib:$GNUTLS_UDIR/bin:$GOFFICE_UDIR/bin:$GUILE_UDIR/bin:$LIBDBI_UDIR/bin:$LIBGSF_UDIR/bin:$LIBOFX_UDIR/bin:$LIBSOUP_UDIR/bin:$LIBXSLT_UDIR/bin:$MYSQL_UDIR/bin:$MYSQL_UDIR/lib:$OPENSP_UDIR/bin:$PCRE_UDIR/bin:$PGSQL_UDIR/bin:$PGSQL_UDIR/lib:$REGEX_UDIR/bin:$SQLITE3_UDIR/bin:$SWIG_UDIR:$WEBKIT_UDIR/bin:$BOOST_UDIR/lib
+PATH=$AQBANKING_UDIR/bin:$CMAKE_UDIR/bin:$GWENHYWFAR_UDIR/bin:$ENCHANT_UDIR/bin:$GNOME_UDIR/bin:$GNUCASH_UDIR/bin:$GNUCASH_UDIR/lib:$GNUTLS_UDIR/bin:$GOFFICE_UDIR/bin:$GUILE_UDIR/bin:$LIBDBI_UDIR/bin:$LIBGSF_UDIR/bin:$LIBOFX_UDIR/bin:$LIBSOUP_UDIR/bin:$LIBXSLT_UDIR/bin:$MYSQL_UDIR/bin:$MYSQL_UDIR/lib:$NINJA_UDIR:$OPENSP_UDIR/bin:$PCRE_UDIR/bin:$PGSQL_UDIR/bin:$PGSQL_UDIR/lib:$REGEX_UDIR/bin:$SQLITE3_UDIR/bin:$SWIG_UDIR:$WEBKIT_UDIR/bin:$BOOST_UDIR/lib
 
 PATH=$PATH:$OLDPATH
 
diff --git a/install-impl.sh b/install-impl.sh
index e61266b..4a37856 100644
--- a/install-impl.sh
+++ b/install-impl.sh
@@ -95,16 +95,33 @@ function inst_cmake() {
     then
         echo "cmake already installed in $_CMAKE_UDIR.  skipping."
     else
+        WGET_EXTRA_OPTIONS="--no-check-certificate"
         wget_unpacked $CMAKE_URL $DOWNLOAD_DIR $CMAKE_DIR
-
-        assert_one_dir ${_CMAKE_UDIR}/cmake-2*
-        mv ${_CMAKE_UDIR}/cmake-2*/* ${_CMAKE_UDIR}
-        rm -rf ${_CMAKE_UDIR}/cmake-2*
+        unset WGET_EXTRA_OPTIONS
+        assert_one_dir ${_CMAKE_UDIR}/cmake-3*
+        mv ${_CMAKE_UDIR}/cmake-3*/* ${_CMAKE_UDIR}
+        rm -rf ${_CMAKE_UDIR}/cmake-3*
 
         [ -f ${_CMAKE_UDIR}/bin/cmake.exe ] || die "cmake not installed correctly"
     fi
 }
 
+function inst_ninja() {
+    setup Ninja
+    _NINJA_UDIR=`unix_path ${NINJA_DIR}`
+    add_to_env ${_NINJA_UDIR} PATH
+    if [ -f ${_NINJA_UDIR}/ninja.exe ]
+    then
+        echo "ninja already install in $_NINJA_UDIR.  skipping."
+    else
+        WGET_EXTRA_OPTIONS="--no-check-certificate -O $TMP_DIR\\$(basename $NINJA_URL)"
+        wget_unpacked $NINJA_URL $DOWNLOAD_DIR $NINJA_DIR
+        unset WGET_EXTRA_OPTIONS
+
+        [ -f ${_NINJA_UDIR}/ninja.exe ] || die "ninja not installed correctly"
+    fi
+}
+
 function inst_exetype() {
     setup exetype
     _EXETYPE_UDIR=`unix_path $EXETYPE_DIR`
@@ -1302,6 +1319,39 @@ function inst_cutecash() {
     qpopd
 }
 
+function inst_gnucash_using_cmake() {
+    setup "Gnucash (using cmake)"
+    _INSTALL_UDIR=`unix_path $INSTALL_DIR_CMAKE`
+    _BUILD_UDIR=`unix_path  $GNUCASH_CMAKE_BUILD_DIR`
+    _GLOBAL_UDIR=`unix_path $GLOBAL_DIR`
+    _REPOS_UDIR=`unix_path  $REPOS_DIR`
+    _NINJA_UDIR=`unix_path  $NINJA_DIR`
+    _MSYS_UDIR=`unix_path   $MSYS_DIR`
+
+    mkdir -p $_BUILD_UDIR
+    add_to_env $_INSTALL_UDIR/bin PATH
+
+    if [ "$BUILD_FROM_TARBALL" != "yes" ]; then
+        qpushd $REPOS_DIR
+            $GIT_CMD checkout $GNUCASH_SCM_REV
+        qpopd
+    fi
+
+    _CMAKE_MAKE_PROGRAM=$_MSYS_UDIR/bin/make
+    if [ "$CMAKE_GENERATOR" = "Ninja" ]; then
+        _CMAKE_MAKE_PROGRAM=$_NINJA_UDIR/ninja.exe
+    fi
+    qpushd $_BUILD_UDIR
+         cmake -G "$CMAKE_GENERATOR" \
+               -D CMAKE_INSTALL_PREFIX=${_INSTALL_UDIR} \
+               -D CMAKE_PREFIX_PATH=${_GLOBAL_UDIR} \
+               -D PERL_EXECUTABLE=${_MSYS_UDIR}/bin/perl \
+               -D CMAKE_MAKE_PROGRAM=${_CMAKE_MAKE_PROGRAM} \
+               ${_REPOS_UDIR}
+          ${_CMAKE_MAKE_PROGRAM} install
+     qpopd
+}
+
 function inst_gnucash() {
     setup GnuCash
     _INSTALL_WFSDIR=`win_fs_path $INSTALL_DIR`
diff --git a/install.sh b/install.sh
index 0208432..354c2ac 100644
--- a/install.sh
+++ b/install.sh
@@ -107,7 +107,19 @@ if [ "$WITH_CUTECASH" = "yes" ]; then
  add_step inst_cmake
  add_step inst_cutecash
 fi
-add_step inst_gnucash
+
+if [ "$WITH_CMAKE" = "yes" ]; then
+	add_step inst_cmake
+	CMAKE_GENERATOR="MSYS Makefiles"
+	if [ "$WITH_NINJA" = "yes" ]; then
+		add_step inst_ninja
+		CMAKE_GENERATOR="Ninja"
+	fi
+	add_step inst_gnucash_using_cmake
+else	
+    add_step inst_gnucash
+fi
+
 if [ "$CROSS_COMPILE" != "yes" ]; then
  add_step inst_inno
 fi

commit 7746c346fd55cc3144f652a8c25c8c13f6029c4a
Author: John Ralls <jralls at ceridwen.us>
Date:   Thu Sep 24 14:13:49 2015 -0700

    Bug 724721 - Win32: use cpan instead of ppm to get finance-quote
    
    Plus related cleanup.

diff --git a/extra_dist/install-fq-mods.cmd b/extra_dist/install-fq-mods.cmd
index da44975..f7ce2c0 100644
--- a/extra_dist/install-fq-mods.cmd
+++ b/extra_dist/install-fq-mods.cmd
@@ -69,16 +69,16 @@ set _perlminor=%errorlevel%
 if %_perlmajor% equ 5 (
   if %_perlminor% geq 10 (
     set _perlversion=5.10
-    goto pchk
+    goto install
   )
   if %_perlminor% equ 8 (
     set _perlversion=5.8
-    goto pchk
+    goto install
   )
 REM Note: GnuCash no longer "officially" supports perl 5.6, but as long as it works it will be allowed...
   if %_perlminor% equ 6 (
     set _perlversion=5.6
-    goto pchk
+    goto install
   )
 )
 echo.
@@ -98,38 +98,14 @@ REM perl -w gnc-path-check
 REM if %errorlevel% neq 0 goto error
 
 REM ----------------------------------------------------------------------------
-echo.
-echo * Determine which Perl flavour we have found
-echo.
-perl -e "use Win32;if(defined &Win32::BuildNumber){exit 2;}else{exit 3;};"
-REM echo status = %errorlevel%
-if %errorlevel% equ 2 (
-  echo   - ActivePerl
-  goto inst_mod_as
-) else if %errorlevel% equ 3 (
-  echo   - Other, probably Strawberry perl ?
-  goto inst_mod_oth
-) else if %errorlevel% neq 0 goto error
-
-REM ----------------------------------------------------------------------------
-:inst_mod_oth
+:install
 echo.
 echo * Install required perl modules
 echo.
 perl -w gnc-fq-update
 if %errorlevel% neq 0 goto error
-goto fqchk
-
-REM ----------------------------------------------------------------------------
-:inst_mod_as
-echo.
-echo * Install Finance-Quote
-echo.
-perl -x -S ppm install Finance-Quote
-if %errorlevel% neq 0 goto error
 
 REM ----------------------------------------------------------------------------
-:fqchk
 echo.
 echo * Run gnc-fq-check
 echo.



Summary of changes:
 defaults.sh                    |  9 ++++++-
 devrc.sh                       |  4 ++-
 extra_dist/install-fq-mods.cmd | 32 +++-------------------
 install-impl.sh                | 60 +++++++++++++++++++++++++++++++++++++++---
 install.sh                     | 14 +++++++++-
 5 files changed, 84 insertions(+), 35 deletions(-)



More information about the gnucash-changes mailing list