Fixed build on windows, passing git repos for openssl & curl, building only curl on apple
This commit is contained in:
8
3rdParty/curl/CMakeLists.txt
vendored
8
3rdParty/curl/CMakeLists.txt
vendored
@@ -2,10 +2,10 @@ include(../../cmake/Utils.cmake)
|
|||||||
|
|
||||||
set(CURL_DEPS_INSTALL ${CMAKE_BINARY_DIR}/deps_curl)
|
set(CURL_DEPS_INSTALL ${CMAKE_BINARY_DIR}/deps_curl)
|
||||||
find_package(CURL QUIET)
|
find_package(CURL QUIET)
|
||||||
if (NOT DEFINED CURL_FOUND)
|
if (NOT ${CURL_FOUND})
|
||||||
file(MAKE_DIRECTORY ${CURL_DEPS_INSTALL})
|
file(MAKE_DIRECTORY ${CURL_DEPS_INSTALL})
|
||||||
execute_process(
|
execute_process(
|
||||||
COMMAND ${CMAKE_COMMAND} -G ${CMAKE_GENERATOR} -DTOOLCHAIN_FILE=${TOOLCHAIN_FILE} ${CMAKE_CURRENT_SOURCE_DIR}/ext
|
COMMAND ${CMAKE_COMMAND} -G ${CMAKE_GENERATOR} -DTOOLCHAIN_FILE=${TOOLCHAIN_FILE} ${CMAKE_CURRENT_SOURCE_DIR}/ext -DCURL_REPO=${CURL_REPO} -DOPENSSL_REPO=${OPENSSL_REPO}
|
||||||
WORKING_DIRECTORY ${CURL_DEPS_INSTALL}
|
WORKING_DIRECTORY ${CURL_DEPS_INSTALL}
|
||||||
)
|
)
|
||||||
execute_process(
|
execute_process(
|
||||||
@@ -24,12 +24,14 @@ endif ()
|
|||||||
|
|
||||||
function(LinkCurl TARGET BINARY_DIR)
|
function(LinkCurl TARGET BINARY_DIR)
|
||||||
find_package(CURL QUIET)
|
find_package(CURL QUIET)
|
||||||
if (NOT DEFINED CURL_FOUND)
|
if (NOT ${CURL_FOUND})
|
||||||
set(CURL_DEPS_INSTALL ${BINARY_DIR}/deps_curl)
|
set(CURL_DEPS_INSTALL ${BINARY_DIR}/deps_curl)
|
||||||
target_include_directories(${TARGET} PRIVATE ${CURL_DEPS_INSTALL}/INSTALL/include)
|
target_include_directories(${TARGET} PRIVATE ${CURL_DEPS_INSTALL}/INSTALL/include)
|
||||||
target_link_directories(${TARGET} PRIVATE ${CURL_DEPS_INSTALL}/INSTALL/lib)
|
target_link_directories(${TARGET} PRIVATE ${CURL_DEPS_INSTALL}/INSTALL/lib)
|
||||||
if (MSVC)
|
if (MSVC)
|
||||||
target_link_libraries(${TARGET} PRIVATE libcrypto.lib libssl.lib libcurl_imp.lib)
|
target_link_libraries(${TARGET} PRIVATE libcrypto.lib libssl.lib libcurl_imp.lib)
|
||||||
|
elseif (APPLE)
|
||||||
|
target_link_libraries(${TARGET} PRIVATE curl)
|
||||||
else ()
|
else ()
|
||||||
target_link_libraries(${TARGET} PRIVATE crypto ssl curl)
|
target_link_libraries(${TARGET} PRIVATE crypto ssl curl)
|
||||||
endif ()
|
endif ()
|
||||||
|
|||||||
115
3rdParty/curl/ext/CMakeLists.txt
vendored
115
3rdParty/curl/ext/CMakeLists.txt
vendored
@@ -3,6 +3,13 @@ project(build_curl)
|
|||||||
include(ExternalProject)
|
include(ExternalProject)
|
||||||
include(FetchContent)
|
include(FetchContent)
|
||||||
|
|
||||||
|
if (NOT DEFINED CURL_REPO OR CURL_REPO STREQUAL "")
|
||||||
|
set(CURL_REPO https://github.com/curl/curl.git)
|
||||||
|
endif ()
|
||||||
|
if (NOT DEFINED OPENSSL_REPO OR OPENSSL_REPO STREQUAL "")
|
||||||
|
set(OPENSSL_REPO https://github.com/openssl/openssl.git)
|
||||||
|
endif ()
|
||||||
|
|
||||||
set(OPENSSL_SOURCE_DIR ${CMAKE_BINARY_DIR}/deps_curl/openssl-src)
|
set(OPENSSL_SOURCE_DIR ${CMAKE_BINARY_DIR}/deps_curl/openssl-src)
|
||||||
set(OPENSSL_INSTALL_DIR ${CMAKE_BINARY_DIR}/INSTALL)
|
set(OPENSSL_INSTALL_DIR ${CMAKE_BINARY_DIR}/INSTALL)
|
||||||
set(OPENSSL_INCLUDE_DIR ${OPENSSL_INSTALL_DIR}/include)
|
set(OPENSSL_INCLUDE_DIR ${OPENSSL_INSTALL_DIR}/include)
|
||||||
@@ -21,46 +28,72 @@ else ()
|
|||||||
set(OPENSSL_MAKE_COMMAND make)
|
set(OPENSSL_MAKE_COMMAND make)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
ExternalProject_Add(
|
set(CURL_GIT_TAG curl-8_8_0)
|
||||||
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)
|
if (APPLE)
|
||||||
set(OPENSSL_ROOT_DIR ${INSTALL_DIR})
|
ExternalProject_Add(
|
||||||
|
curl
|
||||||
|
GIT_REPOSITORY ${CURL_REPO}
|
||||||
|
GIT_TAG ${CURL_GIT_TAG}
|
||||||
|
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
|
||||||
|
-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
|
||||||
|
)
|
||||||
|
else ()
|
||||||
|
ExternalProject_Add(
|
||||||
|
OpenSSL
|
||||||
|
PREFIX ${OPENSSL_SOURCE_DIR}
|
||||||
|
GIT_REPOSITORY ${OPENSSL_REPO}
|
||||||
|
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_Add(
|
ExternalProject_Get_Property(OpenSSL INSTALL_DIR)
|
||||||
curl
|
set(OPENSSL_ROOT_DIR ${INSTALL_DIR})
|
||||||
DEPENDS OpenSSL
|
|
||||||
GIT_REPOSITORY https://github.com/curl/curl.git
|
ExternalProject_Add(
|
||||||
GIT_TAG curl-8_8_0
|
curl
|
||||||
GIT_SHALLOW TRUE
|
DEPENDS OpenSSL
|
||||||
SOURCE_DIR ${CMAKE_BINARY_DIR}/curl
|
GIT_REPOSITORY ${CURL_REPO}
|
||||||
BINARY_DIR ${CMAKE_BINARY_DIR}/curl-build
|
GIT_TAG ${CURL_GIT_TAG}
|
||||||
CMAKE_GENERATOR ${CMAKE_GENERATOR}
|
GIT_SHALLOW TRUE
|
||||||
CMAKE_ARGS
|
SOURCE_DIR ${CMAKE_BINARY_DIR}/curl
|
||||||
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=${TOOLCHAIN_FILE}
|
BINARY_DIR ${CMAKE_BINARY_DIR}/curl-build
|
||||||
-DCMAKE_BUILD_TYPE:STRING=Release
|
CMAKE_GENERATOR ${CMAKE_GENERATOR}
|
||||||
-DCURL_USE_OPENSSL:BOOL=ON
|
CMAKE_ARGS
|
||||||
-DOPENSSL_ROOT_DIR=${OPENSSL_ROOT_DIR}
|
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=${TOOLCHAIN_FILE}
|
||||||
-DOPENSSL_INCLUDE_DIR=${OPENSSL_INCLUDE_DIR}
|
-DCMAKE_BUILD_TYPE:STRING=Release
|
||||||
-DCMAKE_PREFIX_PATH=${CMAKE_BINARY_DIR}/INSTALL
|
-DCURL_USE_OPENSSL:BOOL=ON
|
||||||
-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/INSTALL
|
-DOPENSSL_ROOT_DIR=${OPENSSL_ROOT_DIR}
|
||||||
BUILD_COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR}/curl-build --config Release
|
-DOPENSSL_INCLUDE_DIR=${OPENSSL_INCLUDE_DIR}
|
||||||
INSTALL_COMMAND ${CMAKE_COMMAND} --install ${CMAKE_BINARY_DIR}/curl-build --config Release
|
-DCMAKE_PREFIX_PATH=${CMAKE_BINARY_DIR}/INSTALL
|
||||||
USES_TERMINAL_DOWNLOAD TRUE
|
-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/INSTALL
|
||||||
USES_TERMINAL_CONFIGURE TRUE
|
BUILD_COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR}/curl-build --config Release
|
||||||
USES_TERMINAL_BUILD TRUE
|
INSTALL_COMMAND ${CMAKE_COMMAND} --install ${CMAKE_BINARY_DIR}/curl-build --config Release
|
||||||
USES_TERMINAL_INSTALL TRUE
|
USES_TERMINAL_DOWNLOAD TRUE
|
||||||
)
|
USES_TERMINAL_CONFIGURE TRUE
|
||||||
|
USES_TERMINAL_BUILD TRUE
|
||||||
|
USES_TERMINAL_INSTALL TRUE
|
||||||
|
)
|
||||||
|
endif ()
|
||||||
Reference in New Issue
Block a user