Fix for SVACE defects
[platform/upstream/iotivity.git] / SConstruct
index f2a9b50..3a69fe5 100644 (file)
@@ -1,53 +1,86 @@
+#******************************************************************
+#
+# Copyright 2014 Intel Mobile Communications GmbH All Rights Reserved.
+#
+#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+
 ##
 # The main build script
 #
 ##
 import os
 
-SRC_TOP_DIR = os.path.abspath('.') + '/' #oic-resource project top directory
-
-# Common build options
+# Load common build config
 SConscript('build_common/SConscript')
-Import('RELEASE_BUILD', 'BUILD_TARGET', 'TARGET_CPU_ARCH')
 
-# Set build directory
-if RELEASE_BUILD:
-       BUILD_DIR = SRC_TOP_DIR + '/out/' + BUILD_TARGET + '/' + TARGET_CPU_ARCH + '/release/'
-else:
-       BUILD_DIR = SRC_TOP_DIR + '/out/' + BUILD_TARGET + '/' + TARGET_CPU_ARCH + '/debug/'
-VariantDir(BUILD_DIR, SRC_TOP_DIR, duplicate=0)
-Export('SRC_TOP_DIR', 'BUILD_DIR')
+Import('env')
+
+if os.environ.get('TERM') != None:
+       env['ENV']['TERM'] = os.environ['TERM']
 
-if BUILD_TARGET == 'arduino':
+# Load extra options
+SConscript('extra_options.scons')
+
+target_os = env.get('TARGET_OS')
+if target_os == 'arduino':
        SConscript('arduino.scons')
 
-# Build libcoap
-SConscript(BUILD_DIR + 'csdk/libcoap/SConscript')
+if target_os == 'android':
+       SConscript('android/android_api/SConscript')
 
-# Build liboctbstack
-SConscript(BUILD_DIR + 'csdk/SConscript')
+# By default, src_dir is current dir, the build_dir is:
+#     ./out/<target_os>/<target_arch>/<release or debug>/
+#
+# The build_dir is a variant directory of the source directory(You can
+# consider build_dir as a soft link to src_dir, for detail please refer to:
+#     http://www.scons.org/doc/production/HTML/scons-user.html#f-VariantDir
+#
+# Any way, to make the output is in build_dir, when load scripts, the path should
+# be relevant to build_dir.
+build_dir = env.get('BUILD_DIR')
 
-if BUILD_TARGET != 'arduino':
-       # Build liboc_logger
-       SConscript(BUILD_DIR + 'oc_logger/SConscript')
+# Build 'resource' sub-project
+SConscript(build_dir + 'resource/SConscript')
 
-       # Build liboc
-       SConscript(BUILD_DIR + 'src/SConscript')
+if target_os not in ['arduino','darwin','ios', 'android', 'msys_nt', 'windows', 'tizenrt']:
+       SConscript(build_dir + 'examples/OICMiddle/SConscript')
 
-       # Build examples
-       SConscript(BUILD_DIR + 'examples/SConscript')
+# Build 'service' sub-project
+if target_os not in ['tizenrt']:
+       SConscript(build_dir + 'service/SConscript')
 
-# Print targets
-Import('env')
+# Build "cloud" sub-project
+SConscript(build_dir + 'cloud/SConscript')
+
+# Build "plugin interface" sub-project
+if target_os not in ['tizenrt']:
+       SConscript(build_dir + 'plugins/SConscript')
+
+if target_os == 'tizenrt':
+       SConscript('../apps' + '/SConscript')
+
+# Append targets information to the help information, to see help info, execute command line:
+#     $ scon [options] -h
+env.PrintTargets()
+
+# Print bin upload command line (arduino only)
+if target_os == 'arduino':
+       env.UploadHelp()
+
+# to install the generated pc file into custom prefix location
+env.UserInstallTargetPCFile('iotivity.pc', 'iotivity.pc')
 
-Help('''
-===============================================================================
-Targets:\n    ''')
-for t in env.get('TS'):
-       Help(t + ' ')
-Help('''
-\nDefault all targets will be built. You can specify the target to build:
-
-    #scons [options] [target]
-===============================================================================
-''')
\ No newline at end of file