Instalei o OpenSSL a partir do brew e find_package
parece detectar a versão do brew, mas ele tenta vincular o projeto ao OpenSSL instalado no sistema, que é o LibreSSL.
Eu tentei forçar o find_package
para definir o caminho exato da biblioteca, mas isso não faz nada:
if(APPLE)
set(OPENSSL_ROOT_DIR /usr/local/Cellar/openssl@1.1/1.1.1d/)
endif()
Então, acabei definindo as dependências manualmente, o que não é o ideal, mas funciona enquanto isso para o desenvolvimento.
# 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()
O Cmake Output fornece essas informações, onde detecta a biblioteca OpenSSL do brew, mas vincula-se à biblioteca do sistema. Não sei por que.
-- 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 esta ajuda!