mirror of
https://github.com/RYDE-WORK/ballistica.git
synced 2026-01-25 00:13:27 +08:00
36 lines
1.7 KiB
Markdown
36 lines
1.7 KiB
Markdown
# Ballistica Feature Sets
|
|
|
|
This directory contains a config file for each feature-set in the project.
|
|
Feature sets are high level subsets of an engine or app which can be easily
|
|
added, removed, duplicated, etc.
|
|
|
|
### Naming Conventions
|
|
|
|
Feature sets should have lowercase alphanumeric names with underscores between
|
|
words. An example would be `foo_bar`. Variations of this name may be used
|
|
throughout code; for example `FooBar` may be used in class names where
|
|
camel-case is standard or `foobar` may be used in Python module names where
|
|
brevity is desirable.
|
|
|
|
### Locations
|
|
|
|
The build system looks for feature-set files in specific predefined locations
|
|
with specific naming conventions:
|
|
|
|
- **Feature Set Definition**: To define feature set `foo_bar`, a file must exist
|
|
in this directory called `featureset_foo_bar.py`.
|
|
- **Python Package**: If feature set `foo_bar` provides a Python package, it
|
|
should be a directory named `bafoobar` ('ba' prefix, name with spaces removed)
|
|
that lives under [src/assets/ba_data/python](../../src/assets/ba_data/python).
|
|
- **Native Code**: If feature set `foo_bar` provides a native component (C++
|
|
code or otherwise) it should live in a directory named `foo_bar` (unmodified
|
|
feature set name) under [src/ballistica](../../src/ballistica).
|
|
- **Meta Package**: If feature set `foo_bar` provides a meta package (that is,
|
|
code or data used to generate other source code), it should be a directory
|
|
named `bafoobarmeta` ('ba' prefix, name with spaces removed, 'meta' suffix)
|
|
that lives under [src/meta](../../src/meta).
|
|
- **Test Package**: If feature set `foo_bar` provides a set of tests, it should
|
|
be a directory named `test_foo_bar` ('test_' prefix, unmodified feature set
|
|
name) under [tests](../../tests).
|
|
|