Skip to content

Commit 7effd69

Browse files
Don't generate zx fidl headers and source. (#543)
This is necessary to avoid name collisions. See flutter/buildroot#542.
1 parent 3497b9d commit 7effd69

File tree

2 files changed

+50
-52
lines changed

2 files changed

+50
-52
lines changed

build/fuchsia/fidl_gen_cpp.py

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -35,18 +35,19 @@ def main():
3535
parser = argparse.ArgumentParser();
3636

3737
parser.add_argument('--fidlc-bin', dest='fidlc_bin', action='store', required=True)
38-
parser.add_argument('--fidlgen-bin', dest='fidlgen_bin', action='store', required=True)
38+
parser.add_argument('--fidlgen-bin', dest='fidlgen_bin', action='store', required=False)
3939

4040
parser.add_argument('--sdk-base', dest='sdk_base', action='store', required=True)
4141
parser.add_argument('--root', dest='root', action='store', required=True)
4242
parser.add_argument('--json', dest='json', action='store', required=True)
43-
parser.add_argument('--fidlgen-root', dest='fidlgen_root', action='store', required=True)
43+
parser.add_argument('--fidlgen-output-root', dest='fidlgen_output_root', action='store', required=False)
4444
parser.add_argument('--output-c-tables', dest='output_c_tables', action='store', required=True)
4545

4646
args = parser.parse_args()
4747

4848
assert os.path.exists(args.fidlc_bin)
49-
assert os.path.exists(args.fidlgen_bin)
49+
# --fidlgen-bin and --fidlgen-output-root should be passed in together.
50+
assert os.path.exists(args.fidlgen_bin or '') == bool(args.fidlgen_output_root)
5051

5152
fidl_files_by_name = GetFIDLFilesByLibraryName(args.sdk_base, args.root)
5253

@@ -72,19 +73,19 @@ def main():
7273
fidl_abspath = os.path.abspath('%s/%s' % (args.sdk_base, fidl_file))
7374
fidlc_command.append(fidl_abspath)
7475

75-
subprocess.check_call(fidlc_command);
76+
subprocess.check_call(fidlc_command)
7677

77-
assert os.path.exists(args.json)
78+
if args.fidlgen_output_root:
79+
assert os.path.exists(args.json)
80+
fidlgen_command = [
81+
args.fidlgen_bin,
82+
'-json',
83+
args.json,
84+
'-root',
85+
args.fidlgen_output_root
86+
]
7887

79-
fidlgen_command = [
80-
args.fidlgen_bin,
81-
'-json',
82-
args.json,
83-
'-root',
84-
args.fidlgen_root
85-
]
86-
87-
subprocess.check_call(fidlgen_command)
88+
subprocess.check_call(fidlgen_command)
8889

8990
return 0
9091

build/fuchsia/sdk.gni

Lines changed: 35 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)