diff options
| -rw-r--r-- | kde-modules/KDEInstallDirs.cmake | 2 | ||||
| -rw-r--r-- | modules/ECMAddQch.cmake | 2 | ||||
| -rw-r--r-- | modules/ECMGeneratePriFile.cmake | 2 | ||||
| -rw-r--r-- | modules/ECMQueryQmake.cmake | 20 | 
4 files changed, 20 insertions, 6 deletions
| diff --git a/kde-modules/KDEInstallDirs.cmake b/kde-modules/KDEInstallDirs.cmake index 8029f0af..b0e651f6 100644 --- a/kde-modules/KDEInstallDirs.cmake +++ b/kde-modules/KDEInstallDirs.cmake @@ -455,7 +455,7 @@ include("${ECM_MODULE_DIR}/ECMQueryQmake.cmake")  set(_default_KDE_INSTALL_USE_QT_SYS_PATHS OFF)  if(NOT DEFINED KDE_INSTALL_USE_QT_SYS_PATHS) -    query_qmake(qt_install_prefix_dir QT_INSTALL_PREFIX) +    query_qmake(qt_install_prefix_dir QT_INSTALL_PREFIX TRY)      if(qt_install_prefix_dir STREQUAL "${CMAKE_INSTALL_PREFIX}")          message(STATUS "Installing in the same prefix as Qt, adopting their path scheme.")          set(_default_KDE_INSTALL_USE_QT_SYS_PATHS ON) diff --git a/modules/ECMAddQch.cmake b/modules/ECMAddQch.cmake index 2177bf0f..f5a09dff 100644 --- a/modules/ECMAddQch.cmake +++ b/modules/ECMAddQch.cmake @@ -289,7 +289,7 @@ function(_ecm_ensure_qt_qch_targets)          # get Qt version, if any          find_package(Qt5Core CONFIG QUIET)          # lookup tag files -        query_qmake(qt_docs_dir QT_INSTALL_DOCS) +        query_qmake(qt_docs_dir QT_INSTALL_DOCS TRY)          find_path(_qtcoreTagsPath qtcore/qtcore.tags              PATHS                  ${qt_docs_dir} diff --git a/modules/ECMGeneratePriFile.cmake b/modules/ECMGeneratePriFile.cmake index a64fa62f..61012185 100644 --- a/modules/ECMGeneratePriFile.cmake +++ b/modules/ECMGeneratePriFile.cmake @@ -102,7 +102,7 @@  set(_askqmake OFF)  if(NOT DEFINED KDE_INSTALL_USE_QT_SYS_PATHS)      include(ECMQueryQmake) -    query_qmake(qt_install_prefix_dir QT_INSTALL_PREFIX) +    query_qmake(qt_install_prefix_dir QT_INSTALL_PREFIX TRY)      if(qt_install_prefix_dir STREQUAL "${CMAKE_INSTALL_PREFIX}")          set(_askqmake ON)      endif() diff --git a/modules/ECMQueryQmake.cmake b/modules/ECMQueryQmake.cmake index fa0949df..74a6df87 100644 --- a/modules/ECMQueryQmake.cmake +++ b/modules/ECMQueryQmake.cmake @@ -9,12 +9,26 @@ endif()  set(QMAKE_EXECUTABLE ${_qmake_executable_default}      CACHE FILEPATH "Location of the Qt5 qmake executable") +# Helper method  # This is not public API (yet)! +# Usage: query_qmake(<result_variable> <qt_variable> [TRY]) +# Passing TRY will result in the method not failing fatal if no qmake executable +# has been found, but instead simply returning an empty string  function(query_qmake result_variable qt_variable) +    set(options TRY) +    set(oneValueArgs ) +    set(multiValueArgs ) + +    cmake_parse_arguments(ARGS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) +      if(NOT QMAKE_EXECUTABLE) -        set(${result_variable} "" PARENT_SCOPE) -        message(WARNING "Should specify a qmake Qt5 binary. Can't check ${qt_variable}") -        return() +        if(ARGS_TRY) +            set(${result_variable} "" PARENT_SCOPE) +            message(STATUS "No qmake Qt5 binary found. Can't check ${qt_variable}") +            return() +        else() +            message(FATAL_ERROR "No qmake Qt5 binary found. Can't check ${qt_variable} as required") +        endif()      endif()      execute_process(          COMMAND ${QMAKE_EXECUTABLE} -query "${qt_variable}" | 
