@@ -2076,7 +2076,8 @@ def GenerateOutput(target_list, target_dicts, data, params):
20762076
20772077
20782078def _GenerateMSBuildFiltersFile (filters_path , source_files ,
2079- rule_dependencies , extension_to_rule_name ):
2079+ rule_dependencies , extension_to_rule_name ,
2080+ platforms ):
20802081 """Generate the filters file.
20812082
20822083 This file is used by Visual Studio to organize the presentation of source
@@ -2090,7 +2091,8 @@ def _GenerateMSBuildFiltersFile(filters_path, source_files,
20902091 filter_group = []
20912092 source_group = []
20922093 _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 )
20942096 if filter_group :
20952097 content = ['Project' ,
20962098 {'ToolsVersion' : '4.0' ,
@@ -2106,7 +2108,7 @@ def _GenerateMSBuildFiltersFile(filters_path, source_files,
21062108
21072109
21082110def _AppendFiltersForMSBuild (parent_filter_name , sources , rule_dependencies ,
2109- extension_to_rule_name ,
2111+ extension_to_rule_name , platforms ,
21102112 filter_group , source_group ):
21112113 """Creates the list of filters and sources to be added in the filter file.
21122114
@@ -2132,11 +2134,12 @@ def _AppendFiltersForMSBuild(parent_filter_name, sources, rule_dependencies,
21322134 # Recurse and add its dependents.
21332135 _AppendFiltersForMSBuild (filter_name , source .contents ,
21342136 rule_dependencies , extension_to_rule_name ,
2135- filter_group , source_group )
2137+ platforms , filter_group , source_group )
21362138 else :
21372139 # It's a source. Create a source entry.
21382140 _ , element = _MapFileToMsBuildSourceType (source , rule_dependencies ,
2139- extension_to_rule_name )
2141+ extension_to_rule_name ,
2142+ platforms )
21402143 source_entry = [element , {'Include' : source }]
21412144 # Specify the filter it is part of, if any.
21422145 if parent_filter_name :
@@ -2145,7 +2148,7 @@ def _AppendFiltersForMSBuild(parent_filter_name, sources, rule_dependencies,
21452148
21462149
21472150def _MapFileToMsBuildSourceType (source , rule_dependencies ,
2148- extension_to_rule_name ):
2151+ extension_to_rule_name , platforms ):
21492152 """Returns the group and element type of the source file.
21502153
21512154 Arguments:
@@ -2172,6 +2175,9 @@ def _MapFileToMsBuildSourceType(source, rule_dependencies,
21722175 elif ext in ['.s' , '.asm' ]:
21732176 group = 'masm'
21742177 element = 'MASM'
2178+ for platform in platforms :
2179+ if platform .lower () in ['arm' , 'arm64' ]:
2180+ element = 'MARMASM'
21752181 elif ext == '.idl' :
21762182 group = 'midl'
21772183 element = 'Midl'
@@ -3275,7 +3281,8 @@ def _AddSources2(spec, sources, exclusions, grouped_sources,
32753281 detail .append (['ForcedIncludeFiles' , '' ])
32763282
32773283 group , element = _MapFileToMsBuildSourceType (source , rule_dependencies ,
3278- extension_to_rule_name )
3284+ extension_to_rule_name ,
3285+ _GetUniquePlatforms (spec ))
32793286 grouped_sources [group ].append ([element , {'Include' : source }] + detail )
32803287
32813288
@@ -3358,7 +3365,7 @@ def _GenerateMSBuildProject(project, options, version, generator_flags):
33583365
33593366 _GenerateMSBuildFiltersFile (project .path + '.filters' , sources ,
33603367 rule_dependencies ,
3361- extension_to_rule_name )
3368+ extension_to_rule_name , _GetUniquePlatforms ( spec ) )
33623369 missing_sources = _VerifySourcesExist (sources , project_dir )
33633370
33643371 for configuration in configurations .itervalues ():
@@ -3378,6 +3385,12 @@ def _GenerateMSBuildProject(project, options, version, generator_flags):
33783385 import_masm_targets_section = [
33793386 ['Import' ,
33803387 {'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' }]]
33813394 macro_section = [['PropertyGroup' , {'Label' : 'UserMacros' }]]
33823395
33833396 content = [
@@ -3398,6 +3411,7 @@ def _GenerateMSBuildProject(project, options, version, generator_flags):
33983411 content += _GetMSBuildLocalProperties (project .msbuild_toolset )
33993412 content += import_cpp_props_section
34003413 content += import_masm_props_section
3414+ content += import_marmasm_props_section
34013415 content += _GetMSBuildExtensions (props_files_of_rules )
34023416 content += _GetMSBuildPropertySheets (configurations )
34033417 content += macro_section
@@ -3410,6 +3424,7 @@ def _GenerateMSBuildProject(project, options, version, generator_flags):
34103424 content += _GetMSBuildProjectReferences (project )
34113425 content += import_cpp_targets_section
34123426 content += import_masm_targets_section
3427+ content += import_marmasm_targets_section
34133428 content += _GetMSBuildExtensionTargets (targets_files_of_rules )
34143429
34153430 if spec .get ('msvs_external_builder' ):
0 commit comments