mirror of
https://github.com/etlegacy/etlegacy-libs.git
synced 2025-02-23 03:40:56 +00:00
cmake: use cmake to build curl on macos
This commit is contained in:
parent
d6431d4a3d
commit
bb6f0b986a
1 changed files with 53 additions and 25 deletions
|
@ -291,8 +291,19 @@ endif()
|
|||
if(BUNDLED_CURL AND (BUILD_CLIENT OR BUILD_SERVER))
|
||||
add_library(bundled_curl_int INTERFACE)
|
||||
|
||||
set(CURL_CMAKE_ARGS
|
||||
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
|
||||
-DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG} -DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}
|
||||
-DBUILD_CURL_EXE=OFF -DBUILD_SHARED_LIBS=OFF -DENABLE_ARES=OFF -DENABLE_THREADED_RESOLVER=ON -DENABLE_DEBUG=OFF
|
||||
-DENABLE_CURLDEBUG=OFF -DBUILD_TESTING=OFF -DENABLE_IPV6=ON -DENABLE_MANUAL=OFF -DCURL_USE_LIBSSH=OFF -DCURL_USE_LIBSSH2=OFF
|
||||
-DUSE_NGHTTP2=OFF -DCURL_WINDOWS_SSPI=OFF -DCURL_ZLIB=AUTO -DCMAKE_USE_GSSAPI=OFF
|
||||
-DCURL_DISABLE_LDAP=ON -DCURL_DISABLE_LDAPS=ON -DCURL_DISABLE_TELNET=ON -DCURL_DISABLE_DICT=ON
|
||||
-DCURL_DISABLE_FILE=ON -DCURL_DISABLE_TFTP=ON -DCURL_DISABLE_RTSP=ON -DCURL_DISABLE_POP3=ON
|
||||
-DCURL_DISABLE_IMAP=ON -DCURL_DISABLE_SMTP=ON -DCURL_DISABLE_GOPHER=ON -DENABLE_UNIX_SOCKETS=ON
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBS_BINARY_DIR}/curl)
|
||||
set(binary_dir "${LIBS_BINARY_DIR}/curl")
|
||||
|
||||
if (WIN32)
|
||||
set(binary_dir "${LIBS_BINARY_DIR}/curl")
|
||||
|
||||
if(VSTUDIO)
|
||||
set(CURL_BUNDLED_LIBRARIES optimized "${binary_dir}/lib/Release/libcurl${CMAKE_STATIC_LIBRARY_SUFFIX}" debug "${binary_dir}/lib/Debug/libcurl-d${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
|
@ -302,17 +313,6 @@ if(BUNDLED_CURL AND (BUILD_CLIENT OR BUILD_SERVER))
|
|||
set(CURL_BUNDLED_LIBRARIES "${binary_dir}/libcurl${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
endif()
|
||||
|
||||
set(CURL_CMAKE_ARGS
|
||||
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
|
||||
-DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG} -DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}
|
||||
-DBUILD_CURL_EXE=OFF -DBUILD_SHARED_LIBS=OFF -DENABLE_ARES=OFF -DENABLE_THREADED_RESOLVER=ON -DENABLE_DEBUG=OFF
|
||||
-DENABLE_CURLDEBUG=OFF -DBUILD_TESTING=OFF -DENABLE_IPV6=ON -DENABLE_MANUAL=OFF -DCURL_USE_LIBSSH2=OFF
|
||||
-DUSE_NGHTTP2=OFF -DCURL_WINDOWS_SSPI=OFF -DCURL_ZLIB=AUTO -DCMAKE_USE_GSSAPI=OFF
|
||||
-DCURL_DISABLE_LDAP=ON -DCURL_DISABLE_LDAPS=ON -DCURL_DISABLE_TELNET=ON -DCURL_DISABLE_DICT=ON
|
||||
-DCURL_DISABLE_FILE=ON -DCURL_DISABLE_TFTP=ON -DCURL_DISABLE_RTSP=ON -DCURL_DISABLE_POP3=ON
|
||||
-DCURL_DISABLE_IMAP=ON -DCURL_DISABLE_SMTP=ON -DCURL_DISABLE_GOPHER=ON -DENABLE_UNIX_SOCKETS=ON
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBS_BINARY_DIR}/curl)
|
||||
|
||||
if(MSVC)
|
||||
list(APPEND CURL_CMAKE_ARGS -DCURL_STATIC_CRT=ON)
|
||||
endif()
|
||||
|
@ -361,18 +361,50 @@ if(BUNDLED_CURL AND (BUILD_CLIENT OR BUILD_SERVER))
|
|||
target_link_libraries(bundled_curl_int INTERFACE bcrypt)
|
||||
endif()
|
||||
target_include_directories(bundled_curl_int INTERFACE "${LIBS_BINARY_DIR}/curl/include")
|
||||
elseif (UNIX)
|
||||
elseif (APPLE)
|
||||
|
||||
if(APPLE)
|
||||
if(CROSS_COMPILE32)
|
||||
set(CURL_BUILD_APPEND CFLAGS=-mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}\ -O3\ -m32\ -DLUA_USE_MACOSX LDFLAGS=-mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}\ -m32)
|
||||
else()
|
||||
set(CURL_BUILD_APPEND CFLAGS=-mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}\ -arch=x86_64\ -pipe\ -Os\ -gdwarf-2\ -fembed-bitcode)
|
||||
endif()
|
||||
list(APPEND CURL_CMAKE_ARGS -DCMAKE_OSX_DEPLOYMENT_TARGET="${CMAKE_OSX_DEPLOYMENT_TARGET}" -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES_})
|
||||
if(BUNDLED_WOLFSSL)
|
||||
include(CheckTypeSize)
|
||||
check_type_size("long long" SIZEOF_LONG_LONG)
|
||||
|
||||
list(APPEND CURL_CMAKE_ARGS
|
||||
-DCMAKE_C_FLAGS=-DSIZEOF_LONG_LONG=${SIZEOF_LONG_LONG}
|
||||
-DCURL_USE_OPENSSL=OFF -DCURL_DISABLE_CRYPTO_AUTH=ON
|
||||
-DCURL_USE_WOLFSSL=ON
|
||||
-DCMAKE_LIBRARY_PATH=${LIBS_BINARY_DIR}/wolfssl/lib
|
||||
-DCMAKE_INCLUDE_PATH=${LIBS_BINARY_DIR}/wolfssl/include
|
||||
)
|
||||
elseif(BUNDLED_OPENSSL)
|
||||
list(APPEND CURL_CMAKE_ARGS -DOPENSSL_ROOT_DIR=${OPENSSL_PREFIX} -DCURL_USE_OPENSSL=ON)
|
||||
else()
|
||||
set(CURL_BUILD_APPEND "")
|
||||
list(APPEND CURL_CMAKE_ARGS -DCURL_USE_OPENSSL=OFF -DCURL_USE_SECTRANSP=ON)
|
||||
endif()
|
||||
|
||||
set(CURL_BUNDLED_LIBRARIES optimized "${binary_dir}/lib/libcurl${CMAKE_STATIC_LIBRARY_SUFFIX}" debug "${binary_dir}/lib/libcurl-d${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
etl_find_lib_path(CURL_BUNDLED_LIBRARIES _CURL_OUTPUT)
|
||||
|
||||
# -DHTTP_ONLY=ON
|
||||
ExternalProject_Add(bundled_curl
|
||||
DEPENDS bundled_wolfssl bundled_openssl
|
||||
DOWNLOAD_DIR ${LIBS_DOWNLOAD_DIR}
|
||||
URL https://github.com/curl/curl/archive/curl-7_87_0.tar.gz
|
||||
URL_HASH MD5=ade16c73e4a4d42bc526e852757660f4
|
||||
SOURCE_DIR "${LIBS_DOWNLOAD_SRC_DIR}/curl"
|
||||
PREFIX ${LIBS_BINARY_DIR}/curl
|
||||
BINARY_DIR ${binary_dir}
|
||||
BUILD_BYPRODUCTS ${_CURL_OUTPUT}
|
||||
CMAKE_ARGS ${CURL_CMAKE_ARGS}
|
||||
)
|
||||
|
||||
set_target_properties(bundled_curl PROPERTIES FOLDER ${BUNDLED_TARGETS_FOLDER})
|
||||
|
||||
add_dependencies(bundled_curl_int bundled_curl)
|
||||
target_link_libraries(bundled_curl_int INTERFACE ${CURL_BUNDLED_LIBRARIES})
|
||||
target_include_directories(bundled_curl_int INTERFACE "${LIBS_BINARY_DIR}/curl/include")
|
||||
elseif (UNIX)
|
||||
|
||||
# TODO: swap out to CMake at some point
|
||||
set(CURL_CONFIGURE autoreconf -iv && ./configure --prefix=${LIBS_BINARY_DIR}/curl
|
||||
--enable-shared=no --enable-static=yes
|
||||
--enable-http --enable-ftp --disable-file
|
||||
|
@ -388,11 +420,7 @@ if(BUNDLED_CURL AND (BUILD_CLIENT OR BUILD_SERVER))
|
|||
--disable-manual
|
||||
)
|
||||
|
||||
if(APPLE)
|
||||
list(APPEND CURL_CONFIGURE --host=x86_64-apple-darwin ${CURL_BUILD_APPEND})
|
||||
else()
|
||||
list(APPEND CURL_CONFIGURE --enable-unix-sockets --enable-libgcc)
|
||||
endif()
|
||||
list(APPEND CURL_CONFIGURE --enable-unix-sockets --enable-libgcc)
|
||||
|
||||
if(FEATURE_SSL)
|
||||
if(BUNDLED_WOLFSSL)
|
||||
|
|
Loading…
Reference in a new issue