diff --git a/BUILDING.md b/BUILDING.md index ee773bef18a14a..a5a66c680f2806 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -444,6 +444,10 @@ You can find other ICU releases at Download the file named something like `icu4c-**##.#**-src.tgz` (or `.zip`). +To check the minimum recommended ICU, run `./configure --help` and see +the help for the `--with-icu-source` option. A warning will be printed +during configuration if the ICU version is too old. + ##### Unix/macOS From an already-unpacked ICU: diff --git a/configure.py b/configure.py index 841f6c7902c193..a5075bd9d8a60b 100755 --- a/configure.py +++ b/configure.py @@ -51,6 +51,8 @@ valid_mips_fpu = ('fp32', 'fp64', 'fpxx') valid_mips_float_abi = ('soft', 'hard') valid_intl_modes = ('none', 'small-icu', 'full-icu', 'system-icu') +with open ('tools/icu/icu_versions.json') as f: + icu_versions = json.load(f) # create option groups shared_optgroup = optparse.OptionGroup(parser, "Shared libraries", @@ -425,7 +427,9 @@ intl_optgroup.add_option('--with-icu-source', action='store', dest='with_icu_source', - help='Intl mode: optional local path to icu/ dir, or path/URL of icu source archive.') + help='Intl mode: optional local path to icu/ dir, or path/URL of ' + 'the icu4c source archive. ' + 'v%d.x or later recommended.' % icu_versions["minimum_icu"]) parser.add_option('--with-ltcg', action='store_true', @@ -1470,6 +1474,9 @@ def write_config(data, name): icu_ver_major = m.group(1) if not icu_ver_major: error('Could not read U_ICU_VERSION_SHORT version from %s' % uvernum_h) + elif int(icu_ver_major) < icu_versions["minimum_icu"]: + error('icu4c v%d.x is too old, v%d.x or later is required.' % (int(icu_ver_major), + icu_versions["minimum_icu"])) icu_endianness = sys.byteorder[0]; o['variables']['icu_ver_major'] = icu_ver_major o['variables']['icu_endianness'] = icu_endianness diff --git a/tools/icu/icu_versions.json b/tools/icu/icu_versions.json new file mode 100644 index 00000000000000..e17ee8beee6a5c --- /dev/null +++ b/tools/icu/icu_versions.json @@ -0,0 +1,3 @@ +{ + "minimum_icu": 57 +} \ No newline at end of file