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

[PATCH v3 06/13] meson: stop linking libcurl into all executables

From
Patrick Steinhardt <ps@pks.im>
Date
Feb 26, 2025, 08:22 UTC
Message-ID
<20250226-b4-pks-meson-improvements-v3-6-60c77cf673ae@pks.im>
In-Reply-To
<20250226-b4-pks-meson-improvements-v3-0-60c77cf673ae@pks.im>

We set up libcurl via the `libgit_dependencies` variable, which gets propagated into every user of the `libgit` dependency. This is not necessary though, as most of our executables aren't even supposed to link against libcurl.

Fix this by only propagating include directories as a libgit dependency and propagating the full curl dependency via `libgit_curl`.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
---
 meson.build | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/meson.build b/meson.build
index e58462ac4fe..39d15ee6cb8 100644
--- a/meson.build
+++ b/meson.build
@@ -927,7 +927,9 @@ if curl.found()
     use_curl_for_imap_send = true
   endif
 
-  libgit_dependencies += curl
+  # Most executables don't have to link against libcurl, but we still need its
+  # include directories so that we can resolve LIBCURL_VERSION in "help.c".
+  libgit_dependencies += curl.partial_dependency(includes: true)
   libgit_c_args += '-DCURL_DISABLE_TYPECHECK'
   build_options_config.set('NO_CURL', '')
 else
@@ -1666,7 +1668,7 @@ if get_option('curl').enabled()
       'http.c',
       'http-walker.c',
     ],
-    dependencies: [libgit_commonmain],
+    dependencies: [libgit_commonmain, curl],
   )
 
   test_dependencies += executable('git-remote-http',
-- 
2.48.1.741.g8a9f3a5cdc.dirty
Previous: Patrick SteinhardtNext: Patrick Steinhardt
Message 7 of 14 in “meson: cleanups, improvements, smallish fixes”
  1. 00/13 meson: cleanups, improvements, smallish fixesPatrick Steinhardt, Feb 26, 2025
  2. 01/13 meson: fix exec path with enabled runtime prefixPatrick Steinhardt, Feb 26, 2025
  3. 03/13 meson: inline the static 'git' libraryPatrick Steinhardt, Feb 26, 2025
  4. 02/13 meson: fix OpenSSL fallback when not explicitly requiredPatrick Steinhardt, Feb 26, 2025
  5. 04/13 meson: simplify use of the common-main libraryPatrick Steinhardt, Feb 26, 2025
  6. 05/13 meson: introduce `libgit_curl` dependencyPatrick Steinhardt, Feb 26, 2025
  7. 06/13 meson: stop linking libcurl into all executablesPatrick Steinhardt, Feb 26, 2025
  8. 07/13 meson: drop separate version libraryPatrick Steinhardt, Feb 26, 2025
  9. 08/13 meson: improve PATH handlingPatrick Steinhardt, Feb 26, 2025
  10. 09/13 meson: improve handling of `sane_tool_path` optionPatrick Steinhardt, Feb 26, 2025
  11. 10/13 meson: prevent finding sed(1) in a loopPatrick Steinhardt, Feb 26, 2025
  12. 12/13 meson: consistently use custom program paths to resolve programsPatrick Steinhardt, Feb 26, 2025
  13. 11/13 meson: fix overwritten `git` variablePatrick Steinhardt, Feb 26, 2025
  14. 13/13 gitlab-ci: restrict maximum number of link jobs on WindowsPatrick Steinhardt, Feb 26, 2025

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.