Skip to content

Commit d71c2c1

Browse files
committed
[native_assets_cli] Nest c_compiler config
1 parent e5cac81 commit d71c2c1

File tree

6 files changed

+190
-119
lines changed

6 files changed

+190
-119
lines changed

pkgs/c_compiler/lib/src/cbuilder/compiler_resolver.dart

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ class CompilerResolver {
3333
Future<ToolInstance> resolveCompiler() async {
3434
// First, check if the launcher provided a direct path to the compiler.
3535
var result = await _tryLoadCompilerFromConfig(
36-
BuildConfig.ccConfigKey,
37-
(buildConfig) => buildConfig.cc,
36+
CCompilerConfig.ccConfigKeyFull,
37+
(buildConfig) => buildConfig.cCompiler.cc,
3838
);
3939

4040
// Then, try to detect on the host machine.
@@ -91,11 +91,12 @@ class CompilerResolver {
9191
if (configCcUri != null) {
9292
assert(await File.fromUri(configCcUri).exists());
9393
logger?.finer('Using compiler ${configCcUri.toFilePath()} '
94-
'from config[${BuildConfig.ccConfigKey}].');
94+
'from config[${CCompilerConfig.ccConfigKeyFull}].');
9595
return (await CompilerRecognizer(configCcUri).resolve(logger: logger))
9696
.first;
9797
}
98-
logger?.finer('No compiler set in config[${BuildConfig.ccConfigKey}].');
98+
logger?.finer(
99+
'No compiler set in config[${CCompilerConfig.ccConfigKeyFull}].');
99100
return null;
100101
}
101102

@@ -110,8 +111,8 @@ class CompilerResolver {
110111
Future<ToolInstance> resolveArchiver() async {
111112
// First, check if the launcher provided a direct path to the compiler.
112113
var result = await _tryLoadArchiverFromConfig(
113-
BuildConfig.arConfigKey,
114-
(buildConfig) => buildConfig.ar,
114+
CCompilerConfig.arConfigKeyFull,
115+
(buildConfig) => buildConfig.cCompiler.ar,
115116
);
116117

117118
// Then, try to detect on the host machine.
@@ -167,16 +168,17 @@ class CompilerResolver {
167168
if (configArUri != null) {
168169
assert(await File.fromUri(configArUri).exists());
169170
logger?.finer('Using archiver ${configArUri.toFilePath()} '
170-
'from config[${BuildConfig.arConfigKey}].');
171+
'from config[${CCompilerConfig.arConfigKeyFull}].');
171172
return (await ArchiverRecognizer(configArUri).resolve(logger: logger))
172173
.first;
173174
}
174-
logger?.finer('No archiver set in config[${BuildConfig.arConfigKey}].');
175+
logger?.finer(
176+
'No archiver set in config[${CCompilerConfig.arConfigKeyFull}].');
175177
return null;
176178
}
177179

178180
Future<Uri?> toolchainEnvironmentScript(ToolInstance compiler) async {
179-
final fromConfig = buildConfig.toolchainEnvScript;
181+
final fromConfig = buildConfig.cCompiler.toolchainEnvScript;
180182
if (fromConfig != null) {
181183
logger?.fine('Using toolchainEnvScript from config: $fromConfig');
182184
return fromConfig;
@@ -190,7 +192,7 @@ class CompilerResolver {
190192
}
191193

192194
List<String>? toolchainEnvironmentScriptArguments() {
193-
final fromConfig = buildConfig.toolchainEnvScriptArgs;
195+
final fromConfig = buildConfig.cCompiler.toolchainEnvScriptArgs;
194196
if (fromConfig != null) {
195197
logger?.fine('Using toolchainEnvScriptArgs from config: $fromConfig');
196198
return fromConfig;

pkgs/c_compiler/test/cbuilder/cbuilder_test.dart

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,13 @@ void main() {
2929
outDir: tempUri,
3030
packageRoot: tempUri,
3131
target: Target.current,
32-
linkModePreference:
33-
LinkModePreference.dynamic, // Ignored by executables.
34-
cc: cc,
35-
toolchainEnvScript: toolchainEnvScript,
36-
toolchainEnvScriptArgs: toolchainEnvScriptArgs,
32+
// Ignored by executables.
33+
linkModePreference: LinkModePreference.dynamic,
34+
cCompiler: CCompilerConfig(
35+
cc: cc,
36+
toolchainEnvScript: toolchainEnvScript,
37+
toolchainEnvScriptArgs: toolchainEnvScriptArgs,
38+
),
3739
);
3840
final buildOutput = BuildOutput();
3941
final cbuilder = CBuilder.executable(
@@ -72,9 +74,11 @@ void main() {
7274
packageRoot: tempUri,
7375
target: Target.current,
7476
linkModePreference: LinkModePreference.dynamic,
75-
cc: cc,
76-
toolchainEnvScript: toolchainEnvScript,
77-
toolchainEnvScriptArgs: toolchainEnvScriptArgs,
77+
cCompiler: CCompilerConfig(
78+
cc: cc,
79+
toolchainEnvScript: toolchainEnvScript,
80+
toolchainEnvScriptArgs: toolchainEnvScriptArgs,
81+
),
7882
);
7983
final buildOutput = BuildOutput();
8084

pkgs/c_compiler/test/cbuilder/compiler_resolver_test.dart

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,17 +42,19 @@ void main() {
4242
packageRoot: tempUri,
4343
target: Target.current,
4444
linkModePreference: LinkModePreference.dynamic,
45-
ar: ar,
46-
cc: cc,
47-
ld: ld,
48-
toolchainEnvScript: toolchainEnvScript,
45+
cCompiler: CCompilerConfig(
46+
ar: ar,
47+
cc: cc,
48+
ld: ld,
49+
toolchainEnvScript: toolchainEnvScript,
50+
),
4951
);
5052
final resolver =
5153
CompilerResolver(buildConfig: buildConfig, logger: logger);
5254
final compiler = await resolver.resolveCompiler();
5355
final archiver = await resolver.resolveArchiver();
54-
expect(compiler.uri, buildConfig.cc);
55-
expect(archiver.uri, buildConfig.ar);
56+
expect(compiler.uri, buildConfig.cCompiler.cc);
57+
expect(archiver.uri, buildConfig.cCompiler.ar);
5658
});
5759
});
5860

0 commit comments

Comments
 (0)