什么是3rd目录?
此目录是用户自定义目录, cf开发者不会对3rd内部文件进行任何意义上的修改, 3rd内组织方式需要用户自行确定.
在使用者编译cf的make build, make rebuild, make clean等命令的时候将会同时传入到3rd的Makefile内.
3rd也为用户自定义库提供整合方式或联合编译(如有需要), 使用者在开发阶段可能会需要自己编写一套业务维护库.
3rd的库维护者应该(至少)维护上述三个编译命令并使其正常工作. 同时, 维护者也需要至少保证以下两点:
1. 3rd库的维护者(至少)需要保证引用名唯一性;
2. 3rd库的维护者(至少)需要保证无(除cf)的底层特殊依赖性;
注: 在无需编译的情况下, 使用者可以讲makefile看做一套自定义库代码整理集合. 有助于用户自行组织库目录.
如何在3rd维护自己的lua库?
将文件copy到3rd目录下(这里假设直接copy到3rd根目录, 当然也可以自行构建目录结构)
在main.lu文件内使用
local lib = require "3rd.you_lib_name"
开始使用.
如何在3rd维护自己的lua C库?
按照lua C API开发模式开发完毕(可参考luaclib内的文件).
将源码copy到3rd目录下, 并在修改
3rd/Makefile
进行进行联合编译.编译完成之后, 执行自己定义的脚本整理文件与路径.
在main.lu文件内使用
local lib = require "3rd.you_lib_name"
开始使用.
最简单3rd用户库编写实例
首先, 在3rd目录下新建一个名为printer.lua
的文件, 其内容如下:
return function (...)
return print(...)
end
然后, 清空script/main.lua
内的所有内容, 然后输入以下内容:
local printer = require "3rd.printer"
printer("这是我在3rd内编写的库")
最后, 使用./cfadmin
命令运行并查看效果.
依赖
对于具体依赖库查找方法, 请参考luaclib目录内的编译与链接方式.