LibQQt系列之十八《Multi-link/add_base_manager.pri》

简介

这里写的这个base manager能够提供的函数,以及使用方法。
这一次是QQt的巨大改动,再次声明哦,QQt版权不属于任何个人和组织,属于自由软件,遵循GPL协议。
过去的Multi-link技术,强烈依赖QQt,并且在app中实现关于QQt的工作过程。
那其实很无奈,QQt从build路径里发布到sdk过程接管者很矛盾,所以不得已放在了app的qmake步骤里,可是这样的结果导致每个app在编译之前都会发布一次QQt,从build到sdk,如果同时编译app,就会导致写文件或者拷贝文件冲突。

新的Multi-link技术,解决了这个问题,
新的Multi-link技术抛开了对QQt的依赖,使用一套独立的函数实现lib的发布sdk过程和app的链接lib过程。
当然,如果没有QQt的编写实践也不会有Multi-link技术产生。也不会有对Multi-link的全面函数改观。
各位使用者,请对我,作者,饱怀感恩。
不过新的Multi-link技术也引入了一个新的小小问题,lib工程和app工程不能再同一个subdirs工程里编译了。这个实在是无奈之举,为了接口的简洁明晰,不得不在工程部署上提出一定的要求。
lib工程组单独编译,在一起单独编译都没有问题。
app工程组单独编译,在一起单独编译都没有问题。
可是lib和app工程不可以在一起编译,尤其指的是互相有依赖关系的lib和app。
不过现在的app工程可以非ordered编译,不会再承担QQt SDK的创制工作。
同时Multi-link对用户公开了library的deploy过程,跟随app的发布过程,用户通过调用add_deploy_library(libname),就可以实现将lib自动发布到app的运行时。

当然新的Multi-link技术,提供add_开头的极其丰富的函数,一般用户会调用只返回bool量的函数。
比如lib发布sdk 调用add_sdk(…)这样就可以啦。
Multi-link技术依赖的路径和过去几乎没有变化,名字稍微变了变。
APP_BUILD_ROOT
APP_DEPLOY_ROOT
LIB_SDK_ROOT
三个变量,解决了用户开发app和lib时所有的链接、发布问题。

使用方法

include(…/multi-link/add_base_manager.pri) 这肯定是开始啦。
用户应该知道Multi-link技术依赖以上三个重要的目录,找到app_configure.pri,请自行配置完成,一般一台开发机配置一次。
add_base_manager.pri提供了如下函数
这些函数一般是app用的,lib工程用的很少,就1-2个。
先说lib用的,app不会用,add_sdk() 这个只有lib会用,app是不会用的。
再说说通用的,add_version(), 这个函数一般通用。
然后说说app才会用的,这里就多了。
add_deploy()
add_deploy_library()
add_deploy_config()
add_header()
add_local_header()
add_library()
add_defines()
add_language()
add_zh_CN_en_US()
等等以上,内部还自动链接了QQt,包含了QQt的宏定义和头文件。
用户开发完App,只需要跟随App发布以来Lib即可,直接运行。
qmake竟然提供了如此强大的工程管理能力,过去真的没有。

你可能感兴趣的:(Multi-link,LibQQt,Qt,QQt,Multi-link)