@@ -2037,7 +2037,8 @@ def GenerateOutput(target_list, target_dicts, data, params):
2037
2037
2038
2038
2039
2039
def _GenerateMSBuildFiltersFile (filters_path , source_files ,
2040
- rule_dependencies , extension_to_rule_name ):
2040
+ rule_dependencies , extension_to_rule_name ,
2041
+ platforms ):
2041
2042
"""Generate the filters file.
2042
2043
2043
2044
This file is used by Visual Studio to organize the presentation of source
@@ -2051,7 +2052,8 @@ def _GenerateMSBuildFiltersFile(filters_path, source_files,
2051
2052
filter_group = []
2052
2053
source_group = []
2053
2054
_AppendFiltersForMSBuild ('' , source_files , rule_dependencies ,
2054
- extension_to_rule_name , filter_group , source_group )
2055
+ extension_to_rule_name , platforms ,
2056
+ filter_group , source_group )
2055
2057
if filter_group :
2056
2058
content = ['Project' ,
2057
2059
{'ToolsVersion' : '4.0' ,
@@ -2067,7 +2069,7 @@ def _GenerateMSBuildFiltersFile(filters_path, source_files,
2067
2069
2068
2070
2069
2071
def _AppendFiltersForMSBuild (parent_filter_name , sources , rule_dependencies ,
2070
- extension_to_rule_name ,
2072
+ extension_to_rule_name , platforms ,
2071
2073
filter_group , source_group ):
2072
2074
"""Creates the list of filters and sources to be added in the filter file.
2073
2075
@@ -2093,11 +2095,12 @@ def _AppendFiltersForMSBuild(parent_filter_name, sources, rule_dependencies,
2093
2095
# Recurse and add its dependents.
2094
2096
_AppendFiltersForMSBuild (filter_name , source .contents ,
2095
2097
rule_dependencies , extension_to_rule_name ,
2096
- filter_group , source_group )
2098
+ platforms , filter_group , source_group )
2097
2099
else :
2098
2100
# It's a source. Create a source entry.
2099
2101
_ , element = _MapFileToMsBuildSourceType (source , rule_dependencies ,
2100
- extension_to_rule_name )
2102
+ extension_to_rule_name ,
2103
+ platforms )
2101
2104
source_entry = [element , {'Include' : source }]
2102
2105
# Specify the filter it is part of, if any.
2103
2106
if parent_filter_name :
@@ -2106,7 +2109,7 @@ def _AppendFiltersForMSBuild(parent_filter_name, sources, rule_dependencies,
2106
2109
2107
2110
2108
2111
def _MapFileToMsBuildSourceType (source , rule_dependencies ,
2109
- extension_to_rule_name ):
2112
+ extension_to_rule_name , platforms ):
2110
2113
"""Returns the group and element type of the source file.
2111
2114
2112
2115
Arguments:
@@ -2132,6 +2135,9 @@ def _MapFileToMsBuildSourceType(source, rule_dependencies,
2132
2135
elif ext == '.asm' :
2133
2136
group = 'masm'
2134
2137
element = 'MASM'
2138
+ for platform in platforms :
2139
+ if platform .lower () in ['arm' , 'arm64' ]:
2140
+ element = 'MARMASM'
2135
2141
elif ext == '.idl' :
2136
2142
group = 'midl'
2137
2143
element = 'Midl'
@@ -3225,7 +3231,8 @@ def _AddSources2(spec, sources, exclusions, grouped_sources,
3225
3231
detail .append (['ForcedIncludeFiles' , '' ])
3226
3232
3227
3233
group , element = _MapFileToMsBuildSourceType (source , rule_dependencies ,
3228
- extension_to_rule_name )
3234
+ extension_to_rule_name ,
3235
+ _GetUniquePlatforms (spec ))
3229
3236
grouped_sources [group ].append ([element , {'Include' : source }] + detail )
3230
3237
3231
3238
@@ -3308,7 +3315,7 @@ def _GenerateMSBuildProject(project, options, version, generator_flags):
3308
3315
3309
3316
_GenerateMSBuildFiltersFile (project .path + '.filters' , sources ,
3310
3317
rule_dependencies ,
3311
- extension_to_rule_name )
3318
+ extension_to_rule_name , _GetUniquePlatforms ( spec ) )
3312
3319
missing_sources = _VerifySourcesExist (sources , project_dir )
3313
3320
3314
3321
for configuration in configurations .itervalues ():
@@ -3328,6 +3335,12 @@ def _GenerateMSBuildProject(project, options, version, generator_flags):
3328
3335
import_masm_targets_section = [
3329
3336
['Import' ,
3330
3337
{'Project' : r'$(VCTargetsPath)\BuildCustomizations\masm.targets' }]]
3338
+ import_marmasm_props_section = [
3339
+ ['Import' ,
3340
+ {'Project' : r'$(VCTargetsPath)\BuildCustomizations\marmasm.props' }]]
3341
+ import_marmasm_targets_section = [
3342
+ ['Import' ,
3343
+ {'Project' : r'$(VCTargetsPath)\BuildCustomizations\marmasm.targets' }]]
3331
3344
macro_section = [['PropertyGroup' , {'Label' : 'UserMacros' }]]
3332
3345
3333
3346
content = [
@@ -3347,6 +3360,7 @@ def _GenerateMSBuildProject(project, options, version, generator_flags):
3347
3360
content += _GetMSBuildLocalProperties (project .msbuild_toolset )
3348
3361
content += import_cpp_props_section
3349
3362
content += import_masm_props_section
3363
+ content += import_marmasm_props_section
3350
3364
content += _GetMSBuildExtensions (props_files_of_rules )
3351
3365
content += _GetMSBuildPropertySheets (configurations )
3352
3366
content += macro_section
@@ -3359,6 +3373,7 @@ def _GenerateMSBuildProject(project, options, version, generator_flags):
3359
3373
content += _GetMSBuildProjectReferences (project )
3360
3374
content += import_cpp_targets_section
3361
3375
content += import_masm_targets_section
3376
+ content += import_marmasm_targets_section
3362
3377
content += _GetMSBuildExtensionTargets (targets_files_of_rules )
3363
3378
3364
3379
if spec .get ('msvs_external_builder' ):
0 commit comments