awtk/docs/app_helper_usage.md
2020-09-06 16:17:16 +08:00

95 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 利用 app_helper 编写 SConstruct
编写 SConstruct 是一件繁琐的事情。我们把一些公共的功能,提取到 app_helper 中,让 SConstruct 稍微简化一点:
## 一、示例
```python
import os
import scripts.app_helper as app
helper = app.Helper(ARGUMENTS);
helper.add_libs(['sqlite3']).add_cpppath([os.path.join(helper.APP_ROOT, '3rd')]).call(DefaultEnvironment)
SConscript(['src/SConscript', '3rd/sqlite3/SConscript'])
```
## 二、helper API 介绍
* add_deps 增加依赖的第三方库
```python
DEPENDS_LIBS = [
{
"root" : '../awtk-restful-httpd',
'shared_libs': ['httpd'],
'static_libs': []
}
]
helper.add_deps(DEPENDS_LIBS)
```
* add_libs 增加依赖的库。
```
helper.add_libs(['sqlite3'])
```
* set_dll_def 设置动态库的 def 文件名。
```
helper.set_dll_def('src/table_view.def')
```
* add_cpppath 增加头文件搜索路径。
```
helper.add_cpppath([os.path.join(helper.APP_ROOT, '3rd')])
```
* add_libpath 增加库的搜索路径。
* add_cxxflags 增加 C++预处理参数。
* add_ccflags 增加 C 预处理参数。
* add_linkflags 增加链接参数。
* add_platform_libs 增加特定平台的需要的库。
```
helper.add_platform_libs('Windows', ['ws2_32'])
```
* add_platform_cpppath 增加特定平台的需要的头文件搜索路径。
* add_platform_libpath 增加特定平台的需要的库搜索路径。
* add_platform_ccflags 增加特定平台的需要的 C 预处理参数。
* add_platform_cxxflags 增加特定平台的需要的 C++预处理参数。
* add_platform_linkflags 增加特定平台的需要的链接参数。
## 三、注意事项
* 平台相关的函数plat 的取值:
* Windows 表示 Windows
* Linux 表示 Linux
* Darwin 表示 MacOS
* helper 支持链式调用call 函数需要放到最后。
```
helper.add_libs(['sqlite3']).add_cpppath([os.path.join(helper.APP_ROOT, '3rd')]).call(DefaultEnvironment)
```
## 四、参考
* https://github.com/zlgopen/awtk-hello/blob/master/SConstruct
* https://github.com/zlgopen/awtk-mvvm-c-hello/blob/master/SConstruct
* https://github.com/zlgopen/awtk-widget-table-view/blob/master/SConstruct