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

Re: [PATCH v2 0/3] Make CMake work out of the box

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Jun 10, 2021, 09:47 UTC
Message-ID
<nycvar.QRO.7.76.6.2106101146230.57@tvgsbejvaqbjf.bet>
In-Reply-To
<pull.970.v2.git.1622980974.gitgitgadget@gmail.com>
Hi Matt,
On Sun, 6 Jun 2021, Matthew Rogers via GitGitGadget wrote:
Show 10 quoted lines
> This pull request comes from our discussion here[1], and I think these
> patches provide a good compromise around the concerns discussed there
>
> 1:
> https://lore.kernel.org/git/CAOjrSZusMSvs7AS-ZDsV8aQUgsF2ZA754vSDjgFKMRgi_oZAWw@mail.gmail.com/
>
> CCing the people involved in the original discussion. cc: Philip Oakley
> philipoakley@iee.email cc: Sibi Siddharthan
> sibisiddharthan.github@gmail.com, cc: Johannes Schindelin
> johannes.schindelin@gmx.de, cc: Danh Doan congdanhqx@gmail.com

Just in case that a v3 is needed, I fixed the PR description so that these "Cc:"s are interpreted correctly again by GitGitGadget.

But from a brief glance over v2, all patches look good to me.

Thanks, Dscho

