gnucash stable: Multiple changes pushed

John Ralls jralls at code.gnucash.org
Mon Dec 11 15:31:43 EST 2023


Updated	 via  https://github.com/Gnucash/gnucash/commit/3d433d8c (commit)
	 via  https://github.com/Gnucash/gnucash/commit/93323cc1 (commit)
	from  https://github.com/Gnucash/gnucash/commit/f5996afd (commit)



commit 3d433d8c5b0e8b7797583008479fc6786ddfb892
Author: John Ralls <jralls at ceridwen.us>
Date:   Mon Dec 11 11:48:50 2023 -0800

    Workflows: Try limiting the coverage-upload to the root repo.
    
    I.e. don't run it in forks.

diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml
index 3fd09aba6f..946523ef9a 100644
--- a/.github/workflows/coverage.yml
+++ b/.github/workflows/coverage.yml
@@ -53,6 +53,7 @@ jobs:
 
   deploy-coverage:
     needs: coverage
+    if: github.repository == 'gnucash/gnucash'
     permissions:
       pages: write
       id-token: write

commit 93323cc1dc437704764b0eb487cf23041859a30b
Author: John Ralls <jralls at ceridwen.us>
Date:   Sun Dec 10 13:21:21 2023 -0800

    Fix Win32 build, broken by COMMAND_EXPAND_LISTS
    
    Create a win32 analog to make_unix_path_list that escapes the
    semicolons to prevent cmake turning them into list delimiters.

diff --git a/common/cmake_modules/GncAddSchemeTargets.cmake b/common/cmake_modules/GncAddSchemeTargets.cmake
index 97c3c9d009..9a038def23 100644
--- a/common/cmake_modules/GncAddSchemeTargets.cmake
+++ b/common/cmake_modules/GncAddSchemeTargets.cmake
@@ -20,11 +20,20 @@ function(make_unix_path PATH)
     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.
+# 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()
+# Meanwhile cmake treats the semicolons in Win32 path lists as its own
+# list separators converting them into spaces on the command
+# line. Escape them to prevent that.
+function(make_win32_path_list PATH)
+    string(REPLACE ";" "\\\;" newpath "${${PATH}}")
+    set(${PATH} "${newpath}" PARENT_SCOPE)
+endfunction()
 
 # This function will set two or four environment variables to a directory in the parent PARENT_SCOPE
 # * _DIRCLASS (eg "prefix", "sitedir" is used to construct the variable name(s) and in error messages
@@ -241,6 +250,7 @@ function(gnc_add_scheme_targets _TARGET)
         set(fpath "")
         file(TO_CMAKE_PATH "$ENV{PATH}" fpath)
         set(LIBRARY_PATH "PATH=${BINDIR_BUILD};${fpath}")
+        make_win32_path_list(LIBRARY_PATH)
       else()
         set (LIBRARY_PATH "LD_LIBRARY_PATH=${LIBDIR_BUILD}:${LIBDIR_BUILD}/gnucash:$ENV{LD_LIBRARY_PATH}")
       endif()
@@ -256,6 +266,9 @@ function(gnc_add_scheme_targets _TARGET)
       if(NOT MINGW64 OR ${GUILE_EFFECTIVE_VERSION} VERSION_LESS 2.2)
         make_unix_path_list(_GUILE_LOAD_PATH)
         make_unix_path_list(_GUILE_LOAD_COMPILED_PATH)
+      elseif(MINGW64)
+        make_win32_path_list(_GUILE_LOAD_PATH)
+        make_win32_path_list(_GUILE_LOAD_COMPILED_PATH)
       endif()
       make_unix_path_list(_GNC_MODULE_PATH)
       if (__DEBUG)



Summary of changes:
 .github/workflows/coverage.yml                 |  1 +
 common/cmake_modules/GncAddSchemeTargets.cmake | 15 ++++++++++++++-
 2 files changed, 15 insertions(+), 1 deletion(-)



More information about the gnucash-changes mailing list