# Copyright (C) 2016 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
#*******************************************************************************
#* Copyright (C) 2009-2016, International Business Machines Corporation and    *
#* others. All Rights Reserved.                                                *
#*******************************************************************************

# Version numbers, etc.
icu4j.spec.version = 72
icu4j.impl.version = 72.0.1
icu4j.data.version = 72
default.exec.env = JavaSE-1.7

copyright = \u00A9 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html

# Standard directory structure
src.dir = src
out.dir = out
bin.dir = ${out.dir}/bin
jar.dir = ${out.dir}/lib

# Default java compiler options
javac.source = 1.7
javac.target = 1.7
javac.debug = on
javac.compilerarg = -Xlint:none
java.src.encoding = UTF-8

# Manifest attributes
jar.spec.version = ${icu4j.spec.version}
jar.impl.version = ${icu4j.impl.version}
jar.copyright.info = ${copyright}
jar.exec.env = ${default.exec.env}

# Jar locations
icu4j.data.jar = ${shared.dir}/data/icudata.jar
icu4j.tzdata.jar = ${shared.dir}/data/icutzdata.jar
icu4j.testdata.jar = ${shared.dir}/data/testdata.jar

icu4j.core.jar = ${icu4j.core.dir}/${jar.dir}/icu4j-core.jar
icu4j.collate.jar = ${icu4j.collate.dir}/${jar.dir}/icu4j-collate.jar
icu4j.charset.jar = ${icu4j.charset.dir}/${jar.dir}/icu4j-charset.jar
icu4j.currdata.jar = ${icu4j.currdata.dir}/${jar.dir}/icu4j-currdata.jar
icu4j.langdata.jar = ${icu4j.langdata.dir}/${jar.dir}/icu4j-langdata.jar
icu4j.localespi.jar = ${icu4j.localespi.dir}/${jar.dir}/icu4j-localespi.jar
icu4j.regiondata.jar = ${icu4j.regiondata.dir}/${jar.dir}/icu4j-regiondata.jar
icu4j.translit.jar = ${icu4j.translit.dir}/${jar.dir}/icu4j-translit.jar

icu4j.test-framework.jar = ${icu4j.test-framework.dir}/${jar.dir}/icu4j-test-framework.jar
icu4j.core-tests.jar = ${icu4j.core-tests.dir}/${jar.dir}/icu4j-core-tests.jar
icu4j.collate-tests.jar = ${icu4j.collate-tests.dir}/${jar.dir}/icu4j-collate-tests.jar
icu4j.charset-tests.jar = ${icu4j.charset-tests.dir}/${jar.dir}/icu4j-charset-tests.jar
icu4j.localespi-tests.jar = ${icu4j.localespi-tests.dir}/${jar.dir}/icu4j-localespi-tests.jar
icu4j.packaging-tests.jar = ${icu4j.packaging-tests.dir}/${jar.dir}/icu4j-packaging-tests.jar
icu4j.translit-tests.jar = ${icu4j.translit-tests.dir}/${jar.dir}/icu4j-translit-tests.jar
icu4j.testall.jar = ${icu4j.testall.dir}/${jar.dir}/icu4j-testall.jar

icu4j.build-tools.jar = ${icu4j.build-tools.dir}/${jar.dir}/icu4j-build-tools.jar
icu4j.tools.jar = ${icu4j.tools.dir}/${jar.dir}/icu4j-tools.jar

icu4j.demos.jar = ${icu4j.demos.dir}/${jar.dir}/icu4j-demos.jar
icu4j.samples.jar = ${icu4j.samples.dir}/${jar.dir}/icu4j-samples.jar

# Misc
icu4j.data.path = com/ibm/icu/impl/data/icudt${icu4j.data.version}b
