1
0
mirror of https://github.com/minecraft-linux/mcpelauncher-manifest synced 2025-05-18 22:36:39 +00:00
Files
mcpelauncher/ext/curl.cmake
2023-05-07 11:43:25 +02:00

51 lines
2.4 KiB
CMake

include(ExternalProject)
if (NOT CURL_EXT_EXTRA_OPTIONS)
set(CURL_EXT_EXTRA_OPTIONS )
endif()
if (APPLE)
list(APPEND CURL_EXT_EXTRA_OPTIONS "-DCURL_USE_SECTRANSP=ON")
else()
find_package(OpenSSL REQUIRED COMPONENTS SSL Crypto)
if (DEFINED OPENSSL_ROOT_DIR)
list(APPEND CURL_EXT_EXTRA_OPTIONS "-DOPENSSL_ROOT_DIR=${OPENSSL_ROOT_DIR}")
endif()
endif()
if (DEFINED CMAKE_TOOLCHAIN_FILE)
list(APPEND CURL_EXT_EXTRA_OPTIONS "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}")
endif()
if(OWN_CURL_SOURCE_DIR)
set(CURL_EXT_PROPERTIES SOURCE_DIR ${OWN_CURL_SOURCE_DIR})
else()
set(CURL_EXT_PROPERTIES URL "http://curl.haxx.se/download/curl-8.0.1.tar.gz")
endif()
# -DCMAKE_INSTALL_LIBDIR=lib is required to find libcurl.a on fedora, default is lib64
ExternalProject_Add(
curl_ext
${CURL_EXT_PROPERTIES}
INSTALL_DIR ${CMAKE_BINARY_DIR}/ext/curl
BUILD_BYPRODUCTS "${CMAKE_BINARY_DIR}/ext/curl/lib/libcurl.a"
CMAKE_ARGS "-DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/ext/curl" "-DBUILD_CURL_EXE=OFF" "-DBUILD_SHARED_LIBS=OFF" "-DCURL_STATICLIB=ON" "-DCURL_DISABLE_LDAP=ON" "-DCURL_USE_LIBSSH2=OFF" "-DCURL_USE_OPENLDAP=OFF" "-DUSE_LIBIDN2=OFF" "-DCURL_USE_LIBPSL=OFF" "-DENABLE_WEBSOCKETS=ON" "-DCMAKE_INSTALL_LIBDIR=lib" "-DCMAKE_ASM_COMPILER=${CMAKE_ASM_COMPILER}" "-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}" "-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}" "-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}" "-DCMAKE_LINK_FLAGS=${CMAKE_LINK_FLAGS}" "-DCMAKE_LIBRARY_ARCHITECTURE=${CMAKE_LIBRARY_ARCHITECTURE}" ${CURL_EXT_EXTRA_OPTIONS}
)
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/ext/curl/include/)
add_library(curl STATIC IMPORTED)
add_dependencies(curl curl_ext)
set_property(TARGET curl PROPERTY IMPORTED_LOCATION ${CMAKE_BINARY_DIR}/ext/curl/lib/libcurl.a)
set_property(TARGET curl PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_BINARY_DIR}/ext/curl/include/)
if (APPLE)
set_property(TARGET curl PROPERTY INTERFACE_LINK_LIBRARIES "-framework SystemConfiguration -framework Security -framework CoreFoundation")
else()
set_property(TARGET curl PROPERTY INTERFACE_LINK_LIBRARIES OpenSSL::SSL OpenSSL::Crypto)
endif()
set(CURL_FOUND TRUE)
set(CURL_LIBRARIES curl)
set(CURL_INCLUDE_DIRS ${CMAKE_BINARY_DIR}/ext/curl/include/)
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/ext/cmake_find_stubs)
file(WRITE ${CMAKE_BINARY_DIR}/ext/cmake_find_stubs/FindCURL.cmake "")
set(CMAKE_MODULE_PATH "${CMAKE_BINARY_DIR}/ext/cmake_find_stubs" ${CMAKE_MODULE_PATH})