<?xml version="1.0" encoding="UTF-8"?> <!-- Copyright (c) 2012 The Chromium Authors. All rights reserved. Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. --> <project name="chrome_common_defines"> <!-- Common build properties for Chrome for android. --> <!-- Macro for checking that a property is correctly set. Performs checks for: 1. Property is set and not null. 2. String value of property does not contains any '$' signs. --> <macrodef name="check-property-value"> <attribute name="property"/> <sequential> <fail message ="Property @{property} is not set."> <condition> <or> <not><isset property="@{property}"/></not> <length string="${@{property}}" trim="true" when="less" length="1"/> </or> </condition> </fail> <!-- Check for $ signs. This catches errors when properties are initialized from environment variables. E.g. if we have <property name="foo" value="${env.bar}" /> but env.bar is not set then foo will have the literal value of '${env.bar}'. --> <fail message="Value checked failed for property: @{property} : ${@{property}}. Property value contains an uninitialized environment variable."> <condition> <contains string="${@{property}}" substring="$"/> </condition> </fail> </sequential> </macrodef> <!-- A safe setter for location properties. Checks that a location is not empty and actually exists. For specifying output directories, location check can be disabled by specifying check-exists="false". --> <macrodef name="property-location"> <attribute name="name"/> <attribute name="location"/> <attribute name="check-exists" default="true"/> <sequential> <property name="@{name}" location="@{location}"/> <check-property-value property="@{name}"/> <fail message="Location specified for @{name} : @{location} does not exist."> <condition> <and> <equals arg1="@{check-exists}" arg2="true"/> <not><available file="@{location}"/></not> </and> </condition> </fail> </sequential> </macrodef> <!-- A safe setter for property values --> <macrodef name="property-value"> <attribute name="name"/> <attribute name="value"/> <sequential> <property name="@{name}" value="@{value}"/> <check-property-value property="@{name}"/> </sequential> </macrodef> <!-- Common environment properties. --> <property-location name="sdk.dir" location="${ANDROID_SDK_ROOT}"/> <property-value name="target" value="android-${ANDROID_SDK_VERSION}"/> <property name="source.dir" location="src"/> <property-location name="android.gdbserver" location="${ANDROID_GDBSERVER}"/> <!-- Common directories used by SDK Build, when making changes here make sure to update gyp files and test scripts constants in build/android/pylib/constants.py --> <!-- Common directory for chromium_*.jars. --> <property-location name="lib.java.dir" location="${PRODUCT_DIR}/lib.java"/> <!-- Common directory for test jars. --> <property-location name="test.lib.java.dir" location="${PRODUCT_DIR}/test.lib.java"/> <!-- Common directory for apks. --> <property-location name="apks.dir" location="${PRODUCT_DIR}/apks"/> </project>