git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] cmake: stop trying to build the reftable and xdiff libraries

From
Johannes Schindelin via GitGitGadget <gitgitgadget@gmail.com>
Date
Nov 17, 2025, 20:40 UTC
Message-ID
<pull.2006.git.1763412008722.gitgitgadget@gmail.com>
From: Johannes Schindelin <johannes.schindelin@gmx.de>

In the `en/make-libgit-a` topic branch, more precisely in the commits f3b4c89d59f1 (make: delete REFTABLE_LIB, add reftable to LIB_OBJS, 2025-10-02) and cf680cdb9543 (make: delete XDIFF_LIB, add xdiff to LIB_OBJS, 2025-10-02), the strategy to build three static libraries was rethought, and instead only one static library is now built.

This is good.

However, the CMake definition was not changed accordingly, and now CMake-based builds fail thusly:

  [...]
  Generating hook-list.h
  CMake Error at CMakeLists.txt:122 (string):
    string sub-command REPLACE requires at least four arguments.
  Call Stack (most recent call first):
    CMakeLists.txt:711 (parse_makefile_for_sources)
  CMake Error at CMakeLists.txt:122 (string):
    string sub-command REPLACE requires at least four arguments.
  Call Stack (most recent call first):
    CMakeLists.txt:717 (parse_makefile_for_sources)
  -- Configuring incomplete, errors occurred!

Fix that by removing the parts that expect the reftable and xdiff objects to be defined separately in the Makefile, still.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
    cmake: stop trying to build the reftable and xdiff libraries
    
    This was needed to be able to pass the CI builds of Git for Windows
    v2.52. With all the Windows build problems observed in the win+Meson job
    in seen lately, it might become unsustainable to also keep taking care
    of the CMake definition. But then, the same might be said about the
    Windows part of the Meson build definition.
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-2006%2Fdscho%2Fadjust-cmake-to-xdiff-and-reftable-merge-into-libgit-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-2006/dscho/adjust-cmake-to-xdiff-and-reftable-merge-into-libgit-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/2006
 contrib/buildsystems/CMakeLists.txt | 14 +-------------
 1 file changed, 1 insertion(+), 13 deletions(-)
diff --git a/contrib/buildsystems/CMakeLists.txt b/contrib/buildsystems/CMakeLists.txt
index edb0fc04ad..479163ab5c 100644
--- a/contrib/buildsystems/CMakeLists.txt
+++ b/contrib/buildsystems/CMakeLists.txt
@@ -679,18 +679,6 @@ list(APPEND libgit_SOURCES "${CMAKE_BINARY_DIR}/version-def.h")
 
 add_library(libgit ${libgit_SOURCES} ${compat_SOURCES})
 
-#libxdiff
-parse_makefile_for_sources(libxdiff_SOURCES ${CMAKE_SOURCE_DIR}/Makefile "XDIFF_OBJS")
-
-list(TRANSFORM libxdiff_SOURCES PREPEND "${CMAKE_SOURCE_DIR}/")
-add_library(xdiff STATIC ${libxdiff_SOURCES})
-
-#reftable
-parse_makefile_for_sources(reftable_SOURCES ${CMAKE_SOURCE_DIR}/Makefile "REFTABLE_OBJS")
-
-list(TRANSFORM reftable_SOURCES PREPEND "${CMAKE_SOURCE_DIR}/")
-add_library(reftable STATIC ${reftable_SOURCES})
-
 if(WIN32)
 	add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/git.rc
 			COMMAND "${SH_EXE}" "${CMAKE_SOURCE_DIR}/GIT-VERSION-GEN"
@@ -720,7 +708,7 @@ endif()
 #link all required libraries to common-main
 add_library(common-main OBJECT ${CMAKE_SOURCE_DIR}/common-main.c)
 
-target_link_libraries(common-main libgit xdiff reftable ${ZLIB_LIBRARIES})
+target_link_libraries(common-main libgit ${ZLIB_LIBRARIES})
 if(Intl_FOUND)
 	target_link_libraries(common-main ${Intl_LIBRARIES})
 endif()

base-commit: 9a2fb147f2c61d0cab52c883e7e26f5b7948e3ed
-- 
gitgitgadget
Message 1 of 1 in “cmake: stop trying to build the reftable and xdiff libraries”
  1. cmake: stop trying to build the reftable and xdiff librariesJohannes Schindelin via GitGitGadget, Nov 17, 2025

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.