Skip to content
sbYm edited this page Mar 21, 2019 · 4 revisions

All path is (and must) relative to current kendryte-package.json

Common Fields

Project type

You must select this before any other operation, change this during development will reset other settings to defaults.
There are three choices:

  1. Library: if you want to share a library, and it's open-source.
  2. Prebuilt Library: same as above but closed-source.
  3. Executable: if you want to create an executable program.

Project name

Only allow to use: 0-9, a-z, -(minus), _(underscore)
You should name your library like: ${userName}_${libraryName}, it should match your github repo (if any).

Current version / Homepage

Simple informational field, Only usefull if you publish your library.

Prebuilt library Project Fields

Prebuilt library file

Set your prebuilt library file path. This is only visible if your project type is

Library Project Fields

Executable Project Fields

Common Compile & Link Fields

These fields will invisible from Prebuilt project, it does not need compile.

Arguments for gcc, g++, both gcc and g++, ld

Raw arguments passthrough to these programs. One argument each line. (separator is not a space char, but a newline!)

Headers directory

You can set several folders (one per line), you will able to use #include relative to these folders.
This will limited to your code, do not affect projects who include your code as library.

Source files

Set which file(s) will be compiled. One file each line. Must use / but not \ as path separator.

You can use glob, eg:

  1. src/*.c to match all .c file inside src folder.
  2. lib/**/*.c like 1. But also include all it's child folders.
  3. main.c match only main.c in project root folder.

LD file path

You can set a ld file if you do not use SDK.

C/C++ Definitions

Create user configurable #define in your project. Mainly used for source-code library. Because people who include your library can change this without modify your code.

You can set two kined of constants:

  1. string: MOTD_STRING:str=hello world
  2. other: IS_DEBUG:any=1 The only different is str will add double quote around the value. Currently, :any cannot be omitted.