Show 136 quoted lines
>
> Matthew Rogers (3):
>   cmake: add knob to disable vcpkg
>   cmake: create compile_commands.json by default
>   cmake: add warning for ignored MSGFMT_EXE
>
>  contrib/buildsystems/CMakeLists.txt | 37 ++++++++++++++++++++++-------
>  1 file changed, 28 insertions(+), 9 deletions(-)
>
>
> base-commit: c09b6306c6ca275ed9d0348a8c8014b2ff723cfb
> Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-970%2FROGERSM94%2Ffix-cmake-v2
> Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-970/ROGERSM94/fix-cmake-v2
> Pull-Request: https://github.com/gitgitgadget/git/pull/970
>
> Range-diff vs v1:
>
>  1:  3170f78daa5f ! 1:  485254b49de8 cmake: add knob to disable vcpkg
>      @@ Commit message
>               generators.
>
>             - Some versions of Visual Studio 2019 moved away from using the
>      -        VS 2019 by default, making it impossible for Visual Studio to
>      -        configure the project in the likely event that it couldn't find the
>      -        dependencies.
>      +        VS 2019  generator by default, making it impossible for Visual
>      +        Studio to configure the project in the likely event that it couldn't
>      +        find the dependencies.
>
>             - Inexperienced users of CMake are very likely to get tripped up by
>               the errors caused by a lack of vcpkg, making the above bullet point
>               both annoying and hard to debug.
>
>      -    As such, lets make using vcpkg the default on windows.  Users who want
>      +    As such, let's make using vcpkg the default on windows.  Users who want
>           to avoid using vcpkg can disable it by passing -DNO_VCPKG=TRUE.
>
>           Signed-off-by: Matthew Rogers <mattr94@gmail.com>
>      @@ contrib/buildsystems/CMakeLists.txt: NOTE: By default CMake uses Makefile as the
>        set(CMAKE_SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/../..)
>       -if(WIN32)
>       +
>      -+if (WIN32 AND NOT NO_VCPKG)
>      -+	set(USING_VCPKG TRUE)
>      -+else()
>      -+	set(USING_VCPKG FALSE)
>      ++option(USE_VCPKG "Whether or not to use vcpkg for obtaining dependencies.  Only applicable to Windows platforms" ON)
>      ++if(NOT WIN32)
>      ++	set(USE_VCPKG OFF CACHE BOOL FORCE)
>       +endif()
>       +
>      -+if(USING_VCPKG)
>      ++if(USE_VCPKG)
>        	set(VCPKG_DIR "${CMAKE_SOURCE_DIR}/compat/vcbuild/vcpkg")
>       -	if(MSVC AND NOT EXISTS ${VCPKG_DIR})
>       +	if(NOT EXISTS ${VCPKG_DIR})
>      @@ contrib/buildsystems/CMakeLists.txt: endif()
>        find_program(MSGFMT_EXE msgfmt)
>        if(NOT MSGFMT_EXE)
>       -	set(MSGFMT_EXE ${CMAKE_SOURCE_DIR}/compat/vcbuild/vcpkg/downloads/tools/msys2/msys64/usr/bin/msgfmt.exe)
>      -+	if (USING_VCPKG)
>      ++	if (USE_VCPKG)
>       +		set(MSGFMT_EXE ${CMAKE_SOURCE_DIR}/compat/vcbuild/vcpkg/downloads/tools/msys2/msys64/usr/bin/msgfmt.exe)
>       +	endif()
>        	if(NOT EXISTS ${MSGFMT_EXE})
>      @@ contrib/buildsystems/CMakeLists.txt: file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-O
>        file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "NO_PYTHON='${NO_PYTHON}'\n")
>        file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "SUPPORTS_SIMPLE_IPC='${SUPPORTS_SIMPLE_IPC}'\n")
>       -if(WIN32)
>      -+if(USING_VCPKG)
>      ++if(USE_VCPKG)
>        	file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "PATH=\"$PATH:$TEST_DIRECTORY/../compat/vcbuild/vcpkg/installed/x64-windows/bin\"\n")
>        endif()
>
>  2:  c3bf266cf03a ! 2:  a3b5eef54188 cmake: create compile_commands.json by default
>      @@ Commit message
>           time of this writing, and no real negative consequences that I can find
>           with my search-skills.
>
>      -    NOTE: That the comppile_commands.json is currenntly produced only when
>      +    NOTE: That the compile_commands.json is currently produced only when
>           using the Ninja and Makefile generators.  See The CMake documentation[3]
>           for more info.
>
>      @@ Commit message
>           Signed-off-by: Matthew Rogers <mattr94@gmail.com>
>
>        ## contrib/buildsystems/CMakeLists.txt ##
>      -@@ contrib/buildsystems/CMakeLists.txt: else()
>      - 	set(USING_VCPKG FALSE)
>      +@@ contrib/buildsystems/CMakeLists.txt: if(NOT WIN32)
>      + 	set(USE_VCPKG OFF CACHE BOOL FORCE)
>        endif()
>
>      -+if (NOT DEFINED CMAKE_EXPORT_COMPILE_COMMANDS)
>      -+	SET(CMAKE_EXPORT_COMPILE_COMMANDS TRUE)
>      ++if(NOT DEFINED CMAKE_EXPORT_COMPILE_COMMANDS)
>      ++	set(CMAKE_EXPORT_COMPILE_COMMANDS TRUE)
>       +endif()
>       +
>      - if(USING_VCPKG)
>      + if(USE_VCPKG)
>        	set(VCPKG_DIR "${CMAKE_SOURCE_DIR}/compat/vcbuild/vcpkg")
>        	if(NOT EXISTS ${VCPKG_DIR})
>  3:  07763a9de723 ! 3:  2110c8ffa423 cmake: add warning for ignored MSGFMT_EXE
>      @@ Commit message
>           configured, as such add a check for NO_GETTEXT before attempting to set
>           it.
>
>      -    suggested-by: Johannes Schindelin <johannes.schindelin@gmx.de>
>      +    Suggested-by: Johannes Schindelin <johannes.schindelin@gmx.de>
>           Signed-off-by: Matthew Rogers <mattr94@gmail.com>
>
>        ## contrib/buildsystems/CMakeLists.txt ##
>      @@ contrib/buildsystems/CMakeLists.txt: if(WIN32 AND NOT MSVC)#not required for vis
>
>       -find_program(MSGFMT_EXE msgfmt)
>       -if(NOT MSGFMT_EXE)
>      --	if (USING_VCPKG)
>      +-	if (USE_VCPKG)
>       -		set(MSGFMT_EXE ${CMAKE_SOURCE_DIR}/compat/vcbuild/vcpkg/downloads/tools/msys2/msys64/usr/bin/msgfmt.exe)
>       -	endif()
>       -	if(NOT EXISTS ${MSGFMT_EXE})
>      @@ contrib/buildsystems/CMakeLists.txt: if(WIN32 AND NOT MSVC)#not required for vis
>       +else()
>       +	find_program(MSGFMT_EXE msgfmt)
>       +	if(NOT MSGFMT_EXE)
>      -+		if (USING_VCPKG)
>      ++		if(USE_VCPKG)
>       +			set(MSGFMT_EXE ${CMAKE_SOURCE_DIR}/compat/vcbuild/vcpkg/downloads/tools/msys2/msys64/usr/bin/msgfmt.exe)
>       +		endif()
>       +		if(NOT EXISTS ${MSGFMT_EXE})
>
> --
> gitgitgadget
>
Previous: Philip OakleyNext: Junio C Hamano
Message 30 of 31 in “Make CMake work out of the box”
  1. 0/3 Make CMake work out of the boxMatthew Rogers via GitGitGadget, Jun 4, 2021
  2. 1/3 cmake: add knob to disable vcpkgMatthew Rogers via GitGitGadget, Jun 4, 2021
  3. Eric SunshineJun 4, 2021
  4. Matt RogersJun 4, 2021
  5. Sibi SiddharthanJun 4, 2021
  6. Matt RogersJun 5, 2021
  7. Sibi SiddharthanJun 6, 2021
  8. 3/3 cmake: add warning for ignored MSGFMT_EXEMatthew Rogers via GitGitGadget, Jun 4, 2021
  9. Eric SunshineJun 4, 2021
  10. 2/3 cmake: create compile_commands.json by defaultMatthew Rogers via GitGitGadget, Jun 4, 2021
  11. Eric SunshineJun 4, 2021
  12. Sibi SiddharthanJun 4, 2021
  13. Matt RogersJun 5, 2021
  14. Sibi SiddharthanJun 6, 2021
  15. Bagas SanjayaJun 5, 2021
  16. Matt RogersJun 5, 2021
  17. Johannes SchindelinJun 10, 2021
  18. Philip OakleyJun 18, 2021
  19. Johannes SchindelinJun 18, 2021
  20. Philip OakleyJun 18, 2021
  21. Johannes SchindelinJun 22, 2021
  22. 0/3 Make CMake work out of the boxMatthew Rogers via GitGitGadget, Jun 6, 2021
  23. 1/3 cmake: add knob to disable vcpkgMatthew Rogers via GitGitGadget, Jun 6, 2021
  24. 2/3 cmake: create compile_commands.json by defaultMatthew Rogers via GitGitGadget, Jun 6, 2021
  25. 3/3 cmake: add warning for ignored MSGFMT_EXEMatthew Rogers via GitGitGadget, Jun 6, 2021
  26. Junio C HamanoJun 7, 2021
  27. Johannes SchindelinJun 10, 2021
  28. Philip OakleyJun 18, 2021
  29. Philip OakleyJun 18, 2021
  30. Johannes SchindelinJun 10, 2021
  31. Junio C HamanoJun 11, 2021

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.