This commit is contained in:
jiroshimonis@gmail.com
2022-09-26 13:38:21 +08:00
parent 2da7260ec9
commit 9814c3ad8c
7 changed files with 292 additions and 119 deletions

View File

@@ -19,17 +19,17 @@ jobs:
env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true'
- name: build-tools
run: sdkmanager "build-tools;29.0.3"
run: sdkmanager "build-tools;30.0.3"
- name: Add Android SDK to PATH
run: echo "${ANDROID_HOME}/build-tools/29.0.3" >> $GITHUB_PATH
run: echo "${ANDROID_HOME}/build-tools/30.0.3" >> $GITHUB_PATH
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew buildDex
run: ./gradlew deploy
- name: Upload a Build Artifact (dexed)
uses: actions/upload-artifact@v2.2.1
with:
name: informatis built by action
path: build/libs/raw-*.jar
path: build/libs/*.jar

158
.gitignore vendored
View File

@@ -1,4 +1,156 @@
/.gradle/
/.idea/
logs/
/core/assets/mindustry-saves/
/core/assets/mindustry-maps/
/core/assets/bundles/output/
/core/assets/.gifimages/
/deploy/
/desktop/packr-out/
/desktop/packr-export/
/desktop/mindustry-saves/
/desktop/mindustry-maps/
/desktop/gifexport/
/core/lib/
/ios/assets/
/core/assets-raw/sprites/generated/
/core/assets-raw/sprites_out/
/annotations/build/
/annotations/out/
/net/build/
/tools/build/
/tests/build/
/server/build/
/test_files/
/annotations/build/
/desktop-sdl/build/
desktop-sdl/build/
/android/assets/mindustry-maps/
/android/assets/mindustry-saves/
/core/assets/gifexport/
/core/assets/version.properties
/core/assets/locales
/ios/src/io/anuke/mindustry/gen/
/core/src/io/anuke/mindustry/gen/
ios/robovm.properties
packr-out/
config/
*.gif
version.properties
.attach_*
## Java
*.class
*.war
*.ear
hs_err_pid*
crash-report-*
## Robovm
/ios/robovm-build/
## GWT
/html/war/
/html/gwt-unitCache/
.apt_generated/
.gwt/
gwt-unitCache/
www-test/
.gwt-tmp/
## Android Studio and Intellij and Android in general
/android/libs/armeabi/
/android/libs/armeabi-v7a/
/android/libs/arm64-v8a/
/android/libs/x86/
/android/libs/x86_64/
/android/gen/
.idea/
*.ipr
*.iws
*.iml
/android/out/
com_crashlytics_export_strings.xml
## Eclipse
.classpath
.project
.metadata/
/android/bin/
/core/bin/
/desktop/bin/
/html/bin/
/ios/bin/
/ios-moe/bin/
*.tmp
*.bak
*.swp
*~.nib
.settings/
.loadpath
.externalToolBuilders/
*.launch
## NetBeans
/nbproject/private/
/android/nbproject/private/
/core/nbproject/private/
/desktop/nbproject/private/
/html/nbproject/private/
/ios/nbproject/private/
/ios-moe/nbproject/private/
/build/
*.bat
/android/build/
/core/build/
/desktop/build/
/html/build/
/ios/build/
/ios-moe/build/
/nbbuild/
/android/nbbuild/
/core/nbbuild/
/desktop/nbbuild/
/html/nbbuild/
/ios/nbbuild/
/ios-moe/nbbuild/
/dist/
/android/dist/
/core/dist/
/desktop/dist/
/html/dist/
/ios/dist/
/ios-moe/dist/
/nbdist/
/android/nbdist/
/core/nbdist/
/desktop/nbdist/
/html/nbdist/
/ios/nbdist/
/ios-moe/nbdist/
nbactions.xml
nb-configuration.xml
## Gradle
/local.properties
.gradle/
gradle-app.setting
/build/
/android/build/
/core/build/
/desktop/build/
/html/build/
/ios/build/
/ios-moe/build/
## OS Specific
.DS_Store
Thumbs.db
android/libs/

View File

@@ -1,85 +0,0 @@
plugins {
id 'java'
}
ext{
sdkRoot = System.getenv("ANDROID_HOME")
sdkVersion = '30'
artifactFilename = "Informatis.jar"
}
group "sharlotte"
sourceSets.main {
java.srcDir("src/")
resources.srcDir("assets/")
}
repositories {
mavenCentral()
maven { url "https://jitpack.io" }
}
dependencies {
annotationProcessor 'com.github.Anuken:jabel:0.8.0'
compileOnly "com.github.Anuken.Mindustry:core:v138"
compileOnly "com.github.Anuken.Arc:flabel:v138"
compileOnly "com.github.Anuken.Arc:arc-core:v138"
}
jar.archiveFileName.set("raw-$artifactFilename")
def isWindows = System.getProperty("os.name").toLowerCase(Locale.ROOT).contains("windows")
task dexify(type: Jar){
archiveFileName.set(artifactFilename)
final File jarArtifact = new File(tasks.jar.archiveFile.get().asFile.parent, "raw-$artifactFilename"),
dexedArtifact = new File(tasks.dexify.getTemporaryDir(), "dexed.jar")
doFirst{
//collect dependencies needed for desugaring
def files = (configurations.compileClasspath.asList() + configurations.runtimeClasspath.asList() + [new File("$sdkRoot/platforms/android-$sdkVersion/android.jar")])
exec{
workingDir dexedArtifact.parent
def command = ["d8", "--min-api", "14"]
for(def file : files){
command += "--classpath"
command += file.path
}
command += ["--output", dexedArtifact, jarArtifact]
if(isWindows){
commandLine("cmd", "/c", *command)
}else{
commandLine(*command)
}
}
}
from(zipTree(jarArtifact), zipTree(dexedArtifact))
}
task buildDex dependsOn "build", "dexify"
task buildMove(dependsOn: build) {
doLast {
copy {
from "build/libs/raw-Informatis.jar"
into System.getenv("destination")
}
}
}
tasks.withType(JavaCompile){
targetCompatibility = 8
sourceCompatibility = JavaVersion.VERSION_17
options.encoding = "UTF-8"
options.compilerArgs += ["-Xlint:deprecation"]
if(JavaVersion.current() != JavaVersion.VERSION_1_8){
options.compilerArgs.addAll(['--release', '8'])
}
compileJava.options.fork = true
}

108
build.gradle.kts Normal file
View File

@@ -0,0 +1,108 @@
import java.io.ByteArrayOutputStream
version = "1.0"
plugins {
java
}
val mindustryVersion = "v138"
repositories {
mavenCentral()
maven("https://jitpack.io")
}
sourceSets {
main {
java.srcDirs("src")
}
test {
java.srcDir("test")
}
}
dependencies {
compileOnly("com.github.Anuken.Arc:arc-core:$mindustryVersion")
//flabel hash eae3c2dc59 is broken
compileOnly("com.github.Anuken.Arc:flabel:$mindustryVersion")
compileOnly("com.github.Anuken.Mindustry:core:$mindustryVersion")
annotationProcessor("com.github.Anuken:jabel:0.8.0")
}
java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
tasks.register("jarAndroid") {
group = "build"
dependsOn("jar")
doLast {
val sdkRoot = System.getenv("ANDROID_HOME") ?: System.getenv("ANDROID_SDK_ROOT")
if (sdkRoot == null || !File(sdkRoot).exists())
throw GradleException("No valid Android SDK found. Ensure that ANDROID_HOME is set to your Android SDK directory.")
val platformRoot = File("$sdkRoot/platforms/").listFiles()!!.sorted().reversed()
.find { f -> File(f, "android.jar").exists() }
?: throw GradleException("No android.jar found. Ensure that you have an Android platform installed.")
//collect dependencies needed for desugaring
val allDependencies = configurations.compileClasspath.get().toList() +
configurations.runtimeClasspath.get().toList() +
listOf(File(platformRoot, "android.jar"))
val dependencies = allDependencies.joinToString(" ") { "--classpath ${it.path}" }
//dex and desugar files - this requires d8 in your PATH
val paras = "$dependencies --min-api 14 --output ${project.name}Android.jar ${project.name}Desktop.jar"
try {
exec {
commandLine = "d8 $paras".split(' ')
workingDir = File("$buildDir/libs")
standardOutput = System.out
errorOutput = System.err
}
} catch (_: Exception) {
val cmdOutput = ByteArrayOutputStream()
logger.lifecycle("d8 cannot be found in your PATH, so trying to use an absolute path.")
exec {
commandLine = listOf("where", "d8")
standardOutput = cmdOutput
errorOutput = System.err
}
val d8FullPath = cmdOutput.toString().replace("\r", "").replace("\n", "")
exec {
commandLine = "$d8FullPath $paras".split(' ')
workingDir = File("$buildDir/libs")
standardOutput = System.out
errorOutput = System.err
}
}
}
}
tasks.jar {
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
archiveFileName.set("${project.name}Desktop.jar")
from(*configurations.runtimeClasspath.get().files.map { if (it.isDirectory) it else zipTree(it) }.toTypedArray())
from(rootDir) {
include("mod.json")
include("icon.png")
}
from("$rootDir/assets/") {
include("**")
}
}
task<Jar>("deploy") {
dependsOn("jarAndroid")
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
archiveFileName.set("${project.name}.jar")
from(
zipTree("$buildDir/libs/${project.name}Desktop.jar"),
zipTree("$buildDir/libs/${project.name}Android.jar")
)
doLast {
delete { delete("$buildDir/libs/${project.name}Desktop.jar") }
delete { delete("$buildDir/libs/${project.name}Android.jar") }
}
}

39
gradlew vendored
View File

@@ -44,7 +44,7 @@ APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
DEFAULT_JVM_OPTS=""
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
@@ -82,7 +82,6 @@ esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
@@ -93,12 +92,14 @@ if [ -n "$JAVA_HOME" ] ; then
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
@@ -124,11 +125,10 @@ if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin or MSYS, switch paths to Windows format before running java
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
# For Cygwin, switch paths to Windows format before running java
if $cygwin ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
@@ -154,19 +154,19 @@ if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
else
eval `echo args$i`="\"$arg\""
fi
i=`expr $i + 1`
i=$((i+1))
done
case $i in
0) set -- ;;
1) set -- "$args0" ;;
2) set -- "$args0" "$args1" ;;
3) set -- "$args0" "$args1" "$args2" ;;
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
(0) set -- ;;
(1) set -- "$args0" ;;
(2) set -- "$args0" "$args1" ;;
(3) set -- "$args0" "$args1" "$args2" ;;
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
@@ -175,9 +175,14 @@ save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
APP_ARGS=`save "$@"`
APP_ARGS=$(save "$@")
# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
cd "$(dirname "$0")"
fi
exec "$JAVACMD" "$@"

9
gradlew.bat vendored
View File

@@ -29,18 +29,14 @@ if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
set DEFAULT_JVM_OPTS=
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init
echo.
@@ -57,7 +53,6 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto init
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
@@ -86,11 +81,9 @@ set CMD_LINE_ARGS=%*
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd