Re: [PATCH 0/8] CMake build system for git

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Dscho,

I guess this is a pain point having to manage two separate build systems.
I will modify CMake script to get its sources from the Makefile.

Thank You,
Sibi Siddharthan

On Sat, Apr 25, 2020 at 8:19 PM Johannes Schindelin
<Johannes.Schindelin@xxxxxx> wrote:
>
> Hi Sibi,
>
> On Sat, 25 Apr 2020, Sibi Siddharthan wrote:
>
> > On Sat, Apr 25, 2020 at 7:58 PM Johannes Schindelin
> > <Johannes.Schindelin@xxxxxx> wrote:
> > >
> > > On Sat, 25 Apr 2020, Sibi Siddharthan wrote:
> > >
> > > > On Sat, Apr 25, 2020 at 6:59 PM Johannes Schindelin
> > > > <Johannes.Schindelin@xxxxxx> wrote:
> > > >
> > > > >
> > > > > We already use `GIT-VERSION-GEN` as the authoritative source for the Git
> > > > > version, by parsing the line that contains.
> > > > >
> > > > > It would look very similar, at least in my mind, to generate the list of
> > > > > source/script files by parsing the `Makefile`.
> > > > >
> > > > > Sibi, what do you think?
> > > >
> > > > One way of doing it is to track if the Makefile is changed in a commit,
> > > > run a hook to see if it contains any new OBJs and match it with the
> > > > CMake script. But this is too much work, in my opinion.
> > >
> > > Oh, sorry, I should have clarified: We already parse the
> > > `DEF_VER=v2.26.GIT` line in `GIT-VERSION-GEN` to determine the Git
> > > version.
> > >
> > > We should be able to do the very exact same thing to parse the `SCRIPT_SH`
> > > lines like
> > >
> > >         SCRIPT_SH += git-bisect.sh
> > >
> > > in the `Makefile` to accumulate the list of shell scripts, and likewise
> > > the list of object files could be accumulated by parsing the `LIB_OBJS`
> > > lines like
> > >
> > >         LIB_OBJS += abspath.o
> > >
> > > (We would of course need to substitute the `.o` with `.c`, but that should
> > > be easy.)
> > >
> > > That way, nobody will ever need to touch the CMakeLists.txt file when they
> > > add a new source file to libgit.a.
> > >
> >
> > I understand what you are trying to say, this is not impossible to do but doing
> > so will make the CMake script dependent on the Makefile for the sources.
> > I am not fan of this approach.
> >
> > We should write a separate script (say python) to match each of the sources in
> > the Makefile and the CMake file automatically whenever the changes detected.
> > This excludes the platform specific/compatibility stuff in config.mak.uname.
>
> Hmm. That is an approach that _I_ don't like. Why duplicate the
> information when you don't have to?
>
> I don't see any issue with keeping CMakeLists.txt dependent on Makefile.
> We could of course extract the lists into a separate file that is sourced
> both from the Makefile and from CMakeLists.txt, but that would actually
> not reflect that the Makefile _is_ authoritative. CMakeLists.txt will
> never be the authoritative source.
>
> Ciao,
> Dscho
>
> >
> > > I was not trying to auto-detect what `sed` invocation changed. Those
> > > changes _will_ need manual forward-porting to CMakeLists.txt. Thankfully,
> > > those events are really rare.
> > >
> > > Makes sense?
> > >
> > > Ciao,
> > > Dscho
> >
> > Thank You,
> > Sibi Siddharthan
> >
> >



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux