From: Sibi Siddharthan <sibisiddharthan.github@gmail.com>
To: Danh Doan <congdanhqx@gmail.com>
Cc: Sibi Siddharthan via GitGitGadget <gitgitgadget@gmail.com>,
git@vger.kernel.org
Subject: Re: [PATCH 5/8] cmake: support for testing git when building out of the source tree
Date: Sat, 25 Apr 2020 03:02:49 +0530 [thread overview]
Message-ID: <CAKiG+9V=bJNqrHRy8y8cbjkgzrmhOMMz47+8fgfQARAetx4MFQ@mail.gmail.com> (raw)
In-Reply-To: <20200424173433.GL1949@danh.dev>
On Fri, Apr 24, 2020 at 11:04 PM Danh Doan <congdanhqx@gmail.com> wrote:
>
> On 2020-04-24 04:01:34+0000, Sibi Siddharthan via GitGitGadget <gitgitgadget@gmail.com> wrote:
> > From: Sibi Siddharthan <sibisiddharthan.github@gmail.com>
> >
> > This patch allows git to be tested when performin out of source builds.
> >
> > This involves changing GIT_BUILD_DIR in t/test-lib.sh to point to the
> > build directory. Also some miscellaneous copies from the source directory
> > to the build directory.
> > The copies are:
> > t/chainlint.sed needed by a bunch of test scripts
> > po/is.po needed by t0204-gettext-rencode-sanity
> > mergetools/tkdiff needed by t7800-difftool
> > contrib/completion/git-prompt.sh needed by t9903-bash-prompt
> > contrib/completion/git-completion.bash needed by t9902-completion
> > contrib/svn-fe/svnrdump_sim.py needed by t9020-remote-svn
> >
> > NOTE: t/test-lib.sh is only modified when tests are run not during
> > the build or configure.
> > The trash directory is still srcdir/t
> >
> > Signed-off-by: Sibi Siddharthan <sibisiddharthan.github@gmail.com>
> > ---
> > CMakeLists.txt | 19 +++++++++++++++++++
> > 1 file changed, 19 insertions(+)
> >
> > diff --git a/CMakeLists.txt b/CMakeLists.txt
> > index 141ccefa559..29a23eb11f7 100644
> > --- a/CMakeLists.txt
> > +++ b/CMakeLists.txt
> > @@ -812,6 +812,25 @@ file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "NO_GETTEXT='${NO_GETTEXT}'\n"
> > file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "RUNTIME_PREFIX='${RUNTIME_PREFIX}'\n")
> > file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "NO_PYTHON='${NO_PYTHON}'\n")
> >
> > +#Make the tests work when building out of the source tree
> > +if(NOT ${CMAKE_BINARY_DIR} STREQUAL ${CMAKE_SOURCE_DIR})
>
> IIRC, CMake recommends _NOT_ expand variable inside if()
> This very inconsistent recommendation of CMake (when should I use
> ${var} and when should I use var?) is one of reason I hate CMake
>
I know, I got taken aback at first, but then you get used to it.
> > + file(RELATIVE_PATH BUILD_DIR_RELATIVE ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR}/CMakeCache.txt)
> > + string(REPLACE "/CMakeCache.txt" "" BUILD_DIR_RELATIVE ${BUILD_DIR_RELATIVE})
>
> I don't know what is going on here!
>
We are trying find the relative path to the build directory from the
source directory
file(RELATIVE_PATH ...) requires a file in the to "whatever" directory.
The one file that is always present in the build directory after a
CMake configure is CMakeCache.txt, so we use that.
Then we remove "CMakeCache.txt" from the variable "BUILD_DIR_RELATIVE"
to get the actual relative path.
> > + #Setting the build directory in test-lib.sh before running tests
> > + file(WRITE ${CMAKE_BINARY_DIR}/CTestCustom.cmake
> > + "file(STRINGS ${CMAKE_SOURCE_DIR}/t/test-lib.sh GIT_BUILD_DIR_REPL REGEX \"GIT_BUILD_DIR=(.*)\")\n"
> > + "file(STRINGS ${CMAKE_SOURCE_DIR}/t/test-lib.sh content NEWLINE_CONSUME)\n"
> > + "string(REPLACE \"\${GIT_BUILD_DIR_REPL}\" \"GIT_BUILD_DIR=\\\"$TEST_DIRECTORY\\\"/../${BUILD_DIR_RELATIVE}\" content \"\${content}\")\n"
> > + "file(WRITE ${CMAKE_SOURCE_DIR}/t/test-lib.sh \${content})")
> > + #misc copies
> > + file(COPY ${CMAKE_SOURCE_DIR}/t/chainlint.sed DESTINATION ${CMAKE_BINARY_DIR}/t/)
>
> So, some sed will be used in Windows without POSIX-like system,
> interesting!
>
> > + file(COPY ${CMAKE_SOURCE_DIR}/po/is.po DESTINATION ${CMAKE_BINARY_DIR}/po/)
> > + file(COPY ${CMAKE_SOURCE_DIR}/mergetools/tkdiff DESTINATION ${CMAKE_BINARY_DIR}/mergetools/)
> > + file(COPY ${CMAKE_SOURCE_DIR}/contrib/completion/git-prompt.sh DESTINATION ${CMAKE_BINARY_DIR}/contrib/completion/)
> > + file(COPY ${CMAKE_SOURCE_DIR}/contrib/completion/git-completion.bash DESTINATION ${CMAKE_BINARY_DIR}/contrib/completion/)
> > + file(COPY ${CMAKE_SOURCE_DIR}/contrib/svn-fe/svnrdump_sim.py DESTINATION ${CMAKE_BINARY_DIR}/contrib/svn-fe/)
> > +endif()
> > +
> > file(GLOB test_scipts "${CMAKE_SOURCE_DIR}/t/t[0-9]*.sh")
>
> Remember cmake won't be re-run if nothing was changed in CMakeList.txt
> If I only change some code, and I decided the change I make should be
> tested by a-new-and-independent-test-script.
> I need to re-run cmake manually! I don't like it, at all.
>
No you don't have re-run CMake.
>
> --
> Danh
Thank You,
Sibi Siddharthan
next prev parent reply other threads:[~2020-04-24 21:33 UTC|newest]
Thread overview: 179+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-24 4:01 [PATCH 0/8] CMake build system for git Sibi Siddharthan via GitGitGadget
2020-04-24 4:01 ` [PATCH 1/8] Introduce CMake support for configuring Git on Linux Sibi Siddharthan via GitGitGadget
2020-04-24 17:05 ` Danh Doan
2020-04-24 21:06 ` Sibi Siddharthan
2020-04-24 22:56 ` Danh Doan
2020-04-25 3:50 ` Sibi Siddharthan
2020-04-25 13:34 ` Johannes Schindelin
2020-04-25 17:07 ` brian m. carlson
2020-04-25 17:36 ` Randall S. Becker
2020-04-25 18:01 ` Philip Oakley
2020-04-25 18:11 ` Sibi Siddharthan
2020-04-24 4:01 ` [PATCH 2/8] cmake: generate the shell/perl/python scripts and templates, translations Sibi Siddharthan via GitGitGadget
2020-04-24 17:19 ` Danh Doan
2020-04-24 21:19 ` Sibi Siddharthan
2020-04-24 4:01 ` [PATCH 3/8] cmake: installation support for git Sibi Siddharthan via GitGitGadget
2020-04-24 17:23 ` Danh Doan
2020-04-24 21:24 ` Sibi Siddharthan
2020-04-24 4:01 ` [PATCH 4/8] cmake: support for testing git with ctest Sibi Siddharthan via GitGitGadget
2020-04-24 17:28 ` Danh Doan
2020-04-24 21:26 ` Sibi Siddharthan
2020-04-24 4:01 ` [PATCH 5/8] cmake: support for testing git when building out of the source tree Sibi Siddharthan via GitGitGadget
2020-04-24 17:34 ` Danh Doan
2020-04-24 21:32 ` Sibi Siddharthan [this message]
2020-04-24 23:09 ` Danh Doan
2020-04-25 3:57 ` Sibi Siddharthan
2020-04-24 4:01 ` [PATCH 6/8] cmake: support for building git on windows with mingw Sibi Siddharthan via GitGitGadget
2020-04-24 17:39 ` Philip Oakley
2020-04-24 20:29 ` Sibi Siddharthan
2020-04-25 11:37 ` Philip Oakley
2020-04-25 12:09 ` Sibi Siddharthan
2020-04-24 4:01 ` [PATCH 7/8] cmake: support for building git on windows with msvc and clang Sibi Siddharthan via GitGitGadget
2020-04-24 17:39 ` Danh Doan
2020-04-24 21:35 ` Sibi Siddharthan
2020-04-24 4:01 ` [PATCH 8/8] ci: modification of main.yml to use cmake for vs-build job Sibi Siddharthan via GitGitGadget
2020-04-24 17:45 ` Danh Doan
2020-04-24 21:41 ` Sibi Siddharthan
2020-04-24 21:44 ` Johannes Schindelin
2020-04-24 18:56 ` [PATCH 0/8] CMake build system for git Junio C Hamano
2020-04-24 19:50 ` Sibi Siddharthan
2020-04-24 21:43 ` Junio C Hamano
2020-04-25 4:09 ` Sibi Siddharthan
2020-04-25 12:56 ` Philip Oakley
2020-04-25 13:29 ` Johannes Schindelin
2020-04-25 14:12 ` Sibi Siddharthan
2020-04-25 14:28 ` Johannes Schindelin
2020-04-25 14:38 ` Sibi Siddharthan
2020-04-25 14:49 ` Johannes Schindelin
2020-04-25 14:57 ` Sibi Siddharthan
2020-04-26 0:41 ` Danh Doan
2020-04-26 4:30 ` Sibi Siddharthan
2020-04-25 12:24 ` Johannes Schindelin
2020-04-27 20:08 ` Jeff King
2020-04-27 20:12 ` Jeff King
2020-04-28 13:52 ` Danh Doan
2020-04-28 21:07 ` Jeff King
2020-04-29 8:42 ` Sibi Siddharthan
2020-05-01 19:32 ` Johannes Schindelin
2020-05-02 14:31 ` Sibi Siddharthan
2020-05-02 14:58 ` Randall S. Becker
2020-05-02 15:48 ` Junio C Hamano
2020-05-03 15:33 ` Sibi Siddharthan
2020-05-03 17:21 ` Junio C Hamano
2020-05-03 19:42 ` Konstantin Tokarev
2020-05-03 19:50 ` Junio C Hamano
2020-05-04 14:31 ` Johannes Schindelin
2020-05-04 21:59 ` Konstantin Tokarev
2020-05-05 4:16 ` Sibi Siddharthan
2020-05-05 6:16 ` Junio C Hamano
2020-05-05 16:23 ` Sibi Siddharthan
2020-05-05 18:17 ` Junio C Hamano
2020-05-06 18:43 ` Sibi Siddharthan
2020-05-07 11:48 ` Đoàn Trần Công Danh
2020-05-06 21:27 ` Johannes Schindelin
2020-05-07 20:54 ` Johannes Schindelin
2020-05-02 13:21 ` Danh Doan
2020-05-02 14:50 ` Sibi Siddharthan
2020-05-02 15:02 ` Danh Doan
2020-05-02 15:16 ` Sibi Siddharthan
2020-04-27 21:17 ` Junio C Hamano
2020-04-27 21:56 ` Michal Suchánek
2020-04-27 22:09 ` Jeff King
2020-04-27 22:23 ` Elijah Newren
2020-04-27 23:16 ` Junio C Hamano
2020-04-28 5:36 ` Jeff King
2020-05-12 16:50 ` [PATCH v2 00/11] " Sibi Siddharthan via GitGitGadget
2020-05-12 16:50 ` [PATCH v2 01/11] Introduce CMake support for configuring Git on Linux Sibi Siddharthan via GitGitGadget
2020-05-12 20:59 ` Junio C Hamano
2020-05-13 20:21 ` Sibi Siddharthan
2020-05-12 16:50 ` [PATCH v2 02/11] cmake: generate the shell/perl/python scripts and templates, translations Sibi Siddharthan via GitGitGadget
2020-05-12 21:19 ` Junio C Hamano
2020-05-13 20:07 ` Sibi Siddharthan
2020-05-12 16:50 ` [PATCH v2 03/11] cmake: installation support for git Sibi Siddharthan via GitGitGadget
2020-05-12 16:50 ` [PATCH v2 04/11] cmake: support for testing git with ctest Sibi Siddharthan via GitGitGadget
2020-05-12 16:50 ` [PATCH v2 05/11] cmake: support for testing git when building out of the source tree Sibi Siddharthan via GitGitGadget
2020-05-12 16:50 ` [PATCH v2 06/11] cmake: support for building git on windows with mingw Sibi Siddharthan via GitGitGadget
2020-05-14 15:25 ` Đoàn Trần Công Danh
2020-05-14 18:27 ` Sibi Siddharthan
2020-05-12 16:50 ` [PATCH v2 07/11] cmake: support for building git on windows with msvc and clang Sibi Siddharthan via GitGitGadget
2020-05-12 16:50 ` [PATCH v2 08/11] cmake: added checks for struct stat and libiconv Sibi Siddharthan via GitGitGadget
2020-05-12 21:16 ` Junio C Hamano
2020-05-13 20:05 ` Sibi Siddharthan
2020-05-14 2:00 ` Junio C Hamano
2020-05-14 15:31 ` Đoàn Trần Công Danh
2020-05-14 18:31 ` Sibi Siddharthan
2020-05-12 16:50 ` [PATCH v2 09/11] cmake: relocated script file contrib/buildsystems Sibi Siddharthan via GitGitGadget
2020-05-12 21:09 ` Junio C Hamano
2020-05-13 20:08 ` Sibi Siddharthan
2020-05-12 16:50 ` [PATCH v2 10/11] cmake: parse the makefile for the sources Sibi Siddharthan via GitGitGadget
2020-05-12 21:03 ` Junio C Hamano
2020-05-13 19:57 ` Sibi Siddharthan
2020-05-13 20:23 ` Junio C Hamano
2020-05-12 16:50 ` [PATCH v2 11/11] ci: modification of main.yml to use cmake for vs-build job Sibi Siddharthan via GitGitGadget
2020-05-12 21:27 ` Junio C Hamano
2020-05-13 19:45 ` Sibi Siddharthan
2020-05-25 19:16 ` Sibi Siddharthan
2020-05-25 20:03 ` Junio C Hamano
2020-05-25 20:56 ` Sibi Siddharthan
2020-05-25 21:40 ` Johannes Schindelin
2020-05-29 13:40 ` [PATCH v3 0/8] CMake build system for git Sibi Siddharthan via GitGitGadget
2020-05-29 13:40 ` [PATCH v3 1/8] Introduce CMake support for configuring Git Sibi Siddharthan via GitGitGadget
2020-05-29 19:27 ` Junio C Hamano
2020-05-30 18:50 ` Sibi Siddharthan
2020-05-31 16:17 ` Junio C Hamano
2020-05-30 8:00 ` Johannes Schindelin
2020-05-30 13:17 ` Đoàn Trần Công Danh
2020-05-29 13:40 ` [PATCH v3 2/8] cmake: generate the shell/perl/python scripts and templates, translations Sibi Siddharthan via GitGitGadget
2020-05-29 19:27 ` Junio C Hamano
2020-05-30 18:56 ` Sibi Siddharthan
2020-06-08 20:07 ` Sibi Siddharthan
2020-06-08 22:10 ` Junio C Hamano
2020-05-29 13:40 ` [PATCH v3 3/8] cmake: installation support for git Sibi Siddharthan via GitGitGadget
2020-05-29 13:40 ` [PATCH v3 4/8] cmake: support for testing git with ctest Sibi Siddharthan via GitGitGadget
2020-05-30 13:49 ` Đoàn Trần Công Danh
2020-05-30 19:04 ` Sibi Siddharthan
2020-05-31 1:28 ` Đoàn Trần Công Danh
2020-05-29 13:40 ` [PATCH v3 5/8] cmake: support for testing git when building out of the source tree Sibi Siddharthan via GitGitGadget
2020-05-29 13:40 ` [PATCH v3 6/8] cmake: support for building git on windows with mingw Sibi Siddharthan via GitGitGadget
2020-05-29 13:40 ` [PATCH v3 7/8] cmake: support for building git on windows with msvc and clang Sibi Siddharthan via GitGitGadget
2020-05-30 14:08 ` Đoàn Trần Công Danh
2020-05-30 19:08 ` Sibi Siddharthan
2020-05-29 13:40 ` [PATCH v3 8/8] ci: modification of main.yml to use cmake for vs-build job Sibi Siddharthan via GitGitGadget
2020-05-30 14:14 ` Đoàn Trần Công Danh
2020-05-30 19:13 ` Sibi Siddharthan
2020-06-12 18:29 ` [PATCH v4 0/8] CMake build system for git Sibi Siddharthan via GitGitGadget
2020-06-12 18:29 ` [PATCH v4 1/8] Introduce CMake support for configuring Git Sibi Siddharthan via GitGitGadget
2020-06-15 14:00 ` Øystein Walle
2020-06-15 20:04 ` Sibi Siddharthan
2020-06-12 18:29 ` [PATCH v4 2/8] cmake: generate the shell/perl/python scripts and templates, translations Sibi Siddharthan via GitGitGadget
2020-06-12 18:29 ` [PATCH v4 3/8] cmake: installation support for git Sibi Siddharthan via GitGitGadget
2020-06-12 18:29 ` [PATCH v4 4/8] cmake: support for testing git with ctest Sibi Siddharthan via GitGitGadget
2020-06-15 14:02 ` Øystein Walle
2020-06-15 19:45 ` Sibi Siddharthan
2020-06-12 18:29 ` [PATCH v4 5/8] cmake: support for testing git when building out of the source tree Sibi Siddharthan via GitGitGadget
2020-06-12 18:29 ` [PATCH v4 6/8] cmake: support for building git on windows with mingw Sibi Siddharthan via GitGitGadget
2020-06-15 14:03 ` Øystein Walle
2020-06-15 19:47 ` Sibi Siddharthan
2020-06-18 4:43 ` Junio C Hamano
2020-06-18 19:55 ` Sibi Siddharthan
2020-06-18 20:08 ` Junio C Hamano
2020-06-18 20:40 ` Sibi Siddharthan
2020-06-18 21:00 ` Junio C Hamano
2020-06-19 17:15 ` Sibi Siddharthan
2020-06-19 17:29 ` Junio C Hamano
2020-06-12 18:29 ` [PATCH v4 7/8] cmake: support for building git on windows with msvc and clang Sibi Siddharthan via GitGitGadget
2020-06-15 14:04 ` Øystein Walle
2020-06-15 19:56 ` Sibi Siddharthan
2020-06-12 18:29 ` [PATCH v4 8/8] ci: modification of main.yml to use cmake for vs-build job Sibi Siddharthan via GitGitGadget
2020-06-26 16:11 ` [PATCH v5 0/8] CMake build system for git Sibi Siddharthan via GitGitGadget
2020-06-26 16:11 ` [PATCH v5 1/8] Introduce CMake support for configuring Git Sibi Siddharthan via GitGitGadget
2020-06-26 16:11 ` [PATCH v5 2/8] cmake: generate the shell/perl/python scripts and templates, translations Sibi Siddharthan via GitGitGadget
2020-06-26 16:11 ` [PATCH v5 3/8] cmake: installation support for git Sibi Siddharthan via GitGitGadget
2020-06-26 16:11 ` [PATCH v5 4/8] cmake: support for testing git with ctest Sibi Siddharthan via GitGitGadget
2020-06-26 16:11 ` [PATCH v5 5/8] cmake: support for testing git when building out of the source tree Sibi Siddharthan via GitGitGadget
2020-06-26 16:11 ` [PATCH v5 6/8] cmake: support for building git on windows with mingw Sibi Siddharthan via GitGitGadget
2020-06-30 7:25 ` David Aguilar
2020-07-01 17:45 ` Sibi Siddharthan
2020-07-01 17:49 ` Sibi Siddharthan
2020-06-26 16:11 ` [PATCH v5 7/8] cmake: support for building git on windows with msvc and clang Sibi Siddharthan via GitGitGadget
2020-06-26 16:11 ` [PATCH v5 8/8] ci: modification of main.yml to use cmake for vs-build job Sibi Siddharthan via GitGitGadget
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAKiG+9V=bJNqrHRy8y8cbjkgzrmhOMMz47+8fgfQARAetx4MFQ@mail.gmail.com' \
--to=sibisiddharthan.github@gmail.com \
--cc=congdanhqx@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitgitgadget@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).