2019-08-04 10:46:59 +08:00
|
|
|
|
# 特殊平台编译配置
|
|
|
|
|
|
2020-03-11 08:24:05 +08:00
|
|
|
|
有些平台编译比较特殊,不能使用 scons 编译,也不能使用 keil 编译。我们用一个配置文件描述项目,然后用脚本来编译或生成项目模板。目前有 web、ios 和 android 版本使用这种方式。
|
2019-08-04 10:46:59 +08:00
|
|
|
|
|
2020-08-17 11:06:08 +08:00
|
|
|
|
配置文件采用 JSON 格式,位置放在项目的根目录下,推荐命名为 build.json。
|
2019-08-04 10:46:59 +08:00
|
|
|
|
|
|
|
|
|
## 一、通用选项
|
|
|
|
|
|
|
|
|
|
* name 应用程序名称(不支持中文和特殊符号)。
|
|
|
|
|
* version 版本号。
|
2020-08-17 11:06:08 +08:00
|
|
|
|
* assets 资源所在的目录(相对于配置文件所在的目录,一般使用"res/assets")。
|
2020-03-11 08:26:35 +08:00
|
|
|
|
* sources 源文件列表(相对于配置文件所在的目录)。文件名支持通配符如*.c。只要添加应用程序本身和使用的第三方库的源码即可,AWTK 本身用到的代码会自动添加。
|
2020-02-24 08:21:11 +08:00
|
|
|
|
* includes 头文件搜索路径列表(相对于配置文件所在的目录)。
|
2019-08-04 10:46:59 +08:00
|
|
|
|
|
|
|
|
|
> sources 虽然是通用选项,但是不同平台,包含的源文件可能并不相同,此时应该放到具体平台之下。
|
|
|
|
|
|
|
|
|
|
## 二、web 平台选项
|
|
|
|
|
|
|
|
|
|
web 平台选项放在 web 子键下面,目前支持以下选项:
|
|
|
|
|
|
|
|
|
|
* app_type 目前可选择的值有。"c"表示用 C 语言开发的应用程序,"js"表示用 Javascript 开发的应用程序。
|
|
|
|
|
* config 用于指定一些运行参数。
|
|
|
|
|
* width 如果应用开发时没有做自适应性布局,可以用 width 参数指定画布的宽度。
|
|
|
|
|
* height 如果应用开发时没有做自适应性布局,可以用 height 参数指定画布的高度。
|
|
|
|
|
* defaultFont 缺省字体。缺省为"sans"。
|
|
|
|
|
* fontScale 字体的缩放比例。缺省为 1。
|
|
|
|
|
|
|
|
|
|
> config 中的参数也可以直接在 URL 中指定。如:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
http://192.168.1.117:8080/demoui/index.html?width=480&height=800&fontScale=0.8&defaultFont=serif
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
如:
|
|
|
|
|
|
|
|
|
|
用 C 语言写的 demoui 的配置文件:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
"web": {
|
2020-08-17 11:06:08 +08:00
|
|
|
|
"app_type": "c",
|
|
|
|
|
"sources": [
|
|
|
|
|
"demos/assets.c",
|
|
|
|
|
"demos/demo_ui_app.c"
|
|
|
|
|
],
|
2019-08-04 10:46:59 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
用 Javascript 写的 demoui 的配置文件:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
"web": {
|
|
|
|
|
"app_type":"js",
|
|
|
|
|
"sources":["demoui.js"],
|
|
|
|
|
"config" : {
|
|
|
|
|
"fontScale":"0.8",
|
|
|
|
|
"defaultFont":"sans"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 三、android 平台选项
|
|
|
|
|
|
|
|
|
|
android 平台选项放在 android 子键下面,目前支持以下选项:
|
|
|
|
|
|
|
|
|
|
* app_name 应用程序的完整名称。如:org.zlgopen.demoui
|
2020-08-17 11:06:08 +08:00
|
|
|
|
* cflags C 代码额外的编译参数。
|
2020-03-12 17:55:59 +08:00
|
|
|
|
* cppflags C++代码额外的编译参数。
|
2019-08-04 10:46:59 +08:00
|
|
|
|
|
|
|
|
|
示例:
|
|
|
|
|
|
|
|
|
|
```
|
2020-08-17 11:06:08 +08:00
|
|
|
|
"android": {
|
|
|
|
|
"app_name": "org.zlgopen.demoui",
|
|
|
|
|
"sources": [
|
|
|
|
|
"demos/assets.c",
|
|
|
|
|
"demos/demo_ui_app.c",
|
|
|
|
|
"demos/vg_common.inc",
|
|
|
|
|
"res/assets.inc",
|
|
|
|
|
"res/assets/__assets_default.inc"
|
|
|
|
|
]
|
|
|
|
|
},
|
2019-08-04 10:46:59 +08:00
|
|
|
|
```
|
|
|
|
|
|
2020-08-17 11:06:08 +08:00
|
|
|
|
## 四、 ios 平台选项
|
2020-03-12 17:55:59 +08:00
|
|
|
|
|
|
|
|
|
* app_name 应用程序的完整名称。如:org.zlgopen.demoui
|
2020-08-17 11:06:08 +08:00
|
|
|
|
* defines 宏定义。ios 和 android 定义方式有些不同,宏定义要放到 defines 中,而不能放到 cflags 和 cppflags。格式也有些不同,如:
|
2020-03-12 17:55:59 +08:00
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
"defines":" HAVE_CONFIG_H=1 BUILDING_LIBCURL=1 WITH_CURL=1 ",
|
|
|
|
|
```
|
|
|
|
|
## 五、完整示例
|
2019-08-04 10:46:59 +08:00
|
|
|
|
|
|
|
|
|
下面是 demoui 的完整示例
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
{
|
2020-08-17 11:06:08 +08:00
|
|
|
|
"name": "demoui",
|
|
|
|
|
"version": "1.0",
|
|
|
|
|
"assets": "res/assets",
|
|
|
|
|
"author": "xianjimli@hotmail.com",
|
|
|
|
|
"copyright": "Guangzhou ZHIYUAN Electronics Co.,Ltd.",
|
2019-08-04 10:46:59 +08:00
|
|
|
|
"web": {
|
2020-08-17 11:06:08 +08:00
|
|
|
|
"app_type": "c",
|
|
|
|
|
"sources": [
|
|
|
|
|
"demos/assets.c",
|
|
|
|
|
"demos/demo_ui_app.c"
|
|
|
|
|
],
|
|
|
|
|
"config": {
|
|
|
|
|
"fontScale": "0.8",
|
|
|
|
|
"defaultFont": "sans"
|
2020-03-17 07:11:43 +08:00
|
|
|
|
}
|
|
|
|
|
},
|
2020-08-17 11:06:08 +08:00
|
|
|
|
"android": {
|
|
|
|
|
"app_name": "org.zlgopen.demoui",
|
|
|
|
|
"sources": [
|
|
|
|
|
"demos/assets.c",
|
|
|
|
|
"demos/demo_ui_app.c",
|
|
|
|
|
"demos/vg_common.inc",
|
|
|
|
|
"res/assets.inc",
|
|
|
|
|
"res/assets/__assets_default.inc"
|
|
|
|
|
]
|
2020-03-17 07:11:43 +08:00
|
|
|
|
},
|
2020-08-17 11:06:08 +08:00
|
|
|
|
"ios": {
|
|
|
|
|
"app_name": "org.zlgopen.demoui",
|
|
|
|
|
"sources": [
|
|
|
|
|
"demos/assets.c",
|
|
|
|
|
"demos/demo_ui_app.c",
|
|
|
|
|
"demos/vg_common.inc",
|
|
|
|
|
"res/assets.inc",
|
|
|
|
|
"res/assets/__assets_default.inc"
|
|
|
|
|
]
|
2019-08-04 10:46:59 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
2020-03-11 08:24:05 +08:00
|
|
|
|
|
2020-08-17 11:06:08 +08:00
|
|
|
|
## 六、示例与参考
|
|
|
|
|
|
|
|
|
|
* [awtk-http-client 的配置文件](https://github.com/zlgopen/awtk-http-client/blob/master/build.json)
|
|
|
|
|
|
|
|
|
|
* [awtk-hello 的配置文件](https://github.com/zlgopen/awtk-hello/blob/master/build.json)
|
|
|
|
|
|
|
|
|
|
* [Android/IOS 原始插件](https://github.com/zlgopen/awtk-mobile-plugins/blob/master/build.json)
|