Advertisement
Guest User

Untitled

a guest
Jul 19th, 2014
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 3.08 KB | None | 0 0
  1. import sbt._
  2. import sbt.Keys._
  3.  
  4. import android.ArbitraryProject
  5. import android.Keys._
  6. import android.Dependencies.{LibraryProject, apklib}
  7.  
  8. import org.sbtidea.SbtIdeaPlugin._
  9.  
  10. object Common {
  11.  
  12.   val CommonSettings = Seq(
  13.     organization := "com.michalrus",
  14.     version := "1.0.0",
  15.     scalaVersion := "2.10.4",
  16.  
  17.     javacOptions in Compile ++= Seq("-Xlint:deprecation"),
  18.     scalacOptions in Compile ++= Seq("-feature", "-deprecation", "-Yno-adapted-args", "-Ywarn-all", "-Xfatal-warnings",
  19.       "-Xlint", "-Ywarn-value-discard", "-Ywarn-numeric-widen", "-Ywarn-dead-code", "-unchecked"),
  20.   )
  21.  
  22.   val AndroidSettings = android.Plugin.androidBuild ++ CommonSettings ++ Seq(
  23.     platformTarget in Android := "android-17"
  24.   )
  25.  
  26.   def genIdeaSettings(src: String) = Seq(
  27.     ideaSourcesClassifiers := Seq(src),
  28.     ideaJavadocsClassifiers := Seq(),
  29.     ideaBasePackage := None,
  30.     ideaPackagePrefix := None
  31.   )
  32.  
  33. }
  34.  
  35. object Build extends Build {
  36.   import Common._
  37.  
  38.   // --- github:ApmeM/android-flowlayout
  39.  
  40.   val flBase = (ArbitraryProject git uri("https://github.com/michalrus/android-flowlayout.git" +
  41.     "#9337f8ddbc554e85b399aaee227f05e4bb34d85d")) / "libraries" / "layouts"
  42.   lazy val flSettings = AndroidSettings ++ Seq(libraryProject in Android := true) ++ genIdeaSettings("src")
  43.   lazy val fl = RootProject(flBase)
  44.  
  45.   // --- github:edmodo/range-bar
  46.  
  47.   val rbBase = (ArbitraryProject git uri("https://github.com/edmodo/range-bar.git" +
  48.     "#29559f006729dde0d4b2eaaec4fc8026f8cb76c4")) / "rangebar"
  49.   val rbSettings = AndroidSettings ++ Seq(libraryProject in Android := true) ++ genIdeaSettings("src")
  50.   val rb = RootProject(rbBase)
  51.  
  52.   // --- build loaders
  53.  
  54.   override def buildLoaders = ArbitraryProject settingsLoader Map(
  55.     flBase -> flSettings,
  56.     rbBase -> rbSettings
  57.   )
  58.  
  59.   // --- root
  60.  
  61.   lazy val root = Project(id = "root", base = file(".")).settings(
  62.     AndroidSettings ++ Seq(
  63.       name := "pitch",
  64.  
  65.       libraryDependencies += "com.netflix.rxjava" % "rxjava-core" % "0.17.1",
  66.       libraryDependencies += "com.netflix.rxjava" % "rxjava-scala" % "0.17.1" intransitive(),
  67.  
  68.       libraryDependencies += "org.joda" % "joda-convert" % "1.6",
  69.       libraryDependencies += "joda-time" % "joda-time" % "2.3",
  70.  
  71.       apkbuildExcludes in Android ++= Seq("META-INF/LICENSE.txt", "META-INF/NOTICE.txt"),
  72.  
  73.       localProjects in Android += LibraryProject(flBase),
  74.       localProjects in Android += LibraryProject(rbBase),
  75.  
  76.       run <<= run in Android,
  77.  
  78.       useProguard in Android := true,
  79.       proguardOptions in Android += "-keep public class org.joda.time.tz.Provider",
  80.       proguardOptions in Android += "-keep public class org.joda.time.tz.NameProvider",
  81.       proguardOptions in Android += "-dontwarn javax.xml.bind.DatatypeConverter"
  82.     )
  83.   :_*) dependsOn (macros, fl, rb) aggregate (macros, fl, rb)
  84.  
  85.   // -- macros
  86.  
  87.   lazy val macros = Project(id = "macros", base = file("macros")).settings(
  88.     CommonSettings ++ Seq(
  89.       libraryDependencies <+= scalaVersion("org.scala-lang" % "scala-reflect" % _),
  90.       exportJars := true
  91.     )
  92.   :_*)
  93.  
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement