Skip to content

Commit 9f9c042

Browse files
New C++ toolset with partial fixes for #634 (#1375)
1 parent ab86577 commit 9f9c042

File tree

6 files changed

+80
-50
lines changed

6 files changed

+80
-50
lines changed

eng/Versions.props

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,11 @@
5959
<XUnitVersion>2.4.0</XUnitVersion>
6060
<XUnitRunnerConsoleVersion>$(XUnitVersion)</XUnitRunnerConsoleVersion>
6161
<XUnitRunnerVisualStudioVersion>$(XUnitVersion)</XUnitRunnerVisualStudioVersion>
62+
<!--
63+
Also in global.json
64+
Used in Wpf.Cpp.PrivateTools.props/targets
65+
-->
66+
<MsvcurtC1xxVersion>0.0.0.6</MsvcurtC1xxVersion>
6267
<!--
6368
This is the version of the test infrastructure package is compiled against. This should be
6469
removed as part of https://github.com/dotnet/wpf/issues/816
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<Project>
2+
<!--
3+
See comment about UsePrivateCppTools in Wpf.Cpp.props
4+
-->
5+
<PropertyGroup>
6+
<!--
7+
msvcurt-c1xx should reference a blob hosted in azure storage
8+
9+
MsvcurtNetCoreLib -> msvcurt[d]_netcore.lib
10+
FrontEndPath -> c1xx.dll
11+
BackEndPath -> c2.dll (optional)
12+
ClToolExe (requires ClToolPath) -> cl.exe (optional)
13+
LinkToolExe (requires LinkToolPath) -> link.exe (optional)
14+
15+
Some of these properties are defined in Wpf.Cpp.PrivateTools.targets
16+
-->
17+
<MsvcurtC1xxToolsPath>$(RepoRoot).tools\native\bin\msvcurt-c1xx\$(MsvcurtC1xxVersion)\$(Architecture)\</MsvcurtC1xxToolsPath>
18+
<MsvcurtNetCoreLib>$(MsvcurtC1xxToolsPath)msvcurt$(LibSuffix)_netcore.lib</MsvcurtNetCoreLib>
19+
<!-- End optional section -->
20+
</PropertyGroup>
21+
22+
<ItemDefinitionGroup Condition="'$(ManagedCxx)'=='true' and '$(ExplicitCrts)'=='true'">
23+
<Link>
24+
<AdditionalDependencies>%(AdditionalDependencies);$(MsvcurtNetCoreLib)</AdditionalDependencies>
25+
</Link>
26+
</ItemDefinitionGroup>
27+
</Project>
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<Project>
2+
<!--
3+
See comment about UsePrivateCppTools in Wpf.Cpp.props
4+
Also see Wpf.Cpp.PrivateTools.props
5+
-->
6+
<!-- Start optional section -->
7+
<PropertyGroup>
8+
<FrontEndPath Condition="'$(VCToolArchitecture)'=='Native32Bit'">$(MsvcurtC1xxToolsPath)HostX86\c1xx.dll</FrontEndPath>
9+
<FrontEndPath Condition="'$(VCToolArchitecture)'=='Native64Bit'">$(MsvcurtC1xxToolsPath)HostX64\c1xx.dll</FrontEndPath>
10+
11+
<BackEndPath Condition="'$(VCToolArchitecture)'=='Native32Bit' And Exists('$(MsvcurtC1xxToolsPath)HostX86\c2.dll')">$(MsvcurtC1xxToolsPath)HostX86\c2.dll</BackEndPath>
12+
<BackEndPath Condition="'$(VCToolArchitecture)'=='Native64Bit' And Exists('$(MsvcurtC1xxToolsPath)HostX64\c2.dll')">$(MsvcurtC1xxToolsPath)HostX64\c2.dll</BackEndPath>
13+
14+
<!--
15+
Requires a full set of cl.exe and link.exe DLL's to enable this.
16+
-->
17+
<!--
18+
<ClToolPath Condition="'$(VCToolArchitecture)'=='Native32Bit' And Exists('$(MsvcurtC1xxToolsPath)HostX86\cl.exe')">$(MsvcurtC1xxToolsPath)HostX86\</ClToolPath>
19+
<ClToolPath Condition="'$(VCToolArchitecture)'=='Native64Bit' And Exists('$(MsvcurtC1xxToolsPath)HostX64\cl.exe')">$(MsvcurtC1xxToolsPath)HostX64\</ClToolPath>
20+
<ClToolExe Condition="Exists('$(ClToolPath)')">cl.exe</ClToolExe>
21+
22+
<LinkToolPath Condition="'$(VCToolArchitecture)'=='Native32Bit' And Exists('$(MsvcurtC1xxToolsPath)HostX86\link.exe')">$(MsvcurtC1xxToolsPath)HostX86\</LinkToolPath>
23+
<LinkToolPath Condition="'$(VCToolArchitecture)'=='Native64Bit' And Exists('$(MsvcurtC1xxToolsPath)HostX64\link.exe')">$(MsvcurtC1xxToolsPath)HostX64\</LinkToolPath>
24+
<LinkToolExe Condition="Exists('$(LinkToolPath)')">link.exe</LinkToolExe>
25+
-->
26+
</PropertyGroup>
27+
28+
<ItemDefinitionGroup Condition="'$(ManagedCxx)'=='true' And '$(FrontEndPath)'!=''">
29+
<ClCompile>
30+
<AdditionalOptions>%(AdditionalOptions) /Bx"$(FrontEndPath)"</AdditionalOptions>
31+
</ClCompile>
32+
<Link>
33+
<AdditionalOptions>%(AdditionalOptions) /fe:"$(FrontEndPath)"</AdditionalOptions>
34+
</Link>
35+
</ItemDefinitionGroup>
36+
37+
<ItemDefinitionGroup Condition="'$(ManagedCxx)'=='true' And '$(BackEndPath)'!=''">
38+
<ClCompile>
39+
<AdditionalOptions>%(AdditionalOptions) /B2"$(BackEndPath)"</AdditionalOptions>
40+
</ClCompile>
41+
</ItemDefinitionGroup>
42+
<!-- End optional section -->
43+
</Project>

