Force building curl & libressl

This commit is contained in:
Vladyslav Baranovskyi
2024-07-17 17:43:32 +03:00
parent 3d81d85dd8
commit 11dea7a86e
2 changed files with 45 additions and 29 deletions

View File

@@ -1,7 +1,8 @@
include(../../cmake/Utils.cmake)
set(CURL_DEPS_INSTALL ${CMAKE_BINARY_DIR}/deps_curl)
find_package(CURL QUIET)
# find_package(CURL QUIET)
set(CURL_FOUND 0)
if (NOT ${CURL_FOUND})
file(MAKE_DIRECTORY ${CURL_DEPS_INSTALL})
execute_process(
@@ -23,34 +24,10 @@ else ()
endif ()
function(LinkCurl TARGET)
find_package(CURL QUIET)
#find_package(CURL QUIET)
set(CURL_FOUND 0)
if (NOT ${CURL_FOUND})
if (NOT DEFINED CURL_MIRROR_LINK)
set(CURL_MIRROR_LINK https://curl.se/download/curl-7.78.0.tar.gz)
endif ()
if (NOT DEFINED LIBRESSL_MIRROR_LINK)
set(LIBRESSL_MIRROR_LINK https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-3.4.2.tar.gz)
endif ()
FetchContent_Declare(
libressl
URL ${LIBRESSL_MIRROR_LINK}
)
FetchContent_MakeAvailable(libressl)
FetchContent_Declare(
curl
URL ${CURL_MIRROR_LINK}
)
FetchContent_GetProperties(curl)
if(NOT curl_POPULATED)
set(CURL_USE_LIBRESSL ON CACHE BOOL "Use LibreSSL instead of OpenSSL" FORCE)
FetchContent_Populate(curl)
add_subdirectory(${curl_SOURCE_DIR} ${curl_BINARY_DIR})
set(OPENSSL_ROOT_DIR ${libressl_SOURCE_DIR})
set(OPENSSL_LIBRARIES ${libressl_BINARY_DIR})
endif()
target_link_libraries(${TARGET} PRIVATE curl)
else ()
target_include_directories(${TARGET} PRIVATE ${CURL_INCLUDE_DIR})
target_link_libraries(${TARGET} PRIVATE CURL::libcurl)

View File

@@ -1,2 +1,41 @@
cmake_minimum_required(VERSION 3.16)
project(build_curl)
project(build_curl)
include(FetchContent)
if (NOT DEFINED CURL_MIRROR_LINK)
set(CURL_MIRROR_LINK https://curl.se/download/curl-8.8.0.tar.gz)
endif ()
if (NOT DEFINED LIBRESSL_MIRROR_LINK)
set(LIBRESSL_MIRROR_LINK https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-3.9.2.tar.gz)
endif ()
set(LIBRESSL_TESTS OFF CACHE BOOL "" FORCE)
FetchContent_Declare(
libressl
URL ${LIBRESSL_MIRROR_LINK}
)
FetchContent_MakeAvailable(libressl)
# add_library(OpenSSL::SSL STATIC IMPORTED)
# set_target_properties(OpenSSL::SSL PROPERTIES
# IMPORTED_LOCATION "${libressl_BINARY_DIR}/crypto/libcrypto.a"
# INTERFACE_INCLUDE_DIRECTORIES "${libressl_SOURCE_DIR}/include"
# )
# add_library(OpenSSL::Crypto STATIC IMPORTED)
# set_target_properties(OpenSSL::Crypto PROPERTIES
# IMPORTED_LOCATION "${libressl_BINARY_DIR}/ssl/libssl.a"
# INTERFACE_INCLUDE_DIRECTORIES "${libressl_SOURCE_DIR}/include"
# )
set(CURL_USE_LIBRESSL ON CACHE BOOL "Use LibreSSL instead of OpenSSL" FORCE)
set(OPENSSL_ROOT_DIR ${libressl_SOURCE_DIR} CACHE PATH "Path to LibreSSL root directory" FORCE)
set(OPENSSL_CRYPTO_LIBRARY ${libressl_BINARY_DIR}/crypto/libcrypto.a CACHE FILEPATH "Path to LibreSSL crypto library" FORCE)
set(OPENSSL_SSL_LIBRARY ${libressl_BINARY_DIR}/ssl/libssl.a CACHE FILEPATH "Path to LibreSSL SSL library" FORCE)
set(OPENSSL_INCLUDE_DIR ${libressl_SOURCE_DIR}/include CACHE PATH "Path to LibreSSL include directory" FORCE)
FetchContent_Declare(
curl
URL ${CURL_MIRROR_LINK}
)
FetchContent_MakeAvailable(curl)