5 android_home = env.get('ANDROID_HOME')
7 ANDROID_TARGET_ARCH = env.get('TARGET_ARCH')
9 ANDROID_RELEASE="release"
11 ANDROID_RELEASE="debug"
12 ANDROID_SECURED = env.get('SECURED')
14 if env.get('WITH_CLOUD'):
19 ANDROID_MQ = env.get('WITH_MQ')
23 ANDROID_RD_MODE = env.get('RD_MODE')
24 ANDROID_TRANSPORT = env.get('TARGET_TRANSPORT')
25 ANDROID_TRANSPORT_EDR = 0
26 ANDROID_TRANSPORT_BLE = 0
27 ANDROID_TRANSPORT_NFC = 0
29 if 'SUB' in ANDROID_MQ:
31 if 'PUB' in ANDROID_MQ:
33 if 'BROKER' in ANDROID_MQ:
36 if 'ALL' in ANDROID_TRANSPORT:
37 ANDROID_TRANSPORT_EDR = 1
38 ANDROID_TRANSPORT_BLE = 1
39 ANDROID_TRANSPORT_NFC = 1
40 print "Android Transport is ALL"
42 if 'BT' in ANDROID_TRANSPORT:
43 ANDROID_TRANSPORT_EDR = 1
44 if 'BLE' in ANDROID_TRANSPORT:
45 ANDROID_TRANSPORT_BLE = 1
46 if 'NFC' in ANDROID_TRANSPORT:
47 ANDROID_TRANSPORT_NFC = 1
49 os.environ['ANDROID_HOME'] = env.get('ANDROID_HOME')
50 os.environ['ANDROID_NDK_HOME'] = env.get('ANDROID_NDK')
52 if not os.path.exists(android_home + '/platforms/android-21') or not os.path.exists(android_home + '/build-tools/20.0.0'):
54 ***************************************** Info ********************************
55 * Either 'Android API 21' is not installed or 'Android SDK Build Tools *
56 * 20.0.0' is not installed. The Android SDK Manager will now open. Please *
57 * be sure to deselect all options, then select the following 2 packages: *
58 * 1. Under "Tools" select "Android SDK Build-tools" Revision 20. *
59 * 2. Under "Android 5.0.1 (API 21)" select "SDK Platform" *
60 * 3. Continue by selecting "Install 2 Packages" *
62 * NOTE: If you have an http proxy, please press ctrl+c now and edit/create *
63 * the following file in your $HOME directory as follows: *
65 * Edit/Create file: "$HOME/.android/androidtool.cfg" *
67 * http.proxyPort=<YOUR_PORT_NUMBER> *
68 * sdkman.monitor.density=108 *
69 * http.proxyHost=<YOUR_HTTP_PROXY_ADDRESS> *
70 * sdkman.show.update.only=true *
71 * sdkman.ask.adb.restart=false *
72 * sdkman.force.http=true *
73 * sdkman.show.updateonly=true *
75 *******************************************************************************
77 ...Opening Android SDK Manager now. Once you are finished, the build will continue.
79 os.system(android_home + '/tools/android')
81 def ensure_libs(target, source, env):
82 return target, [source, env.get('BUILD_DIR') + 'liboc.so', env.get('BUILD_DIR') + 'liboc_logger.so']
85 jdk_env = Environment(ENV=os.environ)
86 jdk_env['BUILDERS']['Gradle'] = Builder(action = env.get('ANDROID_GRADLE') + ' build -b' + os.getcwd()+'/build.gradle -PWITH_TRANSPORT_EDR=%s -PWITH_TRANSPORT_BLE=%s -PWITH_TRANSPORT_NFC=%s -PTARGET_ARCH=%s -PRELEASE=%s -PSECURED=%s -DSECURE=%s -PWITH_CLOUD=%s -PRD_MODE=%s -PWITH_MQ_PUB=%s -PWITH_MQ_SUB=%s -PWITH_MQ_BROKER=%s --stacktrace' %(ANDROID_TRANSPORT_EDR, ANDROID_TRANSPORT_BLE, ANDROID_TRANSPORT_NFC, ANDROID_TARGET_ARCH, ANDROID_RELEASE, ANDROID_SECURED, ANDROID_SECURED, ANDROID_CLOUD, ANDROID_RD_MODE, ANDROID_MQ_PUB, ANDROID_MQ_SUB, ANDROID_MQ_BROKER), emitter = ensure_libs)
87 jdk_env['BUILD_DIR'] = env.get('BUILD_DIR')
88 cmdBuildApi=jdk_env.Gradle(target="base/objs", source="base/src/main/java/org/iotivity/base/OcResource.java")
90 jdk_env['BUILDERS']['Gradle'] = Builder(action = env.get('ANDROID_GRADLE') + ' build -b' + 'android/examples/build.gradle -DWITH_TRANSPORT_EDR=%s -DWITH_TRANSPORT_BLE=%s -DWITH_TRANSPORT_NFC=%s -PTARGET_ARCH=%s -PRELEASE=%s -PSECURED=%s -DSECURE=%s -PWITH_CLOUD=%s -PRD_MODE=%s -PWITH_MQ_PUB=%s -PWITH_MQ_SUB=%s -PWITH_MQ_BROKER=%s --stacktrace' %(ANDROID_TRANSPORT_EDR, ANDROID_TRANSPORT_BLE, ANDROID_TRANSPORT_NFC, ANDROID_TARGET_ARCH, ANDROID_RELEASE, ANDROID_SECURED, ANDROID_SECURED, ANDROID_CLOUD, ANDROID_RD_MODE, ANDROID_MQ_PUB, ANDROID_MQ_SUB, ANDROID_MQ_BROKER))
91 cmdBuildExamples=jdk_env.Gradle(target="../examples/devicediscoveryclient/apk", source="../examples/devicediscoveryclient/src/main/java/org/iotivity/base/examples/DeviceDiscoveryClient.java")
93 # android examples require android api to be built before being invoked
94 Depends(cmdBuildExamples, cmdBuildApi)
96 env.AppendUnique(baseAAR = cmdBuildApi)