From d187dd35cf1b20b32777cb603e03aefc91d06dd2 Mon Sep 17 00:00:00 2001 From: Larry Shaffer Date: Thu, 24 Nov 2016 09:31:17 -0700 Subject: [PATCH] Flip CMake finds for Qt-based frameworks, to ensure Headers are searched Search for libraries first, before includes, so any frameworks found can have their Headers subdirectory added to search paths for includes. - Reintroduce qwt and qscintilla2 base library names for searching. --- cmake/FindQCA.cmake | 11 +++++------ cmake/FindQScintilla.cmake | 33 +++++++++++++++++++++++---------- cmake/FindQwt.cmake | 24 +++++++++++++++--------- cmake/FindQwtPolar.cmake | 23 ++++++++++++++--------- 4 files changed, 57 insertions(+), 34 deletions(-) diff --git a/cmake/FindQCA.cmake b/cmake/FindQCA.cmake index e715188726e..4f6839b842b 100644 --- a/cmake/FindQCA.cmake +++ b/cmake/FindQCA.cmake @@ -31,16 +31,15 @@ else(QCA_INCLUDE_DIR AND QCA_LIBRARY) /usr/local/lib ) - if(APPLE) - if(QCA_LIBRARY AND QCA_LIBRARY MATCHES "qca(2)?-qt5\\.framework") - set(QCA_LIBRARY "${QCA_LIBRARY}" CACHE FILEPATH "QCA framework" FORCE) - set(QCA_INCLUDE_DIR "${QCA_LIBRARY}/Headers" CACHE FILEPATH "QCA framework headers" FORCE) - endif() - endif(APPLE) + set(_qca_fw) + if(QCA_LIBRARY MATCHES "/qca.*\\.framework") + string(REGEX REPLACE "^(.*/qca.*\\.framework).*$" "\\1" _qca_fw "${QCA_LIBRARY}") + endif() find_path(QCA_INCLUDE_DIR NAMES QtCrypto PATHS + "${_qca_fw}/Headers" ${LIB_DIR}/include "$ENV{LIB_DIR}/include" $ENV{INCLUDE} diff --git a/cmake/FindQScintilla.cmake b/cmake/FindQScintilla.cmake index bde0f6676bd..8826e1f2a81 100644 --- a/cmake/FindQScintilla.cmake +++ b/cmake/FindQScintilla.cmake @@ -24,16 +24,14 @@ IF(EXISTS QSCINTILLA_VERSION_STR) SET(QSCINTILLA_FOUND TRUE) ELSE(EXISTS QSCINTILLA_VERSION_STR) - FIND_PATH(QSCINTILLA_INCLUDE_DIR - NAMES Qsci/qsciglobal.h - PATHS - ${Qt5Core_INCLUDE_DIRS} - "${QT_INCLUDE_DIR}" - /usr/local/include - /usr/include - ) - - set(QSCINTILLA_LIBRARY_NAMES qscintilla2-qt5 libqt5scintilla2 libqscintilla2-qt5 qt5scintilla2 libqscintilla2-qt5.dylib) + set(QSCINTILLA_LIBRARY_NAMES + qscintilla2-qt5 + libqt5scintilla2 + libqscintilla2-qt5 + qt5scintilla2 + libqscintilla2-qt5.dylib + qscintilla2 + ) find_library(QSCINTILLA_LIBRARY NAMES ${QSCINTILLA_LIBRARY_NAMES} @@ -43,6 +41,21 @@ ELSE(EXISTS QSCINTILLA_VERSION_STR) /usr/lib ) + set(_qsci_fw) + if(QSCINTILLA_LIBRARY MATCHES "/qscintilla.*\\.framework") + string(REGEX REPLACE "^(.*/qscintilla.*\\.framework).*$" "\\1" _qsci_fw "${QSCINTILLA_LIBRARY}") + endif() + + FIND_PATH(QSCINTILLA_INCLUDE_DIR + NAMES Qsci/qsciglobal.h + PATHS + "${_qsci_fw}/Headers" + ${Qt5Core_INCLUDE_DIRS} + "${QT_INCLUDE_DIR}" + /usr/local/include + /usr/include + ) + IF(QSCINTILLA_LIBRARY AND QSCINTILLA_INCLUDE_DIR) SET(QSCINTILLA_FOUND TRUE) diff --git a/cmake/FindQwt.cmake b/cmake/FindQwt.cmake index 13f3b5b09c7..4f04637de44 100644 --- a/cmake/FindQwt.cmake +++ b/cmake/FindQwt.cmake @@ -12,15 +12,7 @@ # -FIND_PATH(QWT_INCLUDE_DIR NAMES qwt.h PATHS - /usr/include - /usr/local/include - "$ENV{LIB_DIR}/include" - "$ENV{INCLUDE}" - PATH_SUFFIXES qwt-qt4 qwt qwt5 qwt6 - ) - -set(QWT_LIBRARY_NAMES qwt-qt5 qwt6-qt5) +set(QWT_LIBRARY_NAMES qwt-qt5 qwt6-qt5 qwt) find_library(QWT_LIBRARY NAMES ${QWT_LIBRARY_NAMES} @@ -31,6 +23,20 @@ find_library(QWT_LIBRARY "$ENV{LIB}" ) +set(_qwt_fw) +if(QWT_LIBRARY MATCHES "/qwt.*\\.framework") + string(REGEX REPLACE "^(.*/qwt.*\\.framework).*$" "\\1" _qwt_fw "${QWT_LIBRARY}") +endif() + +FIND_PATH(QWT_INCLUDE_DIR NAMES qwt.h PATHS + "${_qwt_fw}/Headers" + /usr/include + /usr/local/include + "$ENV{LIB_DIR}/include" + "$ENV{INCLUDE}" + PATH_SUFFIXES qwt-qt4 qwt qwt5 qwt6 +) + IF (QWT_INCLUDE_DIR AND QWT_LIBRARY) SET(QWT_FOUND TRUE) ENDIF (QWT_INCLUDE_DIR AND QWT_LIBRARY) diff --git a/cmake/FindQwtPolar.cmake b/cmake/FindQwtPolar.cmake index 8956693c140..e09d14ca67f 100644 --- a/cmake/FindQwtPolar.cmake +++ b/cmake/FindQwtPolar.cmake @@ -12,15 +12,6 @@ # QWTPOLAR_INCLUDE_DIR = where to find headers # - -FIND_PATH(QWTPOLAR_INCLUDE_DIR NAMES qwt_polar.h PATHS - /usr/include - /usr/local/include - "$ENV{LIB_DIR}/include" - "$ENV{INCLUDE}" - PATH_SUFFIXES qwtpolar qwt - ) - FIND_LIBRARY(QWTPOLAR_LIBRARY NAMES qwtpolar PATHS /usr/lib /usr/local/lib @@ -28,6 +19,20 @@ FIND_LIBRARY(QWTPOLAR_LIBRARY NAMES qwtpolar PATHS "$ENV{LIB}/lib" ) +SET(_qwtpolar_fw) +IF (QWTPOLAR_LIBRARY MATCHES "/qwtpolar.*\\.framework") + STRING(REGEX REPLACE "^(.*/qwtpolar.*\\.framework).*$" "\\1" _qwtpolar_fw "${QWTPOLAR_LIBRARY}") +ENDIF () + +FIND_PATH(QWTPOLAR_INCLUDE_DIR NAMES qwt_polar.h PATHS + "${_qwtpolar_fw}/Headers" + /usr/include + /usr/local/include + "$ENV{LIB_DIR}/include" + "$ENV{INCLUDE}" + PATH_SUFFIXES qwtpolar qwt + ) + IF (QWTPOLAR_INCLUDE_DIR AND QWTPOLAR_LIBRARY) SET(QWTPOLAR_FOUND TRUE) ENDIF (QWTPOLAR_INCLUDE_DIR AND QWTPOLAR_LIBRARY)