40 lines
1.5 KiB
CMake
40 lines
1.5 KiB
CMake
include(../../cmake/Utils.cmake)
|
|
|
|
set(CURL_DEPS_INSTALL ${CMAKE_BINARY_DIR}/deps_curl)
|
|
find_package(curl QUIET)
|
|
if (NOT DEFINED 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
|
|
WORKING_DIRECTORY ${CURL_DEPS_INSTALL}
|
|
)
|
|
execute_process(
|
|
COMMAND ${CMAKE_COMMAND} --build ${CURL_DEPS_INSTALL}
|
|
RESULT_VARIABLE build_result
|
|
)
|
|
if (NOT ${build_result} EQUAL "0")
|
|
message(FATAL_ERROR "Failed to build curl!")
|
|
endif()
|
|
|
|
list(APPEND CMAKE_PREFIX_PATH ${CURL_DEPS_INSTALL}/INSTALL)
|
|
else ()
|
|
message("Using system curl")
|
|
set(USING_SYSTEM_CURL ON PARENT_SCOPE)
|
|
endif ()
|
|
|
|
function(LinkCurl TARGET BINARY_DIR)
|
|
find_package(curl QUIET)
|
|
set(CURL_DEPS_INSTALL ${BINARY_DIR}/deps_curl)
|
|
if (NOT DEFINED curl_FOUND)
|
|
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)
|
|
else ()
|
|
target_link_libraries(${TARGET} PRIVATE crypto ssl curl)
|
|
endif ()
|
|
else ()
|
|
target_include_directories(${TARGET} PRIVATE ${curl_INCLUDE_DIR})
|
|
target_link_libraries(${TARGET} PRIVATE ${curl_LIBRARIES})
|
|
endif ()
|
|
endfunction() |