forked from mandeepshetty/iotivity
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSConscript
More file actions
109 lines (93 loc) · 5.33 KB
/
SConscript
File metadata and controls
109 lines (93 loc) · 5.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
import os
import platform
Import('env')
TARGET_ARCH = env.get('TARGET_ARCH')
if env.get('RELEASE'):
RELEASE="release"
else:
RELEASE="debug"
SECURED = env.get('SECURED')
target_os = env.get('TARGET_OS')
if env.get('WITH_CLOUD'):
CLOUD=1
else:
CLOUD=0
if env.get('WITH_TCP'):
TCP=1
else:
TCP=0
MQ = env.get('WITH_MQ')
MQ_SUB = 0
MQ_PUB = 0
MQ_BROKER = 0
RD_MODE = env.get('RD_MODE')
TARGET_TRANSPORT = env.get('TARGET_TRANSPORT')
TRANSPORT_EDR = 0
TRANSPORT_BLE = 0
TRANSPORT_NFC = 0
if 'SUB' in MQ:
MQ_SUB = 1
if 'PUB' in MQ:
MQ_PUB = 1
if 'BROKER' in MQ:
MQ_BROKER = 1
if 'ALL' in TARGET_TRANSPORT:
TRANSPORT_EDR = 1
TRANSPORT_BLE = 1
TRANSPORT_NFC = 1
print "Android Transport is ALL"
else:
if 'BT' in TARGET_TRANSPORT:
TRANSPORT_EDR = 1
if 'BLE' in TARGET_TRANSPORT:
TRANSPORT_BLE = 1
if 'NFC' in TARGET_TRANSPORT:
TRANSPORT_NFC = 1
if target_os == "android":
android_home = env.get('ANDROID_HOME')
os.environ['ANDROID_HOME'] = env.get('ANDROID_HOME')
os.environ['ANDROID_NDK_HOME'] = env.get('ANDROID_NDK')
if not os.path.exists(android_home + '/platforms/android-21') or not os.path.exists(android_home + '/build-tools/20.0.0'):
print '''
***************************************** Info ********************************
* Either 'Android API 21' is not installed or 'Android SDK Build Tools *
* 20.0.0' is not installed. The Android SDK Manager will now open. Please *
* be sure to deselect all options, then select the following 2 packages: *
* 1. Under "Tools" select "Android SDK Build-tools" Revision 20. *
* 2. Under "Android 5.0.1 (API 21)" select "SDK Platform" *
* 3. Continue by selecting "Install 2 Packages" *
* *
* NOTE: If you have an http proxy, please press ctrl+c now and edit/create *
* the following file in your $HOME directory as follows: *
* *
* Edit/Create file: "$HOME/.android/androidtool.cfg" *
* *
* http.proxyPort=<YOUR_PORT_NUMBER> *
* sdkman.monitor.density=108 *
* http.proxyHost=<YOUR_HTTP_PROXY_ADDRESS> *
* sdkman.show.update.only=true *
* sdkman.ask.adb.restart=false *
* sdkman.force.http=true *
* sdkman.show.updateonly=true *
* *
*******************************************************************************
...Opening Android SDK Manager now. Once you are finished, the build will continue.
'''
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', env.get('BUILD_DIR') + 'libocstack-jni.so']
SConscript('jni/SConscript')
jdk_env = Environment(ENV=os.environ)
jdk_env['BUILDERS']['Gradle'] = Builder(action = env.get('ANDROID_GRADLE') + ' build -b ' + env.get('SRC_DIR') + '/java/iotivity-%s/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 -PWITH_TCP=%s -PBUILD_DIR=%s --stacktrace' %(target_os, TRANSPORT_EDR, TRANSPORT_BLE, TRANSPORT_NFC, TARGET_ARCH, RELEASE, SECURED, SECURED, CLOUD, RD_MODE, MQ_PUB, MQ_SUB, MQ_BROKER, TCP, env.get('BUILD_DIR')), emitter = ensure_libs)
jdk_env['BUILD_DIR'] = env.get('BUILD_DIR')
cmdBuildApi=jdk_env.Gradle(target="base/objs", source="common/src/main/java/org/iotivity/base/OcResource.java")
examples_target = "java"
if target_os == 'android':
examples_target = "android"
jdk_env['BUILDERS']['Gradle'] = Builder(action = env.get('ANDROID_GRADLE') + ' build -b ' + 'java/examples-%s/build.gradle -DWITH_TRANSPORT_EDR=%s -DWITH_TRANSPORT_BLE=%s -DWITH_TRANSPORT_NFC=%s -PTARGET_OS=%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 -PWITH_TCP=%s -PBUILD_DIR=%s --stacktrace' %(examples_target, TRANSPORT_EDR, TRANSPORT_BLE, TRANSPORT_NFC, target_os, TARGET_ARCH, RELEASE, SECURED, SECURED, CLOUD, RD_MODE, MQ_PUB, MQ_SUB, MQ_BROKER, TCP, env.get('BUILD_DIR')))
#cmdBuildExamples=jdk_env.Gradle(target="../examples-%s/devicediscoveryclient/apk" % (examples_target, ), source="examples-%s/devicediscoveryclient/src/main/java/org/iotivity/base/examples/DeviceDiscoveryClient.java" % (examples_target, ))
cmdBuildExamples=jdk_env.Gradle(target="examples-%s/simpleclient/jar" % (examples_target, ), source="examples-%s/simpleclient/src/main/java/org/iotivity/base/examples/SimpleClient.java" % (examples_target, ))
exampleAclFiles = jdk_env.Install('#java/examples-java/simpleserver/build/libs/', 'examples-java/simpleserver/src/main/assets/oic_svr_db_server.dat')
Depends(cmdBuildExamples, exampleAclFiles)
Depends(cmdBuildExamples, cmdBuildApi)
env.AppendUnique(baseAAR = cmdBuildApi)