summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore5
-rw-r--r--build.gradle5
-rw-r--r--build.py147
-rw-r--r--gradle/wrapper/gradle-wrapper.jarbin0 -> 53636 bytes
-rw-r--r--gradle/wrapper/gradle-wrapper.properties6
-rw-r--r--gradlew160
-rw-r--r--gradlew.bat90
7 files changed, 264 insertions, 149 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000..473f5559
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
1/Enigma.iml
2/bin
3/build
4/.gradle
5/.idea
diff --git a/build.gradle b/build.gradle
index fc599e2b..b223f28d 100644
--- a/build.gradle
+++ b/build.gradle
@@ -15,8 +15,8 @@ apply plugin: 'maven'
15group = 'cuchaz' 15group = 'cuchaz'
16version = '0.10.4b' 16version = '0.10.4b'
17 17
18sourceCompatibility = 1.7 18sourceCompatibility = 1.8
19targetCompatibility = 1.7 19targetCompatibility = 1.8
20 20
21// Custom source layout 21// Custom source layout
22sourceSets { 22sourceSets {
@@ -51,6 +51,7 @@ dependencies {
51 compile 'com.google.guava:guava:17.+' 51 compile 'com.google.guava:guava:17.+'
52 compile 'org.javassist:javassist:3.+' 52 compile 'org.javassist:javassist:3.+'
53 compile 'org.bitbucket.mstrobel:procyon-decompiler:0.5.28-enigma' 53 compile 'org.bitbucket.mstrobel:procyon-decompiler:0.5.28-enigma'
54 compile 'org.javassist:javassist:3.20.0-GA'
54 application 'de.sciss:syntaxpane:1.1.+' 55 application 'de.sciss:syntaxpane:1.1.+'
55 56
56 testCompile 'junit:junit:4.+' 57 testCompile 'junit:junit:4.+'
diff --git a/build.py b/build.py
deleted file mode 100644
index 55dc85f0..00000000
--- a/build.py
+++ /dev/null
@@ -1,147 +0,0 @@
1
2import os
3import sys
4
5# settings
6PathSsjb = "../ssjb"
7Author = "Cuchaz"
8Version = "0.11b"
9
10DirBin = "bin"
11DirLib = "lib"
12DirBuild = "build"
13PathLocalMavenRepo = "../maven"
14
15
16# import ssjb
17sys.path.insert(0, PathSsjb)
18import ssjb
19import ssjb.ivy
20
21
22ArtifactStandalone = ssjb.ivy.Dep("cuchaz:enigma:%s" % Version)
23ArtifactLib = ssjb.ivy.Dep("cuchaz:enigma-lib:%s" % Version)
24
25# dependencies
26ExtraRepos = [
27 "http://maven.cuchazinteractive.com"
28]
29LibDeps = [
30 ssjb.ivy.Dep("com.google.guava:guava:17.0"),
31 ssjb.ivy.Dep("org.javassist:javassist:3.19.0-GA"),
32 ssjb.ivy.Dep("org.bitbucket.mstrobel:procyon-decompiler:0.5.28-enigma")
33]
34StandaloneDeps = LibDeps + [
35 ssjb.ivy.Dep("de.sciss:syntaxpane:1.1.4")
36]
37ProguardDep = ssjb.ivy.Dep("net.sf.proguard:proguard-base:5.1")
38TestDeps = [
39 ssjb.ivy.Dep("junit:junit:4.12"),
40 ssjb.ivy.Dep("org.hamcrest:hamcrest-all:1.3")
41]
42
43# functions
44
45def buildTestJar(name, glob):
46
47 ssjb.file.mkdir(os.path.join(DirBuild, "test-inputs"))
48 ssjb.file.mkdir(os.path.join(DirBuild, "test-obf"))
49 pathJar = os.path.join(DirBuild, "test-inputs/%s.jar" % name)
50 pathObfJar = os.path.join(DirBuild, "test-obf/%s.jar" % name)
51
52 # build the unobf jar
53 with ssjb.file.TempDir("tmp") as dirTemp:
54 ssjb.file.copyTree(dirTemp, DirBin, ssjb.file.find(DirBin, "cuchaz/enigma/inputs/Keep.class"))
55 ssjb.file.copyTree(dirTemp, DirBin, ssjb.file.find(DirBin, glob))
56 ssjb.jar.makeJar(pathJar, dirTemp)
57
58 # build the obf jar
59 ssjb.callJavaJar(
60 os.path.join(DirLib, "proguard.jar"),
61 ["@proguard-test.conf", "-injars", pathJar, "-outjars", pathObfJar]
62 )
63
64def buildDeobfTestJar(outPath, inPath):
65 ssjb.callJava(
66 [DirBin, os.path.join(DirLib, "deps.jar")],
67 "cuchaz.enigma.CommandMain",
68 ["deobfuscate", inPath, outPath]
69 )
70
71def applyReadme(dirTemp):
72 ssjb.file.copy(dirTemp, "license.APL2.txt")
73 ssjb.file.copy(dirTemp, "license.LGPL3.txt")
74 ssjb.file.copy(dirTemp, "readme.txt")
75
76def buildStandaloneJar(dirOut):
77 with ssjb.file.TempDir(os.path.join(dirOut, "tmp")) as dirTemp:
78 ssjb.file.copyTree(dirTemp, DirBin, ssjb.file.find(DirBin))
79 for path in ssjb.ivy.getJarPaths(StandaloneDeps, ExtraRepos):
80 ssjb.jar.unpackJar(dirTemp, path)
81 ssjb.file.delete(os.path.join(dirTemp, "LICENSE.txt"))
82 ssjb.file.delete(os.path.join(dirTemp, "META-INF/maven"))
83 applyReadme(dirTemp)
84 manifest = ssjb.jar.buildManifest(
85 ArtifactStandalone.artifactId,
86 ArtifactStandalone.version,
87 Author,
88 "cuchaz.enigma.Main"
89 )
90 pathFatJar = os.path.join(DirBuild, "%s-fat.jar" % ArtifactStandalone.getName())
91 ssjb.jar.makeJar(pathFatJar, dirTemp, manifest=manifest)
92
93 # proguard the jar (without obfuscating) to remove some bloat
94 # the guava library is particularly bad...
95 pathDietJar = os.path.join(DirBuild, "%s.jar" % ArtifactStandalone.getName())
96 ssjb.callJavaJar(
97 os.path.join(DirLib, "proguard.jar"),
98 ["@proguard-build.conf", "-injars", pathFatJar, "-outjars", pathDietJar]
99 )
100
101 ssjb.ivy.deployJarToLocalMavenRepo(PathLocalMavenRepo, pathDietJar, ArtifactStandalone)
102
103
104def buildLibJar(dirOut):
105 with ssjb.file.TempDir(os.path.join(dirOut, "tmp")) as dirTemp:
106 ssjb.file.copyTree(dirTemp, DirBin, ssjb.file.find(DirBin))
107 applyReadme(dirTemp)
108 pathJar = os.path.join(DirBuild, "%s.jar" % ArtifactLib.getName())
109 ssjb.jar.makeJar(pathJar, dirTemp)
110 ssjb.ivy.deployJarToLocalMavenRepo(PathLocalMavenRepo, pathJar, ArtifactLib, deps=LibDeps)
111
112
113# tasks
114
115def taskGetDeps():
116 """Get all the Deps."""
117 ssjb.file.mkdir(DirLib)
118 ssjb.ivy.makeLibsJar(os.path.join(DirLib, "deps.jar"), StandaloneDeps, extraRepos=ExtraRepos)
119 ssjb.ivy.makeLibsJar(os.path.join(DirLib, "test-deps.jar"), TestDeps)
120 ssjb.ivy.makeJar(os.path.join(DirLib, "proguard.jar"), ProguardDep)
121
122def taskBuildTestJars():
123 """Build the test jar."""
124 buildTestJar("loneClass", "cuchaz/enigma/inputs/loneClass/*.class")
125 buildTestJar("constructors", "cuchaz/enigma/inputs/constructors/*.class")
126 buildTestJar("inheritanceTree", "cuchaz/enigma/inputs/inheritanceTree/*.class")
127 buildTestJar("innerClasses", "cuchaz/enigma/inputs/innerClasses/*.class")
128 taskBuildTranslationTestJar()
129
130def taskBuildTranslationTestJar():
131 """Build the Translation test jar."""
132 buildTestJar("translation", "cuchaz/enigma/inputs/translation/*.class")
133 buildDeobfTestJar(os.path.join(DirBuild, "test-deobf/translation.jar"), os.path.join(DirBuild, "test-obf/translation.jar"))
134
135def taskBuild():
136 """Build the engima jar."""
137 ssjb.file.delete(DirBuild)
138 ssjb.file.mkdir(DirBuild)
139 buildStandaloneJar(DirBuild)
140 buildLibJar(DirBuild)
141
142ssjb.registerTask("getDeps", taskGetDeps)
143ssjb.registerTask("buildTestJars", taskBuildTestJars)
144ssjb.registerTask("buildTranslationTestJar", taskBuildTranslationTestJar)
145ssjb.registerTask("build", taskBuild)
146ssjb.run()
147
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 00000000..94114481
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 00000000..6ada8a3b
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
1#Sun Jun 26 11:20:16 BST 2016
2distributionBase=GRADLE_USER_HOME
3distributionPath=wrapper/dists
4zipStoreBase=GRADLE_USER_HOME
5zipStorePath=wrapper/dists
6distributionUrl=https\://services.gradle.org/distributions/gradle-2.9-bin.zip
diff --git a/gradlew b/gradlew
new file mode 100644
index 00000000..9d82f789
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,160 @@
1#!/usr/bin/env bash
2
3##############################################################################
4##
5## Gradle start up script for UN*X
6##
7##############################################################################
8
9# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
10DEFAULT_JVM_OPTS=""
11
12APP_NAME="Gradle"
13APP_BASE_NAME=`basename "$0"`
14
15# Use the maximum available, or set MAX_FD != -1 to use that value.
16MAX_FD="maximum"
17
18warn ( ) {
19 echo "$*"
20}
21
22die ( ) {
23 echo
24 echo "$*"
25 echo
26 exit 1
27}
28
29# OS specific support (must be 'true' or 'false').
30cygwin=false
31msys=false
32darwin=false
33case "`uname`" in
34 CYGWIN* )
35 cygwin=true
36 ;;
37 Darwin* )
38 darwin=true
39 ;;
40 MINGW* )
41 msys=true
42 ;;
43esac
44
45# Attempt to set APP_HOME
46# Resolve links: $0 may be a link
47PRG="$0"
48# Need this for relative symlinks.
49while [ -h "$PRG" ] ; do
50 ls=`ls -ld "$PRG"`
51 link=`expr "$ls" : '.*-> \(.*\)$'`
52 if expr "$link" : '/.*' > /dev/null; then
53 PRG="$link"
54 else
55 PRG=`dirname "$PRG"`"/$link"
56 fi
57done
58SAVED="`pwd`"
59cd "`dirname \"$PRG\"`/" >/dev/null
60APP_HOME="`pwd -P`"
61cd "$SAVED" >/dev/null
62
63CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
64
65# Determine the Java command to use to start the JVM.
66if [ -n "$JAVA_HOME" ] ; then
67 if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
68 # IBM's JDK on AIX uses strange locations for the executables
69 JAVACMD="$JAVA_HOME/jre/sh/java"
70 else
71 JAVACMD="$JAVA_HOME/bin/java"
72 fi
73 if [ ! -x "$JAVACMD" ] ; then
74 die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
75
76Please set the JAVA_HOME variable in your environment to match the
77location of your Java installation."
78 fi
79else
80 JAVACMD="java"
81 which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
82
83Please set the JAVA_HOME variable in your environment to match the
84location of your Java installation."
85fi
86
87# Increase the maximum file descriptors if we can.
88if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
89 MAX_FD_LIMIT=`ulimit -H -n`
90 if [ $? -eq 0 ] ; then
91 if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
92 MAX_FD="$MAX_FD_LIMIT"
93 fi
94 ulimit -n $MAX_FD
95 if [ $? -ne 0 ] ; then
96 warn "Could not set maximum file descriptor limit: $MAX_FD"
97 fi
98 else
99 warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
100 fi
101fi
102
103# For Darwin, add options to specify how the application appears in the dock
104if $darwin; then
105 GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
106fi
107
108# For Cygwin, switch paths to Windows format before running java
109if $cygwin ; then
110 APP_HOME=`cygpath --path --mixed "$APP_HOME"`
111 CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
112 JAVACMD=`cygpath --unix "$JAVACMD"`
113
114 # We build the pattern for arguments to be converted via cygpath
115 ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
116 SEP=""
117 for dir in $ROOTDIRSRAW ; do
118 ROOTDIRS="$ROOTDIRS$SEP$dir"
119 SEP="|"
120 done
121 OURCYGPATTERN="(^($ROOTDIRS))"
122 # Add a user-defined pattern to the cygpath arguments
123 if [ "$GRADLE_CYGPATTERN" != "" ] ; then
124 OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
125 fi
126 # Now convert the arguments - kludge to limit ourselves to /bin/sh
127 i=0
128 for arg in "$@" ; do
129 CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
130 CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
131
132 if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
133 eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
134 else
135 eval `echo args$i`="\"$arg\""
136 fi
137 i=$((i+1))
138 done
139 case $i in
140 (0) set -- ;;
141 (1) set -- "$args0" ;;
142 (2) set -- "$args0" "$args1" ;;
143 (3) set -- "$args0" "$args1" "$args2" ;;
144 (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
145 (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
146 (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
147 (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
148 (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
149 (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
150 esac
151fi
152
153# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
154function splitJvmOpts() {
155 JVM_OPTS=("$@")
156}
157eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
158JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
159
160exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644
index 00000000..8a0b282a
--- /dev/null
+++ b/gradlew.bat
@@ -0,0 +1,90 @@
1@if "%DEBUG%" == "" @echo off
2@rem ##########################################################################
3@rem
4@rem Gradle startup script for Windows
5@rem
6@rem ##########################################################################
7
8@rem Set local scope for the variables with windows NT shell
9if "%OS%"=="Windows_NT" setlocal
10
11@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
12set DEFAULT_JVM_OPTS=
13
14set DIRNAME=%~dp0
15if "%DIRNAME%" == "" set DIRNAME=.
16set APP_BASE_NAME=%~n0
17set APP_HOME=%DIRNAME%
18
19@rem Find java.exe
20if defined JAVA_HOME goto findJavaFromJavaHome
21
22set JAVA_EXE=java.exe
23%JAVA_EXE% -version >NUL 2>&1
24if "%ERRORLEVEL%" == "0" goto init
25
26echo.
27echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28echo.
29echo Please set the JAVA_HOME variable in your environment to match the
30echo location of your Java installation.
31
32goto fail
33
34:findJavaFromJavaHome
35set JAVA_HOME=%JAVA_HOME:"=%
36set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37
38if exist "%JAVA_EXE%" goto init
39
40echo.
41echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42echo.
43echo Please set the JAVA_HOME variable in your environment to match the
44echo location of your Java installation.
45
46goto fail
47
48:init
49@rem Get command-line arguments, handling Windowz variants
50
51if not "%OS%" == "Windows_NT" goto win9xME_args
52if "%@eval[2+2]" == "4" goto 4NT_args
53
54:win9xME_args
55@rem Slurp the command line arguments.
56set CMD_LINE_ARGS=
57set _SKIP=2
58
59:win9xME_args_slurp
60if "x%~1" == "x" goto execute
61
62set CMD_LINE_ARGS=%*
63goto execute
64
65:4NT_args
66@rem Get arguments from the 4NT Shell from JP Software
67set CMD_LINE_ARGS=%$
68
69:execute
70@rem Setup the command line
71
72set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
73
74@rem Execute Gradle
75"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
76
77:end
78@rem End local scope for the variables with windows NT shell
79if "%ERRORLEVEL%"=="0" goto mainEnd
80
81:fail
82rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
83rem the _cmd.exe /c_ return code!
84if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
85exit /b 1
86
87:mainEnd
88if "%OS%"=="Windows_NT" endlocal
89
90:omega