From 46972b3125e6b6515acbc4152409f6dab4c295e4 Mon Sep 17 00:00:00 2001 From: John Ralls Date: Thu, 21 Aug 2025 13:45:18 -0700 Subject: [PATCH] Set policy CMP0177 and follow the documented recommendations regarding DESTINATION paths. --- CMakeLists.txt | 5 +++++ common/cmake_modules/GncAddSchemeTargets.cmake | 4 ++-- common/cmake_modules/GncAddTest.cmake | 9 ++++++--- libgnucash/backend/dbi/test/CMakeLists.txt | 1 - 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 10d9609e0e..c046460556 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,6 +14,11 @@ endif() if (POLICY CMP0167) cmake_policy(SET CMP0167 OLD) endif() +# CMake 3.31+ Use normalization rules on install DESTINATION +# command. We shouldn't be impacted so allow the new behavior. +if (POLICY CMP0177) + cmake_policy(SET CMP0177 NEW) +endif() project (gnucash VERSION 5.12 diff --git a/common/cmake_modules/GncAddSchemeTargets.cmake b/common/cmake_modules/GncAddSchemeTargets.cmake index 9a038def23..8e1e361548 100644 --- a/common/cmake_modules/GncAddSchemeTargets.cmake +++ b/common/cmake_modules/GncAddSchemeTargets.cmake @@ -309,8 +309,8 @@ function(gnc_add_scheme_targets _TARGET) if(SCHEME_TGT_TEST) add_dependencies(check ${_TARGET}) else() - install(FILES ${_TARGET_FILES} DESTINATION ${CMAKE_INSTALL_PREFIX}/${GUILE_REL_SITECCACHEDIR}/${SCHEME_TGT_OUTPUT_DIR}) - install(FILES ${SCHEME_TGT_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/${GUILE_REL_SITEDIR}/${SCHEME_TGT_OUTPUT_DIR}) + install(FILES ${_TARGET_FILES} DESTINATION ${GUILE_REL_SITECCACHEDIR}/${SCHEME_TGT_OUTPUT_DIR}) + install(FILES ${SCHEME_TGT_SOURCES} DESTINATION ${GUILE_REL_SITEDIR}/${SCHEME_TGT_OUTPUT_DIR}) endif() endfunction() diff --git a/common/cmake_modules/GncAddTest.cmake b/common/cmake_modules/GncAddTest.cmake index 629bbf8010..4d6fa5e770 100644 --- a/common/cmake_modules/GncAddTest.cmake +++ b/common/cmake_modules/GncAddTest.cmake @@ -26,6 +26,7 @@ function(get_guile_env) list(APPEND env "PATH=${fpath}") set(compiled_path "${CMAKE_BINARY_DIR}/${GUILE_REL_SITECCACHEDIR}") string(REGEX REPLACE "^([A-Za-z]):" "/\\1" compiled_path ${compiled_path}) + string(REGEX REPLACE "\\\\" "/" compiled_path ${compiled_path}) list(APPEND env GUILE_LOAD_COMPILED_PATH=${compiled_path}) endif() list(APPEND env "GNC_MODULE_PATH=${_GNC_MODULE_PATH}") @@ -54,19 +55,21 @@ function(get_guile_env) if (MINGW64) set(new_path "") foreach(load_item ${guile_load_path}) - string(REGEX REPLACE "^([A-Za-z]):" "/\\1" load_item ${load_item}) +# string(REGEX REPLACE "^([A-Za-z]):" "/\\1" load_item ${load_item}) + string(REGEX REPLACE "\\\\" "/" load_item ${load_item}) list(APPEND new_path ${load_item}) endforeach(load_item) set(guile_load_path ${new_path}) set(new_path "") foreach(load_item ${guile_load_compiled_path}) - string(REGEX REPLACE "^([A-Za-z]):" "/\\1" load_item ${load_item}) +# string(REGEX REPLACE "^([A-Za-z]):" "/\\1" load_item ${load_item}) + string(REGEX REPLACE "\\\\" "/" load_item ${load_item}) list(APPEND new_path ${load_item}) endforeach(load_item) set(guile_load_compiled_path ${new_path}) endif() - if (WIN32 AND NOT MINGW64) + if (WIN32) string(REPLACE ";" "\\\\;" GUILE_LOAD_PATH "${guile_load_path}") string(REPLACE ";" "\\\\;" GUILE_LOAD_COMPILED_PATH "${guile_load_compiled_path}") else() diff --git a/libgnucash/backend/dbi/test/CMakeLists.txt b/libgnucash/backend/dbi/test/CMakeLists.txt index 4474a3edcb..f8486d40f0 100644 --- a/libgnucash/backend/dbi/test/CMakeLists.txt +++ b/libgnucash/backend/dbi/test/CMakeLists.txt @@ -34,7 +34,6 @@ 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 ) -# This test does not work on Win32 if (WITH_SQL) gnc_add_test(test-backend-dbi "${test_dbi_backend_SOURCES}" BACKEND_DBI_TEST_INCLUDE_DIRS BACKEND_DBI_TEST_LIBS