Skip to content

Commit 75d4813

Browse files
authored
[native_assets_cli] Cleanup JSON: old code config (#2221)
1 parent fdd7672 commit 75d4813

15 files changed

+171
-341
lines changed

pkgs/code_assets/doc/schema/hook/shared_definitions.schema.json

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,10 @@
11
{
22
"$schema": "https://json-schema.org/draft-07/schema#",
3-
"title": "package:code_assets party:sdk shared definitions",
3+
"title": "package:code_assets party:hook shared definitions",
44
"definitions": {
55
"BuildInput": {},
66
"BuildOutput": {},
7-
"HookInput": {
8-
"properties": {
9-
"config": {
10-
"properties": {
11-
"code": {
12-
"$comment": "Future SDKs will no longer provide 'code', 'extensions.code_config' instead.",
13-
"deprecated": true
14-
}
15-
}
16-
}
17-
}
18-
},
7+
"HookInput": {},
198
"HookOutput": {},
209
"LinkInput": {},
2110
"LinkOutput": {}

pkgs/code_assets/doc/schema/sdk/shared_definitions.schema.json

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,7 @@
44
"definitions": {
55
"BuildInput": {},
66
"BuildOutput": {},
7-
"HookInput": {
8-
"properties": {
9-
"config": {
10-
"properties": {
11-
"code": {
12-
"$comment": "Old hooks still read 'code' so provide both 'code' and 'extensions.code_config'."
13-
}
14-
}
15-
}
16-
}
17-
},
7+
"HookInput": {},
188
"HookOutput": {},
199
"LinkInput": {},
2010
"LinkOutput": {}

pkgs/code_assets/doc/schema/shared/shared_definitions.schema.json

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -212,9 +212,6 @@
212212
"Config": {
213213
"type": "object",
214214
"properties": {
215-
"code": {
216-
"$ref": "#/definitions/CodeConfig"
217-
},
218215
"extensions": {
219216
"$ref": "#/definitions/ConfigExtensions"
220217
}

pkgs/code_assets/test/data/build_input_android.json

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,6 @@
44
"build_asset_types": [
55
"code_assets/code"
66
],
7-
"code": {
8-
"android": {
9-
"target_ndk_api": 21
10-
},
11-
"c_compiler": {
12-
"ar": "/Users/dacoharkes/Library/Android/sdk/ndk/28.0.12674087/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar",
13-
"cc": "/Users/dacoharkes/Library/Android/sdk/ndk/28.0.12674087/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang",
14-
"ld": "/Users/dacoharkes/Library/Android/sdk/ndk/28.0.12674087/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld"
15-
},
16-
"link_mode_preference": "dynamic",
17-
"target_architecture": "arm",
18-
"target_os": "android"
19-
},
207
"extensions": {
218
"code_assets": {
229
"android": {

pkgs/code_assets/test/data/build_input_ios.json

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,6 @@
44
"build_asset_types": [
55
"code_assets/code"
66
],
7-
"code": {
8-
"c_compiler": {
9-
"ar": "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar",
10-
"cc": "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang",
11-
"ld": "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld"
12-
},
13-
"ios": {
14-
"target_sdk": "iphonesimulator",
15-
"target_version": 12
16-
},
17-
"link_mode_preference": "dynamic",
18-
"target_architecture": "arm64",
19-
"target_os": "ios"
20-
},
217
"extensions": {
228
"code_assets": {
239
"c_compiler": {

pkgs/code_assets/test/data/build_input_linux.json

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,6 @@
44
"build_asset_types": [
55
"code_assets/code"
66
],
7-
"code": {
8-
"c_compiler": {
9-
"ar": "/usr/lib/llvm-16/bin/llvm-ar",
10-
"cc": "/usr/lib/llvm-16/bin/clang",
11-
"ld": "/usr/lib/llvm-16/bin/ld.lld"
12-
},
13-
"link_mode_preference": "dynamic",
14-
"target_architecture": "x64",
15-
"target_os": "linux"
16-
},
177
"extensions": {
188
"code_assets": {
199
"c_compiler": {

pkgs/code_assets/test/data/build_input_macos.json

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,6 @@
1818
"build_asset_types": [
1919
"code_assets/code"
2020
],
21-
"code": {
22-
"c_compiler": {
23-
"ar": "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar",
24-
"cc": "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang",
25-
"ld": "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld"
26-
},
27-
"link_mode_preference": "dynamic",
28-
"macos": {
29-
"target_version": 13
30-
},
31-
"target_architecture": "arm64",
32-
"target_os": "macos"
33-
},
3421
"extensions": {
3522
"code_assets": {
3623
"c_compiler": {

pkgs/code_assets/test/data/build_input_windows.json

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,6 @@
44
"build_asset_types": [
55
"code_assets/code"
66
],
7-
"code": {
8-
"c_compiler": {
9-
"ar": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.35.32215\\bin\\Hostx64\\x64\\lib.exe",
10-
"cc": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.35.32215\\bin\\Hostx64\\x64\\cl.exe",
11-
"env_script": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Auxiliary\\Build\\vcvars64.bat",
12-
"env_script_arguments": [],
13-
"ld": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.35.32215\\bin\\Hostx64\\x64\\link.exe",
14-
"windows": {
15-
"developer_command_prompt": {
16-
"arguments": [],
17-
"script": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Auxiliary\\Build\\vcvars64.bat"
18-
}
19-
}
20-
},
21-
"link_mode_preference": "dynamic",
22-
"target_architecture": "x64",
23-
"target_os": "windows"
24-
},
257
"extensions": {
268
"code_assets": {
279
"c_compiler": {

pkgs/code_assets/test/data/link_input_macos.json

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,19 +26,6 @@
2626
"build_asset_types": [
2727
"code_assets/code"
2828
],
29-
"code": {
30-
"c_compiler": {
31-
"ar": "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar",
32-
"cc": "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang",
33-
"ld": "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld"
34-
},
35-
"link_mode_preference": "dynamic",
36-
"macos": {
37-
"target_version": 13
38-
},
39-
"target_architecture": "arm64",
40-
"target_os": "macos"
41-
},
4229
"extensions": {
4330
"code_assets": {
4431
"c_compiler": {

pkgs/code_assets/test/schema/schema_test.dart

Lines changed: 68 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@ void main() {
6363

6464
Uri packageUri = findPackageRoot('code_assets');
6565

66+
const _codeConfigPath = ['config', 'extensions', 'code_assets'];
67+
6668
FieldsFunction _codeFields(AllTestData allTestData) {
6769
final dataUri = packageUri.resolve('test/data/build_output_macos.json');
6870
final assets =
@@ -96,27 +98,23 @@ FieldsFunction _codeFields(AllTestData allTestData) {
9698
];
9799

98100
return <(List<Object>, void Function(ValidationResults result))>[
99-
for (final codeConfigPath in [
100-
['config', 'code'],
101-
['config', 'extensions', 'code_assets'],
102-
])
103-
if (inputOrOutput == InputOrOutput.input) ...[
104-
([...codeConfigPath, 'c_compiler'], expectOptionalFieldMissing),
105-
([...codeConfigPath, 'c_compiler', 'ar'], expectRequiredFieldMissing),
106-
([...codeConfigPath, 'c_compiler', 'cc'], expectRequiredFieldMissing),
107-
([...codeConfigPath, 'c_compiler', 'ld'], expectRequiredFieldMissing),
108-
([...codeConfigPath, 'macos'], expectRequiredFieldMissing),
109-
(
110-
[...codeConfigPath, 'macos', 'target_version'],
111-
expectRequiredFieldMissing,
112-
),
113-
if (hook == Hook.link) ...[
114-
for (final (field, expect) in codeAssetFields) ...[
115-
(['assets', 0, 'encoding', ...field], expect),
116-
(['assets', 1, 'encoding', ...field], expect),
117-
],
101+
if (inputOrOutput == InputOrOutput.input) ...[
102+
([..._codeConfigPath, 'c_compiler'], expectOptionalFieldMissing),
103+
([..._codeConfigPath, 'c_compiler', 'ar'], expectRequiredFieldMissing),
104+
([..._codeConfigPath, 'c_compiler', 'cc'], expectRequiredFieldMissing),
105+
([..._codeConfigPath, 'c_compiler', 'ld'], expectRequiredFieldMissing),
106+
([..._codeConfigPath, 'macos'], expectRequiredFieldMissing),
107+
(
108+
[..._codeConfigPath, 'macos', 'target_version'],
109+
expectRequiredFieldMissing,
110+
),
111+
if (hook == Hook.link) ...[
112+
for (final (field, expect) in codeAssetFields) ...[
113+
(['assets', 0, 'encoding', ...field], expect),
114+
(['assets', 1, 'encoding', ...field], expect),
118115
],
119116
],
117+
],
120118
if (inputOrOutput == InputOrOutput.output) ...[
121119
for (final (field, expect) in codeAssetFields)
122120
(['assets', 0, 'encoding', ...field], expect),
@@ -154,74 +152,57 @@ _codeFieldsWindows({
154152
required Hook hook,
155153
required Party party,
156154
}) => <(List<Object>, void Function(ValidationResults result))>[
157-
if (inputOrOutput == InputOrOutput.input && hook == Hook.build)
158-
for (final codeConfigPath in [
159-
['config', 'code'],
160-
['config', 'extensions', 'code_assets'],
161-
]) ...[
162-
(
163-
[...codeConfigPath, 'c_compiler', 'env_script'],
164-
expectOptionalFieldMissing,
165-
),
166-
(
167-
[...codeConfigPath, 'c_compiler', 'env_script_arguments'],
168-
expectOptionalFieldMissing,
169-
),
170-
(
171-
[...codeConfigPath, 'c_compiler', 'windows'],
172-
expectRequiredFieldMissing,
173-
),
174-
(
175-
[
176-
...codeConfigPath,
177-
'c_compiler',
178-
'windows',
179-
'developer_command_prompt',
180-
],
181-
expectOptionalFieldMissing,
182-
),
183-
(
184-
[
185-
'config',
186-
'code',
187-
'c_compiler',
188-
'windows',
189-
'developer_command_prompt',
190-
'script',
191-
],
192-
expectRequiredFieldMissing,
193-
),
194-
(
195-
[
196-
'config',
197-
'code',
198-
'c_compiler',
199-
'windows',
200-
'developer_command_prompt',
201-
'arguments',
202-
],
203-
expectRequiredFieldMissing,
204-
),
205-
],
155+
if (inputOrOutput == InputOrOutput.input && hook == Hook.build) ...[
156+
(
157+
[..._codeConfigPath, 'c_compiler', 'env_script'],
158+
expectOptionalFieldMissing,
159+
),
160+
(
161+
[..._codeConfigPath, 'c_compiler', 'env_script_arguments'],
162+
expectOptionalFieldMissing,
163+
),
164+
([..._codeConfigPath, 'c_compiler', 'windows'], expectRequiredFieldMissing),
165+
(
166+
[..._codeConfigPath, 'c_compiler', 'windows', 'developer_command_prompt'],
167+
expectOptionalFieldMissing,
168+
),
169+
(
170+
[
171+
'config',
172+
'extensions',
173+
'code_assets',
174+
'c_compiler',
175+
'windows',
176+
'developer_command_prompt',
177+
'script',
178+
],
179+
expectRequiredFieldMissing,
180+
),
181+
(
182+
[
183+
'config',
184+
'extensions',
185+
'code_assets',
186+
'c_compiler',
187+
'windows',
188+
'developer_command_prompt',
189+
'arguments',
190+
],
191+
expectRequiredFieldMissing,
192+
),
193+
],
206194
];
207195

208196
List<(List<Object>, void Function(ValidationResults result))> _codeFieldsIOS({
209197
required InputOrOutput inputOrOutput,
210198
required Hook hook,
211199
required Party party,
212200
}) => <(List<Object>, void Function(ValidationResults result))>[
213-
if (inputOrOutput == InputOrOutput.input && hook == Hook.build)
214-
for (final codeConfigPath in [
215-
['config', 'code'],
216-
['config', 'extensions', 'code_assets'],
217-
]) ...[
218-
([...codeConfigPath, 'ios'], expectRequiredFieldMissing),
219-
([...codeConfigPath, 'ios', 'target_sdk'], expectRequiredFieldMissing),
220-
(
221-
[...codeConfigPath, 'ios', 'target_version'],
222-
expectRequiredFieldMissing,
223-
),
224-
],
201+
if (inputOrOutput == InputOrOutput.input && hook == Hook.build) ...[
202+
([..._codeConfigPath, 'ios'], expectRequiredFieldMissing),
203+
([..._codeConfigPath, 'ios', 'target_sdk'], expectRequiredFieldMissing),
204+
([..._codeConfigPath, 'ios', 'target_version'], expectRequiredFieldMissing),
205+
],
225206
];
226207

227208
List<(List<Object>, void Function(ValidationResults result))>
@@ -230,15 +211,11 @@ _codeFieldsAndroid({
230211
required Hook hook,
231212
required Party party,
232213
}) => <(List<Object>, void Function(ValidationResults result))>[
233-
if (inputOrOutput == InputOrOutput.input && hook == Hook.build)
234-
for (final codeConfigPath in [
235-
['config', 'code'],
236-
['config', 'extensions', 'code_assets'],
237-
]) ...[
238-
([...codeConfigPath, 'android'], expectRequiredFieldMissing),
239-
(
240-
[...codeConfigPath, 'android', 'target_ndk_api'],
241-
expectRequiredFieldMissing,
242-
),
243-
],
214+
if (inputOrOutput == InputOrOutput.input && hook == Hook.build) ...[
215+
([..._codeConfigPath, 'android'], expectRequiredFieldMissing),
216+
(
217+
[..._codeConfigPath, 'android', 'target_ndk_api'],
218+
expectRequiredFieldMissing,
219+
),
220+
],
244221
];

pkgs/native_assets_cli/lib/src/code_assets/config.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,10 @@ class CodeConfig {
4141
final syntax.CodeConfig _syntax;
4242

4343
CodeConfig._fromJson(Map<String, Object?> json, List<Object> path)
44-
: _syntax =
45-
syntax.Config.fromJson(json, path: path).extensions?.codeAssets ??
46-
syntax.Config.fromJson(json, path: path).code!;
44+
: _syntax = syntax.Config.fromJson(
45+
json,
46+
path: path,
47+
).extensions!.codeAssets!;
4748

4849
/// The architecture the code code asset should be built for.
4950
///
@@ -207,7 +208,6 @@ extension CodeAssetBuildInputBuilder on HookConfigBuilder {
207208
baseHookConfig.extensions ??= hook_syntax.JsonObject.fromJson({});
208209
final hookConfig = syntax.Config.fromJson(baseHookConfig.json);
209210
hookConfig.extensions!.codeAssets = codeConfig;
210-
hookConfig.code = codeConfig; // old location
211211
}
212212
}
213213

0 commit comments

Comments
 (0)