Building curl and openssl
This commit is contained in:
66
3rdParty/curl/ext/CMakeLists.txt
vendored
Normal file
66
3rdParty/curl/ext/CMakeLists.txt
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
project(build_curl)
|
||||
include(ExternalProject)
|
||||
include(FetchContent)
|
||||
|
||||
set(OPENSSL_SOURCE_DIR ${CMAKE_BINARY_DIR}/deps_curl/openssl-src)
|
||||
set(OPENSSL_INSTALL_DIR ${CMAKE_BINARY_DIR}/INSTALL)
|
||||
set(OPENSSL_INCLUDE_DIR ${OPENSSL_INSTALL_DIR}/include)
|
||||
set(OPENSSL_TAG OpenSSL_1_1_1n)
|
||||
|
||||
find_program(PERL_EXECUTABLE perl)
|
||||
if (NOT PERL_EXECUTABLE)
|
||||
message(FATAL_ERROR "Perl not found. Please install Perl to configure OpenSSL.")
|
||||
endif()
|
||||
|
||||
if (MSVC)
|
||||
set(OPENSSL_PERL_CONFIGURE_COMMAND ${OPENSSL_SOURCE_DIR}/src/openssl/Configure VC-WIN64A)
|
||||
set(OPENSSL_MAKE_COMMAND nmake)
|
||||
else ()
|
||||
set(OPENSSL_PERL_CONFIGURE_COMMAND ${OPENSSL_SOURCE_DIR}/src/openssl/config)
|
||||
set(OPENSSL_MAKE_COMMAND make)
|
||||
endif ()
|
||||
|
||||
ExternalProject_Add(
|
||||
OpenSSL
|
||||
PREFIX ${OPENSSL_SOURCE_DIR}
|
||||
GIT_REPOSITORY https://github.com/openssl/openssl.git
|
||||
GIT_TAG ${OPENSSL_TAG}
|
||||
GIT_SHALLOW TRUE
|
||||
CONFIGURE_COMMAND ${PERL_EXECUTABLE} ${OPENSSL_PERL_CONFIGURE_COMMAND} --prefix=${OPENSSL_INSTALL_DIR} --openssldir=${OPENSSL_INSTALL_DIR}
|
||||
BUILD_COMMAND ${OPENSSL_MAKE_COMMAND}
|
||||
INSTALL_COMMAND ${OPENSSL_MAKE_COMMAND} install
|
||||
INSTALL_DIR ${OPENSSL_INSTALL_DIR}
|
||||
USES_TERMINAL_DOWNLOAD TRUE
|
||||
USES_TERMINAL_CONFIGURE TRUE
|
||||
USES_TERMINAL_BUILD TRUE
|
||||
USES_TERMINAL_INSTALL TRUE
|
||||
)
|
||||
|
||||
ExternalProject_Get_Property(OpenSSL INSTALL_DIR)
|
||||
set(OPENSSL_ROOT_DIR ${INSTALL_DIR})
|
||||
|
||||
ExternalProject_Add(
|
||||
curl
|
||||
DEPENDS OpenSSL
|
||||
GIT_REPOSITORY https://github.com/curl/curl.git
|
||||
GIT_TAG curl-8_8_0
|
||||
GIT_SHALLOW TRUE
|
||||
SOURCE_DIR ${CMAKE_BINARY_DIR}/curl
|
||||
BINARY_DIR ${CMAKE_BINARY_DIR}/curl-build
|
||||
CMAKE_GENERATOR ${CMAKE_GENERATOR}
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=${TOOLCHAIN_FILE}
|
||||
-DCMAKE_BUILD_TYPE:STRING=Release
|
||||
-DCURL_USE_OPENSSL:BOOL=ON
|
||||
-DOPENSSL_ROOT_DIR=${OPENSSL_ROOT_DIR}
|
||||
-DOPENSSL_INCLUDE_DIR=${OPENSSL_INCLUDE_DIR}
|
||||
-DCMAKE_PREFIX_PATH=${CMAKE_BINARY_DIR}/INSTALL
|
||||
-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/INSTALL
|
||||
BUILD_COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR}/curl-build --config Release
|
||||
INSTALL_COMMAND ${CMAKE_COMMAND} --install ${CMAKE_BINARY_DIR}/curl-build --config Release
|
||||
USES_TERMINAL_DOWNLOAD TRUE
|
||||
USES_TERMINAL_CONFIGURE TRUE
|
||||
USES_TERMINAL_BUILD TRUE
|
||||
USES_TERMINAL_INSTALL TRUE
|
||||
)
|
||||
Reference in New Issue
Block a user