@@ -103,30 +103,33 @@ template("_fuchsia_fidl_library") {
103103 outputs = [
104104 " $target_gen_dir /$library_name_slashes /cpp/tables.c" ,
105105 ]
106- # TODO(https://fxbug.dev/90838): Make zx library less special-cased.
107- if (library_name != " zx" ) {
108- outputs += [
109- " $target_gen_dir /$library_name_slashes /cpp/fidl.h" ,
110- " $target_gen_dir /$library_name_slashes /cpp/fidl.cc" ,
111- ]
112- }
113106
114107 args = [
115108 " --fidlc-bin" ,
116109 rebase_path (" $_fuchsia_sdk_path /tools/fidlc" ),
117- " --fidlgen-bin" ,
118- rebase_path (" $_fuchsia_sdk_path /tools/fidlgen" ),
119110 " --sdk-base" ,
120111 rebase_path (_fuchsia_sdk_path ),
121112 " --root" ,
122113 rebase_path (invoker .meta ),
123114 " --json" ,
124115 rebase_path (" $target_gen_dir /$library_name_json " ),
125- " --fidlgen-root" ,
126- rebase_path (" $target_gen_dir " ),
127116 " --output-c-tables" ,
128117 rebase_path (" $target_gen_dir /$library_name_slashes /cpp/tables.c" ),
129118 ]
119+
120+ if (! defined (invoker .only_generate_tables ) || ! invoker .only_generate_tables ) {
121+ outputs += [
122+ " $target_gen_dir /$library_name_slashes /cpp/fidl.h" ,
123+ " $target_gen_dir /$library_name_slashes /cpp/fidl.cc" ,
124+ ]
125+
126+ args += [
127+ " --fidlgen-bin" ,
128+ rebase_path (" $_fuchsia_sdk_path /tools/fidlgen" ),
129+ " --fidlgen-output-root" ,
130+ rebase_path (" $target_gen_dir " ),
131+ ]
132+ }
130133 }
131134
132135 source_set (target_name ) {
@@ -243,35 +246,29 @@ template("fuchsia_sdk") {
243246
244247 part_meta_json = read_file (part_meta_rebased , " json" )
245248
246- # version_history.json does not have a name and thus fails when we try to read it .
247- if (part_meta != " version_history.json " ) {
249+ # Check if `part.type` is in `invoker.enabled_parts` .
250+ if (invoker . enabled_parts + [ part . type ] - [ part . type ] != invoker . enabled_parts ) {
248251 subtarget_name = part_meta_json .name
249252
250- foreach (enabled_part , invoker .enabled_parts ) {
251- if (part .type == " cc_source_library" ) {
252- if (part .type == enabled_part ) {
253- _fuchsia_cc_source_library (subtarget_name ) {
254- meta = part_meta_rebased
255- }
256- }
257- } else if (part .type == " sysroot" ) {
258- if (part .type == enabled_part ) {
259- _fuchsia_sysroot (subtarget_name ) {
260- meta = part_meta_rebased
261- }
262- }
263- } else if (part .type == " fidl_library" ) {
264- if (part .type == enabled_part ) {
265- _fuchsia_fidl_library (subtarget_name ) {
266- meta = part_meta_rebased
267- }
268- }
269- } else if (part .type == " cc_prebuilt_library" ) {
270- if (part .type == enabled_part ) {
271- _fuchsia_cc_prebuilt_library (subtarget_name ) {
272- meta = part_meta_rebased
273- }
274- }
253+ if (part .type == " cc_source_library" ) {
254+ _fuchsia_cc_source_library (subtarget_name ) {
255+ meta = part_meta_rebased
256+ }
257+ } else if (part .type == " sysroot" ) {
258+ _fuchsia_sysroot (subtarget_name ) {
259+ meta = part_meta_rebased
260+ }
261+ } else if (part .type == " fidl_library" ) {
262+ _fuchsia_fidl_library (subtarget_name ) {
263+ meta = part_meta_rebased
264+
265+ # TODO(fxbug.dev/90838): Remove the zx special-case when generic
266+ # option is available.
267+ only_generate_tables = subtarget_name == " zx"
268+ }
269+ } else if (part .type == " cc_prebuilt_library" ) {
270+ _fuchsia_cc_prebuilt_library (subtarget_name ) {
271+ meta = part_meta_rebased
275272 }
276273 }
277274 }
0 commit comments