Bundle.h revision 282e181b58cf72b6ca770dc7ca5f91f135444502
19720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// 29720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// Copyright 2006 The Android Open Source Project 39720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// 49720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// State bundle. Used to pass around stuff like command-line args. 59720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// 69720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#ifndef __BUNDLE_H 79720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define __BUNDLE_H 89720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 99720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#include <stdlib.h> 109720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#include <utils/Log.h> 119720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#include <utils/threads.h> 129720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#include <utils/List.h> 139720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#include <utils/Errors.h> 149720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#include <utils/String8.h> 159720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#include <utils/Vector.h> 169720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 179720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockenum { 189720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block SDK_CUPCAKE = 3, 199720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block SDK_DONUT = 4, 209720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block SDK_ECLAIR = 5, 219720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block SDK_ECLAIR_0_1 = 6, 229720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block SDK_MR1 = 7, 239720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block SDK_FROYO = 8, 249720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block SDK_HONEYCOMB_MR2 = 13, 259720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block SDK_ICE_CREAM_SANDWICH = 14, 269720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block SDK_ICE_CREAM_SANDWICH_MR1 = 15, 279720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block}; 289720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 299720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block/* 309720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Things we can do. 319720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block */ 329720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktypedef enum Command { 339720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block kCommandUnknown = 0, 349720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block kCommandVersion, 359720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block kCommandList, 369720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block kCommandDump, 379720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block kCommandAdd, 389720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block kCommandRemove, 399720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block kCommandPackage, 409720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block kCommandCrunch, 419720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block kCommandSingleCrunch, 429720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block} Command; 439720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 449720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block/* 459720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Bundle of goodies, including everything specified on the command line. 469720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block */ 479720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockclass Bundle { 489720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockpublic: 499720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block Bundle(void) 509720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block : mCmd(kCommandUnknown), mVerbose(false), mAndroidList(false), 519720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block mForce(false), mGrayscaleTolerance(0), mMakePackageDirs(false), 529720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block mUpdate(false), mExtending(false), 539720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block mRequireLocalization(false), mPseudolocalize(false), 549720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block mWantUTF16(false), mValues(false), mIncludeMetaData(false), 559720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block mCompressionMethod(0), mJunkPath(false), mOutputAPKFile(NULL), 569720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block mManifestPackageNameOverride(NULL), mInstrumentationPackageNameOverride(NULL), 579720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block mAutoAddOverlay(false), mGenDependencies(false), 589720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block mAssetSourceDir(NULL), 599720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block mCrunchedOutputDir(NULL), mProguardFile(NULL), 609720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block mAndroidManifestFile(NULL), mPublicOutputFile(NULL), 619720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block mRClassDir(NULL), mResourceIntermediatesDir(NULL), mManifestMinSdkVersion(NULL), 629720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block mMinSdkVersion(NULL), mTargetSdkVersion(NULL), mMaxSdkVersion(NULL), 639720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block mVersionCode(NULL), mVersionName(NULL), mCustomPackage(NULL), mExtraPackages(NULL), 649720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block mMaxResVersion(NULL), mDebugMode(false), mNonConstantId(false), mProduct(NULL), 659720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block mUseCrunchCache(false), mErrorOnFailedInsert(false), mOutputTextSymbols(NULL), 669720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block mSingleCrunchInputFile(NULL), mSingleCrunchOutputFile(NULL), 679720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block mArgc(0), mArgv(NULL) 689720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block {} 699720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block ~Bundle(void) {} 709720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 719720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block /* 729720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Set the command value. Returns "false" if it was previously set. 739720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block */ 749720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block Command getCommand(void) const { return mCmd; } 759720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setCommand(Command cmd) { mCmd = cmd; } 769720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 779720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block /* 789720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Command modifiers. Not all modifiers are appropriate for all 799720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * commands. 809720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block */ 819720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block bool getVerbose(void) const { return mVerbose; } 829720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setVerbose(bool val) { mVerbose = val; } 839720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block bool getAndroidList(void) const { return mAndroidList; } 849720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setAndroidList(bool val) { mAndroidList = val; } 859720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block bool getForce(void) const { return mForce; } 869720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setForce(bool val) { mForce = val; } 879720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setGrayscaleTolerance(int val) { mGrayscaleTolerance = val; } 889720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block int getGrayscaleTolerance() const { return mGrayscaleTolerance; } 899720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block bool getMakePackageDirs(void) const { return mMakePackageDirs; } 909720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setMakePackageDirs(bool val) { mMakePackageDirs = val; } 919720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block bool getUpdate(void) const { return mUpdate; } 929720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setUpdate(bool val) { mUpdate = val; } 939720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block bool getExtending(void) const { return mExtending; } 949720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setExtending(bool val) { mExtending = val; } 959720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block bool getRequireLocalization(void) const { return mRequireLocalization; } 969720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setRequireLocalization(bool val) { mRequireLocalization = val; } 979720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block bool getPseudolocalize(void) const { return mPseudolocalize; } 989720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setPseudolocalize(bool val) { mPseudolocalize = val; } 999720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setWantUTF16(bool val) { mWantUTF16 = val; } 1009720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block bool getValues(void) const { return mValues; } 1019720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setValues(bool val) { mValues = val; } 1029720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block bool getIncludeMetaData(void) const { return mIncludeMetaData; } 1039720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setIncludeMetaData(bool val) { mIncludeMetaData = val; } 1049720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block int getCompressionMethod(void) const { return mCompressionMethod; } 1059720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setCompressionMethod(int val) { mCompressionMethod = val; } 1069720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block bool getJunkPath(void) const { return mJunkPath; } 1079720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setJunkPath(bool val) { mJunkPath = val; } 1089720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* getOutputAPKFile() const { return mOutputAPKFile; } 1099720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setOutputAPKFile(const char* val) { mOutputAPKFile = val; } 1109720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* getManifestPackageNameOverride() const { return mManifestPackageNameOverride; } 1119720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setManifestPackageNameOverride(const char * val) { mManifestPackageNameOverride = val; } 1129720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* getInstrumentationPackageNameOverride() const { return mInstrumentationPackageNameOverride; } 1139720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setInstrumentationPackageNameOverride(const char * val) { mInstrumentationPackageNameOverride = val; } 1149720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block bool getAutoAddOverlay() { return mAutoAddOverlay; } 1159720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setAutoAddOverlay(bool val) { mAutoAddOverlay = val; } 1169720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block bool getGenDependencies() { return mGenDependencies; } 1179720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setGenDependencies(bool val) { mGenDependencies = val; } 1189720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block bool getErrorOnFailedInsert() { return mErrorOnFailedInsert; } 1199720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setErrorOnFailedInsert(bool val) { mErrorOnFailedInsert = val; } 1209720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1219720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block bool getUTF16StringsOption() { 1229720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block return mWantUTF16 || !isMinSdkAtLeast(SDK_FROYO); 1239720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block } 1249720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1259720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block /* 1269720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Input options. 1279720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block */ 1289720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* getAssetSourceDir() const { return mAssetSourceDir; } 1299720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setAssetSourceDir(const char* dir) { mAssetSourceDir = dir; } 1309720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* getCrunchedOutputDir() const { return mCrunchedOutputDir; } 1319720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setCrunchedOutputDir(const char* dir) { mCrunchedOutputDir = dir; } 1329720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* getProguardFile() const { return mProguardFile; } 1339720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setProguardFile(const char* file) { mProguardFile = file; } 1349720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const android::Vector<const char*>& getResourceSourceDirs() const { return mResourceSourceDirs; } 1359720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void addResourceSourceDir(const char* dir) { mResourceSourceDirs.insertAt(dir,0); } 1369720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* getAndroidManifestFile() const { return mAndroidManifestFile; } 1379720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setAndroidManifestFile(const char* file) { mAndroidManifestFile = file; } 1389720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* getPublicOutputFile() const { return mPublicOutputFile; } 1399720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setPublicOutputFile(const char* file) { mPublicOutputFile = file; } 1409720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* getRClassDir() const { return mRClassDir; } 1419720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setRClassDir(const char* dir) { mRClassDir = dir; } 1429720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* getConfigurations() const { return mConfigurations.size() > 0 ? mConfigurations.string() : NULL; } 1439720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void addConfigurations(const char* val) { if (mConfigurations.size() > 0) { mConfigurations.append(","); mConfigurations.append(val); } else { mConfigurations = val; } } 1449720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* getPreferredConfigurations() const { return mPreferredConfigurations.size() > 0 ? mPreferredConfigurations.string() : NULL; } 1459720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void addPreferredConfigurations(const char* val) { if (mPreferredConfigurations.size() > 0) { mPreferredConfigurations.append(","); mPreferredConfigurations.append(val); } else { mPreferredConfigurations = val; } } 1469720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* getResourceIntermediatesDir() const { return mResourceIntermediatesDir; } 1479720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setResourceIntermediatesDir(const char* dir) { mResourceIntermediatesDir = dir; } 1489720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const android::Vector<const char*>& getPackageIncludes() const { return mPackageIncludes; } 1499720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void addPackageInclude(const char* file) { mPackageIncludes.add(file); } 1509720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const android::Vector<const char*>& getJarFiles() const { return mJarFiles; } 1519720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void addJarFile(const char* file) { mJarFiles.add(file); } 1529720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const android::Vector<const char*>& getNoCompressExtensions() const { return mNoCompressExtensions; } 1539720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void addNoCompressExtension(const char* ext) { mNoCompressExtensions.add(ext); } 1549720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1559720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* getManifestMinSdkVersion() const { return mManifestMinSdkVersion; } 1569720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setManifestMinSdkVersion(const char* val) { mManifestMinSdkVersion = val; } 1579720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* getMinSdkVersion() const { return mMinSdkVersion; } 1589720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setMinSdkVersion(const char* val) { mMinSdkVersion = val; } 1599720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* getTargetSdkVersion() const { return mTargetSdkVersion; } 1609720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setTargetSdkVersion(const char* val) { mTargetSdkVersion = val; } 1619720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* getMaxSdkVersion() const { return mMaxSdkVersion; } 1629720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setMaxSdkVersion(const char* val) { mMaxSdkVersion = val; } 1639720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* getVersionCode() const { return mVersionCode; } 1649720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setVersionCode(const char* val) { mVersionCode = val; } 1659720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* getVersionName() const { return mVersionName; } 1669720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setVersionName(const char* val) { mVersionName = val; } 1679720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* getCustomPackage() const { return mCustomPackage; } 1689720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setCustomPackage(const char* val) { mCustomPackage = val; } 1699720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* getExtraPackages() const { return mExtraPackages; } 1709720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setExtraPackages(const char* val) { mExtraPackages = val; } 1719720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* getMaxResVersion() const { return mMaxResVersion; } 1729720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setMaxResVersion(const char * val) { mMaxResVersion = val; } 1739720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block bool getDebugMode() const { return mDebugMode; } 1749720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setDebugMode(bool val) { mDebugMode = val; } 1759720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block bool getNonConstantId() const { return mNonConstantId; } 1769720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setNonConstantId(bool val) { mNonConstantId = val; } 1779720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* getProduct() const { return mProduct; } 1789720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setProduct(const char * val) { mProduct = val; } 1799720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setUseCrunchCache(bool val) { mUseCrunchCache = val; } 1809720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block bool getUseCrunchCache() const { return mUseCrunchCache; } 1819720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* getOutputTextSymbols() const { return mOutputTextSymbols; } 1829720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setOutputTextSymbols(const char* val) { mOutputTextSymbols = val; } 1839720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* getSingleCrunchInputFile() const { return mSingleCrunchInputFile; } 1849720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setSingleCrunchInputFile(const char* val) { mSingleCrunchInputFile = val; } 1859720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* getSingleCrunchOutputFile() const { return mSingleCrunchOutputFile; } 1869720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setSingleCrunchOutputFile(const char* val) { mSingleCrunchOutputFile = val; } 1879720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1889720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block /* 1899720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Set and get the file specification. 1909720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * 1919720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Note this does NOT make a copy of argv. 1929720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block */ 1939720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setFileSpec(char* const argv[], int argc) { 1949720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block mArgc = argc; 1959720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block mArgv = argv; 1969720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block } 1979720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block int getFileSpecCount(void) const { return mArgc; } 1989720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* getFileSpecEntry(int idx) const { return mArgv[idx]; } 1999720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void eatArgs(int n) { 2009720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block if (n > mArgc) n = mArgc; 2019720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block mArgv += n; 2029720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block mArgc -= n; 2039720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block } 2049720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 2059720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if 0 2069720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block /* 2079720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Package count. Nothing to do with anything else here; this is 2089720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * just a convenient place to stuff it so we don't have to pass it 2099720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * around everywhere. 2109720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block */ 2119720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block int getPackageCount(void) const { return mPackageCount; } 2129720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block void setPackageCount(int val) { mPackageCount = val; } 2139720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif 2149720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 2159720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block /* Certain features may only be available on a specific SDK level or 2169720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * above. SDK levels that have a non-numeric identifier are assumed 2179720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * to be newer than any SDK level that has a number designated. 2189720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block */ 2199720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block bool isMinSdkAtLeast(int desired) { 2209720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block /* If the application specifies a minSdkVersion in the manifest 2219720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * then use that. Otherwise, check what the user specified on 2229720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * the command line. If neither, it's not available since 2239720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * the minimum SDK version is assumed to be 1. 2249720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block */ 2259720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char *minVer; 2269720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block if (mManifestMinSdkVersion != NULL) { 2279720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block minVer = mManifestMinSdkVersion; 2289720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block } else if (mMinSdkVersion != NULL) { 2299720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block minVer = mMinSdkVersion; 2309720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block } else { 2319720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block return false; 2329720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block } 2339720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 2349720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block char *end; 2359720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block int minSdkNum = (int)strtol(minVer, &end, 0); 2369720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block if (*end == '\0') { 2379720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block if (minSdkNum < desired) { 2389720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block return false; 2399720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block } 2409720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block } 2419720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block return true; 2429720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block } 2439720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 2449720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockprivate: 2459720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block /* commands & modifiers */ 2469720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block Command mCmd; 2479720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block bool mVerbose; 2489720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block bool mAndroidList; 2499720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block bool mForce; 2509720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block int mGrayscaleTolerance; 2519720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block bool mMakePackageDirs; 2529720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block bool mUpdate; 2539720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block bool mExtending; 2549720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block bool mRequireLocalization; 2559720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block bool mPseudolocalize; 2569720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block bool mWantUTF16; 2579720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block bool mValues; 2589720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block bool mIncludeMetaData; 2599720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block int mCompressionMethod; 2609720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block bool mJunkPath; 2619720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* mOutputAPKFile; 2629720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* mManifestPackageNameOverride; 2639720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* mInstrumentationPackageNameOverride; 2649720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block bool mAutoAddOverlay; 2659720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block bool mGenDependencies; 2669720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* mAssetSourceDir; 2679720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* mCrunchedOutputDir; 2689720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* mProguardFile; 2699720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* mAndroidManifestFile; 2709720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* mPublicOutputFile; 2719720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* mRClassDir; 2729720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* mResourceIntermediatesDir; 2739720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block android::String8 mConfigurations; 2749720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block android::String8 mPreferredConfigurations; 2759720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block android::Vector<const char*> mPackageIncludes; 2769720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block android::Vector<const char*> mJarFiles; 2779720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block android::Vector<const char*> mNoCompressExtensions; 2789720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block android::Vector<const char*> mResourceSourceDirs; 2799720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 2809720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* mManifestMinSdkVersion; 2819720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* mMinSdkVersion; 2829720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* mTargetSdkVersion; 2839720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* mMaxSdkVersion; 2849720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* mVersionCode; 2859720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* mVersionName; 2869720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* mCustomPackage; 2879720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const char* mExtraPackages; 288 const char* mMaxResVersion; 289 bool mDebugMode; 290 bool mNonConstantId; 291 const char* mProduct; 292 bool mUseCrunchCache; 293 bool mErrorOnFailedInsert; 294 const char* mOutputTextSymbols; 295 const char* mSingleCrunchInputFile; 296 const char* mSingleCrunchOutputFile; 297 298 /* file specification */ 299 int mArgc; 300 char* const* mArgv; 301 302#if 0 303 /* misc stuff */ 304 int mPackageCount; 305#endif 306 307}; 308 309#endif // __BUNDLE_H 310