MCPcopy Create free account
hub / github.com/nodejs/node / _GenerateMSBuildRuleTargetsFile

Function _GenerateMSBuildRuleTargetsFile

tools/gyp/pylib/gyp/generator/msvs.py:2470–2669  ·  view source on GitHub ↗

Generate the .targets file.

(targets_path, msbuild_rules)

Source from the content-addressed store, hash-verified

2468
2469
2470def _GenerateMSBuildRuleTargetsFile(targets_path, msbuild_rules):
2471 """Generate the .targets file."""
2472 content = [
2473 "Project",
2474 {"xmlns": "http://schemas.microsoft.com/developer/msbuild/2003"},
2475 ]
2476 item_group = [
2477 "ItemGroup",
2478 [
2479 "PropertyPageSchema",
2480 {"Include": "$(MSBuildThisFileDirectory)$(MSBuildThisFileName).xml"},
2481 ],
2482 ]
2483 for rule in msbuild_rules:
2484 item_group.append(
2485 [
2486 "AvailableItemName",
2487 {"Include": rule.rule_name},
2488 ["Targets", rule.target_name],
2489 ]
2490 )
2491 content.append(item_group)
2492
2493 for rule in msbuild_rules:
2494 content.append(
2495 [
2496 "UsingTask",
2497 {
2498 "TaskName": rule.rule_name,
2499 "TaskFactory": "XamlTaskFactory",
2500 "AssemblyName": "Microsoft.Build.Tasks.v4.0",
2501 },
2502 ["Task", "$(MSBuildThisFileDirectory)$(MSBuildThisFileName).xml"],
2503 ]
2504 )
2505 for rule in msbuild_rules:
2506 rule_name = rule.rule_name
2507 target_outputs = "%%(%s.Outputs)" % rule_name
2508 target_inputs = (
2509 "%%(%s.Identity);%%(%s.AdditionalDependencies);$(MSBuildProjectFile)"
2510 ) % (rule_name, rule_name)
2511 rule_inputs = "%%(%s.Identity)" % rule_name
2512 extension_condition = (
2513 "'%(Extension)'=='.obj' or "
2514 "'%(Extension)'=='.res' or "
2515 "'%(Extension)'=='.rsc' or "
2516 "'%(Extension)'=='.lib'"
2517 )
2518 remove_section = [
2519 "ItemGroup",
2520 {"Condition": "'@(SelectedFiles)' != ''"},
2521 [
2522 rule_name,
2523 {
2524 "Remove": "@(%s)" % rule_name,
2525 "Condition": "'%(Identity)' != '@(SelectedFiles)'",
2526 },
2527 ],

Callers 1

_GenerateRulesForMSBuildFunction · 0.85

Calls 2

appendMethod · 0.45
extendMethod · 0.45

Tested by

no test coverage detected