Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/dart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ jobs:
if: ${{ matrix.sdk == 'stable' }}

- name: Install native toolchains
run: sudo apt-get install clang-14 gcc-i686-linux-gnu gcc-aarch64-linux-gnu gcc-arm-linux-gnueabihf
run: sudo apt-get update && sudo apt-get install clang-14 gcc-i686-linux-gnu gcc-aarch64-linux-gnu gcc-arm-linux-gnueabihf
if: ${{ matrix.sdk == 'stable' && matrix.os == 'ubuntu' }}

- run: dart test
Expand Down
5 changes: 3 additions & 2 deletions pkgs/native_assets_cli/lib/src/model/build_config.dart
Original file line number Diff line number Diff line change
Expand Up @@ -207,8 +207,9 @@ class BuildConfig {
}
},
(config) => _config = config,
(config) => _outDir = config.path(outDirConfigKey),
(config) => _packageRoot = config.path(packageRootConfigKey),
(config) => _outDir = config.path(outDirConfigKey, mustExist: true),
(config) =>
_packageRoot = config.path(packageRootConfigKey, mustExist: true),
(config) {
_target = Target.fromString(
config.string(
Expand Down
53 changes: 31 additions & 22 deletions pkgs/native_assets_cli/test/model/build_config_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ import '../helpers.dart';

void main() async {
late Uri tempUri;
late Uri outDirUri;
late Uri outDir2Uri;
late Uri packageRootUri;
late Uri fakeClang;
late Uri fakeLd;
late Uri fakeAr;
Expand All @@ -20,6 +23,12 @@ void main() async {

setUp(() async {
tempUri = (await Directory.systemTemp.createTemp()).uri;
outDirUri = tempUri.resolve('out1/');
await Directory.fromUri(outDirUri).create();
outDir2Uri = tempUri.resolve('out2/');
await Directory.fromUri(outDir2Uri).create();
packageRootUri = tempUri.resolve('my_package/');
await Directory.fromUri(packageRootUri).create();
fakeClang = tempUri.resolve('fake_clang');
await File.fromUri(fakeClang).create();
fakeLd = tempUri.resolve('fake_ld');
Expand All @@ -38,7 +47,7 @@ void main() async {

test('BuildConfig ==', () {
final config1 = BuildConfig(
outDir: tempUri.resolve('out1/'),
outDir: outDirUri,
packageRoot: tempUri,
target: Target.iOSArm64,
targetIOSSdk: IOSSdk.iPhoneOs,
Expand All @@ -51,7 +60,7 @@ void main() async {
);

final config2 = BuildConfig(
outDir: tempUri.resolve('out2/'),
outDir: outDir2Uri,
packageRoot: tempUri,
target: Target.androidArm64,
linkModePreference: LinkModePreference.preferStatic,
Expand All @@ -76,15 +85,15 @@ void main() async {

test('BuildConfig fromConfig', () {
final buildConfig2 = BuildConfig(
outDir: tempUri.resolve('out2/'),
packageRoot: tempUri.resolve('packageRoot/'),
outDir: outDirUri,
packageRoot: packageRootUri,
target: Target.androidArm64,
linkModePreference: LinkModePreference.preferStatic,
);

final config = Config(fileParsed: {
'out_dir': tempUri.resolve('out2/').toFilePath(),
'package_root': tempUri.resolve('packageRoot/').toFilePath(),
'out_dir': outDirUri.toFilePath(),
'package_root': packageRootUri.toFilePath(),
'target': 'android_arm64',
'link_mode_preference': 'prefer-static',
'version': BuildOutput.version.toString(),
Expand All @@ -96,8 +105,8 @@ void main() async {

test('BuildConfig toYaml fromConfig', () {
final buildConfig1 = BuildConfig(
outDir: tempUri.resolve('out1/'),
packageRoot: tempUri.resolve('packageRoot/'),
outDir: outDirUri,
packageRoot: packageRootUri,
target: Target.iOSArm64,
targetIOSSdk: IOSSdk.iPhoneOs,
cCompiler: CCompilerConfig(
Expand All @@ -115,7 +124,7 @@ void main() async {

test('BuildConfig == dependency metadata', () {
final buildConfig1 = BuildConfig(
outDir: tempUri.resolve('out1/'),
outDir: outDirUri,
packageRoot: tempUri,
target: Target.androidArm64,
linkModePreference: LinkModePreference.preferStatic,
Expand All @@ -131,7 +140,7 @@ void main() async {
);

final buildConfig2 = BuildConfig(
outDir: tempUri.resolve('out1/'),
outDir: outDirUri,
packageRoot: tempUri,
target: Target.androidArm64,
linkModePreference: LinkModePreference.preferStatic,
Expand All @@ -151,7 +160,7 @@ void main() async {
});

test('BuildConfig toYaml fromYaml', () {
final outDir = tempUri.resolve('out1/');
final outDir = outDirUri;
final buildConfig1 = BuildConfig(
outDir: outDir,
packageRoot: tempUri,
Expand Down Expand Up @@ -208,16 +217,16 @@ version: ${BuildConfig.version}''';
);
expect(
() => BuildConfig.fromConfig(Config(fileParsed: {
'package_root': tempUri.resolve('packageRoot/').toFilePath(),
'package_root': packageRootUri.toFilePath(),
'target': 'android_arm64',
'link_mode_preference': 'prefer-static',
})),
throwsFormatException,
);
expect(
() => BuildConfig.fromConfig(Config(fileParsed: {
'out_dir': tempUri.resolve('out2/').toFilePath(),
'package_root': tempUri.resolve('packageRoot/').toFilePath(),
'out_dir': outDirUri.toFilePath(),
'package_root': packageRootUri.toFilePath(),
'target': 'android_arm64',
'link_mode_preference': 'prefer-static',
'dependency_metadata': {
Expand All @@ -232,8 +241,8 @@ version: ${BuildConfig.version}''';
test('FormatExceptions contain full stack trace of wrapped exception', () {
try {
BuildConfig.fromConfig(Config(fileParsed: {
'out_dir': tempUri.resolve('out2/').toFilePath(),
'package_root': tempUri.resolve('packageRoot/').toFilePath(),
'out_dir': outDirUri.toFilePath(),
'package_root': packageRootUri.toFilePath(),
'target': [1, 2, 3, 4, 5],
'link_mode_preference': 'prefer-static',
}));
Expand All @@ -244,7 +253,7 @@ version: ${BuildConfig.version}''';

test('BuildConfig toString', () {
final config = BuildConfig(
outDir: tempUri.resolve('out1/'),
outDir: outDirUri,
packageRoot: tempUri,
target: Target.iOSArm64,
targetIOSSdk: IOSSdk.iPhoneOs,
Expand All @@ -259,7 +268,7 @@ version: ${BuildConfig.version}''';

test('BuildConfig fromArgs', () async {
final buildConfig = BuildConfig(
outDir: tempUri.resolve('out2/'),
outDir: outDirUri,
packageRoot: tempUri,
target: Target.androidArm64,
linkModePreference: LinkModePreference.preferStatic,
Expand All @@ -277,7 +286,7 @@ version: ${BuildConfig.version}''';

test('dependency metadata via config accessor', () {
final buildConfig1 = BuildConfig(
outDir: tempUri.resolve('out1/'),
outDir: outDirUri,
packageRoot: tempUri,
target: Target.androidArm64,
linkModePreference: LinkModePreference.preferStatic,
Expand All @@ -301,8 +310,8 @@ version: ${BuildConfig.version}''';

test('envScript', () {
final buildConfig1 = BuildConfig(
outDir: tempUri.resolve('out1/'),
packageRoot: tempUri.resolve('packageRoot/'),
outDir: outDirUri,
packageRoot: packageRootUri,
target: Target.windowsX64,
cCompiler: CCompilerConfig(
cc: fakeCl,
Expand All @@ -320,7 +329,7 @@ version: ${BuildConfig.version}''';

for (final version in ['9001.0.0', '0.0.1']) {
test('BuildConfig version $version', () {
final outDir = tempUri.resolve('out1/');
final outDir = outDirUri;
final config = Config(fileParsed: {
'link_mode_preference': 'prefer-static',
'out_dir': outDir.toFilePath(),
Expand Down