eng/WpfArcadeSdk/tools/Wpf.Cpp.props

Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -89,30 +89,10 @@
8989
</PropertyGroup>
9090

9191
<PropertyGroup>
92-
<!--
93-
If there is ever need to use a private C++ compiler front-end, use the logic in the commented section below,
94-
and update global.json with the corresponding version of msvcurt-c1xx
95-
96-
There is also a corresponding section (also commented out) in Wpf.Cpp.targets.
97-
98-
msvcurt-c1xx should reference a blob hosted in azure storage that contains
99-
msvcurt[d]_netcore.lib and c1xx.dll (and optionally, c2.dll)
100-
-->
101-
<!-- Start optional section -->
102-
<!-- Also in global.json -->
103-
<MsvcurtC1xxVersion>0.0.0.4</MsvcurtC1xxVersion>
104-
<UsePrivateFrontEnd Condition="'$(UsePrivateFrontEnd)'==''">true</UsePrivateFrontEnd>
105-
<MsvcurtC1xxToolsPath>$(RepoRoot).tools\native\bin\msvcurt-c1xx\$(MsvcurtC1xxVersion)\$(Architecture)\</MsvcurtC1xxToolsPath>
106-
<MsvcurtNetCoreLib>$(MsvcurtC1xxToolsPath)msvcurt$(LibSuffix)_netcore.lib</MsvcurtNetCoreLib>
107-
<!-- End optional section -->
92+
<UsePrivateCppTools Condition="'$(UsePrivateCppTools)' == ''">true</UsePrivateCppTools>
10893
</PropertyGroup>
94+
<Import Project="Wpf.Cpp.PrivateTools.props" Condition="Exists('Wpf.Cpp.PrivateTools.props') And '$(UsePrivateCppTools)'=='true'"/>
10995

