mbox series

[0/2] cmake doc: modernize and cross-platform-ize the docs

Message ID cover-0.2-00000000000-20221219T102813Z-avarab@gmail.com (mailing list archive)
Headers show
Series cmake doc: modernize and cross-platform-ize the docs | expand

Message

Ævar Arnfjörð Bjarmason Dec. 19, 2022, 10:32 a.m. UTC
Change the cmake docs to use one-command build instructions using
options that "cmake" supports an ill our supported versions, and in
2/2 re-arrange the docs to make it clearer which part of the
instructions are platform-specific.

Like the just-submitted [1] this extracted from [2], and the range
diff below is to [2]. The only change since [2] is a trivial reflow
change in the commit message.

There were no outstanding issues or feedback with this part of [2], so
hopefully this can advance relatively quickly.

1. https://lore.kernel.org/git/patch-1.1-0fa41115261-20221219T102205Z-avarab@gmail.com/T/#u
2. https://lore.kernel.org/git/cover-v6-00.15-00000000000-20221206T001617Z-avarab@gmail.com/

Ævar Arnfjörð Bjarmason (2):
  cmake: use "-S" and "-B" to specify source and build directories
  cmake: update instructions for portable CMakeLists.txt

 contrib/buildsystems/CMakeLists.txt | 70 ++++++++++++++++++++---------
 1 file changed, 50 insertions(+), 20 deletions(-)

