Advertisement
Guest User

Untitled

a guest
Oct 2nd, 2014
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.73 KB | None | 0 0
  1. buildscript {
  2. dependencies {
  3. classpath 'com.android.tools.build:gradle:0.12.+'
  4. classpath "com.neenbedankt.gradle.plugins:android-apt:1.2"
  5. classpath 'com.jakewharton.sdkmanager:gradle-plugin:0.+'
  6. }
  7. }
  8.  
  9. apply plugin: 'android-sdk-manager'
  10. apply plugin: 'android'
  11. apply plugin: 'android-apt'
  12.  
  13. android {
  14.  
  15. compileSdkVersion androidCompileSdkVersion
  16. buildToolsVersion androidBuildToolsVersion
  17.  
  18. defaultConfig {
  19. versionName "4.1." // + getBuildNumber() + ".phase2" + "-" + commitHash
  20. minSdkVersion androidMinSdkVersion
  21. targetSdkVersion androidTargetSdkVersion
  22. }
  23. configurations {
  24. provided
  25. }
  26.  
  27. sourceSets {
  28. main {
  29. manifest.srcFile 'src/main/AndroidManifest.xml'
  30. java.srcDirs = ['src/main/java', greenDaoSourceDir]
  31. res.srcDirs = ['src/main/res']
  32. assets.srcDirs = ['src/main/assets']
  33. }
  34.  
  35. mcom {
  36. manifest.srcFile 'src/mcom/AndroidManifest.xml'
  37. java.srcDirs = ['src/mcom/java']
  38. res.srcDirs = ['src/mcom/res']
  39. assets.srcDirs = ['src/mcom/assets']
  40. }
  41. bcom {
  42. manifest.srcFile 'src/bcom/AndroidManifest.xml'
  43. java.srcDirs = ['src/bcom/java']
  44. res.srcDirs = ['src/bcom/res']
  45. assets.srcDirs = ['src/bcom/assets']
  46. }
  47. }
  48.  
  49. signingConfigs {
  50.  
  51. debug {
  52. storeFile file("config/longsword.key")
  53. storePassword "longsword"
  54. keyAlias "longsword"
  55. keyPassword "longsword"
  56. }
  57.  
  58. mcomRelease {
  59. storeFile file("config/macys-prod.keystore")
  60. storePassword "macys_keystore"
  61. keyAlias "macys_keystore"
  62. keyPassword "macys_keystore"
  63. }
  64.  
  65. bcomRelease {
  66. storeFile file("config/bloomies-prod.keystore")
  67. storePassword "bloomies_keystore"
  68. keyAlias "bloomies_keystore"
  69. keyPassword "bloomies_keystore"
  70. }
  71. }
  72.  
  73. buildTypes {
  74. release {
  75. versionNameSuffix "-release"
  76. zipAlign true
  77. debuggable false
  78. runProguard true
  79. proguardFile 'config/proguard-android.txt'
  80. }
  81.  
  82. debug {
  83. versionNameSuffix "-debug"
  84. signingConfig signingConfigs.debug
  85. runProguard false
  86. proguardFile 'config/proguard-android.txt'
  87. }
  88.  
  89. }
  90.  
  91. productFlavors {
  92. mcom {
  93. applicationId "com.macys.android"
  94. versionName "mcom-" + defaultConfig.versionName
  95. signingConfig signingConfigs.mcomRelease
  96. }
  97.  
  98. bcom {
  99. applicationId "com.bloomies.android"
  100. versionName "bcom-" + defaultConfig.versionName
  101. signingConfig signingConfigs.bcomRelease
  102. }
  103. }
  104.  
  105. lintOptions {
  106. checkReleaseBuilds true
  107. abortOnError false
  108. }
  109.  
  110. compileOptions {
  111. sourceCompatibility JavaVersion.VERSION_1_7
  112. targetCompatibility JavaVersion.VERSION_1_7
  113. }
  114.  
  115. packagingOptions {
  116. exclude 'META-INF/LICENSE'
  117. exclude 'META-INF/NOTICE'
  118. exclude 'META-INF/LICENSE.txt'
  119. exclude 'META-INF/NOTICE.txt'
  120. }
  121.  
  122. android.applicationVariants.all { variant ->
  123. // renameApk(variant)
  124. // generateJavadoc(variant)
  125. generateGreenDaos(variant)
  126. loadProperties(variant, 'config/config.json')
  127. // makeBuildConfigNonFinal(variant)
  128. variant.javaCompile.classpath += configurations.provided
  129. }
  130. }
  131.  
  132. dependencies {
  133.  
  134. compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
  135. compile 'com.octo.android.robospice:robospice:1.4.11'
  136. compile 'com.google.android.gms:play-services:4.2.+'
  137. compile 'com.google.maps.android:android-maps-utils:0.+'
  138. compile 'com.viewpagerindicator:library:2.4.1@aar'
  139. compile('com.nhaarman.supertooltips:library:3.0.+') {
  140. exclude group: 'com.nineoldandroids', module: 'library'
  141. }
  142.  
  143. compile 'de.timroes.android:EnhancedListView:0.3.2@aar'
  144. compile 'com.mobsandgeeks:android-saripaar:1.0.2'
  145.  
  146. /* external dependens for barcodefragment library */
  147. provided 'com.google.zxing:core:2.2+'
  148.  
  149. compile 'com.nhaarman.listviewanimations:lib-core:3.1.0@aar'
  150. compile 'com.nhaarman.listviewanimations:lib-manipulation:3.1.0@aar'
  151. compile 'com.nhaarman.listviewanimations:lib-core-slh:3.1.0@aar'
  152. compile 'com.iangclifton.android:floatlabel:1.0.1'
  153.  
  154. compile project(':Libraries:macys-dao')
  155. compile project(':Libraries:ShoppingModel')
  156. provided project(':Libraries:barcodefragment')
  157. compile project(':Libraries:SherlockNavigationDrawer')
  158. provided project(':Libraries:facebook')
  159. compile project(':Libraries:ecogallery')
  160. provided project(':Libraries:photoviewlibrary')
  161.  
  162. compile fileTree(dir: 'libs', include: '*.jar')
  163.  
  164.  
  165. /*
  166. Should be uncommented when library will be updated.
  167. Issue - https://github.com/keyboardsurfer/Crouton/pull/174
  168. Now we use jar from libs folder
  169.  
  170. compile('de.keyboardsurfer.android.widget:crouton:1.8.3') {
  171. exclude group: 'com.google.android', module: 'support-v4'
  172. }
  173. */
  174. debugCompile 'com.noveogroup.android:android-logger:1.3.1'
  175. }
  176.  
  177. apt {
  178. arguments {
  179. androidManifestFile variant.processResources.manifestFile
  180. resourcePackageName 'com.macys'
  181. }
  182. }
  183.  
  184. /**
  185. * Generates database access classes
  186. */
  187. task generateGreenDao(type: JavaExec) {
  188. description = "Generates GreenDao database management sources"
  189. classpath configurations.all
  190. main 'com.macys.main.dao.MacysDaoGenerator'
  191. args project.greenDaoSourceDir
  192. }
  193.  
  194. /**
  195. * Get build version number
  196. */
  197. def getBuildNumber() {
  198. def env = System.getenv()
  199. def buildNumber = env.BUILD_NUMBER?.toInteger()
  200. buildNumber = buildNumber ?: 0
  201. return buildNumber.toString()
  202. }
  203.  
  204. /**
  205. * Rename apk file name according to variant
  206. */
  207. def renameApk(variant) {
  208. //check if staging variant
  209. if (variant.zipAlign) {
  210. def file = variant.outputFile
  211. def fileName = variant.versionName + ".apk"
  212. variant.outputFile = new File(file.parent, fileName)
  213. }
  214. def file = variant.packageApplication.outputFile
  215. def fileName = file.name.replace(".apk", "-" + variant.versionName + ".apk")
  216. fileName = fileName.replaceFirst(".+-unaligned", "unaligned")
  217. variant.packageApplication.outputFile = new File(file.parent, fileName)
  218. }
  219.  
  220. /**
  221. * Loads properties from file
  222. * @param sourceFileName file name
  223. */
  224. import groovy.json.JsonSlurper
  225. def loadProperties(variant, String sourceFileName) {
  226. def config = new JsonSlurper().parseText(new File(project.getProjectDir(), sourceFileName).text)
  227. def addFields = { configuration ->
  228. if (configuration) {
  229. configuration.buildConfig?.each {
  230. variant.buildType.buildConfigField "String", it.key, "\"${it.value}\""
  231. }
  232. configuration.manifestMetadata?.each {
  233. addManifestMetadata(variant, it.key, it.value)
  234. }
  235. }
  236. }
  237. def taskName = "add${variant.name.capitalize()}ConfigFields"
  238. task "$taskName" << {
  239. addFields(config)
  240. addFields(config."$variant.buildType.name")
  241. String flavorName = variant.name.replace(variant.buildType.name.capitalize(), "")
  242. addFields(config."$flavorName")
  243. addFields(config."$variant.name")
  244. }
  245.  
  246. tasks["generate${variant.name.capitalize()}BuildConfig"].dependsOn "$taskName"
  247. }
  248.  
  249. def makeBuildConfigNonFinal(variant) {
  250. if (variant.buildType.name == 'debug') {
  251. def removeFinalTask = "make${variant.name.capitalize()}BuildConfigNonFinal"
  252. tasks["generate${variant.name.capitalize()}BuildConfig"].doLast {
  253. File buildConfigFile = new File(project.getProjectDir(), "build/generated/source/buildConfig/${variant.name.replace(variant.buildType.name.capitalize(), "")}/${variant.buildType.name.toLowerCase()}/com/macys/BuildConfig.java")
  254. buildConfigFile.text = buildConfigFile.text.replaceAll("static final", "static")
  255. }
  256. }
  257. }
  258.  
  259. def getPropertiesForName(name, String sourceFileName) {
  260. new JsonSlurper().parseText(new File(project.getProjectDir(), sourceFileName).text)."$name".buildConfig
  261. }
  262. /**
  263. * Adds javadoc task to variant
  264. */
  265. def generateJavadoc(variant) {
  266. def name = variant.name
  267. task "javadoc$name"(type: Javadoc, dependsOn: "generate${name.capitalize()}Sources") {
  268. title = "$name $version API"
  269. description "Generates Javadoc for $variant.name."
  270. source = variant.javaCompile.source
  271. ext.androidJar =
  272. "${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar"
  273. classpath = files(variant.javaCompile.classpath.files) + files(ext.androidJar)
  274. options.links("http://docs.oracle.com/javase/7/docs/api/");
  275. options.links("http://d.android.com/reference/");
  276. exclude '**/BuildConfig.java'
  277. exclude '**/R.java'
  278. }
  279. }
  280.  
  281. /**
  282. * Adds generate Greendao sources task dependency
  283. * to variant
  284. */
  285. def generateGreenDaos(variant) {
  286. tasks["generate${variant.name.capitalize()}Sources"].dependsOn generateGreenDao
  287. }
  288.  
  289. /**
  290. * Adds javadoc task to variant
  291. */
  292. import groovy.xml.XmlUtil
  293. def addManifestMetadata(variant, name, value) {
  294. File manifestFile = variant.processManifest.manifestOutputFile
  295. variant.processManifest.doLast {
  296.  
  297. def manifest = new XmlSlurper(false, false).parseText(manifestFile.text)
  298. manifest.'application'[0].appendNode {
  299. 'meta-data'('android:name': name, 'android:value': value)
  300. }
  301. manifestFile.text = XmlUtil.serialize(manifest)
  302. }
  303. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement