diff options
author | Tor Lillqvist <tlillqvist@suse.com> | 2011-12-14 17:59:41 +0200 |
---|---|---|
committer | Tor Lillqvist <tlillqvist@suse.com> | 2011-12-14 18:04:50 +0200 |
commit | 079de829c819f0d910bb81cbf8a6ff961ecef054 (patch) | |
tree | 0aa4d906df353bb02750dc34172dd92d2dbc4e9a /android | |
parent | e730da8be75cbb87b6b78566e2bd028d43402e6b (diff) |
Add separate cppunittester app project that uses the Bootstrap library
Diffstat (limited to 'android')
-rw-r--r-- | android/qa/simple/AndroidManifest.xml | 23 | ||||
-rw-r--r-- | android/qa/simple/Makefile | 133 | ||||
-rw-r--r-- | android/qa/simple/ant.properties | 17 | ||||
-rw-r--r-- | android/qa/simple/build.xml | 114 | ||||
-rw-r--r-- | android/qa/simple/lo-bootstrap.jar | bin | 0 -> 5799 bytes | |||
-rw-r--r-- | android/qa/simple/project.properties | 14 | ||||
-rw-r--r-- | android/qa/simple/res/layout/main.xml | 12 | ||||
-rw-r--r-- | android/qa/simple/res/values/strings.xml | 4 | ||||
-rw-r--r-- | android/qa/simple/src/dummyfile | 0 |
9 files changed, 317 insertions, 0 deletions
diff --git a/android/qa/simple/AndroidManifest.xml b/android/qa/simple/AndroidManifest.xml new file mode 100644 index 000000000000..fc18a3960f5a --- /dev/null +++ b/android/qa/simple/AndroidManifest.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="org.libreoffice.android.qa" + android:versionCode="1" + android:versionName="1.0"> + <uses-sdk android:minSdkVersion="9" /> + + <application android:label="@string/app_name" + android:debuggable="true"> + <!-- Bootstrap is the subclass of android.app.NativeActivity --> + <activity android:name="org.libreoffice.android.Bootstrap" + android:label="LO simple cppunittests" + android:configChanges="orientation|keyboardHidden"> + <!-- Tell NativeActivity the name of our .so --> + <meta-data android:name="android.app.lib_name" + android:value="lo-bootstrap" /> + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + </activity> + </application> +</manifest> diff --git a/android/qa/simple/Makefile b/android/qa/simple/Makefile new file mode 100644 index 000000000000..ee5ad1950d3a --- /dev/null +++ b/android/qa/simple/Makefile @@ -0,0 +1,133 @@ +# The package of this app +APP_PACKAGE=org.libreoffice.android.qa + +# The name of the Bootstrap activity class +BOOTSTRAP=org.libreoffice.android.Bootstrap + +# The full path the the app's directory needs to be supplied in a +# couple of places, unfortunately. + +APP_DATA_PATH=/data/data/$(APP_PACKAGE) + +NDK_HOME:=$(shell type -p ndk-build) +NDK_HOME:=$(shell dirname $(NDK_HOME)) + +SODEST=libs/armeabi-v7a +OBJLOCAL=obj/local/armeabi-v7a + +define COPY +cp $(1) $(SODEST)$(if $(2),/$(2)) && \ +arm-linux-androideabi-strip --strip-debug $(SODEST)$(if $(2),/$(2),/$(notdir $(1))) && \ +cp $(1) $(OBJLOCAL)$(if $(2),/$(2)) +endef + +# The default target just builds. + +all: build-ant + +copy-stuff: +# +# Copy shared libraries we need to libs/armeabi-v7a so that ant will +# include them in the .apk. +# +# Copy them to obj/local/armeabi-v7a, too, where gdb will look for +# them. +# + mkdir -p $(SODEST) $(OBJLOCAL) +# +# First the most important one, liblo-bootstrap.so + $(call COPY,$(OUTDIR)/lib/liblo-bootstrap.so) +# +# Then the cppunittester "program". As all "program" +# files we build for Android actually is a shared object. + $(call COPY,$(OUTDIR)/bin/cppunit/cppunittester,libcppunittester.so) +# +# The cppunit library + $(call COPY,$(OUTDIR)/lib/libcppunit-1.12.so) +# +# cppunit "plug-ins", first ones from sal +# + $(call COPY,$(SRCDIR)/sal/$(INPATH)/lib/*.so) +# +# and ones from other modules. Note that depending on when you try +# this, these might not have been built yet. +# + for F in $(SRC_ROOT)/cppu/$(INPATH)/lib/qa_*.so; do \ + $(call COPY,$${F},`basename $${F}`); \ + done +# + for F in i18npool_test_breakiterator; do \ + $(call COPY,$(WORKDIR)/LinkTarget/CppunitTest/libtest_$${F}.so); \ + done +# +# Other "programs" + $(call COPY,$(OUTDIR)/bin/uno,libunoexe.so) +# +# Libs and UNO components that the tests from other modules need. +# + for F in $(strip \ + comphelpgcc3 \ + gcc3_uno \ + i18nisolang1gcc3 \ + i18nutilgcc3 \ + icudatalo \ + icui18nlo \ + icuuclo \ + localedata_en \ + localedata_others \ + reg \ + store \ + ucbhelper4gcc3 \ + uno_cppu \ + uno_salhelpergcc3 \ + uno_cppuhelpergcc3 \ + unoexceptionprotector \ + xml2 \ + xmlreader \ + bootstrap.uno \ + i18npool.uno); do \ + $(call COPY,$(OUTDIR)/lib/lib$${F}.so); \ + done +# +# Then the shared GNU C++ library + $(call COPY,$(NDK_HOME)/sources/cxx-stl/gnu-libstdc++/libs/armeabi-v7a/libgnustl_shared.so) +# +# bridgetest components, not in solver + for F in bridgetest constructors cppobj; do \ + $(call COPY,$(SRC_ROOT)/testtools/$(INPATH)/lib/lib$${F}.uno.so); \ + done +# +# Then other "assets". Let the directory structure under assets mimic +# that under solver for now. + mkdir -p assets/bin assets/lib assets/xml/ure assets/ComponentTarget/i18npool/util + cp $(OUTDIR)/bin/udkapi.rdb assets/bin + cp $(OUTDIR)/bin/types.rdb assets/bin + cp $(OUTDIR)/xml/ure/services.rdb assets/xml/ure + cp $(WORKDIR)/ComponentTarget/i18npool/util/i18npool.component assets/ComponentTarget/i18npool/util + for F in uno_services uno_types; do \ + sed -e 's!uri="./!uri="$(APP_DATA_PATH)/lib/!g' <$(SRC_ROOT)/testtools/$(INPATH)/lib/$${F}.rdb >assets/lib/$${F}.rdb; \ + done + +build-ant: copy-stuff + unset JAVA_HOME && ant debug + +install: copy-stuff + unset JAVA_HOME && ant debug install + @echo + @echo 'Run it with something like what "make run" does (see Makefile)' + @echo + +run: +# Note: these are just examples. +# + adb shell am start -n $(APP_PACKAGE)/$(BOOTSTRAP) -e lo-main-library libcppunittester -e lo-main-cmdline "$(APP_DATA_PATH)/lib/libqa_sal_types.so" +# + sleep 10 + adb shell am start -n $(APP_PACKAGE)/$(BOOTSTRAP) -e lo-main-library libcppunittester -e lo-main-cmdline "$(APP_DATA_PATH)/lib/libtest_i18npool_test_breakiterator.so --protector libunoexceptionprotector.so unoexceptionprotector '-env:UNO_TYPES=file:///assets/bin/udkapi.rdb file:///assets/bin/types.rdb' '-env:UNO_SERVICES=file:///assets/xml/ure/services.rdb file:///assets/ComponentTarget/i18npool/util/i18npool.component' -env:LO_LIB_DIR=file://$(APP_DATA_PATH)/lib" +# +# adb shell am start -n $(APP_PACKAGE)/$(BOOTSTRAP) -e lo-main-library libunoexe -e lo-main-cmdline "-ro /assets/lib/uno_services.rdb -ro /assets/lib/uno_types.rdb -s com.sun.star.test.bridge.BridgeTest -- com.sun.star.test.bridge.CppTestObject" -e lo-main-delay 2 + +clean: + ant clean + rm -rf assets $(SODEST) $(OBJLOCAL) + diff --git a/android/qa/simple/ant.properties b/android/qa/simple/ant.properties new file mode 100644 index 000000000000..ee52d86d94a4 --- /dev/null +++ b/android/qa/simple/ant.properties @@ -0,0 +1,17 @@ +# This file is used to override default values used by the Ant build system. +# +# This file must be checked in Version Control Systems, as it is +# integral to the build system of your project. + +# This file is only used by the Ant script. + +# You can use this to override default values such as +# 'source.dir' for the location of your java source folder and +# 'out.dir' for the location of your output folder. + +# You can also use it define how the release builds are signed by declaring +# the following properties: +# 'key.store' for the location of your keystore and +# 'key.alias' for the name of the key to use. +# The password will be asked during the build when you use the 'release' target. + diff --git a/android/qa/simple/build.xml b/android/qa/simple/build.xml new file mode 100644 index 000000000000..b5fd582c9a52 --- /dev/null +++ b/android/qa/simple/build.xml @@ -0,0 +1,114 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project name="LibreOfficeQA-simple" 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> +--> + + <!-- 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" /> + + <!-- Re-define the "-package-resources" target to not compress resources --> + + <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="AndroidManifest.xml" + assets="${asset.absolute.dir}" + androidjar="${android.jar}" + apkfolder="${out.absolute.dir}" + nocrunch="${build.packaging.nocrunch}" + resourcefilename="${resource.package.file.name}" + resourcefilter="${aapt.resource.filter}" + projectLibrariesResName="project.libraries.res" + projectLibrariesPackageName="project.libraries.package" + previousBuildType="${build.last.target}" + buildType="${build.target}"> + <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="xml" /> forces no compression on specific file extensions in assets and res/raw --> + </aapt> + </do-only-if-not-library> + </target> + +</project> diff --git a/android/qa/simple/lo-bootstrap.jar b/android/qa/simple/lo-bootstrap.jar Binary files differnew file mode 100644 index 000000000000..b382d243a738 --- /dev/null +++ b/android/qa/simple/lo-bootstrap.jar diff --git a/android/qa/simple/project.properties b/android/qa/simple/project.properties new file mode 100644 index 000000000000..06b2d880c3d4 --- /dev/null +++ b/android/qa/simple/project.properties @@ -0,0 +1,14 @@ +# This file is automatically generated by Android Tools. +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! +# +# This file must be checked in Version Control Systems. +# +# To customize properties used by the Ant build system use, +# "ant.properties", and override values to adapt the script to your +# project structure. + +# Project target. +target=android-14 + +# Use the Bootstrap class +android.library.reference.1=../../Bootstrap diff --git a/android/qa/simple/res/layout/main.xml b/android/qa/simple/res/layout/main.xml new file mode 100644 index 000000000000..5839d8cda704 --- /dev/null +++ b/android/qa/simple/res/layout/main.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:orientation="vertical" + android:layout_width="fill_parent" + android:layout_height="fill_parent" + > +<TextView + android:layout_width="fill_parent" + android:layout_height="wrap_content" + android:text="Hello World" + /> +</LinearLayout> diff --git a/android/qa/simple/res/values/strings.xml b/android/qa/simple/res/values/strings.xml new file mode 100644 index 000000000000..f296dd4b137d --- /dev/null +++ b/android/qa/simple/res/values/strings.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + <string name="app_name">LibreOfficeBootstrap</string> +</resources> diff --git a/android/qa/simple/src/dummyfile b/android/qa/simple/src/dummyfile new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/android/qa/simple/src/dummyfile |