ICU-20472 Moving index res file request to tree category.
- Includes other minor cleanup of buildtool.
diff --git a/icu4c/source/data/BUILDRULES.py b/icu4c/source/data/BUILDRULES.py
index af1da51..7361196 100644
--- a/icu4c/source/data/BUILDRULES.py
+++ b/icu4c/source/data/BUILDRULES.py
@@ -432,7 +432,7 @@
]
dep_files = set(InFile(filename) for filename in glob("translit/*.txt"))
dep_files -= set(input_files)
- dep_files = list(dep_files)
+ dep_files = list(sorted(dep_files))
input_basenames = [v.filename[9:] for v in input_files]
output_files = [
OutFile("translit/%s.res" % v[:-4])
@@ -554,9 +554,10 @@
IN_SUB_DIR = sub_dir,
**common_vars
))
+ index_file_target_name = "%s_index_txt" % sub_dir
requests += [
IndexTxtRequest(
- name = "%s_index_txt" % sub_dir,
+ name = index_file_target_name,
category = category,
input_files = index_input_files,
output_file = index_file_txt,
@@ -572,9 +573,9 @@
requests += [
SingleExecutionRequest(
name = "%s_index_res" % sub_dir,
- category = "%s_index" % sub_dir,
- dep_targets = [],
- input_files = [index_file_txt],
+ category = category,
+ dep_targets = [DepTarget(index_file_target_name)],
+ input_files = [],
output_files = [index_res_file],
tool = IcuTool("genrb"),
args = "-s {TMP_DIR}/{IN_SUB_DIR} -d {OUT_DIR}/{OUT_PREFIX} -i {OUT_DIR} "
diff --git a/icu4c/source/data/buildtool/filtration.py b/icu4c/source/data/buildtool/filtration.py
index c7077e5..48d78e3 100644
--- a/icu4c/source/data/buildtool/filtration.py
+++ b/icu4c/source/data/buildtool/filtration.py
@@ -281,8 +281,10 @@
continue
if request.tool != IcuTool("genrb"):
continue
+ if not request.input_files:
+ continue
self._set_files(request.input_files)
- request.dep_targets += [self.filter_files]
+ request.dep_targets += [self.filter_files[:]]
arg_str = "--filterDir {TMP_DIR}/%s" % self.filter_tmp_dir
request.args = "%s %s" % (arg_str, request.args)
diff --git a/icu4c/source/data/buildtool/request_types.py b/icu4c/source/data/buildtool/request_types.py
index 102b06c..0de0285 100644
--- a/icu4c/source/data/buildtool/request_types.py
+++ b/icu4c/source/data/buildtool/request_types.py
@@ -41,6 +41,10 @@
raise ValueError("Unknown argument: %s" % key)
def apply_file_filter(self, filter):
+ """
+ Returns True if this request still has input files after filtering,
+ or False if the request is "empty" after filtering.
+ """
return True
def flatten(self, config, all_requests, common_vars):
@@ -104,6 +108,11 @@
del self.input_files[i]
for _, v in self.format_with.items():
if isinstance(v, list):
+ assert len(v) == len(self.input_files) + 1
+ del v[i]
+ for v in self.dep_targets:
+ if isinstance(v, list):
+ assert len(v) == len(self.input_files) + 1
del v[i]
def flatten(self, config, all_requests, common_vars):