Skip to content

Commit f3c7309

Browse files
authored
Expose configuring /nomidl. (#1290)
* Expose configuring /nomidl. * Add test project and fix comments.
1 parent 9e89b5c commit f3c7309

File tree

10 files changed

+189
-4
lines changed

10 files changed

+189
-4
lines changed

nuget/Microsoft.Windows.CppWinRT.props

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ Copyright (C) Microsoft Corporation. All rights reserved.
4343
<InterfaceIdentifierFileName Condition="'%(Midl.InterfaceIdentifierFileName)'==''">nul</InterfaceIdentifierFileName>
4444
<ProxyFileName Condition="'%(Midl.ProxyFileName)'==''">nul</ProxyFileName>
4545
<TypeLibraryName Condition="'%(Midl.TypeLibraryName)'==''"></TypeLibraryName>
46+
<NoMidl Condition="'%(Midl.NoMidl)'==''">true</NoMidl>
4647
</Midl>
4748
<ProjectReference Condition="'$(XamlLanguage)' != 'C++' and '$(CppWinRTEnableDefaultCopyLocalFalse)' == 'true'">
4849
<!-- By default, for a C++/WinRT project,

nuget/Microsoft.Windows.CppWinRT.targets

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -475,7 +475,10 @@ $(XamlMetaDataProviderPch)
475475
<_MidlReferences Include="@(CppWinRTPlatformWinMDReferences)"/>
476476
<_MidlReferencesDistinct Remove="@(_MidlReferencesDistinct)" />
477477
<_MidlReferencesDistinct Include="@(_MidlReferences->'%(WinMDPath)'->Distinct())" />
478-
<Midl Condition="'%(Midl.DisableReferences)'==''">
478+
<Midl Condition="'%(Midl.NoMidl)'!='false'">
479+
<AdditionalOptions>%(Midl.AdditionalOptions) /nomidl</AdditionalOptions>
480+
</Midl>
481+
<Midl Condition="'%(Midl.DisableReferences)'=='' and '%(Midl.NoMidl)'!='false'">
479482
<AdditionalOptions>%(Midl.AdditionalOptions) %40"$(CppWinRTMidlResponseFile)"</AdditionalOptions>
480483
</Midl>
481484
</ItemGroup>
@@ -883,7 +886,6 @@ $(XamlMetaDataProviderPch)
883886
<Midl Condition="'$(CppWinRTModernIDL)' != 'false'">
884887
<AdditionalMetadataDirectories Condition="'%(AdditionalMetadataDirectories)' == '' And '$(WindowsSDK_MetadataFoundationPath)' != ''">$(WindowsSDK_MetadataFoundationPath);%(AdditionalMetadataDirectories)</AdditionalMetadataDirectories>
885888
<AdditionalMetadataDirectories Condition="'%(AdditionalMetadataDirectories)' == '' And '$(WindowsSDK_MetadataFoundationPath)' == ''">$(WindowsSDK_MetadataPath);%(AdditionalMetadataDirectories)</AdditionalMetadataDirectories>
886-
<AdditionalOptions>%(AdditionalOptions) /nomidl</AdditionalOptions>
887889
</Midl>
888890
<Link>
889891
<AdditionalDependencies Condition="'$(CppWinRTLibs)' != 'false'">%(AdditionalDependencies);WindowsApp.lib</AdditionalDependencies>

test/nuget/NuGetTest.sln

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
Microsoft Visual Studio Solution File, Format Version 12.00
3-
# Visual Studio Version 16
4-
VisualStudioVersion = 16.0.29025.244
3+
# Visual Studio Version 17
4+
VisualStudioVersion = 17.5.33516.290
55
MinimumVisualStudioVersion = 10.0.40219.1
66
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestApp", "TestApp\TestApp.vcxproj", "{A8BDBDE9-1A3D-4F5E-8668-9F6E84790D44}"
77
EndProject
@@ -45,6 +45,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestStaticLibrary7", "TestS
4545
EndProject
4646
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ConsoleApplication1", "ConsoleApplication1\ConsoleApplication1.vcxproj", "{4DD64EAE-4B27-415A-863E-55CB8D5863DD}"
4747
EndProject
48+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestProxyStub", "TestProxyStub\TestProxyStub.vcxproj", "{98E28FC8-2EB7-4544-9B6A-941462C6D3E2}"
49+
EndProject
4850
Global
4951
GlobalSection(SolutionConfigurationPlatforms) = preSolution
5052
Debug|ARM = Debug|ARM
@@ -301,6 +303,22 @@ Global
301303
{4DD64EAE-4B27-415A-863E-55CB8D5863DD}.Release|x64.Build.0 = Release|x64
302304
{4DD64EAE-4B27-415A-863E-55CB8D5863DD}.Release|x86.ActiveCfg = Release|Win32
303305
{4DD64EAE-4B27-415A-863E-55CB8D5863DD}.Release|x86.Build.0 = Release|Win32
306+
{98E28FC8-2EB7-4544-9B6A-941462C6D3E2}.Debug|ARM.ActiveCfg = Debug|x64
307+
{98E28FC8-2EB7-4544-9B6A-941462C6D3E2}.Debug|ARM.Build.0 = Debug|x64
308+
{98E28FC8-2EB7-4544-9B6A-941462C6D3E2}.Debug|ARM64.ActiveCfg = Debug|ARM64
309+
{98E28FC8-2EB7-4544-9B6A-941462C6D3E2}.Debug|ARM64.Build.0 = Debug|ARM64
310+
{98E28FC8-2EB7-4544-9B6A-941462C6D3E2}.Debug|x64.ActiveCfg = Debug|x64
311+
{98E28FC8-2EB7-4544-9B6A-941462C6D3E2}.Debug|x64.Build.0 = Debug|x64
312+
{98E28FC8-2EB7-4544-9B6A-941462C6D3E2}.Debug|x86.ActiveCfg = Debug|Win32
313+
{98E28FC8-2EB7-4544-9B6A-941462C6D3E2}.Debug|x86.Build.0 = Debug|Win32
314+
{98E28FC8-2EB7-4544-9B6A-941462C6D3E2}.Release|ARM.ActiveCfg = Release|x64
315+
{98E28FC8-2EB7-4544-9B6A-941462C6D3E2}.Release|ARM.Build.0 = Release|x64
316+
{98E28FC8-2EB7-4544-9B6A-941462C6D3E2}.Release|ARM64.ActiveCfg = Release|ARM64
317+
{98E28FC8-2EB7-4544-9B6A-941462C6D3E2}.Release|ARM64.Build.0 = Release|ARM64
318+
{98E28FC8-2EB7-4544-9B6A-941462C6D3E2}.Release|x64.ActiveCfg = Release|x64
319+
{98E28FC8-2EB7-4544-9B6A-941462C6D3E2}.Release|x64.Build.0 = Release|x64
320+
{98E28FC8-2EB7-4544-9B6A-941462C6D3E2}.Release|x86.ActiveCfg = Release|Win32
321+
{98E28FC8-2EB7-4544-9B6A-941462C6D3E2}.Release|x86.Build.0 = Release|Win32
304322
EndGlobalSection
305323
GlobalSection(SolutionProperties) = preSolution
306324
HideSolutionNode = FALSE

test/nuget/TestApp/TestApp.vcxproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,9 @@
143143
</Text>
144144
</ItemGroup>
145145
<ItemGroup>
146+
<ProjectReference Include="..\TestProxyStub\TestProxyStub.vcxproj">
147+
<Project>{98E28FC8-2EB7-4544-9B6A-941462C6D3E2}</Project>
148+
</ProjectReference>
146149
<ProjectReference Include="..\TestRuntimeComponent1\TestRuntimeComponent1.vcxproj">
147150
<Project>{e0ebbe54-c046-4611-b048-3ce893b1df8a}</Project>
148151
</ProjectReference>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import "Windows.Foundation.idl";
2+
import "IAsyncContractParameter.idl";
3+
4+
namespace TestProxyStub
5+
{
6+
[uuid("A388AC69-7C0F-4CCB-B108-E091BE3DAB88")]
7+
interface IAsyncContract
8+
{
9+
Windows.Foundation.IAsyncAction RunAsync(IAsyncContractParameter parameter);
10+
};
11+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import "Windows.Foundation.idl";
2+
3+
namespace TestProxyStub
4+
{
5+
[uuid("F219AC9A-9858-4F66-8DA7-47A9E08438AC")]
6+
interface IAsyncContractParameter
7+
{
8+
String Name{ get; };
9+
Object Details{ get; };
10+
};
11+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
EXPORTS
2+
DllCanUnloadNow PRIVATE
3+
DllGetClassObject PRIVATE
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<Import Project="$(ProjectDir)..\..\..\nuget\Microsoft.Windows.CppWinRT.props" />
4+
<ItemGroup Label="ProjectConfigurations">
5+
<ProjectConfiguration Include="Debug|Win32">
6+
<Configuration>Debug</Configuration>
7+
<Platform>Win32</Platform>
8+
</ProjectConfiguration>
9+
<ProjectConfiguration Include="Release|Win32">
10+
<Configuration>Release</Configuration>
11+
<Platform>Win32</Platform>
12+
</ProjectConfiguration>
13+
<ProjectConfiguration Include="Debug|x64">
14+
<Configuration>Debug</Configuration>
15+
<Platform>x64</Platform>
16+
</ProjectConfiguration>
17+
<ProjectConfiguration Include="Release|x64">
18+
<Configuration>Release</Configuration>
19+
<Platform>x64</Platform>
20+
</ProjectConfiguration>
21+
<ProjectConfiguration Include="Debug|ARM64">
22+
<Configuration>Debug</Configuration>
23+
<Platform>ARM64</Platform>
24+
</ProjectConfiguration>
25+
<ProjectConfiguration Include="Release|ARM64">
26+
<Configuration>Release</Configuration>
27+
<Platform>ARM64</Platform>
28+
</ProjectConfiguration>
29+
</ItemGroup>
30+
<PropertyGroup Label="Globals">
31+
<VCProjectVersion>16.0</VCProjectVersion>
32+
<Keyword>Win32Proj</Keyword>
33+
<ProjectGuid>{98E28FC8-2EB7-4544-9B6A-941462C6D3E2}</ProjectGuid>
34+
<RootNamespace>TestProxyStub</RootNamespace>
35+
<WindowsTargetPlatformVersion Condition=" '$(WindowsTargetPlatformVersion)' == '' ">10.0.22621.0</WindowsTargetPlatformVersion>
36+
<WindowsTargetPlatformMinVersion>10.0.18362.0</WindowsTargetPlatformMinVersion>
37+
<!-- All generated code -->
38+
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
39+
<CodeAnalysisTreatWarningsAsErrors>false</CodeAnalysisTreatWarningsAsErrors>
40+
</PropertyGroup>
41+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
42+
<PropertyGroup Label="Configuration">
43+
<ConfigurationType>DynamicLibrary</ConfigurationType>
44+
<PlatformToolset>v143</PlatformToolset>
45+
<CharacterSet>Unicode</CharacterSet>
46+
</PropertyGroup>
47+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
48+
<ImportGroup Label="PropertySheets">
49+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
50+
</ImportGroup>
51+
<PropertyGroup Label="UserMacros" />
52+
<ItemDefinitionGroup>
53+
<ClCompile>
54+
<PreprocessorDefinitions>WIN32;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
55+
<PrecompiledHeader>Use</PrecompiledHeader>
56+
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
57+
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(MSBuildThisFileDirectory)</AdditionalIncludeDirectories>
58+
</ClCompile>
59+
<Link>
60+
<SubSystem>Windows</SubSystem>
61+
<AdditionalDependencies>onecore.lib;onecoreuap.lib;%(AdditionalDependencies)</AdditionalDependencies>
62+
<ModuleDefinitionFile>TestProxyStub.def</ModuleDefinitionFile>
63+
</Link>
64+
<Midl>
65+
<GenerateClientFiles>Stub</GenerateClientFiles>
66+
<GenerateServerFiles>Stub</GenerateServerFiles>
67+
<GenerateStublessProxies>true</GenerateStublessProxies>
68+
<DllDataFileName>$(IntDir)dlldata.c</DllDataFileName>
69+
<HeaderFileName>$(IntDir)%(FileName).h</HeaderFileName>
70+
<InterfaceIdentifierFileName>$(IntDir)%(FileName)_i.c</InterfaceIdentifierFileName>
71+
<ProxyFileName>$(IntDir)%(FileName)_p.c</ProxyFileName>
72+
<AdditionalMetadataDirectories>$(WindowsSDK_UnionMetadataPath)</AdditionalMetadataDirectories>
73+
<PrependWithABINamepsace>true</PrependWithABINamepsace>
74+
<DisableReferences>false</DisableReferences>
75+
</Midl>
76+
</ItemDefinitionGroup>
77+
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
78+
<ClCompile>
79+
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
80+
</ClCompile>
81+
</ItemDefinitionGroup>
82+
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
83+
<ClCompile>
84+
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
85+
</ClCompile>
86+
</ItemDefinitionGroup>
87+
<ItemGroup>
88+
<ClInclude Include="$(IntDir)IAsyncContract.h" />
89+
<ClInclude Include="$(IntDir)IAsyncContract_p.h" />
90+
<ClInclude Include="$(IntDir)IAsyncContractParameter.h" />
91+
<ClInclude Include="$(IntDir)IAsyncContractParameter_p.h" />
92+
<ClInclude Include="pch.h" />
93+
</ItemGroup>
94+
<ItemGroup>
95+
<ClCompile Include="$(IntDir)dlldata.c">
96+
<PrecompiledHeader>NotUsing</PrecompiledHeader>
97+
</ClCompile>
98+
<ClCompile Include="$(IntDir)IAsyncContract_i.c">
99+
<PrecompiledHeader>NotUsing</PrecompiledHeader>
100+
</ClCompile>
101+
<ClCompile Include="$(IntDir)IAsyncContract_p.c">
102+
<PrecompiledHeader>NotUsing</PrecompiledHeader>
103+
</ClCompile>
104+
<ClCompile Include="$(IntDir)\IAsyncContractParameter_i.c">
105+
<PrecompiledHeader>NotUsing</PrecompiledHeader>
106+
</ClCompile>
107+
<ClCompile Include="$(IntDir)\IAsyncContractParameter_p.c">
108+
<PrecompiledHeader>NotUsing</PrecompiledHeader>
109+
</ClCompile>
110+
<ClCompile Include="pch.cpp">
111+
<PrecompiledHeader>Create</PrecompiledHeader>
112+
</ClCompile>
113+
</ItemGroup>
114+
<ItemGroup>
115+
<None Include="TestProxyStub.def" />
116+
</ItemGroup>
117+
<ItemGroup>
118+
<Midl Include="IAsyncContract.idl">
119+
<NoMidl>false</NoMidl>
120+
</Midl>
121+
<Midl Include="IAsyncContractParameter.idl">
122+
<NoMidl>false</NoMidl>
123+
</Midl>
124+
</ItemGroup>
125+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
126+
<Import Project="$(ProjectDir)..\..\..\nuget\Microsoft.Windows.CppWinRT.targets" />
127+
</Project>

test/nuget/TestProxyStub/pch.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
#include "pch.h"

test/nuget/TestProxyStub/pch.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
//
2+
// pch.h
3+
// Header for platform projection include files
4+
//
5+
6+
#pragma once
7+
8+
#include <windows.h>

0 commit comments

Comments
 (0)