diff --git a/3rdParty/curl/CMakeLists.txt b/3rdParty/curl/CMakeLists.txt index f3966da..48a28ba 100644 --- a/3rdParty/curl/CMakeLists.txt +++ b/3rdParty/curl/CMakeLists.txt @@ -2,10 +2,10 @@ include(../../cmake/Utils.cmake) set(CURL_DEPS_INSTALL ${CMAKE_BINARY_DIR}/deps_curl) find_package(CURL QUIET) -if (NOT DEFINED CURL_FOUND) +if (NOT ${CURL_FOUND}) file(MAKE_DIRECTORY ${CURL_DEPS_INSTALL}) 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} ) execute_process( @@ -24,12 +24,14 @@ endif () function(LinkCurl TARGET BINARY_DIR) find_package(CURL QUIET) - if (NOT DEFINED CURL_FOUND) + if (NOT ${CURL_FOUND}) set(CURL_DEPS_INSTALL ${BINARY_DIR}/deps_curl) target_include_directories(${TARGET} PRIVATE ${CURL_DEPS_INSTALL}/INSTALL/include) target_link_directories(${TARGET} PRIVATE ${CURL_DEPS_INSTALL}/INSTALL/lib) if (MSVC) target_link_libraries(${TARGET} PRIVATE libcrypto.lib libssl.lib libcurl_imp.lib) + elseif (APPLE) + target_link_libraries(${TARGET} PRIVATE curl) else () target_link_libraries(${TARGET} PRIVATE crypto ssl curl) endif () diff --git a/3rdParty/curl/ext/CMakeLists.txt b/3rdParty/curl/ext/CMakeLists.txt index 8030a58..b018e0c 100644 --- a/3rdParty/curl/ext/CMakeLists.txt +++ b/3rdParty/curl/ext/CMakeLists.txt @@ -3,6 +3,13 @@ project(build_curl) include(ExternalProject) 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_INSTALL_DIR ${CMAKE_BINARY_DIR}/INSTALL) set(OPENSSL_INCLUDE_DIR ${OPENSSL_INSTALL_DIR}/include) @@ -21,46 +28,72 @@ else () 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 -) +set(CURL_GIT_TAG curl-8_8_0) -ExternalProject_Get_Property(OpenSSL INSTALL_DIR) -set(OPENSSL_ROOT_DIR ${INSTALL_DIR}) +if (APPLE) + 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( - 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 -) \ No newline at end of file + ExternalProject_Get_Property(OpenSSL INSTALL_DIR) + set(OPENSSL_ROOT_DIR ${INSTALL_DIR}) + + ExternalProject_Add( + curl + DEPENDS OpenSSL + 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 + -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 + ) +endif () \ No newline at end of file