#===========================================================================
#  Copyright (c) 2011-2018 QUALCOMM Technologies Incorporated.
#  All Rights Reserved.
#  Qualcomm Confidential and Proprietary
#===============================================================================

#-------------------------------------------------------------------------------
# Source PATH
#-------------------------------------------------------------------------------
import os
Import('env')
env = env.Clone()

aliases = ['questapp', 'uefitzt', 'deploy','allapps']
env.Replace(OUT_DIR = '${BUILD_ROOT}/ssg/bsp/trustzone/qsapps/questapp/build/$PROC')
env.Replace(LIB_OUT_DIR = '${BUILD_ROOT}/ssg/bsp/trustzone/qsapps/questapp/build/${SHORT_BUILDPATH}/$PROC')
target = 'questapp'
app_name = 'questapp'
uuid_name = '1b134c70-61d5-11eb-8572-0800200c9a66'

#------------------------------------------------------------------------------
# for deterministic TA build
#------------------------------------------------------------------------------
env.Append(LINKFLAGS=' -no-threads ')

#------------------------------------------------------------------------------
# We need to specify "neon" to generate SIMD instructions in 32-bit mode
#------------------------------------------------------------------------------
if env['PROC'] == 'scorpion':
  env.Append(CCFLAGS = " -mfpu=neon ")

chipset_fuse_inc = ['${BUILD_ROOT}/ssg/securemsm/trustzone/qsapps/questapp/inc/$CHIPSET',
	'${BUILD_ROOT}/core/api/systemdrivers/hwio/${CHIPSET}/phys', #msmhwiobase.h
  ]
includes = ['${BUILD_ROOT}/core/api/services',
    '${BUILD_ROOT}/core/api/boot/qfprom',
    '${BUILD_ROOT}/core/api/kernel/libstd/stringl',
    '${BUILD_ROOT}/core/kernel/smmu/ACv3.0/common/inc/',
    '${BUILD_ROOT}/ssg/securemsm/secmath/shared/inc',
    '${BUILD_ROOT}/ssg/securemsm/secrsa/shared/inc',
    '${BUILD_ROOT}/ssg/securemsm/secrsa/shared/src',
    '${BUILD_ROOT}/ssg/securemsm/uclib/usr/legacy/secrsa/shared/src',
    '${BUILD_ROOT}/ssg/securemsm/uclib/usr/legacy/secrsa/shared/inc',
    '${BUILD_ROOT}/ssg/securemsm/uclib/usr/legacy/secmath/shared/inc',
    '${BUILD_ROOT}/ssg/securemsm/trustzone/qsapps/common',
    '${BUILD_ROOT}/ssg/securemsm/trustzone/qsapps/common/idl',
    '${BUILD_ROOT}/ssg/securemsm/trustzone/qsapps/libs/applib/qsee/src',
    '${BUILD_ROOT}/ssg/securemsm/trustzone/qsee/mink/include',
    '${BUILD_ROOT}/ssg/securemsm/trustzone/qsapps/questapp/inc',
  ]
includes.extend(chipset_fuse_inc)

#----------------------------------------------------------------------------
# App core Objects
#----------------------------------------------------------------------------
sources = [
        'questapp_main.c',
        'questapp_smdresult.c',
]

libs = []

if env['PROC'] == 'scorpion':
  libca = env.SubstRealPath('${MUSL32PATH}/lib/libc.a')
else:
  libca = env.SubstRealPath('${MUSLPATH}/lib/libc.a')

libs.append(env.File(libca))

deploy_sources = []
deploy_sources.extend(sources)

#-------------------------------------------------------------------------------
# Add metadata to image
# For debugging purposes UUID is "SampleApp" in hex.
#-------------------------------------------------------------------------------
md = {
   'appName':    app_name,
   'UUID':       uuid_name,
   'privileges': ['default',
                  'RTICReport',
                  'WhitelistBypass',
                  'HwFuse',
                  'OEMBuf',
                 ],
  'heapSize': 0x10000,
}
if env['PROC'] == 'scorpion':
  md['memoryType'] = 'Unprotected'

deploy_header_files = env.Glob('../inc/*')

questapp_units = env.SecureAppBuilder(
    sources = sources,
    includes = includes,
    metadata = md,
    image = target,
    user_libs = libs,
    deploy_sources = deploy_sources + ['SConscript'] + deploy_header_files,
    deploy_variants = env.GetDefaultPublicVariants()
)

env.Alias(aliases, questapp_units)
