@@ -2076,7 +2076,8 @@ def GenerateOutput(target_list, target_dicts, data, params):
2076
2076
2077
2077
2078
2078
def _GenerateMSBuildFiltersFile (filters_path , source_files ,
2079
- rule_dependencies , extension_to_rule_name ):
2079
+ rule_dependencies , extension_to_rule_name ,
2080
+ platforms ):
2080
2081
"""Generate the filters file.
2081
2082
2082
2083
This file is used by Visual Studio to organize the presentation of source
@@ -2090,7 +2091,8 @@ def _GenerateMSBuildFiltersFile(filters_path, source_files,
2090
2091
filter_group = []
2091
2092
source_group = []
2092
2093
_AppendFiltersForMSBuild ('' , source_files , rule_dependencies ,
2093
- extension_to_rule_name , filter_group , source_group )
2094
+ extension_to_rule_name , platforms ,
2095
+ filter_group , source_group )
2094
2096
if filter_group :
2095
2097
content = ['Project' ,
2096
2098
{'ToolsVersion' : '4.0' ,
@@ -2106,7 +2108,7 @@ def _GenerateMSBuildFiltersFile(filters_path, source_files,
2106
2108
2107
2109
2108
2110
def _AppendFiltersForMSBuild (parent_filter_name , sources , rule_dependencies ,
2109
- extension_to_rule_name ,
2111
+ extension_to_rule_name , platforms ,
2110
2112
filter_group , source_group ):
2111
2113
"""Creates the list of filters and sources to be added in the filter file.
2112
2114
@@ -2132,11 +2134,12 @@ def _AppendFiltersForMSBuild(parent_filter_name, sources, rule_dependencies,
2132
2134
# Recurse and add its dependents.
2133
2135
_AppendFiltersForMSBuild (filter_name , source .contents ,
2134
2136
rule_dependencies , extension_to_rule_name ,
2135
- filter_group , source_group )
2137
+ platforms , filter_group , source_group )
2136
2138
else :
2137
2139
# It's a source. Create a source entry.
2138
2140
_ , element = _MapFileToMsBuildSourceType (source , rule_dependencies ,
2139
- extension_to_rule_name )
2141
+ extension_to_rule_name ,
2142
+ platforms )
2140
2143
source_entry = [element , {'Include' : source }]
2141
2144
# Specify the filter it is part of, if any.
2142
2145
if parent_filter_name :
@@ -2145,7 +2148,7 @@ def _AppendFiltersForMSBuild(parent_filter_name, sources, rule_dependencies,
2145
2148
2146
2149
2147
2150
def _MapFileToMsBuildSourceType (source , rule_dependencies ,
2148
- extension_to_rule_name ):
2151
+ extension_to_rule_name , platforms ):
2149
2152
"""Returns the group and element type of the source file.
2150
2153
2151
2154
Arguments:
@@ -2172,6 +2175,9 @@ def _MapFileToMsBuildSourceType(source, rule_dependencies,
2172
2175
elif ext in ['.s' , '.asm' ]:
2173
2176
group = 'masm'
2174
2177
element = 'MASM'
2178
+ for platform in platforms :
2179
+ if platform .lower () in ['arm' , 'arm64' ]:
2180
+ element = 'MARMASM'
2175
2181
elif ext == '.idl' :
2176
2182
group = 'midl'
2177
2183
element = 'Midl'
@@ -3275,7 +3281,8 @@ def _AddSources2(spec, sources, exclusions, grouped_sources,
3275
3281
detail .append (['ForcedIncludeFiles' , '' ])
3276
3282
3277
3283
group , element = _MapFileToMsBuildSourceType (source , rule_dependencies ,
3278
- extension_to_rule_name )
3284
+ extension_to_rule_name ,
3285
+ _GetUniquePlatforms (spec ))
3279
3286
grouped_sources [group ].append ([element , {'Include' : source }] + detail )
3280
3287
3281
3288
@@ -3358,7 +3365,7 @@ def _GenerateMSBuildProject(project, options, version, generator_flags):
3358
3365
3359
3366
_GenerateMSBuildFiltersFile (project .path + '.filters' , sources ,
3360
3367
rule_dependencies ,
3361
- extension_to_rule_name )
3368
+ extension_to_rule_name , _GetUniquePlatforms ( spec ) )
3362
3369
missing_sources = _VerifySourcesExist (sources , project_dir )
3363
3370
3364
3371
for configuration in configurations .itervalues ():
@@ -3378,6 +3385,12 @@ def _GenerateMSBuildProject(project, options, version, generator_flags):
3378
3385
import_masm_targets_section = [
3379
3386
['Import' ,
3380
3387
{'Project' : r'$(VCTargetsPath)\BuildCustomizations\masm.targets' }]]
3388
+ import_marmasm_props_section = [
3389
+ ['Import' ,
3390
+ {'Project' : r'$(VCTargetsPath)\BuildCustomizations\marmasm.props' }]]
3391
+ import_marmasm_targets_section = [
3392
+ ['Import' ,
3393
+ {'Project' : r'$(VCTargetsPath)\BuildCustomizations\marmasm.targets' }]]
3381
3394
macro_section = [['PropertyGroup' , {'Label' : 'UserMacros' }]]
3382
3395
3383
3396
content = [
@@ -3398,6 +3411,7 @@ def _GenerateMSBuildProject(project, options, version, generator_flags):
3398
3411
content += _GetMSBuildLocalProperties (project .msbuild_toolset )
3399
3412
content += import_cpp_props_section
3400
3413
content += import_masm_props_section
3414
+ content += import_marmasm_props_section
3401
3415
content += _GetMSBuildExtensions (props_files_of_rules )
3402
3416
content += _GetMSBuildPropertySheets (configurations )
3403
3417
content += macro_section
@@ -3410,6 +3424,7 @@ def _GenerateMSBuildProject(project, options, version, generator_flags):
3410
3424
content += _GetMSBuildProjectReferences (project )
3411
3425
content += import_cpp_targets_section
3412
3426
content += import_masm_targets_section
3427
+ content += import_marmasm_targets_section
3413
3428
content += _GetMSBuildExtensionTargets (targets_files_of_rules )
3414
3429
3415
3430
if spec .get ('msvs_external_builder' ):
0 commit comments