我正在使用PRE_TARGETDEPS生成源文件,我正在添加生成的源文件以SOURCES进行编译.
在qmake运行时,我的生成器的输出显然不存在,因此WARNING: Failure to find:每个要创建的源文件的qmake输出.
我怎么能平息这个警告,因为我知道我PRE_TARGETDEPS要生产这些文件?
或者,有没有更好的方法来使用qmake生成中间文件?
这是一个test.pro展示问题的完整文件:
TEMPLATE = lib
preprocess.commands += cat test.cc.in | sed 's/a/0/g' > test.0.cc ;
preprocess.commands += cat test.cc.in | sed 's/a/1/g' > test.1.cc ;
preprocess.depends = test.cc.in
QMAKE_EXTRA_TARGETS += preprocess
PRE_TARGETDEPS += preprocess
SOURCES = test.0.cc test.1.cc
Run Code Online (Sandbox Code Playgroud)
将其放在一个空文件夹中,并创建一个空test.cc.in文件.运行qmake,你会看到这些警告:
WARNING: Failure to find: test.0.cc
WARNING: Failure to find: test.1.cc
Run Code Online (Sandbox Code Playgroud) 有点麻烦-我在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文件夹),每一次我构建。
有任何想法吗?