diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,11 +9,17 @@ ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules ) +# Support Brew OpenSSL on MacOS X +include(BrewHelper) +if(NOT DEFINED OPENSSL_ROOT_DIR) + find_brew_prefix(OPENSSL_ROOT_DIR openssl) +endif() + # If ccache is available, then use it. find_program(CCACHE ccache) if(CCACHE) - set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ${CCACHE}) - set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ${CCACHE}) + set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ${CCACHE}) + set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ${CCACHE}) endif(CCACHE) # Add the magic taret check and check-all diff --git a/cmake/modules/BrewHelper.cmake b/cmake/modules/BrewHelper.cmake new file mode 100644 --- /dev/null +++ b/cmake/modules/BrewHelper.cmake @@ -0,0 +1,26 @@ +# Copyright (c) 2018 The Bitcoin developers + +find_program(BREW brew) + +function(find_brew_prefix VAR NAME) + if(NOT BREW) + return() + endif() + + if(DEFINED ${VAR}) + return() + endif() + + if(DEFINED "BREW_CACHED_PREFIX_${NAME}") + set(${VAR} ${BREW_CACHED_PREFIX_${NAME}} PARENT_SCOPE) + endif() + + execute_process( + COMMAND ${BREW} --prefix ${NAME} + OUTPUT_VARIABLE PREFIX + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + set("BREW_CACHED_PREFIX_${NAME}" ${PREFIX} CACHE PATH "Path for ${NAME} within brew") + set(${VAR} ${PREFIX} PARENT_SCOPE) +endfunction() diff --git a/cmake/modules/FindBerkeleyDB.cmake b/cmake/modules/FindBerkeleyDB.cmake --- a/cmake/modules/FindBerkeleyDB.cmake +++ b/cmake/modules/FindBerkeleyDB.cmake @@ -5,11 +5,30 @@ # BDBXX_INCLUDE_DIR - the Berkeley DB include directory for C++ # BDBXX_LIBRARY - Library needed to use Berkeley DB C++ API -find_path(BDB_INCLUDE_DIR NAMES db.h) -find_library(BDB_LIBRARY NAMES db libdb) +include(BrewHelper) +find_brew_prefix(BREW_HINT berkeley-db) -find_path(BDBXX_INCLUDE_DIR NAMES db_cxx.h) -find_library(BDBXX_LIBRARY NAMES db_cxx libdb_cxx) +find_path(BDB_INCLUDE_DIR + NAMES + db.h + HINTS ${BREW_HINT} +) +find_library(BDB_LIBRARY + NAMES + db libdb + HINTS ${BREW_HINT} +) + +find_path(BDBXX_INCLUDE_DIR + NAMES + db_cxx.h + HINTS ${BREW_HINT} +) +find_library(BDBXX_LIBRARY + NAMES + db_cxx libdb_cxx + HINTS ${BREW_HINT} +) MESSAGE(STATUS "BerkeleyDB libs: " ${BDB_LIBRARY} " " ${BDBXX_LIBRARY}) diff --git a/src/qt/locale/CMakeLists.txt b/src/qt/locale/CMakeLists.txt --- a/src/qt/locale/CMakeLists.txt +++ b/src/qt/locale/CMakeLists.txt @@ -2,7 +2,10 @@ project(bitcoin-qt-locale) -find_package(Qt5LinguistTools) +include(BrewHelper) +find_brew_prefix(QT5_PREFIX qt5) + +find_package(Qt5LinguistTools HINTS "${QT5_PREFIX}") qt5_add_translation(BITCOIN_QM_FILES bitcoin_af.ts