Introduce build target for bundled data on Windows

On non-Windows platforms, we generate assembly to bundle ICU data.
On Windows however, we previously use a checked in icudt.dll, which
is no longer maintained.

We could use the same assembly approach if we wrap in inline assembly.

Bug: chromium:938223
Change-Id: Ieced205ae2e082a5290bd45499216c6c86751ca1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/deps/icu/+/1503032
Reviewed-by: Jungshik Shin <jshin@chromium.org>
diff --git a/scripts/make_data_assembly.py b/scripts/make_data_assembly.py
index 250c132..eb2bf72 100755
--- a/scripts/make_data_assembly.py
+++ b/scripts/make_data_assembly.py
@@ -12,7 +12,10 @@
 parser.add_option("--mac",
                   help="generate assembly file for Mac/iOS (default: False)",
                   action="store_true", default=False)
-parser.set_usage("""make_data_assembly  icu_data [assembly_file] [--mac]
+parser.add_option("--win",
+                  help="generate assembly file for Windows (default: False)",
+                  action="store_true", default=False)
+parser.set_usage("""make_data_assembly  icu_data [assembly_file] [--mac] [--win]
     icu_data: ICU data file to generate assembly from.
     assembly_file: Output file converted from icu_data file.""")
 (options, args) = parser.parse_args()
@@ -56,6 +59,11 @@
                "\t.const\n"
                "\t.align 4\n"
                "_icudt%s_dat:\n" %tuple([version_number] * 3))
+elif options.win:
+  output.write(".globl icudt%s_dat\n"
+               "\t.section .rdata\n"
+               "\t.balign 16\n"
+               "icudt%s_dat:\n" % tuple([version_number] * 2))
 else:
   output.write(".globl icudt%s_dat\n"
                "\t.section .note.GNU-stack,\"\",%%progbits\n"