Deploy Module SDK Include files

First, manually build the SDKInclude directory path where U want deploy your module, like:

{root dir}/sdk/include

And add a text file sign.txt into SDKInclude Directory, its content just a symbol:

#

Second, add a line to .pro:

SDKInclude = $$PWD\..\..\sdk\include

Then add:

# SDK Deploy -------------------------------------------------------------------------------------------
# 作用
#
# a. 将头文件发布到SDK目录下

h_searchlist += *.h
for(searchvar, h_searchlist) {
 hlist += $$files($$searchvar, true)
}
#message($$hlist"(hlist)")
for (hvar, hlist) {
 _desDirpath = $$SDKInclude/$$TARGET # 目标头文件根目录
 _srcFilepath = $$absolute_path($$hvar) # 源头文件绝对路径
 _desReleFilepath = $$relative_path($$_srcFilepath, $$_desDirpath) # sdk 头文件引用路径
 _srcReleFilepath = $$relative_path($$_srcFilepath, $$_PRO_FILE_PWD_) # 源头文件相对于项目的相对路径
 _desFilepath = $$_desDirpath/$$_srcReleFilepath # 目标头文件的绝对路径

 SDK_H_FILE_CONTENT = "$$cat($$SDKInclude/sign.txt)include \"../$$_desReleFilepath\""
 write_file($$_desFilepath, SDK_H_FILE_CONTENT)

# message($$SDK_H_FILE_CONTENT)
}

# \end SDK Deploy -------------------------------------------------------------------------------------------

Last, run qmake command on .pro by right mouse-click, and U will get:

2016-04-10_13-31-46.png

And every *.h file in SDKInclude will becomes:

#include "../../../../src/{path}/file_name.h"

Update:

  • Actually, there is another efficient way to add # symbol to deployed header file, and it says:
SDK_H_FILE_CONTENT = $$LITERAL_HASH"include \"../$$_desReleFilepath\""

Yeah, it simply just use

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • NAME dnsmasq - A lightweight DHCP and caching DNS server....
    ximitc阅读 2,929评论 0 0
  • 闲灯儿阅读 563评论 10 2
  • 创作是欢乐的,沉浸于创作的过程,感知事情因你的行动而发生改变,那种日更的迭代,这或许就是成就感的重量吧。 特别的跨...
    捡石头的村童阅读 147评论 0 0
  • 开启内心喜悦的引擎,安驻身心,轻松愉快地回忆“我”今天种下的好种子。 感恩:感恩老师苦口婆心地教导。感恩父母赐予我...
    快乐小屋刘丽华阅读 222评论 0 1