mirror of
https://github.com/WarmUpTill/SceneSwitcher.git
synced 2026-04-18 16:17:23 -05:00
Some checks failed
debian-build / build (push) Has been cancelled
Check locale / ubuntu64 (push) Has been cancelled
Push to master / Check Formatting 🔍 (push) Has been cancelled
Push to master / Build Project 🧱 (push) Has been cancelled
Push to master / Create Release 🛫 (push) Has been cancelled
The goal is to remove the older, more limited version of the HTTP action at some point in the future.
78 lines
2.8 KiB
CMake
78 lines
2.8 KiB
CMake
cmake_minimum_required(VERSION 3.14)
|
|
project(advanced-scene-switcher-http)
|
|
|
|
# --- Check requirements ---
|
|
|
|
get_target_property(ADVSS_SOURCE_DIR advanced-scene-switcher-lib SOURCE_DIR)
|
|
set(CPP_HTTPLIB_DIR "${ADVSS_SOURCE_DIR}/deps/cpp-httplib")
|
|
if(NOT EXISTS "${CPP_HTTPLIB_DIR}/CMakeLists.txt")
|
|
message(WARNING "cpp-httplib directory \"${CPP_HTTPLIB_DIR}\" not found!\n"
|
|
"HTTP support will be disabled!")
|
|
return()
|
|
endif()
|
|
if(NOT TARGET httplib)
|
|
add_subdirectory("${CPP_HTTPLIB_DIR}" "${CPP_HTTPLIB_DIR}/build"
|
|
EXCLUDE_FROM_ALL)
|
|
endif()
|
|
|
|
if(NOT OPENSSL_INCLUDE_DIR OR NOT OPENSSL_LIBRARIES)
|
|
find_package(OpenSSL)
|
|
if(NOT OPENSSL_FOUND)
|
|
message(WARNING "OpenSSL not found!\n" "HTTP support will be disabled!\n\n")
|
|
return()
|
|
endif()
|
|
endif()
|
|
|
|
find_package(ZLIB)
|
|
if(NOT ZLIB_FOUND)
|
|
message(WARNING "zlib not found!\n" "HTTP support will be disabled!\n\n")
|
|
return()
|
|
endif()
|
|
|
|
# --- End of section ---
|
|
|
|
add_library(${PROJECT_NAME} MODULE)
|
|
target_compile_definitions(${PROJECT_NAME} PRIVATE CPPHTTPLIB_OPENSSL_SUPPORT=1)
|
|
if(OS_MACOS)
|
|
target_compile_definitions(
|
|
${PROJECT_NAME} PRIVATE CPPHTTPLIB_USE_CERTS_FROM_MACOSX_KEYCHAIN=1)
|
|
target_link_libraries(${PROJECT_NAME} PRIVATE "-framework CoreFoundation")
|
|
target_link_libraries(${PROJECT_NAME} PRIVATE "-framework Security")
|
|
endif()
|
|
|
|
target_sources(
|
|
${PROJECT_NAME} PRIVATE macro-action-http.cpp macro-action-http.hpp
|
|
key-value-list.cpp key-value-list.hpp)
|
|
|
|
setup_advss_plugin(${PROJECT_NAME})
|
|
set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "")
|
|
target_include_directories(${PROJECT_NAME} PRIVATE "${CPP_HTTPLIB_DIR}/"
|
|
"${OPENSSL_INCLUDE_DIR}")
|
|
target_link_libraries(${PROJECT_NAME} PRIVATE ${OPENSSL_LIBRARIES} ZLIB::ZLIB)
|
|
install_advss_plugin(${PROJECT_NAME})
|
|
if(OS_WINDOWS)
|
|
# Couldn't really find a better way to install runtime dependencies for
|
|
# Windows TODO: Clean this up at some point
|
|
function(FIND_FILES_WITH_PATTERN result pattern dir)
|
|
execute_process(
|
|
COMMAND
|
|
powershell -Command
|
|
"Get-ChildItem -Path '${dir}' -Recurse -Include ${pattern} |"
|
|
"Select-Object -First 1 |"
|
|
"ForEach-Object { $_.FullName -replace '\\\\', '\\\\' }"
|
|
OUTPUT_VARIABLE files
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
set(${result}
|
|
${files}
|
|
PARENT_SCOPE)
|
|
endfunction()
|
|
|
|
set(OPENSSL_DLL_SEARCH_DIR "${OPENSSL_INCLUDE_DIR}/..")
|
|
find_files_with_pattern(CRYPTO_DLL_FILES "libcrypto*.dll"
|
|
"${OPENSSL_DLL_SEARCH_DIR}")
|
|
find_files_with_pattern(SSL_DLL_FILES "libssl*.dll"
|
|
"${OPENSSL_DLL_SEARCH_DIR}")
|
|
install_advss_plugin_dependency(TARGET ${PROJECT_NAME} DEPENDENCIES
|
|
"${CRYPTO_DLL_FILES}" "${SSL_DLL_FILES}")
|
|
endif()
|