qmake如何检测当前项目是应用程序、共享库还是动态库?

How to detect if current project is an app, a shared library or dynamic library in qmake?

我有一个 .pri 文件,它既可以包含在库项目中,也可以包含在应用程序项目中。其中的一些细节取决于当前的构建类型(lib 或 app)。

检测当前项目是可执行文件、静态库还是动态库的推荐方法是什么?

What is the recommended way to detect if the current project is either an executable, a static library or a dynamic library?

捆绑的脚本会检查 TEMPLATECONFIG 变量。以下是执行此类测试的示例代码:

defineReplace(projectType) {
    contains(TEMPLATE, ".*lib") {
        CONFIG(shared, static|shared): return("dynlib")
        return("lib")
    }
    contains(TEMPLATE, ".*app"): return("app")
    return("other")
}

# example usage
prj = $$projectType()
equals(prj, "app"): message("Building the application")
else: message("Doing something different")