fdroiddata/metadata/com.miloshpetrov.sol2.android.yml
2022-04-02 23:28:30 +08:00

105 lines
6 KiB
YAML

AntiFeatures:
- NonFreeAssets
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<Deque<Name>>()
{ @Override protected Deque<Name> 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
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.
It may be possible to use jitpack.io to replace these custom 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-SNAPSHOT)
* org.terasology.joml-ext - https://github.com/MovingBlocks/joml-ext (app >= v2.1.0-SNAPSHOT)
[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: 13