build.gradle 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. import de.undercouch.gradle.tasks.download.Download
  2. import de.undercouch.gradle.tasks.download.Verify
  3. apply plugin: 'com.android.application'
  4. apply plugin: 'witness'
  5. apply plugin: 'com.neenbedankt.android-apt'
  6. apply plugin: 'de.undercouch.download'
  7. repositories {
  8. jcenter()
  9. maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
  10. }
  11. dependencies {
  12. def supportVersion = '23.2.1'
  13. compile project(':briar-api')
  14. compile project(':briar-core')
  15. compile fileTree(dir: 'libs', include: '*.jar')
  16. // This shouldn't be necessary; per section 23.4.4 of the Gradle docs:
  17. // "file dependencies are included in transitive project dependencies within the same build".
  18. compile files('../briar-core/libs/jsocks.jar')
  19. compile "com.android.support:support-v4:$supportVersion"
  20. compile("com.android.support:appcompat-v7:$supportVersion") {
  21. exclude module: 'support-v4'
  22. }
  23. compile("com.android.support:preference-v7:$supportVersion") {
  24. exclude module: 'support-v4'
  25. }
  26. compile("com.android.support:preference-v14:$supportVersion") {
  27. exclude module: 'support-v4'
  28. exclude module: 'preference-v7'
  29. exclude module: 'recyclerview-v7'
  30. }
  31. compile("com.android.support:design:$supportVersion") {
  32. exclude module: 'support-v4'
  33. exclude module: 'recyclerview-v7'
  34. }
  35. compile('ch.acra:acra:4.8.5') {
  36. exclude module: 'support-v4'
  37. exclude module: 'support-annotations'
  38. }
  39. compile 'info.guardianproject.panic:panic:0.5'
  40. compile 'info.guardianproject.trustedintents:trustedintents:0.2'
  41. compile 'de.hdodenhof:circleimageview:2.0.0'
  42. compile 'com.google.zxing:core:3.2.1'
  43. apt 'com.google.dagger:dagger-compiler:2.0.2'
  44. provided 'javax.annotation:jsr250-api:1.0'
  45. testCompile 'junit:junit:4.12'
  46. testCompile 'net.jodah:concurrentunit:0.4.2'
  47. testApt 'com.google.dagger:dagger-compiler:2.0.2'
  48. testCompile project(path: ':briar-tests')
  49. testCompile 'org.robolectric:robolectric:3.0'
  50. testCompile 'org.mockito:mockito-core:1.10.19'
  51. androidTestCompile 'org.robolectric:robolectric:3.0'
  52. androidTestCompile 'org.mockito:mockito-core:1.10.19'
  53. androidTestApt 'com.google.dagger:dagger-compiler:2.0.2'
  54. androidTestCompile 'junit:junit:4.12'
  55. }
  56. dependencyVerification {
  57. verify = [
  58. 'ch.acra:acra:afd5b28934d5166b55f261c85685ad59e8a4ebe9ca1960906afaa8c76d8dc9eb',
  59. 'info.guardianproject.panic:panic:a7ed9439826db2e9901649892cf9afbe76f00991b768d8f4c26332d7c9406cb2',
  60. 'info.guardianproject.trustedintents:trustedintents:6221456d8821a8d974c2acf86306900237cf6afaaa94a4c9c44e161350f80f3e',
  61. 'de.hdodenhof:circleimageview:c76d936395b50705a3f98c9220c22d2599aeb9e609f559f6048975cfc1f686b8',
  62. 'com.google.zxing:core:b4d82452e7a6bf6ec2698904b332431717ed8f9a850224f295aec89de80f2259',
  63. 'com.android.support:support-v4:81ce890f26d35c75ad17d0f998a7e3230330c3b41e0b629566bc744bee89e448',
  64. 'com.android.support:appcompat-v7:00f9d93acacd6731f309724054bf51492814b4b2869f16d7d5c0038dcb8c9a0d',
  65. 'com.android.support:preference-v7:775101bd07bd052e455761c5c5d9523d7ad59f2f320e3e8cbde241fd6b1d6025',
  66. 'com.android.support:preference-v14:44881bb46094e86d0bc2426f205419674a5b4eb514b44b5a4659b5de29f71eb7',
  67. 'com.android.support:design:003e0c0bea0a6891f8b2bc43f20ae7af2a49a17363e5bb10df5ee0bae12fa686',
  68. 'com.android.support:support-annotations:786ab0d060774fb95cfdaf4878771e14b85733b1af9d72a4aae762dc7c1dff9f',
  69. 'com.android.support:animated-vector-drawable:06d1963b85aa917099d7757e6a7b3e4dc06889413dc747f625ae8683606db3a1',
  70. 'com.android.support:support-vector-drawable:799bafe4c3de812386f0b291f744d5d6876452722dd40189b9ab87dbbf594ea1',
  71. 'com.android.support:recyclerview-v7:44040a888e23e0c93162a3377cfe06751080e3c22d369ab0d4301ef60d63b0fe',
  72. ]
  73. }
  74. android {
  75. compileSdkVersion 23
  76. buildToolsVersion "23.0.3"
  77. sourceSets {
  78. main {
  79. manifest.srcFile 'AndroidManifest.xml'
  80. java.srcDirs = ['src']
  81. resources.srcDirs = ['src']
  82. aidl.srcDirs = ['src']
  83. renderscript.srcDirs = ['src']
  84. res.srcDirs = ['res']
  85. assets.srcDirs = ['assets']
  86. }
  87. androidTest.setRoot('androidTest')
  88. androidTest {
  89. java.srcDirs = ['androidTest/java']
  90. }
  91. test.setRoot('test')
  92. test {
  93. java.srcDirs = ['test/java']
  94. testOptions {
  95. unitTests.returnDefaultValues = true
  96. }
  97. }
  98. // Move the build types to build-types/<type>
  99. // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
  100. // This moves them out of them default location under src/<type>/... which would
  101. // conflict with src/ being used by the main source set.
  102. // Adding new build types or product flavors should be accompanied
  103. // by a similar customization.
  104. debug.setRoot('build-types/debug')
  105. release.setRoot('build-types/release')
  106. }
  107. buildTypes {
  108. debug {
  109. minifyEnabled true
  110. proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
  111. }
  112. release {
  113. minifyEnabled true
  114. proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
  115. }
  116. }
  117. compileOptions {
  118. sourceCompatibility JavaVersion.VERSION_1_7
  119. targetCompatibility JavaVersion.VERSION_1_7
  120. }
  121. lintOptions {
  122. abortOnError false
  123. }
  124. dexOptions {
  125. incremental true
  126. }
  127. }
  128. task downloadTorGeoIp(type: Download) {
  129. src 'https://briarproject.org/build/geoip-2015-12-01.zip'
  130. dest 'assets/geoip.zip'
  131. onlyIfNewer true
  132. }
  133. task downloadTorBinaryArm(type: Download) {
  134. src 'https://briarproject.org/build/tor-0.2.7.6-arm.zip'
  135. dest 'assets/tor-arm.zip'
  136. onlyIfNewer true
  137. }
  138. task downloadTorBinaryArmPie(type: Download) {
  139. src 'https://briarproject.org/build/tor-0.2.7.6-arm-pie.zip'
  140. dest 'assets/tor-arm-pie.zip'
  141. onlyIfNewer true
  142. }
  143. task downloadTorBinaryX86(type: Download) {
  144. src 'https://briarproject.org/build/tor-0.2.7.6-x86.zip'
  145. dest 'assets/tor-x86.zip'
  146. onlyIfNewer true
  147. }
  148. task downloadTorBinaryX86Pie(type: Download) {
  149. src 'https://briarproject.org/build/tor-0.2.7.6-x86-pie.zip'
  150. dest 'assets/tor-x86-pie.zip'
  151. onlyIfNewer true
  152. }
  153. task verifyTorGeoIp(type: Verify, dependsOn: 'downloadTorGeoIp') {
  154. src 'assets/geoip.zip'
  155. algorithm 'SHA-256'
  156. checksum '9bcdaf0a7ba0933735328d8ec466c25c25dbb459efc2bce9e55c774eabea5162'
  157. }
  158. task verifyTorBinaryArm(type: Verify, dependsOn: 'downloadTorBinaryArm') {
  159. src 'assets/tor-arm.zip'
  160. algorithm 'SHA-256'
  161. checksum '83272962eda701cd5d74d2418651c4ff0f0b1dff51f558a292d1a1c42bf12146'
  162. }
  163. task verifyTorBinaryArmPie(type: Verify, dependsOn: 'downloadTorBinaryArmPie') {
  164. src 'assets/tor-arm-pie.zip'
  165. algorithm 'SHA-256'
  166. checksum 'd0300d1e45de11ebb24ed62b9c492be9c2e88590b7822195ab38c7a76ffcf646'
  167. }
  168. task verifyTorBinaryX86(type: Verify, dependsOn: 'downloadTorBinaryX86') {
  169. src 'assets/tor-x86.zip'
  170. algorithm 'SHA-256'
  171. checksum 'b8813d97b01ee1b9c9a4233c1b9bbe9f9f6b494ae6f9cbd84de8a3911911615e'
  172. }
  173. task verifyTorBinaryX86Pie(type: Verify, dependsOn: 'downloadTorBinaryX86Pie') {
  174. src 'assets/tor-x86-pie.zip'
  175. algorithm 'SHA-256'
  176. checksum '9c66e765aa196dc089951a1b2140cc8290305c2fcbf365121f99e01a233baf4e'
  177. }
  178. project.afterEvaluate {
  179. preBuild.dependsOn {
  180. [
  181. 'verifyTorGeoIp',
  182. 'verifyTorBinaryArm',
  183. 'verifyTorBinaryArmPie',
  184. 'verifyTorBinaryX86',
  185. 'verifyTorBinaryX86Pie'
  186. ]
  187. }
  188. }