Skip to content

Commit 72a41fe

Browse files
authored
[native_assets_cli] Refactor API (#11)
1 parent 5d5db9e commit 72a41fe

25 files changed

+164
-178
lines changed

pkgs/c_compiler/lib/c_compiler.dart

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,3 @@
66
library;
77

88
export 'src/cbuilder/cbuilder.dart';
9-
export 'src/native_toolchain/android_ndk.dart';
10-
export 'src/native_toolchain/apple_clang.dart';
11-
export 'src/native_toolchain/clang.dart';
12-
export 'src/native_toolchain/gcc.dart';
13-
export 'src/tool/tool.dart';
14-
export 'src/tool/tool_instance.dart';
15-
export 'src/tool/tool_requirement.dart';
16-
export 'src/tool/tool_resolver.dart';

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,9 @@ class CBuilder implements Builder {
7474
final outDir = buildConfig.outDir;
7575
final packageRoot = buildConfig.packageRoot;
7676
await Directory.fromUri(outDir).create(recursive: true);
77-
final packaging = buildConfig.packaging.preferredPackaging.first;
77+
final linkMode = buildConfig.linkModePreference.preferredLinkMode;
7878
final libUri =
79-
outDir.resolve(buildConfig.target.os.libraryFileName(name, packaging));
79+
outDir.resolve(buildConfig.target.os.libraryFileName(name, linkMode));
8080
final exeUri =
8181
outDir.resolve(buildConfig.target.os.executableFileName(name));
8282
final sources = [
@@ -92,11 +92,11 @@ class CBuilder implements Builder {
9292
logger: logger,
9393
sources: sources,
9494
dynamicLibrary:
95-
_type == _CBuilderType.library && packaging == Packaging.dynamic
95+
_type == _CBuilderType.library && linkMode == LinkMode.dynamic
9696
? libUri
9797
: null,
9898
staticLibrary:
99-
_type == _CBuilderType.library && packaging == Packaging.static
99+
_type == _CBuilderType.library && linkMode == LinkMode.static
100100
? libUri
101101
: null,
102102
executable: _type == _CBuilderType.executable ? exeUri : null,
@@ -106,7 +106,7 @@ class CBuilder implements Builder {
106106
if (assetName != null) {
107107
buildOutput.assets.add(Asset(
108108
name: assetName!,
109-
packaging: packaging,
109+
linkMode: linkMode,
110110
target: buildConfig.target,
111111
path: AssetAbsolutePath(libUri),
112112
));

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,12 @@
55
import 'package:logging/logging.dart';
66
import 'package:native_assets_cli/native_assets_cli.dart';
77

8-
import '../../c_compiler.dart';
8+
import '../native_toolchain/apple_clang.dart';
9+
import '../native_toolchain/clang.dart';
10+
import '../native_toolchain/gcc.dart';
911
import '../native_toolchain/msvc.dart';
1012
import '../native_toolchain/xcode.dart';
13+
import '../tool/tool_instance.dart';
1114
import '../utils/env_from_bat.dart';
1215
import '../utils/run_process.dart';
1316
import 'compiler_resolver.dart';

pkgs/c_compiler/test/cbuilder/cbuilder_cross_android_test.dart

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@ void main() {
3333
Target.androidX64: 'elf64-x86-64',
3434
};
3535

36-
for (final packaging in Packaging.values) {
36+
for (final linkMode in LinkMode.values) {
3737
for (final target in targets) {
38-
test('Cbuilder $packaging library $target', () async {
38+
test('Cbuilder $linkMode library $target', () async {
3939
await inTempDir((tempUri) async {
4040
final addCUri =
4141
packageUri.resolve('test/cbuilder/testfiles/add/src/add.c');
@@ -45,9 +45,9 @@ void main() {
4545
outDir: tempUri,
4646
packageRoot: tempUri,
4747
target: target,
48-
packaging: packaging == Packaging.dynamic
49-
? PackagingPreference.dynamic
50-
: PackagingPreference.static,
48+
linkModePreference: linkMode == LinkMode.dynamic
49+
? LinkModePreference.dynamic
50+
: LinkModePreference.static,
5151
);
5252
final buildOutput = BuildOutput();
5353

@@ -63,7 +63,7 @@ void main() {
6363
);
6464

6565
final libUri =
66-
tempUri.resolve(target.os.libraryFileName(name, packaging));
66+
tempUri.resolve(target.os.libraryFileName(name, linkMode));
6767
if (Platform.isLinux) {
6868
final result = await runProcess(
6969
executable: Uri.file('readelf'),

pkgs/c_compiler/test/cbuilder/cbuilder_cross_ios_test.dart

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,10 @@ void main() {
2929
Target.iOSArm64: 'arm64',
3030
};
3131

32-
for (final packaging in Packaging.values) {
32+
for (final linkMode in LinkMode.values) {
3333
for (final targetIOSSdk in IOSSdk.values) {
3434
for (final target in targets) {
35-
test('Cbuilder $packaging library $targetIOSSdk $target', () async {
35+
test('Cbuilder $linkMode library $targetIOSSdk $target', () async {
3636
await inTempDir((tempUri) async {
3737
final addCUri =
3838
packageUri.resolve('test/cbuilder/testfiles/add/src/add.c');
@@ -42,9 +42,9 @@ void main() {
4242
outDir: tempUri,
4343
packageRoot: tempUri,
4444
target: target,
45-
packaging: packaging == Packaging.dynamic
46-
? PackagingPreference.dynamic
47-
: PackagingPreference.static,
45+
linkModePreference: linkMode == LinkMode.dynamic
46+
? LinkModePreference.dynamic
47+
: LinkModePreference.static,
4848
targetIOSSdk: targetIOSSdk,
4949
);
5050
final buildOutput = BuildOutput();
@@ -61,7 +61,7 @@ void main() {
6161
);
6262

6363
final libUri =
64-
tempUri.resolve(target.os.libraryFileName(name, packaging));
64+
tempUri.resolve(target.os.libraryFileName(name, linkMode));
6565
final result = await runProcess(
6666
executable: Uri.file('objdump'),
6767
arguments: ['-t', libUri.path],

pkgs/c_compiler/test/cbuilder/cbuilder_cross_linux_host_test.dart

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@ void main() {
3434
Target.linuxX64: 'Advanced Micro Devices X86-64',
3535
};
3636

37-
for (final packaging in Packaging.values) {
37+
for (final linkMode in LinkMode.values) {
3838
for (final target in targets) {
39-
test('Cbuilder $packaging library $target', () async {
39+
test('Cbuilder $linkMode library $target', () async {
4040
await inTempDir((tempUri) async {
4141
final addCUri =
4242
packageUri.resolve('test/cbuilder/testfiles/add/src/add.c');
@@ -46,9 +46,9 @@ void main() {
4646
outDir: tempUri,
4747
packageRoot: tempUri,
4848
target: target,
49-
packaging: packaging == Packaging.dynamic
50-
? PackagingPreference.dynamic
51-
: PackagingPreference.static,
49+
linkModePreference: linkMode == LinkMode.dynamic
50+
? LinkModePreference.dynamic
51+
: LinkModePreference.static,
5252
);
5353
final buildOutput = BuildOutput();
5454

@@ -64,7 +64,7 @@ void main() {
6464
);
6565

6666
final libUri =
67-
tempUri.resolve(target.os.libraryFileName(name, packaging));
67+
tempUri.resolve(target.os.libraryFileName(name, linkMode));
6868
final result = await runProcess(
6969
executable: Uri.file('readelf'),
7070
arguments: ['-h', libUri.path],

pkgs/c_compiler/test/cbuilder/cbuilder_cross_macos_host_test.dart

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@ void main() {
3131
Target.macOSX64: '64-bit x86-64',
3232
};
3333

34-
for (final packaging in Packaging.values) {
34+
for (final linkMode in LinkMode.values) {
3535
for (final target in targets) {
36-
test('Cbuilder $packaging library $target', () async {
36+
test('Cbuilder $linkMode library $target', () async {
3737
await inTempDir((tempUri) async {
3838
final addCUri =
3939
packageUri.resolve('test/cbuilder/testfiles/add/src/add.c');
@@ -43,9 +43,9 @@ void main() {
4343
outDir: tempUri,
4444
packageRoot: tempUri,
4545
target: target,
46-
packaging: packaging == Packaging.dynamic
47-
? PackagingPreference.dynamic
48-
: PackagingPreference.static,
46+
linkModePreference: linkMode == LinkMode.dynamic
47+
? LinkModePreference.dynamic
48+
: LinkModePreference.static,
4949
);
5050
final buildOutput = BuildOutput();
5151

@@ -61,7 +61,7 @@ void main() {
6161
);
6262

6363
final libUri =
64-
tempUri.resolve(target.os.libraryFileName(name, packaging));
64+
tempUri.resolve(target.os.libraryFileName(name, linkMode));
6565
final result = await runProcess(
6666
executable: Uri.file('objdump'),
6767
arguments: ['-t', libUri.path],

pkgs/c_compiler/test/cbuilder/cbuilder_cross_windows_host_test.dart

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,13 @@ void main() {
4040
};
4141

4242
const dumpbinFileType = {
43-
Packaging.dynamic: 'DLL',
44-
Packaging.static: 'LIBRARY',
43+
LinkMode.dynamic: 'DLL',
44+
LinkMode.static: 'LIBRARY',
4545
};
4646

47-
for (final packaging in Packaging.values) {
47+
for (final linkMode in LinkMode.values) {
4848
for (final target in targets) {
49-
test('Cbuilder $packaging library $target', timeout: Timeout.factor(2),
49+
test('Cbuilder $linkMode library $target', timeout: Timeout.factor(2),
5050
() async {
5151
await inTempDir((tempUri) async {
5252
final addCUri =
@@ -57,9 +57,9 @@ void main() {
5757
outDir: tempUri,
5858
packageRoot: tempUri,
5959
target: target,
60-
packaging: packaging == Packaging.dynamic
61-
? PackagingPreference.dynamic
62-
: PackagingPreference.static,
60+
linkModePreference: linkMode == LinkMode.dynamic
61+
? LinkModePreference.dynamic
62+
: LinkModePreference.static,
6363
);
6464
final buildOutput = BuildOutput();
6565

@@ -75,7 +75,7 @@ void main() {
7575
);
7676

7777
final libUri =
78-
tempUri.resolve(target.os.libraryFileName(name, packaging));
78+
tempUri.resolve(target.os.libraryFileName(name, linkMode));
7979
expect(await File.fromUri(libUri).exists(), true);
8080
final result = await runProcess(
8181
executable: dumpbinUri,
@@ -90,7 +90,7 @@ void main() {
9090
final fileType = result.stdout
9191
.split('\n')
9292
.firstWhere((e) => e.contains('File Type'));
93-
expect(fileType, contains(dumpbinFileType[packaging]));
93+
expect(fileType, contains(dumpbinFileType[linkMode]));
9494
});
9595
});
9696
}

pkgs/c_compiler/test/cbuilder/cbuilder_test.dart

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ void main() {
2929
outDir: tempUri,
3030
packageRoot: tempUri,
3131
target: Target.current,
32-
packaging: PackagingPreference.dynamic, // Ignored by executables.
32+
linkModePreference:
33+
LinkModePreference.dynamic, // Ignored by executables.
3334
cc: cc,
3435
toolchainEnvScript: toolchainEnvScript,
3536
toolchainEnvScriptArgs: toolchainEnvScriptArgs,
@@ -70,7 +71,7 @@ void main() {
7071
outDir: tempUri,
7172
packageRoot: tempUri,
7273
target: Target.current,
73-
packaging: PackagingPreference.dynamic,
74+
linkModePreference: LinkModePreference.dynamic,
7475
cc: cc,
7576
toolchainEnvScript: toolchainEnvScript,
7677
toolchainEnvScriptArgs: toolchainEnvScriptArgs,

pkgs/c_compiler/test/cbuilder/compiler_resolver_test.dart

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55
@OnPlatform({'windows': Timeout.factor(10)})
66
library;
77

8-
import 'package:c_compiler/c_compiler.dart';
98
import 'package:c_compiler/src/cbuilder/compiler_resolver.dart';
9+
import 'package:c_compiler/src/native_toolchain/apple_clang.dart';
10+
import 'package:c_compiler/src/native_toolchain/clang.dart';
1011
import 'package:c_compiler/src/native_toolchain/msvc.dart';
1112
import 'package:c_compiler/src/tool/tool_error.dart';
1213
import 'package:collection/collection.dart';
@@ -40,7 +41,7 @@ void main() {
4041
outDir: tempUri,
4142
packageRoot: tempUri,
4243
target: Target.current,
43-
packaging: PackagingPreference.dynamic,
44+
linkModePreference: LinkModePreference.dynamic,
4445
ar: ar,
4546
cc: cc,
4647
ld: ld,
@@ -61,7 +62,7 @@ void main() {
6162
outDir: tempUri,
6263
packageRoot: tempUri,
6364
target: Target.windowsX64,
64-
packaging: PackagingPreference.dynamic,
65+
linkModePreference: LinkModePreference.dynamic,
6566
);
6667
final resolver = CompilerResolver(
6768
buildConfig: buildConfig,

pkgs/c_compiler/test/native_toolchain/apple_clang_test.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ library;
77

88
import 'dart:io';
99

10-
import 'package:c_compiler/c_compiler.dart';
10+
import 'package:c_compiler/src/native_toolchain/apple_clang.dart';
11+
import 'package:c_compiler/src/tool/tool_requirement.dart';
1112
import 'package:pub_semver/pub_semver.dart';
1213
import 'package:test/test.dart';
1314

pkgs/c_compiler/test/tool/tool_instance_test.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
import 'package:c_compiler/c_compiler.dart';
5+
import 'package:c_compiler/src/tool/tool.dart';
6+
import 'package:c_compiler/src/tool/tool_instance.dart';
67
import 'package:collection/collection.dart';
78
import 'package:pub_semver/pub_semver.dart';
89
import 'package:test/test.dart';

pkgs/c_compiler/test/tool/tool_resolver_test.dart

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,13 @@
44

55
import 'dart:io';
66

7-
import 'package:c_compiler/c_compiler.dart';
7+
import 'package:c_compiler/src/native_toolchain/apple_clang.dart';
8+
import 'package:c_compiler/src/native_toolchain/clang.dart';
89
import 'package:c_compiler/src/native_toolchain/msvc.dart';
10+
import 'package:c_compiler/src/tool/tool.dart';
911
import 'package:c_compiler/src/tool/tool_error.dart';
12+
import 'package:c_compiler/src/tool/tool_instance.dart';
13+
import 'package:c_compiler/src/tool/tool_resolver.dart';
1014
import 'package:native_assets_cli/native_assets_cli.dart';
1115
import 'package:test/test.dart';
1216

pkgs/native_assets_cli/lib/native_assets_cli.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export 'src/model/build_config.dart';
1111
export 'src/model/build_output.dart';
1212
export 'src/model/dependencies.dart';
1313
export 'src/model/ios_sdk.dart';
14+
export 'src/model/link_mode.dart';
15+
export 'src/model/link_mode_preference.dart';
1416
export 'src/model/metadata.dart';
15-
export 'src/model/packaging.dart';
16-
export 'src/model/packaging_preference.dart';
1717
export 'src/model/target.dart';

0 commit comments

Comments
 (0)