diff --git a/modules/ECMFindQMLModule.cmake.in b/modules/ECMFindQMLModule.cmake.in --- a/modules/ECMFindQMLModule.cmake.in +++ b/modules/ECMFindQMLModule.cmake.in @@ -26,23 +26,32 @@ #============================================================================= include(FindPackageHandleStandardArgs) -include("${ECM_MODULE_DIR}/ECMQueryQmake.cmake") -query_qmake(qt_binaries_dir QT_INSTALL_BINS) +option (ECM_DISABLE_QMLPLUGINDUMP "Do not use qmlplugindump which may segfault in some sandboxed environments" OFF) -find_program(QMLPLUGINDUMP_PROGRAM NAMES qmlplugindump HINTS ${qt_binaries_dir}) -if(NOT QMLPLUGINDUMP_PROGRAM) - message(WARNING "Could not find qmlplugindump. It is necessary to look up qml module dependencies.") -endif() - -execute_process(COMMAND "${QMLPLUGINDUMP_PROGRAM}" "@MODULE_NAME@" "@VERSION@" ERROR_VARIABLE ERRORS_OUTPUT OUTPUT_VARIABLE DISREGARD_VARIABLE RESULT_VARIABLE ExitCode) - -if(ExitCode EQUAL 0) +if(ECM_DISABLE_QMLPLUGINDUMP) + message(NOTICE "@GENMODULE@: qmlplugindump disabled - assuming dependency is available as >= @VERSION@.") set(@GENMODULE@_FOUND TRUE) - set(@GENMODULE@_VERSION "${PACKAGE_FIND_VERSION}") + set(@GENMODULE@_VERSION @VERSION@) else() - message(STATUS "qmlplugindump failed for @MODULE_NAME@.") - set(@GENMODULE@_FOUND FALSE) + include("${ECM_MODULE_DIR}/ECMQueryQmake.cmake") + + query_qmake(qt_binaries_dir QT_INSTALL_BINS) + + find_program(QMLPLUGINDUMP_PROGRAM NAMES qmlplugindump HINTS ${qt_binaries_dir}) + if(NOT QMLPLUGINDUMP_PROGRAM) + message(WARNING "Could not find qmlplugindump. It is necessary to look up qml module dependencies.") + endif() + + execute_process(COMMAND "${QMLPLUGINDUMP_PROGRAM}" "@MODULE_NAME@" "@VERSION@" ERROR_VARIABLE ERRORS_OUTPUT OUTPUT_VARIABLE DISREGARD_VARIABLE RESULT_VARIABLE ExitCode) + + if(ExitCode EQUAL 0) + set(@GENMODULE@_FOUND TRUE) + set(@GENMODULE@_VERSION "${PACKAGE_FIND_VERSION}") + else() + message(STATUS "qmlplugindump failed for @MODULE_NAME@.") + set(@GENMODULE@_FOUND FALSE) + endif() endif() find_package_handle_standard_args(@GENMODULE@