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 German, French, dictionaries; there are twenty more language word lists
in the repository but they'd need to be compiled. 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. The version name corresponds to the Android version.
. .
Repo Type:git Repo Type:git
Repo:https://android.googlesource.com/platform/packages/inputmethods/LatinIME Repo:https://android.googlesource.com/platform/packages/inputmethods/LatinIME
Build:4.2.1,1 Build:4.4.2-mips,4421
disable=Results in an apk with '${package.name}' as the package ID commit=android-sdk-4.4.2_r1
commit=android-4.2.1_r1
subdir=java subdir=java
target=android-17 target=android-19
srclibs=Inputmethodcommon@android-4.4.2_r1
extlibs=android/android-support-v4r13.jar extlibs=android/android-support-v4r13.jar
srclibs=Inputmethodcommon@android-4.2.1_r1 patch=custom_rules.xml_1.patch
patch=build.xml_1.patch prebuild=echo -e 'package.name=com.android.inputmethod.latin\nversion.name=4.4.2-mips\nversion.code=4421' >> ant.properties && \
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/ 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/ 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: Maintainer Notes:
This version uses the prebuilt dictionaries in the repo; Note that, like other AOSP apps, there are now special tags with 'sdk' in them;
you could have a lot of fun building your own. not sure what the difference is.
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++]
. .
Auto Update Mode:None Auto Update Mode:None
Update Check Mode:None Update Check Mode:None
Current Version:4.2.1 Current Version:4.4.2
Current Version Code:1 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>