Skip to content

pr-614/SibiSiddharthan/git-og-v2

This is an attempt to build Git using CMake. CMake is cross-platform build
generator which works well on a variety of platforms(primarily Linux and
Windows). Using CMake we can check whether certain headers exist, certain
functions exist, the required libraries are present and configure the build
accordingly. Using CMake we can also build and test Git out of source,
resulting in a clean source tree.

Tested platforms

Ubuntu 18.04 GCC 7.4 Clang 8.0.1

Windows MinGW GCC 9.2 Clang 9 Visual Studio 2015,2017,2019

Changes:

1) The CMake script has been relocated to contrib/buildsystems 2) The CMake
script parses the Makefile for the sources. 3) Philip suggested to change
the error message if sh/bash was not found on windows. 4) CMake now tests
for ICONV_OMITS_BOM, NO_ST_BLOCKS_IN_STRUCT_STAT

Sibi Siddharthan (11):
  Introduce CMake support for configuring Git on Linux
  cmake: generate the shell/perl/python scripts and templates,
    translations
  cmake: installation support for git
  cmake: support for testing git with ctest
  cmake: support for testing git when building out of the source tree
  cmake: support for building git on windows with mingw
  cmake: support for building git on windows with msvc and clang.
  cmake: added checks for struct stat and libiconv
  cmake: relocated script file contrib/buildsystems
  cmake: parse the makefile for the sources.
  ci: modification of main.yml to use cmake for vs-build job

 .github/workflows/main.yml          |  46 +-
 contrib/buildsystems/CMakeLists.txt | 945 ++++++++++++++++++++++++++++
 2 files changed, 971 insertions(+), 20 deletions(-)
 create mode 100644 contrib/buildsystems/CMakeLists.txt

base-commit: 744177e7f7fd407c26e9e4aa3b19696859010c48

Submitted-As: https://lore.kernel.org/git/pull.614.v2.git.1589302254.gitgitgadget@gmail.com
In-Reply-To: https://lore.kernel.org/git/pull.614.git.1587700897.gitgitgadget@gmail.com
Assets 2