mirror of
https://gitee.com/zlgopen/awtk.git
synced 2024-12-05 13:38:15 +08:00
95 lines
2.1 KiB
Markdown
95 lines
2.1 KiB
Markdown
|
# 利用 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
|