mirror of
https://github.com/VCMP-SqMod/SqMod.git
synced 2025-07-06 17:07:12 +02:00
Major plugin refactor and cleanup.
Switched to POCO library for unified platform/library interface. Deprecated the external module API. It was creating more problems than solving. Removed most built-in libraries in favor of system libraries for easier maintenance. Cleaned and secured code with help from static analyzers.
This commit is contained in:
79
vendor/POCO/cmake/UseEmbeddedOpenSSL.cmake
vendored
Normal file
79
vendor/POCO/cmake/UseEmbeddedOpenSSL.cmake
vendored
Normal file
@ -0,0 +1,79 @@
|
||||
|
||||
macro(copy_shared_ossl_lib path)
|
||||
if(NOT EXISTS "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
|
||||
endif()
|
||||
file(GLOB OSSL_LIB_LIST LIST_DIRECTORIES false "${path}/*")
|
||||
foreach(OSSL_LIB_FILE ${OSSL_LIB_LIST})
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy ${OSSL_LIB_FILE} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
|
||||
if(POCO_VERBOSE_MESSAGES)
|
||||
message(STATUS "Copying embedded OpenSSL library from ${OSSL_LIB_FILE} to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
|
||||
endif()
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
||||
macro(copy_static_ossl_lib path)
|
||||
if(NOT EXISTS "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
|
||||
endif()
|
||||
file(GLOB OSSL_LIB_LIST LIST_DIRECTORIES false "${path}/*")
|
||||
foreach(OSSL_LIB_FILE ${OSSL_LIB_LIST})
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy ${OSSL_LIB_FILE} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
|
||||
if(POCO_VERBOSE_MESSAGES)
|
||||
message(STATUS "Copying embedded OpenSSL library from ${OSSL_LIB_FILE} to ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
|
||||
endif()
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
||||
if(NOT EXISTS "${PROJECT_SOURCE_DIR}/openssl/build")
|
||||
message(STATUS "Use internal OpenSSL binaries but ${PROJECT_SOURCE_DIR}/openssl/build doesn't exists. Try to checkout ...")
|
||||
find_package(Git REQUIRED)
|
||||
execute_process(
|
||||
COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive --remote openssl
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
RESULT_VARIABLE EXITCODE)
|
||||
if(NOT "${EXITCODE}" STREQUAL "0")
|
||||
message(FATAL_ERROR "Checkout ${PROJECT_SOURCE_DIR}/openssl FAILED!")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if( "${CMAKE_SIZEOF_VOID_P}" STREQUAL "8" )
|
||||
set(_OPENSSL_MSVC_ARCH_SUFFIX "64")
|
||||
else()
|
||||
set(_OPENSSL_MSVC_ARCH_SUFFIX "32")
|
||||
endif()
|
||||
|
||||
if(BUILD_SHARED_LIBS)
|
||||
option(OPENSSL_MSVC_STATIC_RT "Set ON to choose the MT version of the openssl lib" OFF)
|
||||
option(OPENSSL_USE_STATIC_LIBS "Set ON to look for static openssl libraries" OFF)
|
||||
else()
|
||||
option(OPENSSL_MSVC_STATIC_RT "Set ON to choose the MT version of the openssl lib" ON)
|
||||
option(OPENSSL_USE_STATIC_LIBS "Set ON to look for static openssl libraries" ON)
|
||||
endif()
|
||||
|
||||
set(OPENSSL_ROOT_DIR "${PROJECT_SOURCE_DIR}/openssl/build")
|
||||
|
||||
if(OPENSSL_USE_STATIC_LIBS)
|
||||
if(POCO_VERBOSE_MESSAGES)
|
||||
message(STATUS "Use internal OpenSSL static binaries from ${OPENSSL_ROOT_DIR}/win${_OPENSSL_MSVC_ARCH_SUFFIX}/lib")
|
||||
endif()
|
||||
list(APPEND CMAKE_LIBRARY_PATH
|
||||
"${OPENSSL_ROOT_DIR}/win${_OPENSSL_MSVC_ARCH_SUFFIX}/lib/debug"
|
||||
"${OPENSSL_ROOT_DIR}/win${_OPENSSL_MSVC_ARCH_SUFFIX}/lib/release")
|
||||
copy_static_ossl_lib("${OPENSSL_ROOT_DIR}/win${_OPENSSL_MSVC_ARCH_SUFFIX}/lib/debug")
|
||||
copy_static_ossl_lib("${OPENSSL_ROOT_DIR}/win${_OPENSSL_MSVC_ARCH_SUFFIX}/lib/release")
|
||||
else()
|
||||
if(POCO_VERBOSE_MESSAGES)
|
||||
message(STATUS "Use internal OpenSSL shared binaries from ${OPENSSL_ROOT_DIR}/win${_OPENSSL_MSVC_ARCH_SUFFIX}/bin")
|
||||
endif()
|
||||
list(APPEND CMAKE_LIBRARY_PATH
|
||||
"${OPENSSL_ROOT_DIR}/win${_OPENSSL_MSVC_ARCH_SUFFIX}/bin/debug"
|
||||
"${OPENSSL_ROOT_DIR}/win${_OPENSSL_MSVC_ARCH_SUFFIX}/bin/release")
|
||||
copy_shared_ossl_lib("${OPENSSL_ROOT_DIR}/win${_OPENSSL_MSVC_ARCH_SUFFIX}/bin/debug")
|
||||
copy_shared_ossl_lib("${OPENSSL_ROOT_DIR}/win${_OPENSSL_MSVC_ARCH_SUFFIX}/bin/release")
|
||||
foreach(_OSSL_PATH "${OPENSSL_ROOT_DIR}/win${_OPENSSL_MSVC_ARCH_SUFFIX}/bin/debug" "${OPENSSL_ROOT_DIR}/win${_OPENSSL_MSVC_ARCH_SUFFIX}/bin/release")
|
||||
string(REPLACE "/" "\\" _OSSL_WIN_PATH ${_OSSL_PATH})
|
||||
string(APPEND OPENSSL_PATH ${_OSSL_WIN_PATH} "\;")
|
||||
endforeach()
|
||||
set(INTERNAL_OPENSSL_PATH "PATH=%PATH%\;${OPENSSL_PATH}")
|
||||
endif()
|
Reference in New Issue
Block a user