Repository navigation
Commit c97ed62
committed
A build program's environment contract does not depend on the children mcpp has launched (#797)
On Windows a child's environment is applied to mcpp itself (`_putenv_s`), and
`build_env_for_cl` composed the toolset's PATH from the process's current
PATH. The value reached `MCPP_TOOL_ENV`, part of a build program's run key: a
build that had compiled its programs through the build programs' graph ran
ninja first, so its PATH carried the toolset's directory once more than the
next build's, and every program ran again (e2e 89, 839, 842; mcpp-plugins
cmake-consumer). The toolset's PATH and a program's PATH now start from the
PATH the process was started with (`env::inherited_path`), captured before
anything is launched.1 parent fa9e185 commit c97ed62
3 files changed
Lines changed: 19 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
79 | 79 | | |
80 | 80 | | |
81 | 81 | | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
82 | 87 | | |
83 | 88 | | |
84 | 89 | | |
| |||
114 | 119 | | |
115 | 120 | | |
116 | 121 | | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
117 | 132 | | |
118 | 133 | | |
119 | 134 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
789 | 789 | | |
790 | 790 | | |
791 | 791 | | |
792 | | - | |
| 792 | + | |
793 | 793 | | |
794 | 794 | | |
795 | 795 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1489 | 1489 | | |
1490 | 1490 | | |
1491 | 1491 | | |
| 1492 | + | |
| 1493 | + | |
1492 | 1494 | | |
1493 | | - | |
| 1495 | + | |
1494 | 1496 | | |
1495 | 1497 | | |
1496 | 1498 | | |
| |||
0 commit comments