He instalado OpenSSL desde brew, y find_package
parece detectar la versión de brew, pero intenta vincular el proyecto con el OpenSSL instalado en el sistema, que es LibreSSL.
Traté de forzar find_package
a establecer la ruta exacta de la biblioteca, pero no hace nada:
if(APPLE)
set(OPENSSL_ROOT_DIR /usr/local/Cellar/openssl@1.1/1.1.1d/)
endif()
Así que terminé configurando las dependencias manualmente, lo que no es ideal, pero mientras tanto funciona para el desarrollo.
# OpenSSL
find_package(OpenSSL REQUIRED)
if(OPENSSL_FOUND)
if(APPLE)
include_directories(/usr/local/Cellar/openssl@1.1/1.1.1d/include)
list(APPEND LIB_LIST /usr/local/Cellar/openssl@1.1/1.1.1d/lib/libssl.dylib)
list(APPEND LIB_LIST /usr/local/Cellar/openssl@1.1/1.1.1d/lib/libcrypto.dylib)
message(STATUS "OpenSSL Version: ${OPENSSL_VERSION} ${OPENSSL_INCLUDE_DIR} ${OPENSSL_LIBRARIES}")
else()
include_directories(${OPENSSL_INCLUDE_DIR})
list(APPEND LIB_LIST ${OPENSSL_LIBRARIES})
message(STATUS "OpenSSL Version: ${OPENSSL_VERSION} ${OPENSSL_INCLUDE_DIR} ${OPENSSL_LIBRARIES}")
endif()
endif()
La salida de Cmake proporciona esta información, donde detecta la biblioteca OpenSSL desde la preparación, pero se vincula con la biblioteca del sistema. No estoy seguro de por qué.
-- OpenSSL Version: 1.1.1d /usr/local/Cellar/openssl@1.1/1.1.1d/include /usr/lib/libssl.dylib;/usr/lib/libcrypto.dylib
¡Espero que esto ayude!