summaryrefslogtreecommitdiffstats
path: root/config/external/icu4x/moz.build
blob: 63273b83ff5ffb2b7e5f279ce980b7b5fe6c982f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

# Build the ICU4X data directly into the binary file. This is an experiment that can
# be enabled by adding `ac_add_options --enable-icu4x` to your mozconfig.
# See `intl/ICU4X.md`.

if CONFIG["MOZ_ICU4X"]:
    DEFINES["MOZ_ICU4X"] = 1
    Library("icu4xdata")
    LOCAL_INCLUDES += ["."]

    # The "mangled" symbol gets prefixed by a "_" in certain platforms.
    symbol_prefix = ""
    if (CONFIG["OS_ARCH"] == "WINNT" and CONFIG["CPU_ARCH"] == "x86") or CONFIG[
        "OS_ARCH"
    ] == "Darwin":
        symbol_prefix = "_"

    # To re-generate this file run: intl/update-icu4x.sh
    DEFINES["ICU4X_DATA_FILE"] = '"icu4x.postcard"'

    # In C++ this data will be available via:
    #
    #   extern uint8_t icu4x_static_locale_data;
    #   uint8_t firstByte = (&icu4x_static_locale_data)[0];
    DEFINES["ICU4X_DATA_SYMBOL"] = "%s%s" % (symbol_prefix, "icu4x_static_locale_data")

    # This is assembly which has instructions to include the binary locale data directly.
    SOURCES += [
        "icu4x_data.S",
    ]