首页 > 解决方案 > 您如何检查您是否处于交互式 qmake 会话中?我想使用 qmake prompt()

问题描述

我想用这个 mockup.pro 文件进行交互式“qmake -makefile 会话”:

message("Plugin setup,")
message("choose the plugins you want to be compiled :")

answer=$$prompt("Dummy ? (y/N)")
equals(answer,"y"){
    SUBDIRS+= dummy
}

从交互式 shell 启动时这很好,但是 AFAIK,qmake 从“编译输出”窗格中的 QtCreator 输出启动,并且不是交互式的,因此提示块。

这支持吗?

QMake 3.1、QtCreator 4.11


当我检查时:

IS_INT = $$system(echo $-)

IS_INT 始终为空,即辅助 shell 不是交互式的。

标签: qtqmakeinteractive

解决方案


正如@hyde 所建议的那样,并且在另一个方向上,为了不打扰打包者或建立农场,将允许用户使用标志 CONFIG+=INTERACTIVE_QMAKE 获得指导。

INTERACTIVE_QMAKE{
    answer=$$prompt("Dummy ? (y/N)")
    equals(answer,"y"):{
        SUBDIRS+= dummy
    }
}
!INTERACTIVE_QMAKE{
    # The plugins you want compiled by default
    SUBDIRS+= dummy
}

CMake 正在为 Qt6 开发,这将做到这一点。


推荐阅读