Merge remote-tracking branch 'origin/master' into textures
This commit is contained in:
115
3rdParty/curl/ext/CMakeLists.txt
vendored
115
3rdParty/curl/ext/CMakeLists.txt
vendored
@@ -14,6 +14,7 @@ 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)
|
||||||
set(OPENSSL_TAG OpenSSL_1_1_1n)
|
set(OPENSSL_TAG OpenSSL_1_1_1n)
|
||||||
|
set(OPENSSL_USE_STATIC_LIBS TRUE)
|
||||||
|
|
||||||
find_program(PERL_EXECUTABLE perl)
|
find_program(PERL_EXECUTABLE perl)
|
||||||
if (NOT PERL_EXECUTABLE)
|
if (NOT PERL_EXECUTABLE)
|
||||||
@@ -30,6 +31,51 @@ endif ()
|
|||||||
|
|
||||||
set(CURL_GIT_TAG curl-8_8_0)
|
set(CURL_GIT_TAG curl-8_8_0)
|
||||||
|
|
||||||
|
function(InstallOpenSSL)
|
||||||
|
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} no-shared no-tests
|
||||||
|
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
|
||||||
|
)
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
function(InstallCurl DEPENDENCY_TARGETS OPENSSL_ROOT_DIR)
|
||||||
|
ExternalProject_Add(
|
||||||
|
curl
|
||||||
|
DEPENDS ${DEPENDENCY_TARGETS}
|
||||||
|
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
|
||||||
|
)
|
||||||
|
endfunction()
|
||||||
|
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
ExternalProject_Add(
|
ExternalProject_Add(
|
||||||
curl
|
curl
|
||||||
@@ -55,48 +101,33 @@ if (APPLE)
|
|||||||
USES_TERMINAL_BUILD TRUE
|
USES_TERMINAL_BUILD TRUE
|
||||||
USES_TERMINAL_INSTALL TRUE
|
USES_TERMINAL_INSTALL TRUE
|
||||||
)
|
)
|
||||||
else ()
|
elseif (WIN32)
|
||||||
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
|
|
||||||
)
|
|
||||||
|
|
||||||
|
set(CURL_DEPDENDENCY_TARGETS "")
|
||||||
|
set(OPENSSL_ROOT_DIR ${OPENSSL_INSTALL_DIR})
|
||||||
|
list(APPEND CMAKE_PREFIX_PATH ${OPENSSL_INSTALL_DIR})
|
||||||
|
|
||||||
|
find_package(OpenSSL QUIET)
|
||||||
|
if(NOT OpenSSL_FOUND)
|
||||||
|
message("OpenSSL not found. Building OpenSSL from sources...")
|
||||||
|
set(CURL_DEPDENDENCY_TARGETS OpenSSL)
|
||||||
|
InstallOpenSSL()
|
||||||
|
else ()
|
||||||
|
set(CURL_DEPDENDENCY_TARGETS OpenSSL::SSL OpenSSL::Crypto)
|
||||||
|
message("OpenSSL is already built. Root directory is ${OPENSSL_ROOT_DIR}, include directory is ${OPENSSL_INCLUDE_DIR}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
find_package(CURL QUIET)
|
||||||
|
if (NOT CURL_FOUND)
|
||||||
|
message("CURL not found. Building CURL from sources...")
|
||||||
|
# set(BUILD_SHARED_LIBS OFF) set(BUILD_STATIC_LIBS ON)
|
||||||
|
InstallCurl(${CURL_DEPDENDENCY_TARGETS} ${OPENSSL_ROOT_DIR})
|
||||||
|
else ()
|
||||||
|
message("CURL is already built")
|
||||||
|
endif ()
|
||||||
|
else ()
|
||||||
|
InstallOpenSSL()
|
||||||
ExternalProject_Get_Property(OpenSSL INSTALL_DIR)
|
ExternalProject_Get_Property(OpenSSL INSTALL_DIR)
|
||||||
set(OPENSSL_ROOT_DIR ${INSTALL_DIR})
|
set(OPENSSL_ROOT_DIR ${INSTALL_DIR})
|
||||||
|
InstallCurl(OpenSSL ${OPENSSL_ROOT_DIR})
|
||||||
ExternalProject_Add(
|
endif ()
|
||||||
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 ()
|
|
||||||
|
|||||||
@@ -37,8 +37,8 @@ if(IOS)
|
|||||||
file(GLOB_RECURSE resources CONFIGURE_DEPENDS "openVulkanoCpp/*.storyboard" "openVulkanoCpp/*.xib")
|
file(GLOB_RECURSE resources CONFIGURE_DEPENDS "openVulkanoCpp/*.storyboard" "openVulkanoCpp/*.xib")
|
||||||
add_executable(openVulkanoCpp examples/main.m ${resources})
|
add_executable(openVulkanoCpp examples/main.m ${resources})
|
||||||
else()
|
else()
|
||||||
file(GLOB_RECURSE sources CONFIGURE_DEPENDS "openVulkanoCpp/*.c" "openVulkanoCpp/*.cpp" "examples/*.cpp")
|
file(GLOB_RECURSE sources CONFIGURE_DEPENDS "openVulkanoCpp/*.h" "openVulkanoCpp/*.c" "openVulkanoCpp/*.hpp" "openVulkanoCpp/*.cpp" "examples/*.hpp" "examples/*.cpp")
|
||||||
add_executable(openVulkanoCpp examples/main.cpp ${resources})
|
add_executable(openVulkanoCpp examples/main.cpp)
|
||||||
endif()
|
endif()
|
||||||
FilterPlatformPaths(sources)
|
FilterPlatformPaths(sources)
|
||||||
SetWarningSettings(openVulkanoCpp)
|
SetWarningSettings(openVulkanoCpp)
|
||||||
@@ -62,27 +62,20 @@ endif ()
|
|||||||
if (WIN32)
|
if (WIN32)
|
||||||
# Ws2
|
# Ws2
|
||||||
target_link_libraries(openVulkanoCpp PRIVATE Ws2_32)
|
target_link_libraries(openVulkanoCpp PRIVATE Ws2_32)
|
||||||
|
|
||||||
file(GLOB_RECURSE DLLS "${CMAKE_BINARY_DIR}/*.dll")
|
|
||||||
|
|
||||||
if (CMAKE_BUILD_TYPE STREQUAL "Release")
|
|
||||||
set(EXE_OUTPUT_DIR "${CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE}" )
|
|
||||||
elseif (CMAKE_BUILD_TYPE STREQUAL "MinSizeRel")
|
|
||||||
set(EXE_OUTPUT_DIR "${CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL}" )
|
|
||||||
elseif (CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
|
|
||||||
set(EXE_OUTPUT_DIR "${CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO}" )
|
|
||||||
elseif (CMAKE_BUILD_TYPE STREQUAL "Debug")
|
|
||||||
set(EXE_OUTPUT_DIR "${CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG}" )
|
|
||||||
else ()
|
|
||||||
set(EXE_OUTPUT_DIR "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" )
|
|
||||||
endif()
|
|
||||||
|
|
||||||
|
# grabs libcurl.dll libssl-1_1-x64.dll libcrypto-1_1-x64.dll
|
||||||
|
# TODO: statically link libcurl and it's dependencies
|
||||||
|
file(GLOB_RECURSE DLLS "${CMAKE_BINARY_DIR}/deps_curl/INSTALL/bin/*.dll")
|
||||||
foreach(DLL ${DLLS})
|
foreach(DLL ${DLLS})
|
||||||
add_custom_command(TARGET openVulkanoCpp POST_BUILD
|
add_custom_command(TARGET openVulkanoCpp POST_BUILD
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||||
${DLL} ${EXE_OUTPUT_DIR}
|
${DLL} $<TARGET_FILE_DIR:openVulkanoCpp>
|
||||||
)
|
)
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
|
set(CURL_STATIC_LIBS ${CMAKE_BINARY_DIR}/deps_curl/deps_curl)
|
||||||
|
file(GLOB_RECURSE LIBS "${CURL_STATIC_LIBS}/*.lib")
|
||||||
|
target_link_libraries(openVulkanoCpp PRIVATE ${LIBS})
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
SetupVulkan(openVulkanoCpp)
|
SetupVulkan(openVulkanoCpp)
|
||||||
|
|||||||
Reference in New Issue
Block a user