AntiFeatures: NonFreeAssets: en-US: soundtrack is licensed CC-BY-NC Categories: - Games License: Apache-2.0 WebSite: https://destinationsol.org SourceCode: https://github.com/MovingBlocks/DestinationSol IssueTracker: https://github.com/MovingBlocks/DestinationSol/issues AutoName: Dest. Sol RepoType: git Repo: https://github.com/MovingBlocks/DestSolAndroid Builds: - versionName: 2.1.0 versionCode: 13 commit: 1b1c0db0baf00c62ced328a690ffa0f85c8e9d71 patch: - 2.0.0-android-backport.patch gradle: - yes srclibs: - MovingBlocks-gestalt@df875f0 - MovingBlocks-gestalt-android@c077a11 - MovingBlocks-org-reflections-fork@4fe6bd5 - MovingBlocks-DestinationSol-engine@v2.0.0 forceversion: true forcevercode: true prebuild: - $$SDK$$/tools/bin/sdkmanager 'build-tools;30.0.3' > /dev/null - printf '\nrootProject.projectDir = file("engine_workspace"); include ":android"; project(":android").projectDir = file(".\"); project(":android").buildFileName = "android.gradle"; apply from:"engine_workspace/settings.gradle";' >> settings.gradle - mv build.gradle android.gradle - echo "configurations.all { resolutionStrategy { dependencySubstitution { substitute(module('dom4j:dom4j')).with(module('org.dom4j:dom4j:2.1.3')) } } }" >> android.gradle - ln -s $$MovingBlocks-DestinationSol-engine$$ engine_workspace - ln -s engine_workspace/gradle gradle - pushd engine_workspace - sed -i '/^dependencies {/a compile("org.slf4j:slf4j-api:1.7.25"); compile("com.google.code.gson:gson:2.6.2");' engine/build.gradle - echo 'includeBuild("$rootDir/libs/gestalt")' >> settings.gradle - echo 'includeBuild("$rootDir/libs/reflections")' >> settings.gradle - mkdir libs - ln -s $$MovingBlocks-gestalt$$ libs/gestalt - rm -rf libs/gestalt/gestalt-android - ln -s $$MovingBlocks-gestalt-android$$ libs/gestalt/gestalt-android - sed -i -e 's/variant.javaCompileProvider.get()/variant.getJavaCompiler()/g' -e '/allowInsecureProtocol true/d' libs/gestalt/gestalt-android/build.gradle - sed -i 's/variant.assembleProvider.get()/variant.assemble/g' libs/gestalt/gestalt-android-testbed/build.gradle - sed -i -e "/dependencies {/a compileOnly 'org.javassist:javassist:3.20.0-GA'" -e '/com.google.guava:guava/s/implementation/api/' libs/gestalt/gestalt-module/build.gradle - sed -i 's/ThreadLocal\.withInitial(Queues::newArrayDeque);/new ThreadLocal>() { @Override protected Deque initialValue() { return Queues\.newArrayDeque(); } };/g' libs/gestalt/gestalt-asset-core/src/main/java/org/terasology/gestalt/assets/management/ContextManager.java - ln -s $$MovingBlocks-org-reflections-fork$$ libs/reflections - pushd $$MovingBlocks-org-reflections-fork$$ - gradle init --type pom - popd - echo 'sdk.dir=$$SDK$$' > local.properties - echo 'sdk.dir=$$SDK$$' > libs/gestalt/local.properties - popd - sed -i '/artifactory.terasology.org/d' android.gradle engine_workspace/build.gradle engine_workspace/config/gradle/common.gradle engine_workspace/engine/build.gradle - sed -i -e '/heisluft.de/d' -e '/com.github.zafarkhaja:java-semver/d' android.gradle - sed -i "s/.*com\.android\.tools\.build:gradle:.*/$(grep 'com\.android\.tools\.build:gradle:3.*' android.gradle)/g" engine_workspace/libs/gestalt/build.gradle - versionName: 2.1.0 versionCode: 14 commit: v2.1.0 gradle: - yes output: build/outputs/apk/release/android-release-unsigned.apk srclibs: - MovingBlocks-DestinationSol-engine@v2.1.0 - MovingBlocks-gestalt@7259b21 - MovingBlocks-nui@5ed1a66 - MovingBlocks-joml-ext@v0.1.0 - MovingBlocks-org-reflections-fork@4fe6bd5 - antilaby-jsemver-fork@0.10.0 prebuild: - sdkmanager 'build-tools;33.0.2' > /dev/null - "printf 'rootProject.projectDir = file(\"engine_workspace\")\\n include \"\ :android\"\\n project(\":android\\\").projectDir = file(\".\")\\n project(\"\ :android\").buildFileName = \"android.gradle\"\\n apply from: \"engine_workspace/settings.gradle\"\ \\n' >> settings.gradle" - mv build.gradle android.gradle - ln -s $$MovingBlocks-DestinationSol-engine$$ engine_workspace - ln -s engine_workspace/gradle gradle - ln -s engine_workspace/build-logic build-logic - pushd engine_workspace - ln -s $$MovingBlocks-gestalt$$ libs/gestalt - ln -s $$MovingBlocks-nui$$ libs/TeraNUI - ln -s $$MovingBlocks-joml-ext$$ libs/joml-ext - ln -s $$MovingBlocks-org-reflections-fork$$ libs/reflections - ln -s $$antilaby-jsemver-fork$$ libs/jsemver - pushd $$MovingBlocks-org-reflections-fork$$ - touch settings.gradle - gradle wrapper --gradle-version=7.6 - rm settings.gradle - ./gradlew init --type pom - popd - echo 'sdk.dir=$$SDK$$' > local.properties - echo 'sdk.dir=$$SDK$$' > libs/gestalt/local.properties - popd - sed -i '/maven {/{:a;N;/}/!ba;N;N};/artifactory.terasology.org/d' engine_workspace/build-logic/src/main/groovy/destination-sol-repositories.gradle engine_workspace/build-logic/src/main/groovy/gestalt-repositories.gradle engine_workspace/engine/build.gradle android.gradle - sed -i '/heisluft.de/d' engine_workspace/engine/build.gradle android.gradle - sed -i '/com.github.zafarkhaja:java-semver/d' android.gradle - sed -i "s/.*com\.android\.tools\.build:gradle:.*/$(grep 'com\.android\.tools\.build:gradle:.*' android.gradle)/g" engine_workspace/libs/gestalt/build.gradle MaintainerNotes: | The main engine code is at https://github.com/MovingBlocks/DestinationSol but the actual android application can be found at https://github.com/MovingBlocks/DestSolAndroid. The android app build depends on being a sub-project of the main DestinationSol gradle build. This can normally be achieved by cloning the DestSolAndroid repository into a sub-directory of the main root DestinationSol directory. In this particular instance though, we want to store the F-Droid/Fastlane metadata in the android repository itself, so the DestSolAndroid repository will be fetched as the source. A problem with this though is that the DestinationSol repository is needed as the gradle root for the project to build successfully. With a bit of extra gradle configuration though, it is possible to change the directory of the gradle root project, allowing for a sub-directory to act as the effective root. To prevent any confusion with gradle though, the root android build.gradle is re-named to android.gradle. The Android repository (the actual root) is then established as a gradle sub-project of the project root. The last thing done is to include the settings.gradle of the effective project root, as this does not occur automatically. Destination Sol depends on a couple of MovingBlocks libraries that are not published elsewhere. Normally they can be found in the Terasology Artifactory (http://artifactory.terasology.org/artifactory), however, that repository has been patched-out for the F-Droid builds. The MovingBlocks libraries needed are as follows: * org.terasology.gestalt - https://github.com/MovingBlocks/gestalt * org.terasology.nui - https://github.com/MovingBlocks/TeraNui (app >= v2.1.0) * org.terasology.joml-ext - https://github.com/MovingBlocks/joml-ext (app >= v2.1.0) [app >= v2.1.0] Gestalt also depends on a fork of jsemver containing fixes and improvments to the original code. The forked jsemver can be found at https://github.com/AntiLaby/jsemver. Version 0.10.0 is used. For 2.0.0, a later version of the DestSolAndroid repository is used than was used for the original release. A minor patch is applied to make the newer DestSolAndroid version compatible with Destination Sol 2.0.0 again. Because the newer commit was intended for a later version, the version and version code need to be forced here. AutoUpdateMode: None UpdateCheckMode: Tags ^v[\d.]+$ CurrentVersion: 2.1.0 CurrentVersionCode: 14