diff --git a/ets2panda/driver/build_system/src/build/base_mode.ts b/ets2panda/driver/build_system/src/build/base_mode.ts index 1c05abf17a61007bce3699a812977dc7c861fdd6..92161087bb3d18a05f1906f9cc450f01caf0d57e 100644 --- a/ets2panda/driver/build_system/src/build/base_mode.ts +++ b/ets2panda/driver/build_system/src/build/base_mode.ts @@ -58,7 +58,8 @@ import { CompileFileInfo, DependencyFileConfig, DependentModuleConfig, - ModuleInfo + ModuleInfo, + ES2PANDA_MODE } from '../types'; import { ArkTSConfigGenerator } from './generate_arktsconfig'; import { SetupClusterOptions } from '../types'; @@ -95,6 +96,7 @@ export abstract class BaseMode { public dependencyFileMap: DependencyFileConfig | null; public isBuildConfigModified: boolean | undefined; public byteCodeHar: boolean; + public es2pandaMode: number; constructor(buildConfig: BuildConfig) { this.buildConfig = buildConfig; @@ -128,6 +130,7 @@ export abstract class BaseMode { this.dependencyFileMap = null; this.isBuildConfigModified = buildConfig.isBuildConfigModified as boolean | undefined; this.byteCodeHar = buildConfig.byteCodeHar as boolean; + this.es2pandaMode = buildConfig?.es2pandaMode ?? ES2PANDA_MODE.RUN; } public declgen(fileInfo: CompileFileInfo): void { diff --git a/ets2panda/driver/build_system/src/build/build_mode.ts b/ets2panda/driver/build_system/src/build/build_mode.ts index a8bfd4277833ea1ca256eb25ca854249b2567fa1..baf63480e37189f22f84127e35d4290769772782 100644 --- a/ets2panda/driver/build_system/src/build/build_mode.ts +++ b/ets2panda/driver/build_system/src/build/build_mode.ts @@ -14,7 +14,10 @@ */ import { BaseMode } from './base_mode'; -import { BuildConfig } from '../types'; +import { + BuildConfig, + ES2PANDA_MODE +} from '../types'; export class BuildMode extends BaseMode { constructor(buildConfig: BuildConfig) { @@ -26,6 +29,15 @@ export class BuildMode extends BaseMode { } public async run(): Promise { - await super.runParallel(); + if (this.es2pandaMode === ES2PANDA_MODE.RUN_PARALLEL) { + // RUN_PARALLEL: Executes tasks using multiple processes + await super.runParallel(); + } else if (this.es2pandaMode === ES2PANDA_MODE.RUN) { + // RUN: Executes tasks sequentially in a single process and single thread + await super.run(); + } else { + // Default fallback: Uses parallel execution (same as RUN_PARALLEL) + await super.run(); + } } } \ No newline at end of file diff --git a/ets2panda/driver/build_system/src/types.ts b/ets2panda/driver/build_system/src/types.ts index 37745789b4869d5a84fc362249ec1f953a714a5f..ffe48d8847b5e8da8728ff6ffc6e17630ab2a6a1 100644 --- a/ets2panda/driver/build_system/src/types.ts +++ b/ets2panda/driver/build_system/src/types.ts @@ -22,6 +22,7 @@ export interface BuildBaseConfig { buildType: 'build' | 'preview' | 'hotreload' | 'coldreload'; buildMode: 'Debug' | 'Release'; hasMainModule: boolean; + es2pandaMode: ES2PANDA_MODE; arkts: ArkTS; arktsGlobal: ArkTSGlobal; maxWorkers?: number; @@ -187,4 +188,10 @@ export interface DependencyFileConfig { dependencies: { [filePath: string]: string[]; } -} \ No newline at end of file +} + +export enum ES2PANDA_MODE { + RUN_PARALLEL = 0, + RUN_CONCURRENT = 1, + RUN = 2 +}; \ No newline at end of file