我正在开发自定义库,我希望用户可以通过添加:
来使用它CONFIG += mylib
到他们的专业档案。这可以通过将mylib.prf文件安装到%QTDIR%/ mkspec / features来完成。我已经在Qt Mobility项目中检查了如何创建和安装这样的文件,但有一点我想做不同的事情。
如果我正确理解Qt Mobility的pro / pri文件,在示例项目中他们并不真正使用CONFIG + = mobility,而是将QtMobility源添加到包含路径并与主库项目共享* .obj目录。对于我的库,我希望有尽可能独立项目的示例,即在编译和安装MyLib后可以从任何地方编译的项目。
我有以下目录结构:
mylib
|
|- examples
|- src
|- tests
\- mylib.pro
似乎实现上述描述的最简单方法是创建mylib.pro,如下所示:
TEMPLATE = subdirs
SUBDIRS += src
SUBDIRS += examples
tests:SUBDIRS += tests
在构建src之后以某种方式强制调用“cd src&& make install”。这样做的最佳方式是什么?
当然,欢迎在示例编译之前对自动库部署提出任何其他建议。
答案 0 :(得分:1)
您可以创建另一个目标并将其添加到SUBDIRS变量,如果您意识到普通.pro文件也可以是目标,则该变量很有效。我会建议这样的事情
TEMPLATE = subdirs
CONFIG += ordered
SUBDIRS += src
tests:SUBDIRS += tests
SUBDIRS += src/install.pro
SUBDIRS += examples
在这种情况下,我确保通过config变量添加按顺序执行子目标。我把测试编译到安装之前,这对我来说很有意义 - 你需要在继续安装之前测试代码是否正常工作。重要的补充是直接链接到源目录中的install.pro文件。 (如果你想保持src清洁,也可以将它放在本地目录中。)在那里,你应该有命令来安装你想要安装的组件。
在这种情况下,我发现将源和标题列表分隔出来可以包含在多个.pro文件中的文件通常会有所帮助:
的src / sources.pri:
HEADERS += foo.h
SOURCES += foo.c
的src / src.pro
include(sources.pri)
#...
的src / install.pro
include(sources.pri)
#...