aboutsummaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorJan <sentrycraft123@gmail.com>2023-07-22 02:22:26 +0200
committerGitHub <noreply@github.com>2023-07-22 02:22:26 +0200
commitd3fb76f889101f024f410c194a66f0f4a2f6c4a0 (patch)
tree9739770458ee74e28474949b8e5e310c20f4734a /cmake
parent9841d698f89e1ec6cc9b0c04df10bad6010a54fe (diff)
downloadNorthstarLauncher-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.cmake18
-rw-r--r--cmake/Findminhook.cmake8
-rw-r--r--cmake/Findspdlog.cmake8
-rw-r--r--cmake/utils.cmake25
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()