Fixed android build to work multithreaded.
authorJon A. Cruz <jonc@osg.samsung.com>
Fri, 28 Aug 2015 07:07:27 +0000 (00:07 -0700)
committerJon A. Cruz <jonc@osg.samsung.com>
Fri, 28 Aug 2015 23:06:52 +0000 (23:06 +0000)
Previously the android build was missing proper dependencies
so could only be built if multithreading was disabled. This change
adds minimal dependencies to get gradle to be executed after the
native parts are built, and re-enables threaded builds.

This could reduce build times by roughly 75% on average systems.

Signed-off-by: Jon A. Cruz <jonc@osg.samsung.com>
Change-Id: Iccecd7cc976855592d3375027a4de1f9fd2dbe98
Reviewed-on: https://gerrit.iotivity.org/gerrit/2310
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Tim Kourt <tim.a.kourt@intel.com>
android/android_api/SConscript
auto_build.sh
service/things-manager/sdk/java/jni/SConscript

index 5fba6e7..f2bc851 100644 (file)
@@ -42,7 +42,10 @@ if not os.path.exists(android_home + '/platforms/android-21') or not os.path.exi
 '''
     os.system(android_home + '/tools/android')
 
+def ensure_libs(target, source, env):
+    return target, [source, env.get('BUILD_DIR') + 'liboc.so', env.get('BUILD_DIR') + 'liboc_logger.so']
+
 jdk_env = Environment(ENV=os.environ)
-jdk_env['BUILDERS']['Gradle'] = Builder(action = env.get('ANDROID_GRADLE') + ' build -b' + os.getcwd()+'/build.gradle -PTARGET_ARCH=%s -PRELEASE=%s --stacktrace' %(ANDROID_TARGET_ARCH, ANDROID_RELEASE))
+jdk_env['BUILDERS']['Gradle'] = Builder(action = env.get('ANDROID_GRADLE') + ' build -b' + os.getcwd()+'/build.gradle -PTARGET_ARCH=%s -PRELEASE=%s --stacktrace' %(ANDROID_TARGET_ARCH, ANDROID_RELEASE), emitter = ensure_libs)
+jdk_env['BUILD_DIR'] = env.get('BUILD_DIR')
 jdk_env.Gradle(target="base/objs", source="base/src/main/java/org/iotivity/base/OcResource.java")
-
index 99f2c3e..2a09953 100755 (executable)
@@ -64,10 +64,8 @@ function build_android()
        # it requires gcc-4.9, currently only android-ndk-r10(for linux)
        # and windows android-ndk-r10(64bit target version) support these features.
 
-    # Parallel builds for android are disabled as gradle depends on
-    # scons to finish first
-    SCONSFLAGS="-Q" build_android_x86 $1 $2
-    SCONSFLAGS="-Q" build_android_armeabi $1 $2
+       build_android_x86 $1 $2
+       build_android_armeabi $1 $2
 }
 
 function build_android_x86()
index aca5e37..2a59a1e 100644 (file)
@@ -21,7 +21,7 @@ extlibs = tm_jni_env.get('SRC_DIR') + '/extlibs'
 tm_jni_env.AppendUnique(CXXFLAGS = ['-Wall', '-DLINUX', '-DNDEBUG'])
 tm_jni_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions', '-std=c++0x'])
 tm_jni_env.AppendUnique(LIBPATH = [base_jni+'/../libs/'+tm_jni_env.get('TARGET_ARCH')])
-tm_jni_env.PrependUnique(LIBS = ['ocstack-jni', 'TGMSDKLibrary', 'oc', 'gnustl_shared', 'log'])
+tm_jni_env.PrependUnique(LIBS = ['ocstack-jni', 'TGMSDKLibrary', 'oc', 'oc_logger', 'gnustl_shared', 'log'])
 
 tm_jni_env.AppendUnique(CPPPATH = [tm_sdk+'/inc'])
 tm_jni_env.AppendUnique(CPPPATH = [base_jni])