meson: introduce libgit_curl dependency

We've got a set of common source files that we use for those executables
that link against libcurl. The setup is somewhat repetitive though.
Simplify it by declaring a `libgit_curl` dependency that bundles all of
it together.

Note that we don't include curl itself as a dependency. This is because
we already pull it in transitively via the libgit dependency, which is
unfortunate because libgit itself shouldn't actually link against curl
in the first place. This will get fixed in the next commit.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Patrick Steinhardt
2025-02-26 09:22:15 +01:00
committed by Junio C Hamano
parent ebb35369f1
commit dfc88bd647

View File

@ -1661,30 +1661,32 @@ bin_wrappers += executable('scalar',
)
if get_option('curl').enabled()
curl_sources = [
'http.c',
'http-walker.c',
]
git_remote_http = executable('git-remote-http',
sources: curl_sources + 'remote-curl.c',
libgit_curl = declare_dependency(
sources: [
'http.c',
'http-walker.c',
],
dependencies: [libgit_commonmain],
)
test_dependencies += executable('git-remote-http',
sources: 'remote-curl.c',
dependencies: [libgit_curl],
install: true,
install_dir: get_option('libexecdir') / 'git-core',
)
test_dependencies += git_remote_http
test_dependencies += executable('git-http-fetch',
sources: curl_sources + 'http-fetch.c',
dependencies: [libgit_commonmain],
sources: 'http-fetch.c',
dependencies: [libgit_curl],
install: true,
install_dir: get_option('libexecdir') / 'git-core',
)
if expat.found()
test_dependencies += executable('git-http-push',
sources: curl_sources + 'http-push.c',
dependencies: [libgit_commonmain],
sources: 'http-push.c',
dependencies: [libgit_curl],
install: true,
install_dir: get_option('libexecdir') / 'git-core',
)
@ -1692,8 +1694,8 @@ if get_option('curl').enabled()
foreach alias : [ 'git-remote-https', 'git-remote-ftp', 'git-remote-ftps' ]
test_dependencies += executable(alias,
objects: git_remote_http.extract_all_objects(recursive: false),
dependencies: [libgit_commonmain],
sources: 'remote-curl.c',
dependencies: [libgit_curl],
)
install_symlink(alias + executable_suffix,
@ -1703,14 +1705,9 @@ if get_option('curl').enabled()
endforeach
endif
imap_send_sources = ['imap-send.c']
if use_curl_for_imap_send
imap_send_sources += curl_sources
endif
test_dependencies += executable('git-imap-send',
sources: imap_send_sources,
dependencies: [libgit_commonmain],
sources: 'imap-send.c',
dependencies: [ use_curl_for_imap_send ? libgit_curl : libgit_commonmain ],
install: true,
install_dir: get_option('libexecdir') / 'git-core',
)