Skip to content

Commit

Permalink
Revert "Use static libcurl build with conan (#4445)"
Browse files Browse the repository at this point in the history
This reverts commit ea06356.
  • Loading branch information
dtretyakov committed Dec 19, 2024
1 parent f996e9d commit 0a9f16f
Show file tree
Hide file tree
Showing 49 changed files with 5,710 additions and 373 deletions.
40 changes: 30 additions & 10 deletions ktor-client/ktor-client-curl/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,20 +1,40 @@
import org.jetbrains.kotlin.gradle.plugin.mpp.*

apply<test.server.TestServerPlugin>()

val paths = listOf(
"/opt/homebrew/opt/curl/include/",
"/opt/local/include/",
"/usr/local/include/",
"/usr/include/",
"/usr/local/opt/curl/include/",
"/usr/include/x86_64-linux-gnu/",
"/usr/local/Cellar/curl/7.62.0/include/",
"/usr/local/Cellar/curl/7.63.0/include/",
"/usr/local/Cellar/curl/7.65.3/include/",
"/usr/local/Cellar/curl/7.66.0/include/",
"/usr/local/Cellar/curl/7.80.0/include/",
"/usr/local/Cellar/curl/7.80.0_1/include/",
"/usr/local/Cellar/curl/7.81.0/include/",
"desktop/interop/mingwX64/include/",
)

plugins {
id("kotlinx-serialization")
}

kotlin {
targets.withType<KotlinNativeTarget>().configureEach {
compilations.named("main") {
cinterops.create("libcurl") {
definitionFile = file("desktop/interop/libcurl.def")
includeDirs(file("desktop/interop/include"))
extraOpts("-libraryPath", file("desktop/interop/lib/${target.name}"))
}
}
createCInterop("libcurl", listOf("macosX64", "linuxX64", "mingwX64")) {
definitionFile = File(projectDir, "desktop/interop/libcurl.def")
includeDirs.headerFilterOnly(paths)
}

createCInterop("libcurl", listOf("macosArm64")) {
definitionFile = File(projectDir, "desktop/interop/libcurl_arm64.def")
includeDirs.headerFilterOnly(paths)
}

createCInterop("libcurl", listOf("linuxArm64")) {
definitionFile = File(projectDir, "desktop/interop/libcurl_linux_arm64.def")
includeDirs.headerFilterOnly(listOf("desktop/interop/linuxArm64/include/"))
}

sourceSets {
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
59 changes: 50 additions & 9 deletions ktor-client/ktor-client-curl/desktop/interop/libcurl.def
Original file line number Diff line number Diff line change
@@ -1,15 +1,56 @@
# curl version = 8.10.1
package = libcurl
headers = curl/curl.h
headerFilter = curl/*
compilerOpts.mingw_x64 = -DCURL_STATICLIB

# there is no libz by default installed on windows, so we need to include it statically
staticLibraries.mingw = libcurl.a libssl.a libcrypto.a libz.a
compilerOpts.mingw = -DCURL_STATICLIB
linkerOpts.osx = -lcurl \
-L/usr/lib64 \
-L/usr/lib/x86_64-linux-gnu \
-L/opt/local/lib \
-L/usr/local/opt/curl/lib \
-L/opt/homebrew/opt/curl/lib

# there is no need to use openssl on macos, as curl is built using out-of-the-box security framework
staticLibraries.osx = libcurl.a
linkerOpts.osx = -framework Security -framework SystemConfiguration
compilerOpts.osx = -I/opt/local/include/ \
-I/usr/bin/ \
-I/usr/local/include/ \
-I/usr/include/ \
-I/usr/local/Cellar/curl/7.83.1/include/ \
-I/usr/local/Cellar/curl/7.81.0/include/ \
-I/usr/local/Cellar/curl/7.80.0_1/include/ \
-I/usr/local/Cellar/curl/7.80.0/include/ \
-I/usr/local/Cellar/curl/7.62.0/include/ \
-I/usr/local/Cellar/curl/7.63.0/include/ \
-I/usr/local/Cellar/curl/7.65.3/include/ \
-I/usr/local/Cellar/curl/7.66.0/include/ \
-I/opt/homebrew/opt/curl/include/

staticLibraries.linux = libcurl.a libssl.a libcrypto.a
linkerOpts.linux = -lz
linkerOpts.linux = -lcurl \
-L/usr/lib64 \
-L/usr/lib/x86_64-linux-gnu \
-L/opt/local/lib \
-L/usr/local/opt/curl/lib \
-L/opt/homebrew/opt/curl/lib

compilerOpts.linux = -I/usr/include/ \
-I/usr/include/x86_64-linux-gnu/ \
-I/opt/homebrew/opt/curl/include/

staticLibraries.mingw_x64 = \
libcurl.a \
libssh2.a \
libidn2.a \
libpsl.a \
libbrotlidec.a \
libbrotlicommon.a \
libunistring.a \
libzstd.a \

libraryPaths = desktop/interop/mingwX64/lib

linkerOpts.mingw_x64 = -Wl,-Bstatic -lstdc++ -static \
-lbcrypt \
-lcrypt32 \
-liconv \
-lwldap32 \
-lws2_32 \
-lz
24 changes: 24 additions & 0 deletions ktor-client/ktor-client-curl/desktop/interop/libcurl_arm64.def
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package = libcurl
headers = curl/curl.h
headerFilter = curl/*

linkerOpts.osx = -lcurl \
-L/usr/lib64 \
-L/usr/lib/x86_64-linux-gnu \
-L/opt/local/lib \
-L/usr/local/lib \
-L/opt/homebrew/opt/curl/lib \
-L/usr/local/opt/curl/lib

compilerOpts.osx = -I/opt/homebrew/opt/curl/include/ \
-I/usr/bin/ \
-I/usr/local/include/ \
-I/usr/include/ \
-I/usr/local/Cellar/curl/7.83.1/include/ \
-I/usr/local/Cellar/curl/7.81.0/include/ \
-I/usr/local/Cellar/curl/7.80.0_1/include/ \
-I/usr/local/Cellar/curl/7.80.0/include/ \
-I/usr/local/Cellar/curl/7.62.0/include/ \
-I/usr/local/Cellar/curl/7.63.0/include/ \
-I/usr/local/Cellar/curl/7.65.3/include/ \
-I/usr/local/Cellar/curl/7.66.0/include/
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package = libcurl
headers = curl/curl.h
headerFilter = curl/*

staticLibraries = libcurl.a

libraryPaths = desktop/interop/linuxArm64/lib
Loading

0 comments on commit 0a9f16f

Please sign in to comment.