From ae3cf150d01c5de36293bed92c0629a8cb1bffe1 Mon Sep 17 00:00:00 2001 From: sunfei Date: Mon, 12 May 2025 11:06:55 +0800 Subject: [PATCH] supprot paths config for build_system Signed-off-by: sunfei Change-Id: I6a7a52bac1c96731c220266e3ebb6f40f33a199c --- ets2panda/driver/build_system/src/build/base_mode.ts | 7 +++++-- .../build_system/src/build/generate_arktsconfig.ts | 10 ++++++++-- ets2panda/driver/build_system/src/types.ts | 5 +++++ 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/ets2panda/driver/build_system/src/build/base_mode.ts b/ets2panda/driver/build_system/src/build/base_mode.ts index e1d65f97f6..8774386190 100644 --- a/ets2panda/driver/build_system/src/build/base_mode.ts +++ b/ets2panda/driver/build_system/src/build/base_mode.ts @@ -69,7 +69,8 @@ import { DependentModuleConfig, JobInfo, KPointer, - ModuleInfo + ModuleInfo, + PathsConfig } from '../types'; import { ArkTSConfigGenerator } from './generate_arktsconfig'; import { SetupClusterOptions } from '../types'; @@ -88,6 +89,7 @@ export abstract class BaseMode { sourceRoots: string[]; moduleRootPath: string; moduleType: string; + paths?: PathsConfig; dependentModuleList: DependentModuleConfig[]; moduleInfos: Map; mergedAbcFile: string; @@ -122,6 +124,7 @@ export abstract class BaseMode { this.moduleRootPath = buildConfig.moduleRootPath as string; this.moduleType = buildConfig.moduleType as string; this.byteCodeHar = buildConfig.byteCodeHar as boolean; + this.paths = buildConfig.paths; this.dependentModuleList = buildConfig.dependentModuleList; this.isDebug = buildConfig.buildMode as string === BUILD_MODE.DEBUG; this.hasMainModule = buildConfig.hasMainModule; @@ -378,7 +381,7 @@ export abstract class BaseMode { protected generateArkTSConfigForModules(): void { this.moduleInfos.forEach((moduleInfo: ModuleInfo, moduleRootPath: string) => { - ArkTSConfigGenerator.getInstance(this.buildConfig, this.moduleInfos).writeArkTSConfigFile(moduleInfo, this.enableDeclgenEts2Ts); + ArkTSConfigGenerator.getInstance(this.buildConfig, this.moduleInfos).writeArkTSConfigFile(moduleInfo, this.enableDeclgenEts2Ts, this.paths); }); } diff --git a/ets2panda/driver/build_system/src/build/generate_arktsconfig.ts b/ets2panda/driver/build_system/src/build/generate_arktsconfig.ts index 197b6efdd6..4a93c7bb86 100644 --- a/ets2panda/driver/build_system/src/build/generate_arktsconfig.ts +++ b/ets2panda/driver/build_system/src/build/generate_arktsconfig.ts @@ -30,7 +30,8 @@ import { } from '../utils'; import { BuildConfig, - ModuleInfo + ModuleInfo, + PathsConfig } from '../types'; import { LANGUAGE_VERSION, @@ -226,7 +227,7 @@ export class ArkTSConfigGenerator { }); } - public writeArkTSConfigFile(moduleInfo: ModuleInfo, enableDeclgenEts2Ts: boolean): void { + public writeArkTSConfigFile(moduleInfo: ModuleInfo, enableDeclgenEts2Ts: boolean, paths?: PathsConfig): void { if (!moduleInfo.sourceRoots || moduleInfo.sourceRoots.length === 0) { const logData: LogData = LogDataFactory.newInstance( ErrorCode.BUILDSYSTEM_SOURCEROOTS_NOT_SET_FAIL, @@ -244,6 +245,11 @@ export class ArkTSConfigGenerator { } let baseUrl: string = path.resolve(moduleInfo.moduleRootPath, moduleInfo.sourceRoots[0]); + if (paths) { + Object.entries(paths).map(([key, value]) => { + pathSection[key] = value + }); + } let arktsConfig: ArkTSConfigObject = { compilerOptions: { package: moduleInfo.packageName, diff --git a/ets2panda/driver/build_system/src/types.ts b/ets2panda/driver/build_system/src/types.ts index 0afb84da07..741d2fd92e 100644 --- a/ets2panda/driver/build_system/src/types.ts +++ b/ets2panda/driver/build_system/src/types.ts @@ -35,6 +35,10 @@ export interface PluginsConfig { [pluginName: string]: string; } +export interface PathsConfig { + [pathName: string]: string[]; +} + export interface BuildBaseConfig { buildType: BUILD_TYPE; buildMode: BUILD_MODE; @@ -161,6 +165,7 @@ export interface DependentModuleConfig { export interface BuildConfig extends BuildBaseConfig, DeclgenConfig, LoggerConfig, ModuleConfig, PathConfig, FrameworkConfig { plugins: PluginsConfig; + paths: PathsConfig; compileFiles: string[]; entryFiles?: string[]; dependentModuleList: DependentModuleConfig[]; -- Gitee