Range-diff:
 1:  fc190b379cd <  -:  ----------- cmake: don't invoke msgfmt with --statistics
 2:  1a11aa233a3 !  1:  2411acc9d4c cmake: use "-S" and "-B" to specify source and build directories
    @@ Commit message
         cmake: use "-S" and "-B" to specify source and build directories
     
         Rather than the multi-line "mkdir/cd/cmake" recipe provide an
    -    equivalent one-liner using the "-S" and "-B" options, and then suggest building with "make -C <build-dir>".
    +    equivalent one-liner using the "-S" and "-B" options, and then suggest
    +    building with "make -C <build-dir>".
     
         The rest of these instructions discuss e.g. running tests from our
         top-level "t/" directory, so it's more helpful to avoid changing the
 3:  b9ddb5db1d3 =  2:  d6058ed0f22 cmake: update instructions for portable CMakeLists.txt
 4:  7b7850c00ee <  -:  ----------- cmake: don't copy chainlint.pl to build directory
 5:  82ecb797915 <  -:  ----------- cmake: chmod +x the bin-wrappers/* & SCRIPT_{SH,PERL} & git-p4
 6:  1f326944a07 <  -:  ----------- cmake & test-lib.sh: add a $GIT_SOURCE_DIR variable
 7:  973c8038f54 <  -:  ----------- cmake: set "USE_LIBPCRE2" in "GIT-BUILD-OPTIONS" for test-lib.sh
 8:  b8448c7a8a6 <  -:  ----------- Makefile + test-lib.sh: don't prefer cmake-built to make-built git
 9:  5135e40969e <  -:  ----------- test-lib.sh: support a "GIT_TEST_BUILD_DIR"
10:  65204463730 <  -:  ----------- cmake: optionally be able to run tests before "ctest"
11:  e25992b16f1 <  -:  ----------- cmake: support GIT_TEST_OPTS, abstract away WIN32 defaults
12:  4905ce5321d <  -:  ----------- cmake: increase test timeout on Windows only
13:  6c6b530965d <  -:  ----------- cmake: only look for "sh" in "C:/Program Files" on Windows
14:  563f1b9b045 <  -:  ----------- cmake: copy over git-p4.py for t983[56] perforce test
15:  917a884eb65 <  -:  ----------- CI: add a "linux-cmake-test" to run cmake & ctest on linux

Comments

Phillip Wood Dec. 19, 2022, 2:55 p.m. UTC | #1
Hi Ævar

On 19/12/2022 10:32, Ævar Arnfjörð Bjarmason wrote:
> Change the cmake docs to use one-command build instructions using
> options that "cmake" supports an ill our supported versions, and in
> 2/2 re-arrange the docs to make it clearer which part of the
> instructions are platform-specific.
> 
> Like the just-submitted [1] this extracted from [2], and the range
> diff below is to [2]. The only change since [2] is a trivial reflow
> change in the commit message.
> 
> There were no outstanding issues or feedback with this part of [2], so
> hopefully this can advance relatively quickly.

I'm afraid my inclination would be to let the people who actually use 
CMake make any changes to the CMake documentation as I think they are 
best placed to know what information is most important.

Best Wishes

Phillip

> 1. https://lore.kernel.org/git/patch-1.1-0fa41115261-20221219T102205Z-avarab@gmail.com/T/#u
> 2. https://lore.kernel.org/git/cover-v6-00.15-00000000000-20221206T001617Z-avarab@gmail.com/
> 
> Ævar Arnfjörð Bjarmason (2):
>    cmake: use "-S" and "-B" to specify source and build directories
>    cmake: update instructions for portable CMakeLists.txt
> 
>   contrib/buildsystems/CMakeLists.txt | 70 ++++++++++++++++++++---------
>   1 file changed, 50 insertions(+), 20 deletions(-)
> 
> Range-diff:
>   1:  fc190b379cd <  -:  ----------- cmake: don't invoke msgfmt with --statistics
>   2:  1a11aa233a3 !  1:  2411acc9d4c cmake: use "-S" and "-B" to specify source and build directories
>      @@ Commit message
>           cmake: use "-S" and "-B" to specify source and build directories
>       
>           Rather than the multi-line "mkdir/cd/cmake" recipe provide an
>      -    equivalent one-liner using the "-S" and "-B" options, and then suggest building with "make -C <build-dir>".
>      +    equivalent one-liner using the "-S" and "-B" options, and then suggest
>      +    building with "make -C <build-dir>".
>       
>           The rest of these instructions discuss e.g. running tests from our
>           top-level "t/" directory, so it's more helpful to avoid changing the
>   3:  b9ddb5db1d3 =  2:  d6058ed0f22 cmake: update instructions for portable CMakeLists.txt
>   4:  7b7850c00ee <  -:  ----------- cmake: don't copy chainlint.pl to build directory
>   5:  82ecb797915 <  -:  ----------- cmake: chmod +x the bin-wrappers/* & SCRIPT_{SH,PERL} & git-p4
>   6:  1f326944a07 <  -:  ----------- cmake & test-lib.sh: add a $GIT_SOURCE_DIR variable
>   7:  973c8038f54 <  -:  ----------- cmake: set "USE_LIBPCRE2" in "GIT-BUILD-OPTIONS" for test-lib.sh
>   8:  b8448c7a8a6 <  -:  ----------- Makefile + test-lib.sh: don't prefer cmake-built to make-built git
>   9:  5135e40969e <  -:  ----------- test-lib.sh: support a "GIT_TEST_BUILD_DIR"
> 10:  65204463730 <  -:  ----------- cmake: optionally be able to run tests before "ctest"
> 11:  e25992b16f1 <  -:  ----------- cmake: support GIT_TEST_OPTS, abstract away WIN32 defaults
> 12:  4905ce5321d <  -:  ----------- cmake: increase test timeout on Windows only
> 13:  6c6b530965d <  -:  ----------- cmake: only look for "sh" in "C:/Program Files" on Windows
> 14:  563f1b9b045 <  -:  ----------- cmake: copy over git-p4.py for t983[56] perforce test
> 15:  917a884eb65 <  -:  ----------- CI: add a "linux-cmake-test" to run cmake & ctest on linux
Ævar Arnfjörð Bjarmason Dec. 19, 2022, 3:06 p.m. UTC | #2
On Mon, Dec 19 2022, Phillip Wood wrote:

> Hi Ævar
>
> On 19/12/2022 10:32, Ævar Arnfjörð Bjarmason wrote:
>> Change the cmake docs to use one-command build instructions using
>> options that "cmake" supports an ill our supported versions, and in
>> 2/2 re-arrange the docs to make it clearer which part of the
>> instructions are platform-specific.
>> Like the just-submitted [1] this extracted from [2], and the range
>> diff below is to [2]. The only change since [2] is a trivial reflow
>> change in the commit message.
>> There were no outstanding issues or feedback with this part of [2],
>> so
>> hopefully this can advance relatively quickly.
>
> I'm afraid my inclination would be to let the people who actually use
> CMake make any changes to the CMake documentation as I think they are 
> best placed to know what information is most important.

I think that after kicking this "cmake" series back & forth for a while
I can be described as a person who "uses cmake", I also have cmake+ctest
as part of my local build & branch integration.

I'm not sure what else to do with this comment, if you think that
e.g. there might be some issue with the proposed changes here due to a
blindspot I have in not using it with MSVC can you comment on the
specific parts that you're concerned about?