mirror of
https://github.com/Xahau/xahaud.git
synced 2025-11-19 10:05:48 +00:00
Compare commits
3 Commits
nd-create-
...
sha-optimi
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a516266e5d | ||
|
|
f0cabd162c | ||
|
|
a6f596bc8b |
@@ -2,34 +2,92 @@
|
|||||||
NIH dep: openssl
|
NIH dep: openssl
|
||||||
#]===================================================================]
|
#]===================================================================]
|
||||||
|
|
||||||
#[===============================================[
|
# Include modules
|
||||||
OPENSSL_ROOT_DIR is the only variable that
|
include(ExternalProject)
|
||||||
FindOpenSSL honors for locating, so convert any
|
include(CheckCCompilerFlag)
|
||||||
OPENSSL_ROOT vars to this
|
|
||||||
#]===============================================]
|
check_c_compiler_flag("-mavx512f" COMPILER_SUPPORTS_AVX512)
|
||||||
if (NOT DEFINED OPENSSL_ROOT_DIR)
|
option(ENABLE_AVX512 "Enable AVX512 instructions" ${COMPILER_SUPPORTS_AVX512})
|
||||||
if (DEFINED ENV{OPENSSL_ROOT})
|
|
||||||
set (OPENSSL_ROOT_DIR $ENV{OPENSSL_ROOT})
|
set(OPENSSL_NISTP "")
|
||||||
elseif (HOMEBREW)
|
set(OPENSSL_AVX512 "")
|
||||||
execute_process (COMMAND ${HOMEBREW} --prefix openssl
|
|
||||||
OUTPUT_VARIABLE OPENSSL_ROOT_DIR
|
if(APPLE)
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
if(CMAKE_SYSTEM_PROCESSOR MATCHES "arm64")
|
||||||
endif ()
|
set(OPENSSL_PLATFORM "darwin64-arm64-cc")
|
||||||
file (TO_CMAKE_PATH "${OPENSSL_ROOT_DIR}" OPENSSL_ROOT_DIR)
|
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
|
||||||
endif ()
|
set(OPENSSL_PLATFORM "darwin64-x86_64-cc")
|
||||||
|
else()
|
||||||
|
message(FATAL_ERROR "Unsupported macOS architecture: ${CMAKE_SYSTEM_PROCESSOR}")
|
||||||
|
endif()
|
||||||
|
elseif(UNIX AND NOT APPLE)
|
||||||
|
set(OPENSSL_PLATFORM "linux-x86_64")
|
||||||
|
set(OPENSSL_NISTP "enable-ec_nistp_64_gcc_128")
|
||||||
|
set(OPENSSL_AVX512 "-march=skylake-avx512")
|
||||||
|
else()
|
||||||
|
message(FATAL_ERROR "Unsupported platform")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
ExternalProject_Add(openssl_src
|
||||||
|
PREFIX ${nih_cache_path}
|
||||||
|
GIT_REPOSITORY https://github.com/openssl/openssl.git
|
||||||
|
GIT_TAG OpenSSL_1_1_1u
|
||||||
|
CONFIGURE_COMMAND
|
||||||
|
${nih_cache_path}/src/openssl_src/Configure
|
||||||
|
-DBUILD_SHARED_LIBS=OFF
|
||||||
|
-DBUILD_STATIC_LIBS=ON
|
||||||
|
${OPENSSL_PLATFORM}
|
||||||
|
${OPENSSL_NISTP}
|
||||||
|
${OPENSSL_AVX512}
|
||||||
|
enable-rmd160
|
||||||
|
no-ssl2
|
||||||
|
LOG_BUILD ON
|
||||||
|
LOG_CONFIGURE ON
|
||||||
|
LOG_DOWNLOAD ON
|
||||||
|
BUILD_IN_SOURCE 1
|
||||||
|
BUILD_COMMAND $(MAKE)
|
||||||
|
TEST_COMMAND ""
|
||||||
|
INSTALL_COMMAND ""
|
||||||
|
BUILD_BYPRODUCTS
|
||||||
|
<BINARY_DIR>/libssl.a
|
||||||
|
<BINARY_DIR>/libcrypto.a
|
||||||
|
)
|
||||||
|
|
||||||
|
ExternalProject_Get_Property (openssl_src BINARY_DIR)
|
||||||
|
set (openssl_src_BINARY_DIR "${BINARY_DIR}")
|
||||||
|
|
||||||
|
add_library (OpenSSL::SSL STATIC IMPORTED GLOBAL)
|
||||||
|
add_library (OpenSSL::Crypto STATIC IMPORTED GLOBAL)
|
||||||
|
|
||||||
|
add_dependencies(OpenSSL::SSL openssl_src)
|
||||||
|
add_dependencies(OpenSSL::Crypto openssl_src)
|
||||||
|
execute_process(
|
||||||
|
COMMAND
|
||||||
|
mkdir -p "${openssl_src_BINARY_DIR}/include"
|
||||||
|
)
|
||||||
|
|
||||||
|
set_target_properties(OpenSSL::SSL PROPERTIES
|
||||||
|
IMPORTED_LOCATION_DEBUG
|
||||||
|
"${openssl_src_BINARY_DIR}/libssl.a"
|
||||||
|
IMPORTED_LOCATION_RELEASE
|
||||||
|
"${openssl_src_BINARY_DIR}/libssl.a"
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES
|
||||||
|
"${openssl_src_BINARY_DIR}/include"
|
||||||
|
)
|
||||||
|
|
||||||
|
set_target_properties(OpenSSL::Crypto PROPERTIES
|
||||||
|
IMPORTED_LOCATION_DEBUG
|
||||||
|
"${openssl_src_BINARY_DIR}/libcrypto.a"
|
||||||
|
IMPORTED_LOCATION_RELEASE
|
||||||
|
"${openssl_src_BINARY_DIR}/libcrypto.a"
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES
|
||||||
|
"${openssl_src_BINARY_DIR}/include"
|
||||||
|
)
|
||||||
|
|
||||||
if (static)
|
|
||||||
set (OPENSSL_USE_STATIC_LIBS ON)
|
|
||||||
endif ()
|
|
||||||
set (OPENSSL_MSVC_STATIC_RT ON)
|
|
||||||
find_package (OpenSSL 1.1.1 REQUIRED)
|
|
||||||
target_link_libraries (ripple_libs
|
target_link_libraries (ripple_libs
|
||||||
INTERFACE
|
INTERFACE
|
||||||
OpenSSL::SSL
|
OpenSSL::SSL
|
||||||
OpenSSL::Crypto)
|
OpenSSL::Crypto)
|
||||||
# disable SSLv2...this can also be done when building/configuring OpenSSL
|
|
||||||
set_target_properties(OpenSSL::SSL PROPERTIES
|
|
||||||
INTERFACE_COMPILE_DEFINITIONS OPENSSL_NO_SSL2)
|
|
||||||
#[=========================================================[
|
#[=========================================================[
|
||||||
https://gitlab.kitware.com/cmake/cmake/issues/16885
|
https://gitlab.kitware.com/cmake/cmake/issues/16885
|
||||||
depending on how openssl is built, it might depend
|
depending on how openssl is built, it might depend
|
||||||
@@ -46,3 +104,9 @@ if (TARGET ZLIB::ZLIB)
|
|||||||
INTERFACE_LINK_LIBRARIES ZLIB::ZLIB)
|
INTERFACE_LINK_LIBRARIES ZLIB::ZLIB)
|
||||||
set (has_zlib TRUE)
|
set (has_zlib TRUE)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
if(ENABLE_AVX512 AND COMPILER_SUPPORTS_AVX512 AND NOT APPLE)
|
||||||
|
add_compile_options(-mavx512f)
|
||||||
|
add_compile_options(-march=skylake-avx512)
|
||||||
|
endif()
|
||||||
|
add_link_options(-lssl -lcrypto)
|
||||||
Reference in New Issue
Block a user