mirror of
https://github.com/hathach/tinyusb.git
synced 2025-01-17 05:32:55 +08:00
64 lines
1.6 KiB
Markdown
64 lines
1.6 KiB
Markdown
ceedling-subprojects
|
|
====================
|
|
|
|
Plugin for supporting subprojects that are built as static libraries. It continues to support
|
|
dependency tracking, without getting confused between your main project files and your
|
|
subproject files. It accepts different compiler flags and linker flags, allowing you to
|
|
optimize for your situation.
|
|
|
|
First, you're going to want to add the extension to your list of known extensions:
|
|
|
|
```
|
|
:extension:
|
|
:subprojects: '.a'
|
|
```
|
|
|
|
Define a new section called :subprojects. There, you can list as many subprojects
|
|
as you may need under the :paths key. For each, you specify a unique place to build
|
|
and a unique name.
|
|
|
|
```
|
|
:subprojects:
|
|
:paths:
|
|
- :name: libprojectA
|
|
:source:
|
|
- ./subprojectA/first/dir
|
|
- ./subprojectA/second/dir
|
|
:include:
|
|
- ./subprojectA/include/dir
|
|
:build_root: ./subprojectA/build/dir
|
|
:defines:
|
|
- DEFINE_JUST_FOR_THIS_FILE
|
|
- AND_ANOTHER
|
|
- :name: libprojectB
|
|
:source:
|
|
- ./subprojectB/only/dir
|
|
:include:
|
|
- ./subprojectB/first/include/dir
|
|
- ./subprojectB/second/include/dir
|
|
:build_root: ./subprojectB/build/dir
|
|
:defines: [] #none for this one
|
|
```
|
|
|
|
You can specify the compiler and linker, just as you would a release build:
|
|
|
|
```
|
|
:tools:
|
|
:subprojects_compiler:
|
|
:executable: gcc
|
|
:arguments:
|
|
- -g
|
|
- -I"$": COLLECTION_PATHS_SUBPROJECTS
|
|
- -D$: COLLECTION_DEFINES_SUBPROJECTS
|
|
- -c "${1}"
|
|
- -o "${2}"
|
|
:subprojects_linker:
|
|
:executable: ar
|
|
:arguments:
|
|
- rcs
|
|
- ${2}
|
|
- ${1}
|
|
```
|
|
|
|
That's all there is to it! Happy Hacking!
|