This commit adds a pair of scripts, find_apps.py and build_apps.py. These scripts are intended to be used in various CI jobs, building multiple applications with different configurations and targets. The first script, find_apps.py, is used to prepare the list of builds: 1. It finds apps for the given build system. 2. For each app, it finds configurations (sdkconfig files) which need to be built. 3. It filters out the apps and configurations which are not compatible with the given target. 4. It outputs the list of builds into stdout or a file. Currently the format is a list of lines, each line a JSON string. In the future, the tool can be updated to output YAML files. The lists of builds can be concatenated and processed with standard command line tools, like sed. The second script, build_apps.py, executes the builds from the list. It can execute a subset of builds based on --parallel-count and --parallel-index arguments. These two scripts are intended to replace build_examples_make, build_examples_cmake, and the custom unit-test-app logic (in the Makefile and idf_ext.py). Closes IDF-641
31 lines
644 B
Python
31 lines
644 B
Python
from .common import (
|
|
BuildItem,
|
|
BuildSystem,
|
|
BuildError,
|
|
ConfigRule,
|
|
config_rules_from_str,
|
|
setup_logging,
|
|
DEFAULT_TARGET,
|
|
)
|
|
from .cmake import CMakeBuildSystem, BUILD_SYSTEM_CMAKE
|
|
from .make import MakeBuildSystem, BUILD_SYSTEM_MAKE
|
|
|
|
BUILD_SYSTEMS = {
|
|
BUILD_SYSTEM_MAKE: MakeBuildSystem,
|
|
BUILD_SYSTEM_CMAKE: CMakeBuildSystem,
|
|
}
|
|
|
|
__all__ = [
|
|
"BuildItem",
|
|
"BuildSystem",
|
|
"BuildError",
|
|
"ConfigRule",
|
|
"config_rules_from_str",
|
|
"setup_logging",
|
|
"DEFAULT_TARGET",
|
|
"CMakeBuildSystem",
|
|
"BUILD_SYSTEM_CMAKE",
|
|
"MakeBuildSystem",
|
|
"BUILD_SYSTEM_MAKE",
|
|
"BUILD_SYSTEMS",
|
|
]
|