envs.md 2.3 KB

环境变量

1. DADK为什么设置环境变量?

在构建用户程序的过程中,DADK会设置一些环境变量,使得:

  • 构建脚本能够知道把构建产物放到哪里。
  • 构建脚本能够知道它的依赖项的构建输出目录在哪里,以便引用它们。

2. 环境变量的分类

在DADK构建用户程序的过程中,环境变量分为两种:

  • 全局环境变量:这些变量在所有构建任务中都可用。
  • 任务环境变量:这些变量仅在当前任务中可用。通过dadk用户程序配置文件envs字段设置。

3. 全局环境变量

3.1 变量列表

DADK在构建用户程序的过程中,将会设置以下全局环境变量:

  • DADK_CACHE_ROOT:DADK的缓存根目录。您可以在编译脚本中,通过引用该环境变量,来获得DADK的缓存根目录。
  • DADK_BUILD_CACHE_DIR_任务名_任务版本:DADK的任务构建结果缓存目录。当您要引用其他软件库的构建结果时,可以通过该环境变量来获得。 同时,您也要在构建您的app时,把构建结果放到您的软件库的构建结果缓存目录(通过对应的环境变量获得)中。
  • DADK_SOURCE_CACHE_DIR_任务名_任务版本:DADK的某个任务的源码目录。当您要引用其他软件库的源码目录时,可以通过该环境变量来获得。
  • DADK_CURRENT_BUILD_DIR:当前任务的构建结果输出目录。您可以在编译脚本中,通过引用该环境变量,来获得当前任务的构建结果输出目录。构建完成时,您的构建脚本应当把构建结果放到该目录中。

3.2 名称字符替换

由于环境变量的名称不能包含某些字符,而全局环境变量会引用任务的名称、版本号信息。 因此,在设置环境变量时,DADK会对变量名称进行字符替换。

具体规则如下:

  • 将所有字母转为大写。
  • 按照下表对其他字符进行替换
原字符 替换字符
. _
- _
\t _
空格 _
+ _
* _

举例:对于任务libc-0.1.0,其构建结果缓存目录的全局环境变量名为DADK_BUILD_CACHE_DIR_LIBC_0_1_0