Skip to content

Commit a08523e

Browse files
committed
增加3rd自定义目录, 用于开发者自定义的库并在内部附上README附上使用方法.
1 parent 5acbdd6 commit a08523e

File tree

2 files changed

+75
-0
lines changed

2 files changed

+75
-0
lines changed

3rd/Makefile

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
.PHONY : build rebuild clean
2+
3+
default :
4+
@echo "======================================="
5+
@echo "Please use 'make build' command to build it.."
6+
@echo "Please use 'make rebuild' command to build it.."
7+
@echo "Please use 'make clean' command to clean all."
8+
@echo "======================================="
9+
10+
# 当您使用Make build、rebuild、clean时, 这里会被调用.
11+
# 所以, 您应该定义一套合理的脚本用于3rd内的库进行维护.
12+
13+
build:
14+
@echo "Done."
15+
16+
rebuild:
17+
@echo "Done."
18+
19+
clean:
20+
@echo "Done."

3rd/README.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
## 用户自定义库目录
2+
3+
此目录是用户自定义目录, cf开发者不会对3rd内部文件进行任何意义上的修改, 3rd内组织方式需要用户自行确定.
4+
5+
在使用者编译cf的make build, make rebuild, make clean等命令的时候将会同时传入到3rd的Makefile内.
6+
7+
3rd也为用户自定义库提供整合方式或联合编译(如有需要), 使用者在开发阶段可能会需要自己编写一套业务维护库.
8+
9+
3rd的库维护者应该(至少)维护上述三个编译命令并使其正常工作. 同时, 维护者也需要至少保证以下两点:
10+
11+
1. 3rd库的维护者(至少)需要保证引用名唯一性;
12+
13+
2. 3rd库的维护者(至少)需要保证无(除cf)的底层特殊依赖性;
14+
15+
注: 在无需编译的情况下, 使用者可以讲makefile看做一套自定义库代码整理集合. 有助于用户自行组织库目录.
16+
17+
## 如何在3rd维护自己的lua库?
18+
19+
1. 将文件copy到3rd目录下(这里假设直接copy到3rd根目录, 当然也可以自行构建目录结构)
20+
21+
2. 在main.lu文件内使用```local lib = require "3rd.you_lib_name"```
22+
23+
3. 开始使用.
24+
25+
## 如何在3rd维护自己的lua C库?
26+
27+
1. 按照lua C API开发模式开发完毕(可参考luaclib内的文件).
28+
29+
2. 将源码copy到3rd目录下, 并在修改```3rd/Makefile```进行进行联合编译.
30+
31+
3. 编译完成之后, 执行自己定义的脚本整理文件与路径.
32+
33+
4. 在main.lu文件内使用```local lib = require "3rd.you_lib_name"```
34+
35+
5. 开始使用.
36+
37+
## 最简单3rd用户库编写实例
38+
39+
首先, 在3rd目录下新建一个名为```printer.lua```的文件, 其内容如下:
40+
41+
```lua
42+
return function (...)
43+
return print(...)
44+
end
45+
```
46+
47+
然后, 清空```script/main.lua```内的所有内容, 然后输入以下内容:
48+
49+
```lua
50+
local printer = require "3rd.printer"
51+
52+
printer("这是我在3rd内编写的库")
53+
```
54+
55+
最后, 使用```./cfadmin``` 命令运行并查看效果.

0 commit comments

Comments
 (0)