Bundle.h revision de898ff42912bd7ca1bfb099cd439562496765a4
19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project// 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project// Copyright 2006 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project// 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project// State bundle. Used to pass around stuff like command-line args. 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project// 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#ifndef __BUNDLE_H 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define __BUNDLE_H 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include <stdlib.h> 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include <utils/Log.h> 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include <utils/threads.h> 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include <utils/List.h> 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include <utils/Errors.h> 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include <utils/String8.h> 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include <utils/Vector.h> 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectenum { 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project SDK_CUPCAKE = 3, 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project SDK_DONUT = 4, 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project SDK_ECLAIR = 5, 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project SDK_ECLAIR_0_1 = 6, 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project SDK_MR1 = 7, 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project SDK_FROYO = 8, 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project SDK_HONEYCOMB_MR2 = 13, 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project SDK_ICE_CREAM_SANDWICH = 14, 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project SDK_ICE_CREAM_SANDWICH_MR1 = 15, 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}; 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Things we can do. 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projecttypedef enum Command { 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project kCommandUnknown = 0, 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project kCommandVersion, 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project kCommandList, 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project kCommandDump, 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project kCommandAdd, 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project kCommandRemove, 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project kCommandPackage, 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project kCommandCrunch, 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project kCommandSingleCrunch, 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} Command; 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Bundle of goodies, including everything specified on the command line. 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectclass Bundle { 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic: 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Bundle(void) 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project : mCmd(kCommandUnknown), mVerbose(false), mAndroidList(false), 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mForce(false), mGrayscaleTolerance(0), mMakePackageDirs(false), 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mUpdate(false), mExtending(false), 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRequireLocalization(false), mPseudolocalize(false), 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mWantUTF16(false), mValues(false), mIncludeMetaData(false), 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mCompressionMethod(0), mJunkPath(false), mOutputAPKFile(NULL), 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mManifestPackageNameOverride(NULL), mInstrumentationPackageNameOverride(NULL), 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mAutoAddOverlay(false), mGenDependencies(false), 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mCrunchedOutputDir(NULL), mProguardFile(NULL), 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mAndroidManifestFile(NULL), mPublicOutputFile(NULL), 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRClassDir(NULL), mResourceIntermediatesDir(NULL), mManifestMinSdkVersion(NULL), 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mMinSdkVersion(NULL), mTargetSdkVersion(NULL), mMaxSdkVersion(NULL), 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mVersionCode(NULL), mVersionName(NULL), mReplaceVersion(false), mCustomPackage(NULL), 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mExtraPackages(NULL), mMaxResVersion(NULL), mDebugMode(false), mNonConstantId(false), 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mProduct(NULL), mUseCrunchCache(false), mErrorOnFailedInsert(false), 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mErrorOnMissingConfigEntry(false), mOutputTextSymbols(NULL), 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mSingleCrunchInputFile(NULL), mSingleCrunchOutputFile(NULL), 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mBuildSharedLibrary(false), 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mArgc(0), mArgv(NULL) 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project {} 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ~Bundle(void) {} 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /* 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set the command value. Returns "false" if it was previously set. 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Command getCommand(void) const { return mCmd; } 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setCommand(Command cmd) { mCmd = cmd; } 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /* 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Command modifiers. Not all modifiers are appropriate for all 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * commands. 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project bool getVerbose(void) const { return mVerbose; } 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setVerbose(bool val) { mVerbose = val; } 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project bool getAndroidList(void) const { return mAndroidList; } 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setAndroidList(bool val) { mAndroidList = val; } 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project bool getForce(void) const { return mForce; } 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setForce(bool val) { mForce = val; } 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setGrayscaleTolerance(int val) { mGrayscaleTolerance = val; } 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getGrayscaleTolerance() const { return mGrayscaleTolerance; } 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project bool getMakePackageDirs(void) const { return mMakePackageDirs; } 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setMakePackageDirs(bool val) { mMakePackageDirs = val; } 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project bool getUpdate(void) const { return mUpdate; } 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setUpdate(bool val) { mUpdate = val; } 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project bool getExtending(void) const { return mExtending; } 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setExtending(bool val) { mExtending = val; } 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project bool getRequireLocalization(void) const { return mRequireLocalization; } 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setRequireLocalization(bool val) { mRequireLocalization = val; } 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project bool getPseudolocalize(void) const { return mPseudolocalize; } 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setPseudolocalize(bool val) { mPseudolocalize = val; } 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setWantUTF16(bool val) { mWantUTF16 = val; } 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project bool getValues(void) const { return mValues; } 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setValues(bool val) { mValues = val; } 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project bool getIncludeMetaData(void) const { return mIncludeMetaData; } 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setIncludeMetaData(bool val) { mIncludeMetaData = val; } 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getCompressionMethod(void) const { return mCompressionMethod; } 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setCompressionMethod(int val) { mCompressionMethod = val; } 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project bool getJunkPath(void) const { return mJunkPath; } 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setJunkPath(bool val) { mJunkPath = val; } 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project const char* getOutputAPKFile() const { return mOutputAPKFile; } 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setOutputAPKFile(const char* val) { mOutputAPKFile = val; } 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project const char* getManifestPackageNameOverride() const { return mManifestPackageNameOverride; } 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setManifestPackageNameOverride(const char * val) { mManifestPackageNameOverride = val; } 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project const char* getInstrumentationPackageNameOverride() const { return mInstrumentationPackageNameOverride; } 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setInstrumentationPackageNameOverride(const char * val) { mInstrumentationPackageNameOverride = val; } 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project bool getAutoAddOverlay() { return mAutoAddOverlay; } 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setAutoAddOverlay(bool val) { mAutoAddOverlay = val; } 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project bool getGenDependencies() { return mGenDependencies; } 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setGenDependencies(bool val) { mGenDependencies = val; } 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project bool getErrorOnFailedInsert() { return mErrorOnFailedInsert; } 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setErrorOnFailedInsert(bool val) { mErrorOnFailedInsert = val; } 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project bool getErrorOnMissingConfigEntry() { return mErrorOnMissingConfigEntry; } 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setErrorOnMissingConfigEntry(bool val) { mErrorOnMissingConfigEntry = val; } 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project bool getUTF16StringsOption() { 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mWantUTF16 || !isMinSdkAtLeast(SDK_FROYO); 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /* 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Input options. 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project const android::Vector<const char*>& getAssetSourceDirs() const { return mAssetSourceDirs; } 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void addAssetSourceDir(const char* dir) { mAssetSourceDirs.insertAt(dir,0); } 133 const char* getCrunchedOutputDir() const { return mCrunchedOutputDir; } 134 void setCrunchedOutputDir(const char* dir) { mCrunchedOutputDir = dir; } 135 const char* getProguardFile() const { return mProguardFile; } 136 void setProguardFile(const char* file) { mProguardFile = file; } 137 const android::Vector<const char*>& getResourceSourceDirs() const { return mResourceSourceDirs; } 138 void addResourceSourceDir(const char* dir) { mResourceSourceDirs.insertAt(dir,0); } 139 const char* getAndroidManifestFile() const { return mAndroidManifestFile; } 140 void setAndroidManifestFile(const char* file) { mAndroidManifestFile = file; } 141 const char* getPublicOutputFile() const { return mPublicOutputFile; } 142 void setPublicOutputFile(const char* file) { mPublicOutputFile = file; } 143 const char* getRClassDir() const { return mRClassDir; } 144 void setRClassDir(const char* dir) { mRClassDir = dir; } 145 const char* getConfigurations() const { return mConfigurations.size() > 0 ? mConfigurations.string() : NULL; } 146 void addConfigurations(const char* val) { if (mConfigurations.size() > 0) { mConfigurations.append(","); mConfigurations.append(val); } else { mConfigurations = val; } } 147 const char* getPreferredConfigurations() const { return mPreferredConfigurations.size() > 0 ? mPreferredConfigurations.string() : NULL; } 148 void addPreferredConfigurations(const char* val) { if (mPreferredConfigurations.size() > 0) { mPreferredConfigurations.append(","); mPreferredConfigurations.append(val); } else { mPreferredConfigurations = val; } } 149 const char* getResourceIntermediatesDir() const { return mResourceIntermediatesDir; } 150 void setResourceIntermediatesDir(const char* dir) { mResourceIntermediatesDir = dir; } 151 const android::Vector<const char*>& getPackageIncludes() const { return mPackageIncludes; } 152 void addPackageInclude(const char* file) { mPackageIncludes.add(file); } 153 const android::Vector<const char*>& getJarFiles() const { return mJarFiles; } 154 void addJarFile(const char* file) { mJarFiles.add(file); } 155 const android::Vector<const char*>& getNoCompressExtensions() const { return mNoCompressExtensions; } 156 void addNoCompressExtension(const char* ext) { mNoCompressExtensions.add(ext); } 157 158 const char* getManifestMinSdkVersion() const { return mManifestMinSdkVersion; } 159 void setManifestMinSdkVersion(const char* val) { mManifestMinSdkVersion = val; } 160 const char* getMinSdkVersion() const { return mMinSdkVersion; } 161 void setMinSdkVersion(const char* val) { mMinSdkVersion = val; } 162 const char* getTargetSdkVersion() const { return mTargetSdkVersion; } 163 void setTargetSdkVersion(const char* val) { mTargetSdkVersion = val; } 164 const char* getMaxSdkVersion() const { return mMaxSdkVersion; } 165 void setMaxSdkVersion(const char* val) { mMaxSdkVersion = val; } 166 const char* getVersionCode() const { return mVersionCode; } 167 void setVersionCode(const char* val) { mVersionCode = val; } 168 const char* getVersionName() const { return mVersionName; } 169 void setVersionName(const char* val) { mVersionName = val; } 170 bool getReplaceVersion() { return mReplaceVersion; } 171 void setReplaceVersion(bool val) { mReplaceVersion = val; } 172 const char* getCustomPackage() const { return mCustomPackage; } 173 void setCustomPackage(const char* val) { mCustomPackage = val; } 174 const char* getExtraPackages() const { return mExtraPackages; } 175 void setExtraPackages(const char* val) { mExtraPackages = val; } 176 const char* getMaxResVersion() const { return mMaxResVersion; } 177 void setMaxResVersion(const char * val) { mMaxResVersion = val; } 178 bool getDebugMode() const { return mDebugMode; } 179 void setDebugMode(bool val) { mDebugMode = val; } 180 bool getNonConstantId() const { return mNonConstantId; } 181 void setNonConstantId(bool val) { mNonConstantId = val; } 182 const char* getProduct() const { return mProduct; } 183 void setProduct(const char * val) { mProduct = val; } 184 void setUseCrunchCache(bool val) { mUseCrunchCache = val; } 185 bool getUseCrunchCache() const { return mUseCrunchCache; } 186 const char* getOutputTextSymbols() const { return mOutputTextSymbols; } 187 void setOutputTextSymbols(const char* val) { mOutputTextSymbols = val; } 188 const char* getSingleCrunchInputFile() const { return mSingleCrunchInputFile; } 189 void setSingleCrunchInputFile(const char* val) { mSingleCrunchInputFile = val; } 190 const char* getSingleCrunchOutputFile() const { return mSingleCrunchOutputFile; } 191 void setSingleCrunchOutputFile(const char* val) { mSingleCrunchOutputFile = val; } 192 bool getBuildSharedLibrary() const { return mBuildSharedLibrary; } 193 void setBuildSharedLibrary(bool val) { mBuildSharedLibrary = val; } 194 195 /* 196 * Set and get the file specification. 197 * 198 * Note this does NOT make a copy of argv. 199 */ 200 void setFileSpec(char* const argv[], int argc) { 201 mArgc = argc; 202 mArgv = argv; 203 } 204 int getFileSpecCount(void) const { return mArgc; } 205 const char* getFileSpecEntry(int idx) const { return mArgv[idx]; } 206 void eatArgs(int n) { 207 if (n > mArgc) n = mArgc; 208 mArgv += n; 209 mArgc -= n; 210 } 211 212#if 0 213 /* 214 * Package count. Nothing to do with anything else here; this is 215 * just a convenient place to stuff it so we don't have to pass it 216 * around everywhere. 217 */ 218 int getPackageCount(void) const { return mPackageCount; } 219 void setPackageCount(int val) { mPackageCount = val; } 220#endif 221 222 /* Certain features may only be available on a specific SDK level or 223 * above. SDK levels that have a non-numeric identifier are assumed 224 * to be newer than any SDK level that has a number designated. 225 */ 226 bool isMinSdkAtLeast(int desired) { 227 /* If the application specifies a minSdkVersion in the manifest 228 * then use that. Otherwise, check what the user specified on 229 * the command line. If neither, it's not available since 230 * the minimum SDK version is assumed to be 1. 231 */ 232 const char *minVer; 233 if (mManifestMinSdkVersion != NULL) { 234 minVer = mManifestMinSdkVersion; 235 } else if (mMinSdkVersion != NULL) { 236 minVer = mMinSdkVersion; 237 } else { 238 return false; 239 } 240 241 char *end; 242 int minSdkNum = (int)strtol(minVer, &end, 0); 243 if (*end == '\0') { 244 if (minSdkNum < desired) { 245 return false; 246 } 247 } 248 return true; 249 } 250 251private: 252 /* commands & modifiers */ 253 Command mCmd; 254 bool mVerbose; 255 bool mAndroidList; 256 bool mForce; 257 int mGrayscaleTolerance; 258 bool mMakePackageDirs; 259 bool mUpdate; 260 bool mExtending; 261 bool mRequireLocalization; 262 bool mPseudolocalize; 263 bool mWantUTF16; 264 bool mValues; 265 bool mIncludeMetaData; 266 int mCompressionMethod; 267 bool mJunkPath; 268 const char* mOutputAPKFile; 269 const char* mManifestPackageNameOverride; 270 const char* mInstrumentationPackageNameOverride; 271 bool mAutoAddOverlay; 272 bool mGenDependencies; 273 const char* mCrunchedOutputDir; 274 const char* mProguardFile; 275 const char* mAndroidManifestFile; 276 const char* mPublicOutputFile; 277 const char* mRClassDir; 278 const char* mResourceIntermediatesDir; 279 android::String8 mConfigurations; 280 android::String8 mPreferredConfigurations; 281 android::Vector<const char*> mPackageIncludes; 282 android::Vector<const char*> mJarFiles; 283 android::Vector<const char*> mNoCompressExtensions; 284 android::Vector<const char*> mAssetSourceDirs; 285 android::Vector<const char*> mResourceSourceDirs; 286 287 const char* mManifestMinSdkVersion; 288 const char* mMinSdkVersion; 289 const char* mTargetSdkVersion; 290 const char* mMaxSdkVersion; 291 const char* mVersionCode; 292 const char* mVersionName; 293 bool mReplaceVersion; 294 const char* mCustomPackage; 295 const char* mExtraPackages; 296 const char* mMaxResVersion; 297 bool mDebugMode; 298 bool mNonConstantId; 299 const char* mProduct; 300 bool mUseCrunchCache; 301 bool mErrorOnFailedInsert; 302 bool mErrorOnMissingConfigEntry; 303 const char* mOutputTextSymbols; 304 const char* mSingleCrunchInputFile; 305 const char* mSingleCrunchOutputFile; 306 bool mBuildSharedLibrary; 307 308 /* file specification */ 309 int mArgc; 310 char* const* mArgv; 311 312#if 0 313 /* misc stuff */ 314 int mPackageCount; 315#endif 316 317}; 318 319#endif // __BUNDLE_H 320