Import('env')
import os
log_level = env.get('LOG_LEVEL')

build_dir = env.get('BUILD_DIR')

env.AppendUnique(CPPPATH = [os.path.join(Dir('.').abspath, 'include'),
                            os.path.join('#', 'resource', 'c_common')
    ])

if env.get('TARGET_OS') in ['arduino']:
	env.AppendUnique(CPPPATH = [os.path.join(build_dir, 'resource', 'c_common', 'oic_string', 'include')])
if env.get('TARGET_OS') == 'tizen':
	env.AppendUnique(LIBPATH = [build_dir])
else:
	env.AppendUnique(LIBPATH = [os.path.join(build_dir, 'resource', 'csdk', 'logger')])
if env.get('OIC_SUPPORT_TIZEN_TRACE') == 'True':
	env.AppendUnique(CPPDEFINES = ['OIC_SUPPORT_TIZEN_TRACE'])

local_env = env.Clone()

######################################################################
# Source files and Targets
######################################################################

#TODO work-around: at the moment if an Arduino build is done the logger.c file
# ends up using C++ such as for the arduino Time Library, Serial, etc.
# Therefore we copy it to a .cpp name so it is compiled correctly.

if env.get('TARGET_OS') in ['arduino']:
	Command("./src/logger.cpp", "./src/logger.c", Copy("$TARGET", "$SOURCE"))
	logger_src = ['./src/logger.cpp']
else:
	logger_src = ['./src/logger.c', './src/trace.c']

if log_level == 'INFO':
	env.AppendUnique(CPPDEFINES = ['SET_LOG_INFO'])
	print "SET_LOG_INFO"
if log_level == 'ERROR':
	env.AppendUnique(CPPDEFINES = ['SET_LOG_ERROR'])
	print "SET_LOG_ERROR"
if log_level == 'WARNING':
	env.AppendUnique(CPPDEFINES = ['SET_LOG_WARNING'])
	print "SET_LOG_WARNING"
if log_level == 'FATAL':
	env.AppendUnique(CPPDEFINES = ['SET_LOG_FATAL'])
	print "SET_LOG_FATAL"

loggerlib = local_env.StaticLibrary('logger', logger_src)
local_env.InstallTarget(loggerlib, 'logger')

