From e526d03f756a4251ac6ed267a77e942a4dfc62a6 Mon Sep 17 00:00:00 2001 From: "Austin S. Hemmelgarn" Date: Tue, 26 Mar 2024 07:05:33 -0400 Subject: [PATCH] Try finding OpenSSL using pkg-config first on macOS. (#17250) This is required to work correctly in Homebrew, as building within Homebrew does not allow using Homebrew commands, but does generally provide a properly working pkg-config setup. (cherry picked from commit 67549f462669d7e9dfdd85a1e0fdd99e3799e72e) --- CMakeLists.txt | 40 +++++++++++++++------------------------- 1 file changed, 15 insertions(+), 25 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 026f248a9e5fe0..9b8b9383820378 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -479,40 +479,30 @@ endif() # openssl/crypto set(ENABLE_OPENSSL True) -if(NOT MACOS) - pkg_check_modules(CRYPTO libcrypto) - pkg_check_modules(OPENSSL REQUIRED openssl) -else() - # I think this is moot because we can only use openssl 3.x - execute_process(COMMAND - brew --prefix --installed openssl - RESULT_VARIABLE BREW_OPENSSL - OUTPUT_VARIABLE BREW_OPENSSL_PREFIX - OUTPUT_STRIP_TRAILING_WHITESPACE) - - if((BREW_OPENSSL NOT EQUAL 0) OR (NOT EXISTS "${BREW_OPENSSL_PREFIX}")) +pkg_check_modules(OPENSSL openssl) + +if(NOT OPENSSL_FOUND) + if(MACOS) execute_process(COMMAND - brew --prefix --installed openssl@3 + brew --prefix --installed openssl RESULT_VARIABLE BREW_OPENSSL OUTPUT_VARIABLE BREW_OPENSSL_PREFIX OUTPUT_STRIP_TRAILING_WHITESPACE) if((BREW_OPENSSL NOT EQUAL 0) OR (NOT EXISTS "${BREW_OPENSSL_PREFIX}")) - execute_process(COMMAND - brew --prefix --installed openssl@1.1 - RESULT_VARIABLE BREW_OPENSSL - OUTPUT_VARIABLE BREW_OPENSSL_PREFIX - OUTPUT_STRIP_TRAILING_WHITESPACE) - - if((BREW_OPENSSL NOT EQUAL 0) OR (NOT EXISTS "${BREW_OPENSSL_PREFIX}")) - message(FATAL_ERROR "Could not find openssl prefix with brew") - endif() + message(FATAL_ERROR "OpenSSL (or LibreSSL) is required for building Netdata, but could not be found.") endif() + + set(OPENSSL_INCLUDE_DIRS "${BREW_OPENSSL_PREFIX}/include") + set(OPENSSL_CFLAGS_OTHER "") + set(OPENSSL_LDFLAGS "-L${BREW_OPENSSL_PREFIX}/lib;-lssl;-lcrypto") + else() + message(FATAL_ERROR "OpenSSL (or LibreSSL) is required for building Netdata, but could not be found.") endif() +endif() - set(OPENSSL_INCLUDE_DIRS "${BREW_OPENSSL_PREFIX}/include") - set(OPENSSL_CFLAGS_OTHER "") - set(OPENSSL_LDFLAGS "-L${BREW_OPENSSL_PREFIX}/lib;-lssl;-lcrypto") +if(NOT MACOS) + pkg_check_modules(CRYPTO libcrypto) endif() #