-
Notifications
You must be signed in to change notification settings - Fork 140
CMake build system for git #614
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Welcome to GitGitGadgetHi @SibiSiddharthan, and welcome to GitGitGadget, the GitHub App to send patch series to the Git mailing list from GitHub Pull Requests. Please make sure that your Pull Request has a good description, as it will be used as cover letter. Also, it is a good idea to review the commit messages one last time, as the Git project expects them in a quite specific form:
It is in general a good idea to await the automated test ("Checks") in this Pull Request before contributing the patches, e.g. to avoid trivial issues such as unportable code. Contributing the patchesBefore you can contribute the patches, your GitHub username needs to be added to the list of permitted users. Any already-permitted user can do that, by adding a comment to your PR of the form Both the person who commented An alternative is the channel
Once on the list of permitted usernames, you can contribute the patches to the Git mailing list by adding a PR comment If you want to see what email(s) would be sent for a After you submit, GitGitGadget will respond with another comment that contains the link to the cover letter mail in the Git mailing list archive. Please make sure to monitor the discussion in that thread and to address comments and suggestions (while the comments and suggestions will be mirrored into the PR by GitGitGadget, you will still want to reply via mail). If you do not want to subscribe to the Git mailing list just to be able to respond to a mail, you can download the mbox from the Git mailing list archive (click the curl -g --user "<EMailAddress>:<Password>" \
--url "imaps://imap.gmail.com/INBOX" -T /path/to/raw.txt To iterate on your change, i.e. send a revised patch or patch series, you will first want to (force-)push to the same branch. You probably also want to modify your Pull Request description (or title). It is a good idea to summarize the revision by adding something like this to the cover letter (read: by editing the first comment on the PR, i.e. the PR description):
To send a new iteration, just add another PR comment with the contents: Need help?New contributors who want advice are encouraged to join [email protected], where volunteers who regularly contribute to Git are willing to answer newbie questions, give advice, or otherwise provide mentoring to interested contributors. You must join in order to post or view messages, but anyone can join. You may also be able to find help in real time in the developer IRC channel, |
There is an issue in commit 23609c211489ef75aa04c9bde2a6772011dccd10: |
There is an issue in commit aa14a2b809cf5711b42379657dc1557f33844f17: |
There is an issue in commit 5cacfb35092db009cd15f7f47f3e6846f24bb220: |
There is an issue in commit 33a7d8cc0d911118d5d4ab6546fa5d3a5467c37d: |
There is an issue in commit 0a33e04c69829a8e404b07a7118d7ea80b900871: |
There is an issue in commit 5a38586821d585d07de4208a56ea164a1644ea91: |
There is an issue in commit 93fc2748ec9b002a671dedd51c62084041f1f9f2: |
There is an issue in commit 6bc50d7814ba3c388c6e4827bb6c10e5e58f5434: |
There is an issue in commit 69b3c7eab57254835e3b9d1d2b21f4cea271a3bf: |
There is an issue in commit 3474a22b7b45a001caa0f50baebfe4113c6b0ea9: |
There is an issue in commit 4bc9fdc7864e31eb3b768c7479410dda42138be8: |
There is an issue in commit 65b8116669570ee93387668bc8c43b8bd784dc47: |
There is an issue in commit f920f3122316aeda5b3cf275f50d58bd75a50628: |
There is an issue in commit 8a6fef1603f06593e976b6375ccaf45deef596aa: |
There is an issue in commit 69e91a3af6c342e5bbb52147100aa24e4ce0ef49: |
There is an issue in commit 6a33a1c6307109042d00f4360cdb8e89edd984ed: |
Would you mind aligning the style of the commit messages more with the existing ones? For example,
should probably read more like
And instead of
the commit message should be a lot more verbose. Personally, I would do something like this:
Ideally, all of these commit messages will be equally verbose and convincing. (And their "onelines", i.e. the first lines of their commit messages, won't read "cmake: update" for the most part 😄 ) |
/allow |
User SibiSiddharthan is now allowed to use GitGitGadget. WARNING: SibiSiddharthan has no public email address set on GitHub |
To add to my previous comment: The commit message
would probably read a lot better like this:
Following this example, the remainder of the commit messages are probably eager to be enhanced in the same manner 😄 |
Will reword the commit messages. And I don't think the configure.ac script works anymore. I tried running it it does nothing(does not generate a makefile for out of source builds). |
Have reworded the commit messages, explained what each patch does. |
/preview |
Preview email sent as [email protected] |
@dscho shall I submit for a PR? |
This patch series was integrated into seen via git@fa27177. |
This patch series was integrated into seen via git@5700fce. |
This patch series was integrated into seen via git@da8ccd0. |
This patch series was integrated into seen via git@32df5b4. |
This patch series was integrated into seen via git@a2c02e8. |
This patch series was integrated into seen via git@4c893e5. |
This patch series was integrated into seen via git@445b247. |
This patch series was integrated into seen via git@1ecde87. |
This patch series was integrated into seen via git@10eb7db. |
This patch series was integrated into seen via git@c72951a. |
This patch series was integrated into next via git@ffaf583. |
This patch series was integrated into seen via git@553f48b. |
This patch series was integrated into next via git@a0d7016. |
This patch series was integrated into seen via git@bcefc73. |
This patch series was integrated into seen via git@4679dad. |
This patch series was integrated into seen via git@fb20794. |
This patch series was integrated into seen via git@6e512ef. |
This patch series was integrated into seen via git@ce9d76c. |
This patch series was integrated into seen via git@a30e4c5. |
This patch series was integrated into next via git@a30e4c5. |
This patch series was integrated into master via git@a30e4c5. |
Closed via a30e4c5. |
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:
LIB_OBJS
BUILTIN_OBJS
XDIFF_OBJS
VCSSVN_OBJS
TEST_BUILTINS_OBJS
SCRIPT_SH
SCRIPT_PERL
found on windows.
to be consistent with the naming of source variables.
Changes v2:
Changes 1,2,4 have been rebased to PATCH 01/xx
CMake uses GIT-VERSION-GEN to get the version of Git
Fixed a bug where a Windows user can pose as Linux user and vice versa. [PATCH 6/8]
Changes v3:
Patch changes are moved from the commit messages and are placed here.
Code inside check_c_source_(compiles/runs) have been formatted according to git coding guidelines. [PATCH 1/8]
The CMake script parses the Makefile for SCRIPT_LIB also. [PATCH 2/8]
The CMake script globs templates, po files. Logic has been added to place the template files in their respective directories instead of hard-coding them. [PATCH 2/8]
Changes v4:
Removed EXE_EXTENSION conditional stuff using CMAKE_EXECUTABLE_SUFFIX [PATCH 4/8]
There was an issue in build pipelines where CMake was not able to find the correct iconv library (caused by an update that installed PostgreSQL), so we need to manually set the location of the iconv library and its includes. This issue is extremely rare and is specific to the implementation of FindIconv.cmake. Other libraries are unaffected. [PATCH 8/8]