X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=SConstruct;h=3a69fe51a96ec52722162671c4e20181740df470;hb=e2b3a3137f295083c45c09fdea3cfb4672b6f5b9;hp=f2a9b50bd90c03eb3b813601a27f212326a2b0f7;hpb=54d9f4c1fd135e8f65a2a2bd5658c4c13d4d7cf3;p=platform%2Fupstream%2Fiotivity.git diff --git a/SConstruct b/SConstruct index f2a9b50..3a69fe5 100644 --- a/SConstruct +++ b/SConstruct @@ -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//// +# +# 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