aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kde-modules/KDEInstallDirs.cmake2
-rw-r--r--modules/ECMAddQch.cmake2
-rw-r--r--modules/ECMGeneratePriFile.cmake2
-rw-r--r--modules/ECMQueryQmake.cmake20
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}"