diff options
author | Jan <sentrycraft123@gmail.com> | 2023-07-22 02:22:26 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-22 02:22:26 +0200 |
commit | d3fb76f889101f024f410c194a66f0f4a2f6c4a0 (patch) | |
tree | 9739770458ee74e28474949b8e5e310c20f4734a /cmake | |
parent | 9841d698f89e1ec6cc9b0c04df10bad6010a54fe (diff) | |
download | NorthstarLauncher-d3fb76f889101f024f410c194a66f0f4a2f6c4a0.tar.gz NorthstarLauncher-d3fb76f889101f024f410c194a66f0f4a2f6c4a0.zip |
Replace vendored libcurl and minhook with submodules (#500)v1.17.1-rc1
* Replace vendored libcurl and minhook with submodules
* Add cmake utility for checking submodules and initializing them
* Update build instructions to use Git
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/Findlibcurl.cmake | 18 | ||||
-rw-r--r-- | cmake/Findminhook.cmake | 8 | ||||
-rw-r--r-- | cmake/Findspdlog.cmake | 8 | ||||
-rw-r--r-- | cmake/utils.cmake | 25 |
4 files changed, 59 insertions, 0 deletions
diff --git a/cmake/Findlibcurl.cmake b/cmake/Findlibcurl.cmake new file mode 100644 index 00000000..a6f0b47c --- /dev/null +++ b/cmake/Findlibcurl.cmake @@ -0,0 +1,18 @@ + + +if (NOT libcurl_FOUND) + check_init_submodule(${PROJECT_SOURCE_DIR}/thirdparty/libcurl) + + set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared libraries") + set(BUILD_CURL_EXE OFF CACHE BOOL "Build curl EXE") + set(HTTP_ONLY ON CACHE BOOL "Only build HTTP and HTTPS") + set(CURL_ENABLE_SSL ON CACHE BOOL "Enable SSL support") + set(CURL_USE_OPENSSL OFF CACHE BOOL "Disable OpenSSL") + set(CURL_USE_LIBSSH2 OFF CACHE BOOL "Disable libSSH2") + set(CURL_USE_SCHANNEL ON CACHE BOOL "Enable Secure Channel") + set(CURL_CA_BUNDLE "none" CACHE STRING "Disable CA Bundle") + set(CURL_CA_PATH "none" CACHE STRING "Disable CA Path") + + add_subdirectory(${PROJECT_SOURCE_DIR}/thirdparty/libcurl libcurl) + set(libcurl_FOUND 1 PARENT_SCOPE) +endif() diff --git a/cmake/Findminhook.cmake b/cmake/Findminhook.cmake new file mode 100644 index 00000000..8ec2e99a --- /dev/null +++ b/cmake/Findminhook.cmake @@ -0,0 +1,8 @@ + +if(NOT minhook_FOUND) + check_init_submodule(${PROJECT_SOURCE_DIR}/thirdparty/minhook) + + add_subdirectory(${PROJECT_SOURCE_DIR}/thirdparty/minhook minhook) + set(minhook_FOUND 1 PARENT_SCOPE) +endif() + diff --git a/cmake/Findspdlog.cmake b/cmake/Findspdlog.cmake new file mode 100644 index 00000000..38b52a53 --- /dev/null +++ b/cmake/Findspdlog.cmake @@ -0,0 +1,8 @@ + +if(NOT spdlog_FOUND) + check_init_submodule(${PROJECT_SOURCE_DIR}/thirdparty/spdlog) + + add_subdirectory(${PROJECT_SOURCE_DIR}/thirdparty/spdlog spdlog) + set(spdlog_FOUND 1 PARENT_SCOPE) +endif() + diff --git a/cmake/utils.cmake b/cmake/utils.cmake new file mode 100644 index 00000000..e38b9eab --- /dev/null +++ b/cmake/utils.cmake @@ -0,0 +1,25 @@ + +# Check if a dependency exist before trying to init git submodules +function(check_init_submodule path) + file(GLOB DIR_CONTENT path) + list(LENGTH RESULT CONTENT_COUNT) + if (CONTENT_COUNT EQUAL 0) + if (NOT EXISTS "${PROJECT_SOURCE_DIR}/.git") + message(FATAL_ERROR "Failed to find third party dependency in '${path}'") + endif() + + find_package(Git QUIET) + if (NOT Git_FOUND) + message(FATAL_ERROR "Failed to find Git, third party dependency could not be setup at `${path}") + endif() + + message(STATUS "Setting up dependencies as git submodules") + execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + RESULT_VARIABLE GIT_SUBMOD_RESULT) + + if(NOT GIT_SUBMOD_RESULT EQUAL "0") + message(FATAL_ERROR "Initializing Git submodules failed with ${GIT_SUBMOD_RESULT}") + endif() + endif() +endfunction() |