include headers files in solution, get rid of some dlls and switch to static libs instead, fix building curl and openssl from sources on every cmake configuration
This commit is contained in:
26
3rdParty/curl/ext/CMakeLists.txt
vendored
26
3rdParty/curl/ext/CMakeLists.txt
vendored
@@ -12,8 +12,10 @@ endif ()
|
||||
|
||||
set(OPENSSL_SOURCE_DIR ${CMAKE_BINARY_DIR}/deps_curl/openssl-src)
|
||||
set(OPENSSL_INSTALL_DIR ${CMAKE_BINARY_DIR}/INSTALL)
|
||||
set(CURL_INSTALL_DIR ${OPENSSL_INSTALL_DIR})
|
||||
set(OPENSSL_INCLUDE_DIR ${OPENSSL_INSTALL_DIR}/include)
|
||||
set(OPENSSL_TAG OpenSSL_1_1_1n)
|
||||
set(OPENSSL_USE_STATIC_LIBS TRUE)
|
||||
|
||||
find_program(PERL_EXECUTABLE perl)
|
||||
if (NOT PERL_EXECUTABLE)
|
||||
@@ -56,6 +58,13 @@ if (APPLE)
|
||||
USES_TERMINAL_INSTALL TRUE
|
||||
)
|
||||
else ()
|
||||
set(OPENSSL_ROOT_DIR ${OPENSSL_INSTALL_DIR})
|
||||
set(CURL_DEPDENDENCY_TARGETS "")
|
||||
find_package(OpenSSL QUIET)
|
||||
|
||||
if(NOT OpenSSL_FOUND)
|
||||
message("OpenSSL not found. Building OpenSSL from sources...")
|
||||
set(CURL_DEPDENDENCY_TARGETS OpenSSL)
|
||||
ExternalProject_Add(
|
||||
OpenSSL
|
||||
PREFIX ${OPENSSL_SOURCE_DIR}
|
||||
@@ -71,13 +80,19 @@ else ()
|
||||
USES_TERMINAL_BUILD TRUE
|
||||
USES_TERMINAL_INSTALL TRUE
|
||||
)
|
||||
else ()
|
||||
set(CURL_DEPDENDENCY_TARGETS OpenSSL::SSL OpenSSL::Crypto)
|
||||
message("OpenSSL is already built")
|
||||
endif()
|
||||
|
||||
ExternalProject_Get_Property(OpenSSL INSTALL_DIR)
|
||||
set(OPENSSL_ROOT_DIR ${INSTALL_DIR})
|
||||
|
||||
list(APPEND CMAKE_PREFIX_PATH ${CURL_INSTALL_DIR})
|
||||
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)
|
||||
ExternalProject_Add(
|
||||
curl
|
||||
DEPENDS OpenSSL
|
||||
DEPENDS ${CURL_DEPDENDENCY_TARGETS}
|
||||
GIT_REPOSITORY ${CURL_REPO}
|
||||
GIT_TAG ${CURL_GIT_TAG}
|
||||
GIT_SHALLOW TRUE
|
||||
@@ -99,4 +114,7 @@ else ()
|
||||
USES_TERMINAL_BUILD TRUE
|
||||
USES_TERMINAL_INSTALL TRUE
|
||||
)
|
||||
else ()
|
||||
message("CURL is alredy built")
|
||||
endif ()
|
||||
endif ()
|
||||
@@ -37,8 +37,8 @@ if(IOS)
|
||||
file(GLOB_RECURSE resources CONFIGURE_DEPENDS "openVulkanoCpp/*.storyboard" "openVulkanoCpp/*.xib")
|
||||
add_executable(openVulkanoCpp examples/main.m ${resources})
|
||||
else()
|
||||
file(GLOB_RECURSE sources CONFIGURE_DEPENDS "openVulkanoCpp/*.c" "openVulkanoCpp/*.cpp" "examples/*.cpp")
|
||||
add_executable(openVulkanoCpp examples/main.cpp ${resources})
|
||||
file(GLOB_RECURSE sources CONFIGURE_DEPENDS "openVulkanoCpp/*.h" "openVulkanoCpp/*.c" "openVulkanoCpp/*.hpp" "openVulkanoCpp/*.cpp" "examples/*.hpp" "examples/*.cpp")
|
||||
add_executable(openVulkanoCpp examples/main.cpp)
|
||||
endif()
|
||||
FilterPlatformPaths(sources)
|
||||
SetWarningSettings(openVulkanoCpp)
|
||||
@@ -63,26 +63,19 @@ if (WIN32)
|
||||
# Ws2
|
||||
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})
|
||||
add_custom_command(TARGET openVulkanoCpp POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||
${DLL} ${EXE_OUTPUT_DIR}
|
||||
${DLL} $<TARGET_FILE_DIR:openVulkanoCpp>
|
||||
)
|
||||
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 ()
|
||||
|
||||
SetupVulkan(openVulkanoCpp)
|
||||
|
||||
Reference in New Issue
Block a user