e0590a0b56
kf6-kcoreaddons 6.28.0 requires ECM >= 6.28.0 but the vendored ECM source/ was still 6.10.0: the sync engine skipped it because ECM's version marker is a bare set(VERSION "X.Y.Z") that the parser didn't recognize (only KF_VERSION / PROJECT_VERSION / RELEASE_SERVICE_VERSION). Re-lay ECM from its 6.28.0 source.tar (pure cmake modules, no Redox port) and teach both the sync engine and the validator to read set(VERSION) so this class is caught, not silently skipped.
54 lines
1.9 KiB
CMake
54 lines
1.9 KiB
CMake
cmake_policy(VERSION 3.16)
|
|
|
|
if (${ECM_GLOBAL_FIND_VERSION} VERSION_GREATER_EQUAL 5.93)
|
|
message(DEPRECATION "ECMQueryQmake.cmake is deprecated since 5.93, please use ECMQueryQt.cmake instead.")
|
|
endif()
|
|
|
|
include(${CMAKE_CURRENT_LIST_DIR}/QtVersionOption.cmake)
|
|
find_package(Qt${QT_MAJOR_VERSION}Core QUIET)
|
|
|
|
if (Qt5Core_FOUND)
|
|
set(_qmake_executable_default "qmake-qt5")
|
|
endif ()
|
|
if (TARGET Qt5::qmake)
|
|
get_target_property(_qmake_executable_default Qt5::qmake LOCATION)
|
|
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)
|
|
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}"
|
|
RESULT_VARIABLE return_code
|
|
OUTPUT_VARIABLE output
|
|
)
|
|
if(return_code EQUAL 0)
|
|
string(STRIP "${output}" output)
|
|
file(TO_CMAKE_PATH "${output}" output_path)
|
|
set(${result_variable} "${output_path}" PARENT_SCOPE)
|
|
else()
|
|
message(WARNING "Failed call: ${QMAKE_EXECUTABLE} -query \"${qt_variable}\"")
|
|
message(FATAL_ERROR "QMake call failed: ${return_code}")
|
|
endif()
|
|
endfunction()
|