|
@@ -557,11 +557,21 @@ def AddDepend(option):
|
|
|
|
|
|
def MergeGroup(src_group, group):
|
|
|
src_group['src'] = src_group['src'] + group['src']
|
|
|
+ if 'CFLAGS' in group:
|
|
|
+ if 'CFLAGS' in src_group:
|
|
|
+ src_group['CFLAGS'] = src_group['CFLAGS'] + group['CFLAGS']
|
|
|
+ else:
|
|
|
+ src_group['CFLAGS'] = group['CFLAGS']
|
|
|
if 'CCFLAGS' in group:
|
|
|
if 'CCFLAGS' in src_group:
|
|
|
src_group['CCFLAGS'] = src_group['CCFLAGS'] + group['CCFLAGS']
|
|
|
else:
|
|
|
src_group['CCFLAGS'] = group['CCFLAGS']
|
|
|
+ if 'CXXFLAGS' in group:
|
|
|
+ if 'CXXFLAGS' in src_group:
|
|
|
+ src_group['CXXFLAGS'] = src_group['CXXFLAGS'] + group['CXXFLAGS']
|
|
|
+ else:
|
|
|
+ src_group['CXXFLAGS'] = group['CXXFLAGS']
|
|
|
if 'CPPPATH' in group:
|
|
|
if 'CPPPATH' in src_group:
|
|
|
src_group['CPPPATH'] = src_group['CPPPATH'] + group['CPPPATH']
|
|
@@ -579,11 +589,21 @@ def MergeGroup(src_group, group):
|
|
|
src_group['ASFLAGS'] = group['ASFLAGS']
|
|
|
|
|
|
# for local CCFLAGS/CPPPATH/CPPDEFINES
|
|
|
+ if 'LOCAL_CFLAGS' in group:
|
|
|
+ if 'LOCAL_CFLAGS' in src_group:
|
|
|
+ src_group['LOCAL_CFLAGS'] = src_group['LOCAL_CFLAGS'] + group['LOCAL_CFLAGS']
|
|
|
+ else:
|
|
|
+ src_group['LOCAL_CFLAGS'] = group['LOCAL_CFLAGS']
|
|
|
if 'LOCAL_CCFLAGS' in group:
|
|
|
if 'LOCAL_CCFLAGS' in src_group:
|
|
|
src_group['LOCAL_CCFLAGS'] = src_group['LOCAL_CCFLAGS'] + group['LOCAL_CCFLAGS']
|
|
|
else:
|
|
|
src_group['LOCAL_CCFLAGS'] = group['LOCAL_CCFLAGS']
|
|
|
+ if 'LOCAL_CXXFLAGS' in group:
|
|
|
+ if 'LOCAL_CXXFLAGS' in src_group:
|
|
|
+ src_group['LOCAL_CXXFLAGS'] = src_group['LOCAL_CXXFLAGS'] + group['LOCAL_CXXFLAGS']
|
|
|
+ else:
|
|
|
+ src_group['LOCAL_CXXFLAGS'] = group['LOCAL_CXXFLAGS']
|
|
|
if 'LOCAL_CPPPATH' in group:
|
|
|
if 'LOCAL_CPPPATH' in src_group:
|
|
|
src_group['LOCAL_CPPPATH'] = src_group['LOCAL_CPPPATH'] + group['LOCAL_CPPPATH']
|
|
@@ -650,10 +670,18 @@ def DefineGroup(name, src, depend, **parameters):
|
|
|
else:
|
|
|
group['src'] = src
|
|
|
|
|
|
+ if 'CFLAGS' in group:
|
|
|
+ target = group['CFLAGS']
|
|
|
+ if len(target) > 0:
|
|
|
+ Env.AppendUnique(CFLAGS = target)
|
|
|
if 'CCFLAGS' in group:
|
|
|
target = group['CCFLAGS']
|
|
|
if len(target) > 0:
|
|
|
Env.AppendUnique(CCFLAGS = target)
|
|
|
+ if 'CXXFLAGS' in group:
|
|
|
+ target = group['CXXFLAGS']
|
|
|
+ if len(target) > 0:
|
|
|
+ Env.AppendUnique(CXXFLAGS = target)
|
|
|
if 'CPPPATH' in group:
|
|
|
target = group['CPPPATH']
|
|
|
if _PretreatListParameters(target) == True:
|
|
@@ -682,11 +710,18 @@ def DefineGroup(name, src, depend, **parameters):
|
|
|
|
|
|
import rtconfig
|
|
|
if rtconfig.PLATFORM == 'gcc':
|
|
|
+ if 'CFLAGS' in group:
|
|
|
+ group['CFLAGS'] = utils.GCCC99Patch(group['CFLAGS'])
|
|
|
if 'CCFLAGS' in group:
|
|
|
group['CCFLAGS'] = utils.GCCC99Patch(group['CCFLAGS'])
|
|
|
+ if 'CXXFLAGS' in group:
|
|
|
+ group['CXXFLAGS'] = utils.GCCC99Patch(group['CXXFLAGS'])
|
|
|
if 'LOCAL_CCFLAGS' in group:
|
|
|
group['LOCAL_CCFLAGS'] = utils.GCCC99Patch(group['LOCAL_CCFLAGS'])
|
|
|
-
|
|
|
+ if 'LOCAL_CXXFLAGS' in group:
|
|
|
+ group['LOCAL_CXXFLAGS'] = utils.GCCC99Patch(group['LOCAL_CXXFLAGS'])
|
|
|
+ if 'LOCAL_CFLAGS' in group:
|
|
|
+ group['LOCAL_CFLAGS'] = utils.GCCC99Patch(group['LOCAL_CFLAGS'])
|
|
|
# check whether to clean up library
|
|
|
if GetOption('cleanlib') and os.path.exists(os.path.join(group['path'], GroupLibFullName(name, Env))):
|
|
|
if group['src'] != []:
|
|
@@ -785,14 +820,16 @@ def DoBuilding(target, objects):
|
|
|
|
|
|
# handle local group
|
|
|
def local_group(group, objects):
|
|
|
- if 'LOCAL_CCFLAGS' in group or 'LOCAL_CPPPATH' in group or 'LOCAL_CPPDEFINES' in group or 'LOCAL_ASFLAGS' in group:
|
|
|
+ if 'LOCAL_CFLAGS' in group or 'LOCAL_CXXFLAGS' in group or 'LOCAL_CCFLAGS' in group or 'LOCAL_CPPPATH' in group or 'LOCAL_CPPDEFINES' in group or 'LOCAL_ASFLAGS' in group:
|
|
|
+ CFLAGS = Env.get('CFLAGS', '') + group.get('LOCAL_CFLAGS', '')
|
|
|
CCFLAGS = Env.get('CCFLAGS', '') + group.get('LOCAL_CCFLAGS', '')
|
|
|
+ CXXFLAGS = Env.get('CXXFLAGS', '') + group.get('LOCAL_CXXFLAGS', '')
|
|
|
CPPPATH = Env.get('CPPPATH', ['']) + group.get('LOCAL_CPPPATH', [''])
|
|
|
CPPDEFINES = Env.get('CPPDEFINES', ['']) + group.get('LOCAL_CPPDEFINES', [''])
|
|
|
ASFLAGS = Env.get('ASFLAGS', '') + group.get('LOCAL_ASFLAGS', '')
|
|
|
|
|
|
for source in group['src']:
|
|
|
- objects.append(Env.Object(source, CCFLAGS = CCFLAGS, ASFLAGS = ASFLAGS,
|
|
|
+ objects.append(Env.Object(source, CFLAGS = CFLAGS, CCFLAGS = CCFLAGS, CXXFLAGS = CXXFLAGS, ASFLAGS = ASFLAGS,
|
|
|
CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES))
|
|
|
|
|
|
return True
|
|
@@ -822,7 +859,7 @@ def DoBuilding(target, objects):
|
|
|
else:
|
|
|
# remove source files with local flags setting
|
|
|
for group in Projects:
|
|
|
- if 'LOCAL_CCFLAGS' in group or 'LOCAL_CPPPATH' in group or 'LOCAL_CPPDEFINES' in group:
|
|
|
+ if 'LOCAL_CFLAGS' in group or 'LOCAL_CXXFLAGS' in group or 'LOCAL_CCFLAGS' in group or 'LOCAL_CPPPATH' in group or 'LOCAL_CPPDEFINES' in group:
|
|
|
for source in group['src']:
|
|
|
for obj in objects:
|
|
|
if source.abspath == obj.abspath or (len(obj.sources) > 0 and source.abspath == obj.sources[0].abspath):
|