QMake-如何在每次构建后添加构建后步骤

Jav*_*wag 5 c++ bash qmake build-script

有点麻烦-我在qmake中添加了以下几行,以便将其复制到Mac上的应用程序捆绑包中。

mac {
    QMAKE_POST_LINK = $$PWD/package_mac.sh
}
Run Code Online (Sandbox Code Playgroud)

.sh文件有时会运行,并且似乎可以正常运行(目前,它只是运行touch geese,它会geese在build目录中创建一个命名文件(非常好!)。

但是,它不会在每次构建时都运行,它似乎仅在文件更改时运行。说真的,我想办法让QMAKE我所有的游戏资源拷贝过来到每个平台上的正确位置(以便在Windows,应用软件包在Mac上,等等build文件夹),一次我构建。

有任何想法吗?

Ern*_*.14 1

您尝试过使用POST_TARGETDEPS(with QMAKE_EXTRA_TARGETS) 吗?这种方法的缺点是您必须创建某种虚拟文件(因为据我所知,.PHONY不支持qmake),您可能也应该clean稍后创建。

以你的例子为例:

mac {
    package-script = $$PWD/package_mac.sh
}

package-target.target = $$PWD/package.tmp
package-target.depends = FORCE
package-target.commands = $$package-script
Run Code Online (Sandbox Code Playgroud)

(有关类似的讨论,请参阅此问题。)