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

Re: [PATCH] cmake: ignore generated files

From
Junio C Hamano <gitster@pobox.com>
Date
Sep 23, 2020, 15:59 UTC
Message-ID
<xmqqr1qsjxgb.fsf@gitster.c.googlers.com>
In-Reply-To
<nycvar.QRO.7.76.6.2009201916040.5061@tvgsbejvaqbjf.bet>
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
Show 22 quoted lines
>> > The change that Dscho suggested was meant for those people that run
>> > CMake in same directory of source dir, which is mostly discouraged
>> > in CMake land.
>
> It is discouraged, but not disallowed.
> ...
>> > I think the original CMake proposal didn't touch .gitignore because
>> > they run in a separated build-dir.
>>
>> If so, not only my "do we need a matching change to CMakeLists to
>> teach how to clean crufts?" becomes unnecessary, but the original
>> patch that started this thread to touch .gitignore at the top level,
>> does, too.
>>
>> I wonder what led Dscho not to follow the "create a 'build' dir and
>> do things there" practice.  Judging from the fact that the "because
>> they run in a separate build directory" assumption did not hold to
>> somebody as experienced as Dscho, it is likely others would do the
>> same.
>
> That's because Dscho does not like the separate build directory, even if
> they know that in the CMake world, it is kind of expected.
Sorry, but that does not sound like a convincing excuse because ...
Show 15 quoted lines
> It's just that it would be super convenient for Visual Studio users to
> just generate their project files in-place. That's why I started down that
> road.
> ...
> Ideally, we would tell Visual Studio users to "just install CMake, start
> its GUI, direct it to the Git source, configure and generate". Alas, it is
> not that easy:
>
> - The `SH_EXE` is not found by default (`C:\Program Files\Git\bin\sh.exe`
>   should be used in the vast majority of the cases),
> - If the build directory is left unspecified, the non-writable `C:\Program
>   Files\CMake\bin` directory is used,
> - The `compat\vcbuild\vcpkg` system is not initialized automatically, and
>   even if the user initialized it, the dependencies (such as expat, zlib)
>   are still not found.

... if the build directory needs to be specified anyway, there don't seem to be a big difference between telling them to create an empty build place and use it and telling them to point at the source tree itself, so ...

> I would like to make things easier, and forcing users to use a separate
> build directory (that needs to be outside of the Git source tree because
> our `.gitignore` does not handle it well) would go the other direction, I
> fear.

... the above sounds like the argument concentrates too much on where the build directory is (i.e. between "in place" and "a throw-away directory next door"), which sounds like much smaller point compared to the other things that needs to be improved in the VS users. And making a choice against what is recommended as best practice...? I dunno.

Previous: Johannes SchindelinNext: Johannes Schindelin
Message 10 of 22 in “cmake: ignore generated files”
  1. cmake: ignore generated filesJohannes Schindelin via GitGitGadget, Sep 17, 2020
  2. Junio C HamanoSep 17, 2020
  3. Johannes SchindelinSep 18, 2020
  4. Junio C HamanoSep 18, 2020
  5. Đoàn Trần Công DanhSep 18, 2020
  6. Junio C HamanoSep 18, 2020
  7. Đoàn Trần Công DanhSep 19, 2020
  8. Junio C HamanoSep 19, 2020
  9. Johannes SchindelinSep 20, 2020
  10. Junio C HamanoSep 23, 2020
  11. Johannes SchindelinSep 23, 2020
  12. Junio C HamanoSep 23, 2020
  13. Johannes SchindelinSep 25, 2020
  14. Đoàn Trần Công DanhSep 24, 2020
  15. Johannes SchindelinSep 25, 2020
  16. Johannes SchindelinSep 20, 2020
  17. Junio C HamanoSep 21, 2020
  18. Johannes SchindelinSep 23, 2020
  19. SZEDER GáborSep 24, 2020
  20. Junio C HamanoSep 24, 2020
  21. Junio C HamanoSep 23, 2020
  22. Junio C HamanoSep 23, 2020

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.