From a02f9e3bcf523ee8c629b948e19daa401897b533 Mon Sep 17 00:00:00 2001 From: "Jon A. Cruz" Date: Fri, 28 Aug 2015 00:07:27 -0700 Subject: [PATCH] Fixed android build to work multithreaded. 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 Change-Id: Iccecd7cc976855592d3375027a4de1f9fd2dbe98 Reviewed-on: https://gerrit.iotivity.org/gerrit/2310 Tested-by: jenkins-iotivity Reviewed-by: Tim Kourt --- android/android_api/SConscript | 7 +++++-- auto_build.sh | 6 ++---- service/things-manager/sdk/java/jni/SConscript | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/android/android_api/SConscript b/android/android_api/SConscript index 5fba6e7..f2bc851 100644 --- a/android/android_api/SConscript +++ b/android/android_api/SConscript @@ -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") - diff --git a/auto_build.sh b/auto_build.sh index 99f2c3e..2a09953 100755 --- a/auto_build.sh +++ b/auto_build.sh @@ -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() diff --git a/service/things-manager/sdk/java/jni/SConscript b/service/things-manager/sdk/java/jni/SConscript index aca5e37..2a59a1e 100644 --- a/service/things-manager/sdk/java/jni/SConscript +++ b/service/things-manager/sdk/java/jni/SConscript @@ -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]) -- 2.7.4