fix LatinIME: latest version, multiple apks etc.

This commit is contained in:
David Black 2014-01-16 15:20:42 +00:00
parent 2a5d87f209
commit c9718fd9b1
2 changed files with 171 additions and 22 deletions

View file

@ -9,40 +9,63 @@ The current version comes with English, Spanish, Russian, Brazilian, Italian,
German, French, dictionaries; there are twenty more language word lists
in the repository but they'd need to be compiled.
Remember, you can use these very dictionary files for [[org.pocketworkstation.pckeyboard]],
either built into the main apk or as addon packs.
The version name corresponds to the Android version.
.
Repo Type:git
Repo:https://android.googlesource.com/platform/packages/inputmethods/LatinIME
Build:4.2.1,1
disable=Results in an apk with '${package.name}' as the package ID
commit=android-4.2.1_r1
Build:4.4.2-mips,4421
commit=android-sdk-4.4.2_r1
subdir=java
target=android-17
target=android-19
srclibs=Inputmethodcommon@android-4.4.2_r1
extlibs=android/android-support-v4r13.jar
srclibs=Inputmethodcommon@android-4.2.1_r1
patch=build.xml_1.patch
prebuild=sed -i '19 i android:versionName="4.2.1" android:versionCode="1"' AndroidManifest.xml && \
cp -r $$Inputmethodcommon$$/java/com/android/inputmethodcommon src/com/android/
build=$$NDK$$/ndk-build -e "APP_ABI=all" -C ../native && mv ../native/libs/armeabi libs/
patch=custom_rules.xml_1.patch
prebuild=echo -e 'package.name=com.android.inputmethod.latin\nversion.name=4.4.2-mips\nversion.code=4421' >> ant.properties && \
cp -r $$Inputmethodcommon$$/java/com/android/inputmethodcommon src/com/android/
build=$$NDK$$/ndk-build -e "APP_ABI=mips" -e "APP_CFLAGS += -w" -C ../native && mv ../native/libs/* libs/
Build:4.4.2-x86,4422
commit=android-sdk-4.4.2_r1
subdir=java
target=android-19
srclibs=Inputmethodcommon@android-4.4.2_r1
extlibs=android/android-support-v4r13.jar
patch=custom_rules.xml_1.patch
prebuild=echo -e 'package.name=com.android.inputmethod.latin\nversion.name=4.4.2-x86\nversion.code=4422' >> ant.properties && \
cp -r $$Inputmethodcommon$$/java/com/android/inputmethodcommon src/com/android/
build=$$NDK$$/ndk-build -e "APP_ABI=x86" -e "APP_CFLAGS += -w" -C ../native && mv ../native/libs/* libs/
Build:4.4.2-arm,4423
commit=android-sdk-4.4.2_r1
subdir=java
target=android-19
srclibs=Inputmethodcommon@android-4.4.2_r1
extlibs=android/android-support-v4r13.jar
patch=custom_rules.xml_1.patch
prebuild=echo -e 'package.name=com.android.inputmethod.latin\nversion.name=4.4.2-arm\nversion.code=4423' >> ant.properties && \
cp -r $$Inputmethodcommon$$/java/com/android/inputmethodcommon src/com/android/
build=$$NDK$$/ndk-build -e "APP_ABI=armeabi" -e "APP_CFLAGS += -w" -C ../native && mv ../native/libs/* libs/
Build:4.4.2-arm7,4424
commit=android-sdk-4.4.2_r1
subdir=java
target=android-19
srclibs=Inputmethodcommon@android-4.4.2_r1
extlibs=android/android-support-v4r13.jar
patch=custom_rules.xml_1.patch
prebuild=echo -e 'package.name=com.android.inputmethod.latin\nversion.name=4.4.2-arm7\nversion.code=4424' >> ant.properties && \
cp -r $$Inputmethodcommon$$/java/com/android/inputmethodcommon src/com/android/
build=$$NDK$$/ndk-build -e "APP_ABI=armeabi-v7a" -e "APP_CFLAGS += -w" -C ../native && mv ../native/libs/* libs/
Maintainer Notes:
This version uses the prebuilt dictionaries in the repo;
you could have a lot of fun building your own.
Use the ant.properties to change the package name if you wish: it works fine.
4.3 or 4.4 don't build with NDK 9:
jni/src/suggest/core/layout/proximity_info_utils.h:41:88: instantiated from here
/home/gerry/android-ndk-r9c/sources/cxx-stl/stlport/stlport/stl/_function_base.h:141:8: error: base class 'struct std::unary_function<std::pair<int const, int>, int const>' has a non-virtual destructor [-Werror=effc++]
Note that, like other AOSP apps, there are now special tags with 'sdk' in them;
not sure what the difference is.
.
Auto Update Mode:None
Update Check Mode:None
Current Version:4.2.1
Current Version Code:1
Current Version:4.4.2
Current Version Code:4420

View file

@ -0,0 +1,126 @@
diff --git a/java/custom_rules.xml b/java/custom_rules.xml
new file mode 100644
index 0000000..25fc1eb
--- /dev/null
+++ b/java/custom_rules.xml
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="LatinIME" default="help">
+
+ <!-- The local.properties file is created and updated by the 'android' tool.
+ It contains the path to the SDK. It should *NOT* be checked into
+ Version Control Systems. -->
+ <loadproperties srcFile="local.properties" />
+
+ <!-- The ant.properties file can be created by you. It is only edited by the
+ 'android' tool to add properties to it.
+ This is the place to change some Ant specific build properties.
+ Here are some properties you may want to change/update:
+
+ source.dir
+ The name of the source directory. Default is 'src'.
+ out.dir
+ The name of the output directory. Default is 'bin'.
+
+ For other overridable properties, look at the beginning of the rules
+ files in the SDK, at tools/ant/build.xml
+
+ Properties related to the SDK location or the project target should
+ be updated using the 'android' tool with the 'update' action.
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems.
+
+ -->
+ <property file="ant.properties" />
+
+ <!-- The project.properties file is created and updated by the 'android'
+ tool, as well as ADT.
+
+ This contains project specific properties such as project target, and library
+ dependencies. Lower level build properties are stored in ant.properties
+ (or in .classpath for Eclipse projects).
+
+ This file is an integral part of the build system for your
+ application and should be checked into Version Control Systems. -->
+ <loadproperties srcFile="project.properties" />
+
+ <!-- quick check on sdk.dir -->
+ <fail
+ message="sdk.dir is missing. Make sure to generate local.properties using 'android update project'"
+ unless="sdk.dir"
+ />
+
+
+<!-- extension targets. Uncomment the ones where you want to do custom work
+ in between standard targets -->
+<!--
+ <target name="-pre-build">
+ </target>
+ <target name="-pre-compile">
+ </target>
+
+ /* This is typically used for code obfuscation.
+ Compiled code location: ${out.classes.absolute.dir}
+ If this is not done in place, override ${out.dex.input.absolute.dir} */
+ <target name="-post-compile">
+ </target>
+-->
+
+ <!-- Puts the project's resources into the output package file
+ This actually can create multiple resource package in case
+ Some custom apk with specific configuration have been
+ declared in default.properties.
+ -->
+ <target name="-package-resources" depends="-crunch">
+ <!-- only package resources if *not* a library project -->
+ <do-only-if-not-library elseText="Library project: do not package resources..." >
+ <aapt executable="${aapt}"
+ command="package"
+ versioncode="${version.code}"
+ versionname="${version.name}"
+ debug="${build.is.packaging.debug}"
+ manifest="${out.manifest.abs.file}"
+ assets="${asset.absolute.dir}"
+ androidjar="${project.target.android.jar}"
+ apkfolder="${out.absolute.dir}"
+ nocrunch="${build.packaging.nocrunch}"
+ resourcefilename="${resource.package.file.name}"
+ resourcefilter="${aapt.resource.filter}"
+ libraryResFolderPathRefid="project.library.res.folder.path"
+ libraryPackagesRefid="project.library.packages"
+ previousBuildType="${build.last.target}"
+ buildType="${build.target}"
+ libraryRFileRefid="project.library.bin.r.file.path"
+ manifestpackage="${package.name}"
+ ignoreAssets="${aapt.ignore.assets}">
+ <res path="${out.res.absolute.dir}" />
+ <res path="${resource.absolute.dir}" />
+ <!-- <nocompress /> forces no compression on any files in assets or res/raw -->
+ <nocompress extension="dict" />
+ </aapt>
+ </do-only-if-not-library>
+ </target>
+
+ <!-- Import the actual build file.
+
+ To customize existing targets, there are two options:
+ - Customize only one target:
+ - copy/paste the target into this file, *before* the
+ <import> task.
+ - customize it to your needs.
+ - Customize the whole content of build.xml
+ - copy/paste the content of the rules files (minus the top node)
+ into this file, replacing the <import> task.
+ - customize to your needs.
+
+ ***********************
+ ****** IMPORTANT ******
+ ***********************
+ In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+ in order to avoid having your file be overridden by tools such as "android update project"
+ -->
+ <!-- version-tag: 1 -->
+ <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>