gnucash maint: Compatibility with XCode's "new build system"

Mike Alexander mta at code.gnucash.org
Sun Oct 9 01:38:55 EDT 2022


Updated	 via  https://github.com/Gnucash/gnucash/commit/2d3e80ea (commit)
	from  https://github.com/Gnucash/gnucash/commit/5ed45e08 (commit)



commit 2d3e80ea086c1014ca73fb04576721ed43c48cd2
Author: Mike Alexander <mta at umich.edu>
Date:   Sun Oct 9 00:47:12 2022 -0400

    Compatibility with XCode's "new build system"
    
    With XCode 14 or newer CMake tries to use the "new build system" which has a
    requirement that if two targets depend on the same generated file one of them
    must depend on the other.  This commit adds reduntant dependencies to satisfy
    this requirement.

diff --git a/bindings/guile/CMakeLists.txt b/bindings/guile/CMakeLists.txt
index 0cbb7aa3f..2aa57fce4 100644
--- a/bindings/guile/CMakeLists.txt
+++ b/bindings/guile/CMakeLists.txt
@@ -40,7 +40,9 @@ add_library(gnucash-guile SHARED
     ${SWIG_ENGINE_C})
 
 add_dependencies(gnucash-guile
-    swig-runtime-h)
+    swig-runtime-h
+    swig-core-utils-guile-c
+    swig-engine-c)
 
 target_include_directories(gnucash-guile
     PUBLIC
diff --git a/common/test-core/CMakeLists.txt b/common/test-core/CMakeLists.txt
index 0406e9304..f1364606d 100644
--- a/common/test-core/CMakeLists.txt
+++ b/common/test-core/CMakeLists.txt
@@ -42,6 +42,7 @@ gnc_add_swig_python_command (swig-unittest-support-python
 
 add_library(test-core-guile ${SWIG_UNITTEST_SUPPORT_GUILE_C})
 target_link_libraries(test-core-guile test-core ${GUILE_LDFLAGS} ${GLIB2_LDFLAGS})
+add_dependencies (test-core-guile swig-unittest-support-guile-c )
 
 if (WITH_PYTHON)
   add_library(unittest_support MODULE ${SWIG_UNITTEST_SUPPORT_PYTHON_C})
diff --git a/gnucash/gnome-utils/CMakeLists.txt b/gnucash/gnome-utils/CMakeLists.txt
index 8b7e1a7ec..379d29207 100644
--- a/gnucash/gnome-utils/CMakeLists.txt
+++ b/gnucash/gnome-utils/CMakeLists.txt
@@ -8,6 +8,7 @@ gnc_add_swig_guile_command (swig-gnome-utils-c
     ${CMAKE_CURRENT_SOURCE_DIR}/gnome-utils.i ""
 )
 
+add_dependencies(swig-gnome-utils-c gnc-gnome-utils)
 set (WARNINGS_SCHEMA ${DATADIR_BUILD}/glib-2.0/schemas/org.gnucash.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)
diff --git a/gnucash/gnome/CMakeLists.txt b/gnucash/gnome/CMakeLists.txt
index d3c22917f..a16366715 100644
--- a/gnucash/gnome/CMakeLists.txt
+++ b/gnucash/gnome/CMakeLists.txt
@@ -164,7 +164,7 @@ target_include_directories(gnc-gnome
     ${CMAKE_BINARY_DIR}/gnucash/gnome-utils # for gnc-warnings.h
 )
 
-add_dependencies (gnc-gnome swig-runtime-h)
+add_dependencies (gnc-gnome swig-runtime-h swig-gnome-c)
 
 if (MAC_INTEGRATION)
   target_compile_options(gnc-gnome PRIVATE ${OSX_EXTRA_COMPILE_FLAGS})
@@ -267,3 +267,4 @@ set_dist_list(gnome_DIST
         CMakeLists.txt gnome.i gnucash.appdata.xml.in.in gnucash.desktop.in.in
         gnucash.releases.xml ${gnc_gnome_noinst_HEADERS} ${gnc_gnome_SOURCES} ${gnome_SCHEME})
 dist_add_generated(${BUILDING_FROM_VCS} gnucash.appdata.xml.in)
+add_dependencies(gnucash-appdata dist-gnucash-gnome-gnucash-appdata-xml-in)
diff --git a/gnucash/html/CMakeLists.txt b/gnucash/html/CMakeLists.txt
index d5b1e757e..650ffd7dc 100644
--- a/gnucash/html/CMakeLists.txt
+++ b/gnucash/html/CMakeLists.txt
@@ -71,6 +71,7 @@ if (APPLE)
   set_target_properties (gnc-html PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
 endif()
 
+add_dependencies(gnc-html swig-gnc-html-c)
 install(TARGETS gnc-html
   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
diff --git a/gnucash/report/CMakeLists.txt b/gnucash/report/CMakeLists.txt
index a2da0f785..ff1f1d391 100644
--- a/gnucash/report/CMakeLists.txt
+++ b/gnucash/report/CMakeLists.txt
@@ -23,6 +23,8 @@ add_library (gnc-report
   ${SWIG_REPORT_C}
 )
 
+add_dependencies(gnc-report swig-report-c)
+
 target_compile_definitions(gnc-report PRIVATE -DG_LOG_DOMAIN=\"gnc.report.core\")
 
 target_link_libraries(gnc-report
diff --git a/libgnucash/app-utils/CMakeLists.txt b/libgnucash/app-utils/CMakeLists.txt
index 9a511ed35..2274714fb 100644
--- a/libgnucash/app-utils/CMakeLists.txt
+++ b/libgnucash/app-utils/CMakeLists.txt
@@ -162,7 +162,7 @@ if (WITH_PYTHON)
 
 endif()
 
-
+add_dependencies (gnc-app-utils swig-apputils-guile-c )
 
 install(FILES ${app_utils_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gnucash)
 
diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt
index 545ff7b38..2996af6a2 100644
--- a/po/CMakeLists.txt
+++ b/po/CMakeLists.txt
@@ -141,3 +141,7 @@ if(BUILD_GNUCASH_POT)
   add_custom_target (pot DEPENDS gnucash.pot)
 endif()
 dist_add_generated (${BUILDING_FROM_VCS} gnucash.pot)
+
+if(BUILD_GNUCASH_POT)
+  add_dependencies (dist-po-gnucash-pot pot)
+endif()



Summary of changes:
 bindings/guile/CMakeLists.txt       | 4 +++-
 common/test-core/CMakeLists.txt     | 1 +
 gnucash/gnome-utils/CMakeLists.txt  | 1 +
 gnucash/gnome/CMakeLists.txt        | 3 ++-
 gnucash/html/CMakeLists.txt         | 1 +
 gnucash/report/CMakeLists.txt       | 2 ++
 libgnucash/app-utils/CMakeLists.txt | 2 +-
 po/CMakeLists.txt                   | 4 ++++
 8 files changed, 15 insertions(+), 3 deletions(-)



More information about the gnucash-changes mailing list