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> 103b4062eeb01be33951ba214e027da523cf09f8b1Mathias Agopian#include <utils/Log.h> 113b4062eeb01be33951ba214e027da523cf09f8b1Mathias Agopian#include <utils/threads.h> 123b4062eeb01be33951ba214e027da523cf09f8b1Mathias Agopian#include <utils/List.h> 133b4062eeb01be33951ba214e027da523cf09f8b1Mathias Agopian#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 176c997a9e880e08c354ffd809bd62df9e25e9c4d4Dianne Hackbornenum { 186c997a9e880e08c354ffd809bd62df9e25e9c4d4Dianne Hackborn SDK_CUPCAKE = 3, 196c997a9e880e08c354ffd809bd62df9e25e9c4d4Dianne Hackborn SDK_DONUT = 4, 206c997a9e880e08c354ffd809bd62df9e25e9c4d4Dianne Hackborn SDK_ECLAIR = 5, 216c997a9e880e08c354ffd809bd62df9e25e9c4d4Dianne Hackborn SDK_ECLAIR_0_1 = 6, 226c997a9e880e08c354ffd809bd62df9e25e9c4d4Dianne Hackborn SDK_MR1 = 7, 236c997a9e880e08c354ffd809bd62df9e25e9c4d4Dianne Hackborn SDK_FROYO = 8, 246c997a9e880e08c354ffd809bd62df9e25e9c4d4Dianne Hackborn SDK_HONEYCOMB_MR2 = 13, 256c997a9e880e08c354ffd809bd62df9e25e9c4d4Dianne Hackborn SDK_ICE_CREAM_SANDWICH = 14, 266c997a9e880e08c354ffd809bd62df9e25e9c4d4Dianne Hackborn SDK_ICE_CREAM_SANDWICH_MR1 = 15, 276c997a9e880e08c354ffd809bd62df9e25e9c4d4Dianne Hackborn}; 286c997a9e880e08c354ffd809bd62df9e25e9c4d4Dianne Hackborn 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, 408a39da80b33691b0c82458c3b7727e13ff71277eJosiah Gaskin kCommandCrunch, 41b1f6ad82dd8d1702617a757a88430604b3131facXavier Ducrohet 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), 541741cd4904414b5b4e768953a8f1abb3f0ef0a0aKenny Root mWantUTF16(false), mValues(false), 55dbcfed9e2cad3175109aca4b55bbe41da7238a4fHaitao Feng mCompressionMethod(0), mJunkPath(false), mOutputAPKFile(NULL), 56ef05e076ced1a32c5c0aaee28403779834adb2baDianne Hackborn mManifestPackageNameOverride(NULL), mInstrumentationPackageNameOverride(NULL), 579bf34ca6f85309c65b0ebdf614cb8266401b49baJosiah Gaskin mAutoAddOverlay(false), mGenDependencies(false), 588a39da80b33691b0c82458c3b7727e13ff71277eJosiah Gaskin mAssetSourceDir(NULL), 598a39da80b33691b0c82458c3b7727e13ff71277eJosiah Gaskin mCrunchedOutputDir(NULL), mProguardFile(NULL), 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mAndroidManifestFile(NULL), mPublicOutputFile(NULL), 611741cd4904414b5b4e768953a8f1abb3f0ef0a0aKenny Root mRClassDir(NULL), mResourceIntermediatesDir(NULL), mManifestMinSdkVersion(NULL), 62fa6baa259d8b1af768e5c1d7ceb27184391f8fb1Dianne Hackborn mMinSdkVersion(NULL), mTargetSdkVersion(NULL), mMaxSdkVersion(NULL), 63ce89f1531ed8b96b8b790b3f8b18dd4cf483f7f0Josiah Gaskin mVersionCode(NULL), mVersionName(NULL), mCustomPackage(NULL), mExtraPackages(NULL), 64d06c1afbb920111d6bb77381560faa1fac5f2d69Xavier Ducrohet mMaxResVersion(NULL), mDebugMode(false), mNonConstantId(false), mProduct(NULL), 65f5de650ff1e161ea135c828e43515895343d2c0fXavier Ducrohet mUseCrunchCache(false), mErrorOnFailedInsert(false), mOutputTextSymbols(NULL), 66b1f6ad82dd8d1702617a757a88430604b3131facXavier Ducrohet mSingleCrunchInputFile(NULL), mSingleCrunchOutputFile(NULL), 67f5de650ff1e161ea135c828e43515895343d2c0fXavier Ducrohet mArgc(0), mArgv(NULL) 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project {} 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ~Bundle(void) {} 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /* 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set the command value. Returns "false" if it was previously set. 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Command getCommand(void) const { return mCmd; } 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setCommand(Command cmd) { mCmd = cmd; } 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /* 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Command modifiers. Not all modifiers are appropriate for all 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * commands. 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project bool getVerbose(void) const { return mVerbose; } 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setVerbose(bool val) { mVerbose = val; } 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project bool getAndroidList(void) const { return mAndroidList; } 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setAndroidList(bool val) { mAndroidList = val; } 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project bool getForce(void) const { return mForce; } 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setForce(bool val) { mForce = val; } 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setGrayscaleTolerance(int val) { mGrayscaleTolerance = val; } 88c0f7366a15655c6973ea21029f1997f24c006ccaJeff Brown int getGrayscaleTolerance() const { return mGrayscaleTolerance; } 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project bool getMakePackageDirs(void) const { return mMakePackageDirs; } 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setMakePackageDirs(bool val) { mMakePackageDirs = val; } 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project bool getUpdate(void) const { return mUpdate; } 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setUpdate(bool val) { mUpdate = val; } 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project bool getExtending(void) const { return mExtending; } 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setExtending(bool val) { mExtending = val; } 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project bool getRequireLocalization(void) const { return mRequireLocalization; } 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setRequireLocalization(bool val) { mRequireLocalization = val; } 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project bool getPseudolocalize(void) const { return mPseudolocalize; } 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setPseudolocalize(bool val) { mPseudolocalize = val; } 991741cd4904414b5b4e768953a8f1abb3f0ef0a0aKenny Root void setWantUTF16(bool val) { mWantUTF16 = val; } 100e17086ba346009a26cc2299b133a0fe602acb6ecDianne Hackborn bool getValues(void) const { return mValues; } 101e17086ba346009a26cc2299b133a0fe602acb6ecDianne Hackborn void setValues(bool val) { mValues = val; } 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getCompressionMethod(void) const { return mCompressionMethod; } 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setCompressionMethod(int val) { mCompressionMethod = val; } 104dbe7a68cc13ae135b33769918932838d2d447169Doug Zongker bool getJunkPath(void) const { return mJunkPath; } 105dbe7a68cc13ae135b33769918932838d2d447169Doug Zongker void setJunkPath(bool val) { mJunkPath = val; } 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project const char* getOutputAPKFile() const { return mOutputAPKFile; } 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setOutputAPKFile(const char* val) { mOutputAPKFile = val; } 1082fee0ed6eb99b211efa06f095a41268a2021214aJeff Hamilton const char* getManifestPackageNameOverride() const { return mManifestPackageNameOverride; } 1092fee0ed6eb99b211efa06f095a41268a2021214aJeff Hamilton void setManifestPackageNameOverride(const char * val) { mManifestPackageNameOverride = val; } 110ef05e076ced1a32c5c0aaee28403779834adb2baDianne Hackborn const char* getInstrumentationPackageNameOverride() const { return mInstrumentationPackageNameOverride; } 111ef05e076ced1a32c5c0aaee28403779834adb2baDianne Hackborn void setInstrumentationPackageNameOverride(const char * val) { mInstrumentationPackageNameOverride = val; } 11299080c7d9ad9e5ccfec70dd10e4c24468a960c45Xavier Ducrohet bool getAutoAddOverlay() { return mAutoAddOverlay; } 11399080c7d9ad9e5ccfec70dd10e4c24468a960c45Xavier Ducrohet void setAutoAddOverlay(bool val) { mAutoAddOverlay = val; } 1149bf34ca6f85309c65b0ebdf614cb8266401b49baJosiah Gaskin bool getGenDependencies() { return mGenDependencies; } 1159bf34ca6f85309c65b0ebdf614cb8266401b49baJosiah Gaskin void setGenDependencies(bool val) { mGenDependencies = val; } 1167714a2429b192c88e134ff67b969121bbaeb5457Xavier Ducrohet bool getErrorOnFailedInsert() { return mErrorOnFailedInsert; } 1177714a2429b192c88e134ff67b969121bbaeb5457Xavier Ducrohet void setErrorOnFailedInsert(bool val) { mErrorOnFailedInsert = val; } 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1196c997a9e880e08c354ffd809bd62df9e25e9c4d4Dianne Hackborn bool getUTF16StringsOption() { 1206c997a9e880e08c354ffd809bd62df9e25e9c4d4Dianne Hackborn return mWantUTF16 || !isMinSdkAtLeast(SDK_FROYO); 1216c997a9e880e08c354ffd809bd62df9e25e9c4d4Dianne Hackborn } 1226c997a9e880e08c354ffd809bd62df9e25e9c4d4Dianne Hackborn 123dbe7a68cc13ae135b33769918932838d2d447169Doug Zongker /* 124dbe7a68cc13ae135b33769918932838d2d447169Doug Zongker * Input options. 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project const char* getAssetSourceDir() const { return mAssetSourceDir; } 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setAssetSourceDir(const char* dir) { mAssetSourceDir = dir; } 1288a39da80b33691b0c82458c3b7727e13ff71277eJosiah Gaskin const char* getCrunchedOutputDir() const { return mCrunchedOutputDir; } 1298a39da80b33691b0c82458c3b7727e13ff71277eJosiah Gaskin void setCrunchedOutputDir(const char* dir) { mCrunchedOutputDir = dir; } 1301553c82e084ac5763fb393857224145506771b99Joe Onorato const char* getProguardFile() const { return mProguardFile; } 1311553c82e084ac5763fb393857224145506771b99Joe Onorato void setProguardFile(const char* file) { mProguardFile = file; } 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project const android::Vector<const char*>& getResourceSourceDirs() const { return mResourceSourceDirs; } 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void addResourceSourceDir(const char* dir) { mResourceSourceDirs.insertAt(dir,0); } 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project const char* getAndroidManifestFile() const { return mAndroidManifestFile; } 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setAndroidManifestFile(const char* file) { mAndroidManifestFile = file; } 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project const char* getPublicOutputFile() const { return mPublicOutputFile; } 1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setPublicOutputFile(const char* file) { mPublicOutputFile = file; } 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project const char* getRClassDir() const { return mRClassDir; } 1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setRClassDir(const char* dir) { mRClassDir = dir; } 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project const char* getConfigurations() const { return mConfigurations.size() > 0 ? mConfigurations.string() : NULL; } 1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void addConfigurations(const char* val) { if (mConfigurations.size() > 0) { mConfigurations.append(","); mConfigurations.append(val); } else { mConfigurations = val; } } 142e6b680364dd992907a8d2037685a2e500d188dfbDianne Hackborn const char* getPreferredConfigurations() const { return mPreferredConfigurations.size() > 0 ? mPreferredConfigurations.string() : NULL; } 143e6b680364dd992907a8d2037685a2e500d188dfbDianne Hackborn void addPreferredConfigurations(const char* val) { if (mPreferredConfigurations.size() > 0) { mPreferredConfigurations.append(","); mPreferredConfigurations.append(val); } else { mPreferredConfigurations = val; } } 1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project const char* getResourceIntermediatesDir() const { return mResourceIntermediatesDir; } 1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setResourceIntermediatesDir(const char* dir) { mResourceIntermediatesDir = dir; } 1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project const android::Vector<const char*>& getPackageIncludes() const { return mPackageIncludes; } 1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void addPackageInclude(const char* file) { mPackageIncludes.add(file); } 1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project const android::Vector<const char*>& getJarFiles() const { return mJarFiles; } 1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void addJarFile(const char* file) { mJarFiles.add(file); } 1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project const android::Vector<const char*>& getNoCompressExtensions() const { return mNoCompressExtensions; } 1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void addNoCompressExtension(const char* ext) { mNoCompressExtensions.add(ext); } 1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1531741cd4904414b5b4e768953a8f1abb3f0ef0a0aKenny Root const char* getManifestMinSdkVersion() const { return mManifestMinSdkVersion; } 1541741cd4904414b5b4e768953a8f1abb3f0ef0a0aKenny Root void setManifestMinSdkVersion(const char* val) { mManifestMinSdkVersion = val; } 155a96cbb435d7b2197ab2b61fd98d14cbd6e0c5c3dDianne Hackborn const char* getMinSdkVersion() const { return mMinSdkVersion; } 1561741cd4904414b5b4e768953a8f1abb3f0ef0a0aKenny Root void setMinSdkVersion(const char* val) { mMinSdkVersion = val; } 157a96cbb435d7b2197ab2b61fd98d14cbd6e0c5c3dDianne Hackborn const char* getTargetSdkVersion() const { return mTargetSdkVersion; } 158a96cbb435d7b2197ab2b61fd98d14cbd6e0c5c3dDianne Hackborn void setTargetSdkVersion(const char* val) { mTargetSdkVersion = val; } 159a96cbb435d7b2197ab2b61fd98d14cbd6e0c5c3dDianne Hackborn const char* getMaxSdkVersion() const { return mMaxSdkVersion; } 160a96cbb435d7b2197ab2b61fd98d14cbd6e0c5c3dDianne Hackborn void setMaxSdkVersion(const char* val) { mMaxSdkVersion = val; } 161a96cbb435d7b2197ab2b61fd98d14cbd6e0c5c3dDianne Hackborn const char* getVersionCode() const { return mVersionCode; } 162a96cbb435d7b2197ab2b61fd98d14cbd6e0c5c3dDianne Hackborn void setVersionCode(const char* val) { mVersionCode = val; } 163a96cbb435d7b2197ab2b61fd98d14cbd6e0c5c3dDianne Hackborn const char* getVersionName() const { return mVersionName; } 164a96cbb435d7b2197ab2b61fd98d14cbd6e0c5c3dDianne Hackborn void setVersionName(const char* val) { mVersionName = val; } 16563459ad555c10de1f316d6de01fc3cd0c0aaa457Xavier Ducrohet const char* getCustomPackage() const { return mCustomPackage; } 16663459ad555c10de1f316d6de01fc3cd0c0aaa457Xavier Ducrohet void setCustomPackage(const char* val) { mCustomPackage = val; } 167ce89f1531ed8b96b8b790b3f8b18dd4cf483f7f0Josiah Gaskin const char* getExtraPackages() const { return mExtraPackages; } 168ce89f1531ed8b96b8b790b3f8b18dd4cf483f7f0Josiah Gaskin void setExtraPackages(const char* val) { mExtraPackages = val; } 169588f228d6a3e3b254fbc1f13f29ee47e13a669c1Ficus Kirkpatrick const char* getMaxResVersion() const { return mMaxResVersion; } 170588f228d6a3e3b254fbc1f13f29ee47e13a669c1Ficus Kirkpatrick void setMaxResVersion(const char * val) { mMaxResVersion = val; } 171c0f7366a15655c6973ea21029f1997f24c006ccaJeff Brown bool getDebugMode() const { return mDebugMode; } 1726487b099231b1e5d36ae37a921399b028b3b3ad9Xavier Ducrohet void setDebugMode(bool val) { mDebugMode = val; } 173c0f7366a15655c6973ea21029f1997f24c006ccaJeff Brown bool getNonConstantId() const { return mNonConstantId; } 174d06c1afbb920111d6bb77381560faa1fac5f2d69Xavier Ducrohet void setNonConstantId(bool val) { mNonConstantId = val; } 17590964040cabfc67f92a7c3322a02401bb6f8ae82Eric Fischer const char* getProduct() const { return mProduct; } 17690964040cabfc67f92a7c3322a02401bb6f8ae82Eric Fischer void setProduct(const char * val) { mProduct = val; } 1778a39da80b33691b0c82458c3b7727e13ff71277eJosiah Gaskin void setUseCrunchCache(bool val) { mUseCrunchCache = val; } 178c0f7366a15655c6973ea21029f1997f24c006ccaJeff Brown bool getUseCrunchCache() const { return mUseCrunchCache; } 179f5de650ff1e161ea135c828e43515895343d2c0fXavier Ducrohet const char* getOutputTextSymbols() const { return mOutputTextSymbols; } 180f5de650ff1e161ea135c828e43515895343d2c0fXavier Ducrohet void setOutputTextSymbols(const char* val) { mOutputTextSymbols = val; } 181b1f6ad82dd8d1702617a757a88430604b3131facXavier Ducrohet const char* getSingleCrunchInputFile() const { return mSingleCrunchInputFile; } 182b1f6ad82dd8d1702617a757a88430604b3131facXavier Ducrohet void setSingleCrunchInputFile(const char* val) { mSingleCrunchInputFile = val; } 183b1f6ad82dd8d1702617a757a88430604b3131facXavier Ducrohet const char* getSingleCrunchOutputFile() const { return mSingleCrunchOutputFile; } 184b1f6ad82dd8d1702617a757a88430604b3131facXavier Ducrohet void setSingleCrunchOutputFile(const char* val) { mSingleCrunchOutputFile = val; } 185dbe7a68cc13ae135b33769918932838d2d447169Doug Zongker 1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /* 1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set and get the file specification. 1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Note this does NOT make a copy of argv. 1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setFileSpec(char* const argv[], int argc) { 1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mArgc = argc; 1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mArgv = argv; 1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getFileSpecCount(void) const { return mArgc; } 1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project const char* getFileSpecEntry(int idx) const { return mArgv[idx]; } 1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void eatArgs(int n) { 1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (n > mArgc) n = mArgc; 1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mArgv += n; 2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mArgc -= n; 2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if 0 2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /* 2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Package count. Nothing to do with anything else here; this is 2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * just a convenient place to stuff it so we don't have to pass it 2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * around everywhere. 2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getPackageCount(void) const { return mPackageCount; } 2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setPackageCount(int val) { mPackageCount = val; } 2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif 2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 213c9f3088036dd7cce6903e307afea3e289a334036Kenny Root /* Certain features may only be available on a specific SDK level or 214c9f3088036dd7cce6903e307afea3e289a334036Kenny Root * above. SDK levels that have a non-numeric identifier are assumed 215c9f3088036dd7cce6903e307afea3e289a334036Kenny Root * to be newer than any SDK level that has a number designated. 2161741cd4904414b5b4e768953a8f1abb3f0ef0a0aKenny Root */ 217c9f3088036dd7cce6903e307afea3e289a334036Kenny Root bool isMinSdkAtLeast(int desired) { 2181741cd4904414b5b4e768953a8f1abb3f0ef0a0aKenny Root /* If the application specifies a minSdkVersion in the manifest 2191741cd4904414b5b4e768953a8f1abb3f0ef0a0aKenny Root * then use that. Otherwise, check what the user specified on 2201741cd4904414b5b4e768953a8f1abb3f0ef0a0aKenny Root * the command line. If neither, it's not available since 2211741cd4904414b5b4e768953a8f1abb3f0ef0a0aKenny Root * the minimum SDK version is assumed to be 1. 2221741cd4904414b5b4e768953a8f1abb3f0ef0a0aKenny Root */ 2231741cd4904414b5b4e768953a8f1abb3f0ef0a0aKenny Root const char *minVer; 2241741cd4904414b5b4e768953a8f1abb3f0ef0a0aKenny Root if (mManifestMinSdkVersion != NULL) { 2251741cd4904414b5b4e768953a8f1abb3f0ef0a0aKenny Root minVer = mManifestMinSdkVersion; 2261741cd4904414b5b4e768953a8f1abb3f0ef0a0aKenny Root } else if (mMinSdkVersion != NULL) { 2271741cd4904414b5b4e768953a8f1abb3f0ef0a0aKenny Root minVer = mMinSdkVersion; 2281741cd4904414b5b4e768953a8f1abb3f0ef0a0aKenny Root } else { 2291741cd4904414b5b4e768953a8f1abb3f0ef0a0aKenny Root return false; 2301741cd4904414b5b4e768953a8f1abb3f0ef0a0aKenny Root } 2311741cd4904414b5b4e768953a8f1abb3f0ef0a0aKenny Root 2321741cd4904414b5b4e768953a8f1abb3f0ef0a0aKenny Root char *end; 2331741cd4904414b5b4e768953a8f1abb3f0ef0a0aKenny Root int minSdkNum = (int)strtol(minVer, &end, 0); 2341741cd4904414b5b4e768953a8f1abb3f0ef0a0aKenny Root if (*end == '\0') { 235c9f3088036dd7cce6903e307afea3e289a334036Kenny Root if (minSdkNum < desired) { 2361741cd4904414b5b4e768953a8f1abb3f0ef0a0aKenny Root return false; 2371741cd4904414b5b4e768953a8f1abb3f0ef0a0aKenny Root } 2381741cd4904414b5b4e768953a8f1abb3f0ef0a0aKenny Root } 2391741cd4904414b5b4e768953a8f1abb3f0ef0a0aKenny Root return true; 2401741cd4904414b5b4e768953a8f1abb3f0ef0a0aKenny Root } 2411741cd4904414b5b4e768953a8f1abb3f0ef0a0aKenny Root 2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectprivate: 2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /* commands & modifiers */ 2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Command mCmd; 2459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project bool mVerbose; 2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project bool mAndroidList; 2479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project bool mForce; 2489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int mGrayscaleTolerance; 2499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project bool mMakePackageDirs; 2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project bool mUpdate; 2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project bool mExtending; 2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project bool mRequireLocalization; 2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project bool mPseudolocalize; 2541741cd4904414b5b4e768953a8f1abb3f0ef0a0aKenny Root bool mWantUTF16; 255e17086ba346009a26cc2299b133a0fe602acb6ecDianne Hackborn bool mValues; 2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int mCompressionMethod; 257dbe7a68cc13ae135b33769918932838d2d447169Doug Zongker bool mJunkPath; 2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project const char* mOutputAPKFile; 2592fee0ed6eb99b211efa06f095a41268a2021214aJeff Hamilton const char* mManifestPackageNameOverride; 260ef05e076ced1a32c5c0aaee28403779834adb2baDianne Hackborn const char* mInstrumentationPackageNameOverride; 26199080c7d9ad9e5ccfec70dd10e4c24468a960c45Xavier Ducrohet bool mAutoAddOverlay; 2629bf34ca6f85309c65b0ebdf614cb8266401b49baJosiah Gaskin bool mGenDependencies; 2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project const char* mAssetSourceDir; 2648a39da80b33691b0c82458c3b7727e13ff71277eJosiah Gaskin const char* mCrunchedOutputDir; 2651553c82e084ac5763fb393857224145506771b99Joe Onorato const char* mProguardFile; 2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project const char* mAndroidManifestFile; 2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project const char* mPublicOutputFile; 2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project const char* mRClassDir; 2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project const char* mResourceIntermediatesDir; 2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project android::String8 mConfigurations; 271e6b680364dd992907a8d2037685a2e500d188dfbDianne Hackborn android::String8 mPreferredConfigurations; 2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project android::Vector<const char*> mPackageIncludes; 2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project android::Vector<const char*> mJarFiles; 2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project android::Vector<const char*> mNoCompressExtensions; 2759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project android::Vector<const char*> mResourceSourceDirs; 276dbe7a68cc13ae135b33769918932838d2d447169Doug Zongker 2771741cd4904414b5b4e768953a8f1abb3f0ef0a0aKenny Root const char* mManifestMinSdkVersion; 278a96cbb435d7b2197ab2b61fd98d14cbd6e0c5c3dDianne Hackborn const char* mMinSdkVersion; 279a96cbb435d7b2197ab2b61fd98d14cbd6e0c5c3dDianne Hackborn const char* mTargetSdkVersion; 280a96cbb435d7b2197ab2b61fd98d14cbd6e0c5c3dDianne Hackborn const char* mMaxSdkVersion; 281a96cbb435d7b2197ab2b61fd98d14cbd6e0c5c3dDianne Hackborn const char* mVersionCode; 282a96cbb435d7b2197ab2b61fd98d14cbd6e0c5c3dDianne Hackborn const char* mVersionName; 28363459ad555c10de1f316d6de01fc3cd0c0aaa457Xavier Ducrohet const char* mCustomPackage; 284ce89f1531ed8b96b8b790b3f8b18dd4cf483f7f0Josiah Gaskin const char* mExtraPackages; 285588f228d6a3e3b254fbc1f13f29ee47e13a669c1Ficus Kirkpatrick const char* mMaxResVersion; 2866487b099231b1e5d36ae37a921399b028b3b3ad9Xavier Ducrohet bool mDebugMode; 287d06c1afbb920111d6bb77381560faa1fac5f2d69Xavier Ducrohet bool mNonConstantId; 28890964040cabfc67f92a7c3322a02401bb6f8ae82Eric Fischer const char* mProduct; 2898a39da80b33691b0c82458c3b7727e13ff71277eJosiah Gaskin bool mUseCrunchCache; 2907714a2429b192c88e134ff67b969121bbaeb5457Xavier Ducrohet bool mErrorOnFailedInsert; 291f5de650ff1e161ea135c828e43515895343d2c0fXavier Ducrohet const char* mOutputTextSymbols; 292b1f6ad82dd8d1702617a757a88430604b3131facXavier Ducrohet const char* mSingleCrunchInputFile; 293b1f6ad82dd8d1702617a757a88430604b3131facXavier Ducrohet const char* mSingleCrunchOutputFile; 294dbe7a68cc13ae135b33769918932838d2d447169Doug Zongker 2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /* file specification */ 2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int mArgc; 2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project char* const* mArgv; 2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if 0 3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /* misc stuff */ 3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int mPackageCount; 3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif 303b5ef7ee1644b099498ddd29c1d051e7ee26ccfd3Kenny Root 3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}; 3059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // __BUNDLE_H 307