@@ -22,6 +22,7 @@ option(PIPY_STATIC "statically link to libc" OFF)
22
22
option (PIPY_LTO "enable LTO" OFF )
23
23
option (PIPY_USE_NTLS, "Use externally compiled TongSuo Crypto library instead of OpenSSL. Used with PIPY_OPENSSL" OFF )
24
24
option (PIPY_USE_SYSTEM_ZLIB "Use system installed zlib" OFF )
25
+ option (PIPY_USE_SYSTEM_OPENSSL "Use system installed OpenSSL" OFF )
25
26
26
27
set (BUILD_SHARED_LIBS OFF )
27
28
set (BUILD_TESTING OFF )
@@ -130,7 +131,15 @@ else()
130
131
endif (PIPY_USE_SYSTEM_ZLIB )
131
132
endif ()
132
133
133
- if (PIPY_OPENSSL )
134
+ if (PIPY_USE_SYSTEM_OPENSSL )
135
+ find_package (OpenSSL REQUIRED )
136
+ if (OPENSSL_FOUND )
137
+ set (OPENSSL_INC_DIR ${OPENSSL_INCLUDE_DIR} )
138
+ message (STATUS "Using system-installed OpenSSL" )
139
+ else ()
140
+ message (FATAL_ERROR "System OpenSSL not found. Set PIPY_USE_SYSTEM_OPENSSL to OFF or install OpenSSL." )
141
+ endif ()
142
+ elseif (PIPY_OPENSSL )
134
143
if (PIPY_USE_NTLS )
135
144
add_definitions (-DPIPY_USE_NTLS )
136
145
endif (PIPY_USE_NTLS )
@@ -167,7 +176,9 @@ else()
167
176
endif ()
168
177
endif ()
169
178
170
- add_custom_target (OpenSSL DEPENDS ${OPENSSL_LIB_DIR} /${LIB_CRYPTO} ${OPENSSL_LIB_DIR} /${LIB_SSL} )
179
+ if (NOT PIPY_USE_SYSTEM_OPENSSL )
180
+ add_custom_target (OpenSSL DEPENDS ${OPENSSL_LIB_DIR} /${LIB_CRYPTO} ${OPENSSL_LIB_DIR} /${LIB_SSL} )
181
+ endif ()
171
182
172
183
if (PIPY_BROTLI )
173
184
set (BROTLI_INC_DIR ${PIPY_BROTLI} /include )
@@ -390,7 +401,11 @@ execute_process(
390
401
391
402
add_custom_target (GenVer DEPENDS ${CMAKE_BINARY_DIR} /deps/version.h )
392
403
393
- add_dependencies (pipy yajl_s expat OpenSSL ${BROTLI_LIB} GenVer )
404
+ add_dependencies (pipy yajl_s expat ${BROTLI_LIB} GenVer )
405
+
406
+ if (NOT PIPY_USE_SYSTEM_OPENSSL )
407
+ add_dependencies (pipy OpenSSL )
408
+ endif ()
394
409
395
410
if (NOT PIPY_USE_SYSTEM_ZLIB )
396
411
add_dependencies (pipy ${ZLIB_LIB} )
@@ -486,12 +501,16 @@ target_link_libraries(
486
501
yaml
487
502
expat
488
503
${ZLIB_LIB}
489
- ${OPENSSL_LIB_DIR} /${LIB_SSL}
490
- ${OPENSSL_LIB_DIR} /${LIB_CRYPTO}
491
504
${BROTLI_LIB}
492
505
leveldb
493
506
)
494
507
508
+ if (PIPY_USE_SYSTEM_OPENSSL )
509
+ target_link_libraries (pipy ${OPENSSL_SSL_LIBRARY} ${OPENSSL_CRYPTO_LIBRARY} )
510
+ else ()
511
+ target_link_libraries (pipy ${OPENSSL_LIB_DIR} /${LIB_SSL} ${OPENSSL_LIB_DIR} /${LIB_CRYPTO} )
512
+ endif ()
513
+
495
514
if (WIN32 )
496
515
target_link_libraries (pipy crypt32 userenv )
497
516
elseif (ANDROID )
0 commit comments