110-
<ItemDefinitionGroup Condition="'$(UsePrivateFrontEnd)'=='true' And '$(ManagedCxx)'=='true' and '$(ExplicitCrts)'=='true'">
111-
<Link>
112-
<AdditionalDependencies>%(AdditionalDependencies);$(MsvcurtNetCoreLib)</AdditionalDependencies>
113-
</Link>
114-
</ItemDefinitionGroup>
115-
11696
<!-- Set up standard libraries for Native C++ projects -->
11797
<PropertyGroup>
11898
<!-- Explicitly set up CRT and VC runtime libraries -->

eng/WpfArcadeSdk/tools/Wpf.Cpp.targets

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -4,33 +4,8 @@
44
<NativeVersionFileDirectory>$([System.IO.Path]::GetDirectoryName($(NativeVersionFile)))</NativeVersionFileDirectory>
55
</PropertyGroup>
66

7-
8-
<!--
9-
See comment about UsePrivateFrontEnd in Wpf.Cpp.props
10-
-->
11-
<!-- Start optional section -->
12-
<PropertyGroup>
13-
<FrontEndPath Condition="'$(VCToolArchitecture)'=='Native32Bit'">$(MsvcurtC1xxToolsPath)HostX86\c1xx.dll</FrontEndPath>
14-
<FrontEndPath Condition="'$(VCToolArchitecture)'=='Native64Bit'">$(MsvcurtC1xxToolsPath)HostX64\c1xx.dll</FrontEndPath>
15-
16-
<BackEndPath Condition="'$(VCToolArchitecture)'=='Native32Bit' And Exists('$(MsvcurtC1xxToolsPath)HostX86\c2.dll')">$(MsvcurtC1xxToolsPath)HostX86\c2.dll</BackEndPath>
17-
<BackEndPath Condition="'$(VCToolArchitecture)'=='Native64Bit' And Exists('$(MsvcurtC1xxToolsPath)HostX86\c2.dll')">$(MsvcurtC1xxToolsPath)HostX64\c2.dll</BackEndPath>
18-
</PropertyGroup>
19-
<ItemDefinitionGroup Condition="'$(UsePrivateFrontEnd)'=='true' And '$(ManagedCxx)'=='true' And '$(FrontEndPath)'!=''">
20-
<ClCompile>
21-
<AdditionalOptions>%(AdditionalOptions) /Bx"$(FrontEndPath)"</AdditionalOptions>
22-
</ClCompile>
23-
<Link>
24-
<AdditionalOptions>%(AdditionalOptions) /fe:"$(FrontEndPath)"</AdditionalOptions>
25-
</Link>
26-
</ItemDefinitionGroup>
27-
<ItemDefinitionGroup Condition="'$(UsePrivateFrontEnd)'=='true' And '$(ManagedCxx)'=='true' And '$(BackEndPath)'!=''">
28-
<ClCompile>
29-
<AdditionalOptions>%(AdditionalOptions) /B2"$(BackEndPath)"</AdditionalOptions>
30-
</ClCompile>
31-
</ItemDefinitionGroup>
32-
<!-- End optional section -->
33-
7+
<Import Project="Wpf.Cpp.PrivateTools.targets" Condition="Exists('Wpf.Cpp.PrivateTools.targets') And '$(UsePrivateCppTools)'=='true'"/>
8+
349
<ItemDefinitionGroup>
3510
<ClCompile>
3611
<AdditionalIncludeDirectories Condition="Exists('$(WpfSharedDir)inc\')">%(AdditionalIncludeDirectories);$(WpfSharedDir)inc\</AdditionalIncludeDirectories>

global.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,6 @@
1919
"strawberry-perl": "5.28.1.1-1",
2020
"net-framework-48-ref-assemblies": "0.0.0.1",
2121
"dotnet-api-docs_netcoreapp3.0": "0.0.0.1",
22-
"msvcurt-c1xx": "0.0.0.4"
22+
"msvcurt-c1xx": "0.0.0.6"
2323
}
2424
}

0 commit comments

Comments
 (0)