aboutsummaryrefslogtreecommitdiff
path: root/plugins/proguard/Proguard.scala
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/proguard/Proguard.scala')
-rw-r--r--plugins/proguard/Proguard.scala32
1 files changed, 32 insertions, 0 deletions
diff --git a/plugins/proguard/Proguard.scala b/plugins/proguard/Proguard.scala
new file mode 100644
index 0000000..486d969
--- /dev/null
+++ b/plugins/proguard/Proguard.scala
@@ -0,0 +1,32 @@
+package cbt
+
+trait ProGuard extends BaseBuild {
+ def proguard: () => ClassPath
+ def ProGuard(keep: (Seq[cbt.proguard.KeepOptionModifier], String)) = {
+ cbt.ProGuard(context).proguard(
+ outjars = Some( Seq(scalaTarget / "proguarded.jar") ),
+ injars = Some( classpath.files ),
+ libraryjars = Some( ClassPath( cbt.proguard.ProGuard.`rt.jar` ).files ),
+ keep = Some( keep )
+ )
+ }
+}
+
+object ProGuard {
+ def apply( implicit context: Context ) = {
+ import context._
+ val lib = new Lib(context.logger)
+ import cbt.proguard.ProGuard._
+ cbt.proguard.ProGuard(
+ (args: Seq[String]) => MavenResolver(
+ cbtLastModified, context.paths.mavenCache, mavenCentral
+ )(
+ context.logger, transientCache, context.classLoaderCache
+ ).bindOne(
+ MavenDependency(groupId, artifactId, version)
+ ).runMain(cbt.proguard.ProGuard.mainClass, args: _*).integer,
+ ClassPath(_),
+ context.logger.log("proguard",_)
+ )
+ }
+}