diff --git a/metadata/net.osmand.plus.txt b/metadata/net.osmand.plus.txt index 05dea5e102..e569cbd8c2 100644 --- a/metadata/net.osmand.plus.txt +++ b/metadata/net.osmand.plus.txt @@ -304,11 +304,85 @@ Build:2.7.5,275 sed -i -e '/javaMaxHeapSize/s/4g/1536m/g' build.gradle ndk=r11c +Build:2.8.2,282 + commit=eb0ec22a1bfc0266574a0ee9dcf21161054006b6 + subdir=android/OsmAnd + submodules=yes + sudo=apt-get update && \ + apt-get install --yes -t jessie-backports swig + gradle=full,legacy,fat + rm=android/eclipse-compile,android/OsmAnd-java/libs/*.jar,android/OsmAnd-java/test/libs/*.jar,android/OsmAnd/ant-lib/*.jar,android/OsmAnd/libs/*.jar,android/OsmAndCore-sample + prebuild=sed -i -e "/net.osmand:OsmAndCore_android:.*SNAPSHOT@jar/d" ../OsmAnd/build.gradle && \ + pushd ../../OsmAnd-core/wrappers/android/ && \ + sed -i -e "/Native/d" settings.gradle && \ + sed -i -e "/Native/d" build.gradle && \ + sed -i -e "/compileTask.*copyNdkSharedLibs/d" build.gradle && \ + sed -i -e "/compileTask.*copyQtSharedLibs/d" build.gradle && \ + sed -i -e "/compileTask.*copyQtJarLibs/d" build.gradle && \ + gradle assembleRelease && \ + cd build/outputs/aar && \ + unzip OsmAndCore_android-release.aar && \ + cp classes.jar ../../../../../../android/OsmAnd/libs/ && \ + popd && \ + sed -i -e '/qt.*Compile/d' -e '/com.google.firebase/d' build.gradle ../plugins/Osmand-ParkingPlugin/build.gradle ../plugins/Osmand-SRTMPlugin/build.gradle ../plugins/Osmand-Skimaps/build.gradle ../plugins/Osmand-Nautical/build.gradle && \ + sed -i -e "s/System.getenv(\"APK_VERSION\")/\"$$VERSION$$\"/g" build.gradle && \ + sed -i -e "s/System.getenv(\"APK_NUMBER_VERSION\")/\"$$VERCODE$$\"/g" build.gradle && \ + sed -i -e "s/System.getenv(\"APP_FEATURES\")/\"+play_market +gps_status -parking_plugin -blackberry -amazon -route_nav\"/g" build.gradle && \ + sed -i -e "s/System.getenv(\"APP_NAME\")/\"OsmAnd~\"/g" build.gradle && \ + sed -i -e "s/System.getenv(\"TARGET_APP_NAME\")/\"OsmAnd~\"/g" build.gradle && \ + sed -i -e '/com.android.vending.BILLING/d' AndroidManifest.xml && \ + sed -i -e '/javaMaxHeapSize/s/4g/1536m/g' build.gradle && \ + sed -i -e "s/compile fileTree.*/ compile 'commons-logging:commons-logging:1.1.1'\n compile group: 'net.sf.trove4j', name: 'trove4j', version: '3.0.3'\n compile 'org.json:json:20090211'\n compile 'it.unibo.alice.tuprolog:tuprolog:3.2.1'\n compile 'net.sf.kxml:kxml2:2.3.0'\n compile 'org.beanshell:bsh-core:2.0b4'\n compile 'com.ibm.icu:icu4j:50.1'\n compile 'fr.univ-valenciennes:bzip2:1.0'\n compile 'com.moparisthebest:junidecode:0.1.1'\n compile 'com.vividsolutions:jts-core:1.14.0'/" ../OsmAnd-java/build.gradle && \ + sed -i -e "s/compile fileTree.*/ compile fileTree(include: ['classes.jar'], dir: 'libs')\n compile 'commons-logging:commons-logging-api:1.1'\n compile 'it.unibo.alice.tuprolog:tuprolog:3.2.1'\n compile 'org.beanshell:bsh-core:2.0b4'\n compile 'com.ibm.icu:icu4j:50.1'\n compile 'fr.univ-valenciennes:bzip2:1.0'\n compile 'com.moparisthebest:junidecode:0.1.1'\n compile group: 'net.sf.trove4j', name: 'trove4j', version: '3.0.3'\n compile 'org.immutables:gson:2.5.0'\n compile 'com.vividsolutions:jts-core:1.14.0'/" build.gradle && \ + sed -i -e "s/public void debug(Object message) {/ public void trace(Object message) { }\n public void trace(Object message, Throwable t) { }\n public boolean isTraceEnabled() { return false; }\n public void debug(Object message) {/" src/net/osmand/PlatformUtil.java && \ + sed -i -e "s/, ':OsmAndCore-sample'//" ../settings.gradle + scanignore=help/website/help/map-legend_nautical.png,help/website/help/map-legend_default.png,android/OsmAnd/libs/classes.jar + ndk=r11c + Maintainer Notes: Update CV only after sucessfully built and tested. Summary and Description have been moved to the new localizable text files: https://f-droid.org/docs/All_About_Descriptions_Graphics_and_Screenshots + +scanignore: Initial section of prebuild commands builds the OsmAnd core java +interface. The standard build downloads a prebuilt jar file from the OsmAnd +build server. To avoid this, the required jar file is built in +OsmAnd-core/wrappers/android, with some sed commands to prevent building of the +full core (only the jar file is needed, the full core is not used (the legacy +core is used, built in the core-legacy module. OsmAnd-core in full has not yet +been released). This includes preventing the various Qt files being built, +also with sed commands. Once this is built, the jar file is extracted from +build/outputs/aar/OsmAndCore_android-release.aar and it is copied to the +android/OsmAnd submodule as libs/classes.jar. Hence, scanignore must not +complain about this file. A couple of rogue pngs are also ignored. + +The very first sed command prevents gradle downloading +OsmAndCore_android.*SNAPSHOT.jar, which contains the files built above. + +Many other jar files are distributed, prebuilt, with the OsmAnd submodules. +The rm= command removes all of these, and replacements are sought through +Maven. This is what the sed commands replacing "compile fileTree" sections are +doing. Details of replaced jars are below. + +Replacement of jar files in OsmAnd-java where versions did not match: + commons-logging-1.1.1.jar replaced with commons-logging:commons-logging:1.1.1 + gnu-trove-osmand.jar replaced with net.sf.trove4j:trove4j:3.0.3 + tuprolog.jar replaced with it.unibo.alice.tuprolog:tuprolog:3.2.1 + icu4j-49_1_patched.jar replaced with compile 'com.ibm.icu:icu4j:50.1' in the hope that whatever patch was applied appears also in 50.1. + bzip2-20090327.jar replaced with compile 'fr.univ-valenciennes:bzip2:1.0' + junidecode-0.1.jar replaced with compile 'com.moparisthebest:junidecode:0.1.1' + simple-logging.jar not replaced (subset of commons-logging-1.1.1.jar) + +In OsmAnd directory, jar files are replaced as above except for those specifically excluded by the compile fileTree command, which are: + android-support-multidex.jar + QtAndroid-bundled.jar was not replaced + QtAndroidAccessibility-bundled.jar was not replaced + simple-logging.jar replaced by commons-logging-api:1.1 with sed addition of missing abstract methods trace(...) in PlatformUtils.java + +The final sed command removes OsmAndCore-sample from the settings to prevent +its build (which also downloads prebuilt binaries). OsmAndCore-sample is demo +code that is not needed. . Auto Update Mode:None