mirror of
https://github.com/armbian/build
synced 2025-09-24 19:47:06 +07:00
Add option BUILD_ONLY to the build compile scripts (#4455)
* Rename default-build.sh -> build-tasks.sh This commit is just a file rename without any further code change before this script will be refactored to improve build task structure for partial building. Refers to #4421 * Prepare build-tasks.sh for moving each build step to a dedicated function This commit is an intermediate update to reflect NO functional code changes of the particular build steps before moving the unmodified code into the appropriate function by copy/paste. Only build_get_boot_sources() has slightly changed to an appropriate if / fi structure. Note: This .sh file is bash syntactically not correct. The purpose of this commit is to leverage code review. Refers to #4421 * Update build-tasks.sh function do_default() for filtered function calls Function do_default(): - Add $1 function parameter for filtering build tasks and assign this to local variable $_buildOnly - move "pseudo inline"-functions to the beginning of the script - replace the "inline functions" by filtered function calls - add BUILD_ONLY variable to the build epilog print Refers to #4421 * Complete refactoring of build-tasks.sh for BUILD_ONLY support - update indentation of functions build_get_boot_sources() and build_get_kernel_sources() to meet code style - rename original function do_default() -> build_main() - create new do_default() for backward compatibility and comment this one as deprecated - call build_main "" from this deprecated do_default() - cli-entrypoint.sh: - update call of do_default by build_main "${BUILD_ONLY}" closes #4421 * Print final runtime as min:seconds As with filtered build runtimes may get below a minute, we would like to get the runtime printed with seconds. * Delete duplicate messages * Fix the confusion of the choice of building the kernel * Fix a typo in comment on do_default() * Backward compatibility of KERNEL_ONLY and new BUILD_ONLY keys. * interactive_config: replace KERNEL_ONLY on BUILD_ONLY * Fix: Correct verification when an image is created * Abort with error if BUILD_ONLY contains invalid build task names - add function build_validate_buildOnly() - call this function from build_main - fix position of KERNEL_ONLY / BUILD_ONLY contradiction message (did log empty _buildOnly content all time) - improve local variable names * Improve final error message to list valid BUILD_ONLY task names * Improve error message logging - collect multiple invalid BUILD_ONLY task names in a single error message - log final message for valid BUILD_ONLY task names on ext level - simple exit with exit code 1 in case of error * The RELEASE variable cannot be empty. Additional conditions for checking RELEASE are unacceptable. * Fix build_main() to use BUILD_ONLY inside instead of local var set from parameter $1 - build-tasks.sh: - build_main(): - don't take parameter $1 - replace usage of $_buildOnly by $BUILD_ONLY - added info messages on KERNEL_ONLY cases in case BUILD_ONLY was propagated - build_validate_buildOnly(): - remove parameter $2 - assign _buildOnly from global BUILD_ONLY accordingly - cli-entrypoint.sh: - call build_main without parameter * Choosing interactive_config if the goal is bootstrap * fix: order of selection backward_compatibility_build_only * Update function comments to match current state - removed obsolete parameter of build_main call do_default() - replaced :space: by :comma: in _kernel_buildOnly to leverage copy / paste for final repeatable command line printed after build * Improve logic coding to filter build tasks - build-tasks.sh: - added functions: - build_task_is_enabled() - build_task_one_of_is_enabled() - build_task_each_of_is_enabled() - updated existing build task filter logic to use function build_task_is_enabled - config-prepare.sh, prepare-host.sh: - replaced existing build task filter logic to use function build_task_is_enabled * Remove unused functions - remove function build_task_one_of_is_enabled() and build_task_each_of_is_enabled() according to code review Co-authored-by: The-going <48602507+The-going@users.noreply.github.com>
This commit is contained in:
@@ -86,6 +86,8 @@ function prepare_and_config_main_build_single() {
|
||||
|
||||
# if KERNEL_ONLY, KERNEL_CONFIGURE, BOARD, BRANCH or RELEASE are not set, display selection menu
|
||||
|
||||
backward_compatibility_build_only
|
||||
|
||||
interactive_config_ask_kernel
|
||||
|
||||
interactive_config_ask_board_list
|
||||
@@ -110,11 +112,14 @@ function prepare_and_config_main_build_single() {
|
||||
|
||||
interactive_config_ask_branch
|
||||
|
||||
interactive_config_ask_release
|
||||
build_task_is_enabled "bootstrap" && {
|
||||
|
||||
interactive_config_ask_desktop_build
|
||||
interactive_config_ask_release
|
||||
|
||||
interactive_config_ask_standard_or_minimal
|
||||
interactive_config_ask_desktop_build
|
||||
|
||||
interactive_config_ask_standard_or_minimal
|
||||
}
|
||||
|
||||
#prevent conflicting setup
|
||||
if [[ $BUILD_DESKTOP == "yes" ]]; then
|
||||
|
||||
Reference in New Issue
Block a user