Skip to content

Commit 9b453cf

Browse files
jonwisJon Wiswall
andauthored
Enable faster dev cycle in Visual Studio (#1340)
* Enable faster dev cycle in Visual Studio * Oops, remove one more run * Fix linux build temporarily - see also #1341 --------- Co-authored-by: Jon Wiswall <[email protected]>
1 parent 4196e08 commit 9b453cf

File tree

5 files changed

+29
-107
lines changed

5 files changed

+29
-107
lines changed

.github/workflows/ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -483,7 +483,7 @@ jobs:
483483
484484
- name: Test run (build projection using Windows.winmd)
485485
run: |
486-
curl -o Windows.winmd -L https://github.com/microsoft/windows-rs/raw/master/crates/libs/metadata/default/Windows.winmd
486+
curl -o Windows.winmd -L https://github.com/microsoft/windows-rs/raw/master/crates/libs/bindgen/default/Windows.winmd
487487
install/bin/cppwinrt -in Windows.winmd -out /tmp/cppwinrt -verbose
488488
489489
- id: setup-llvm
@@ -575,7 +575,7 @@ jobs:
575575
576576
- name: Test run (build projection using Windows.winmd)
577577
run: |
578-
curl -o Windows.winmd -L https://github.com/microsoft/windows-rs/raw/master/crates/libs/metadata/default/Windows.winmd
578+
curl -o Windows.winmd -L https://github.com/microsoft/windows-rs/raw/master/crates/libs/bindgen/default/Windows.winmd
579579
install/bin/cppwinrt -in Windows.winmd -out build/out -verbose
580580
581581
build-msvc-natvis:

README.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,13 @@ If you really want to build it yourself, the simplest way to do so is to run the
1717

1818
* Open a dev command prompt pointing at the root of the repo.
1919
* Open the `cppwinrt.sln` solution.
20-
* Rebuild the x64 Release configuration of the `cppwinrt` project only. Do not attempt to build anything else just yet.
21-
* Run `build_projection.cmd` in the dev command prompt.
22-
* Switch to the x64 Debug configuration in Visual Studio and build all projects as needed.
20+
* Choose a configuration (x64, x86, Release, Debug) and build projects as needed.
21+
22+
If you are working on an ARM64 or ARM specific issue from an x64 or x86 host, you will need to instead:
23+
24+
* Open the `cppwinrt.sln` solution
25+
* Build the x86 version of the "cppwinrt" project first
26+
* Switch to your preferred configuration and build the test binaries and run them in your test environment
2327

2428
## Comparing Outputs
2529

build_test_all.cmd

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ call msbuild /p:Configuration=%target_configuration%,Platform=%target_platform%,
2626
if "%target_platform%"=="arm64" goto :eof
2727

2828
call msbuild /m /p:Configuration=%target_configuration%,Platform=%target_platform%,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:cppwinrt
29-
_build\%target_platform%\%target_configuration%\cppwinrt.exe -in local -out _build\%target_platform%\%target_configuration% -verbose
3029

3130
call msbuild /p:Configuration=%target_configuration%,Platform=%target_platform%,CppWinRTBuildVersion=%target_version% test\nuget\NugetTest.sln
3231

cppwinrt.sln

Lines changed: 10 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.28606.126
3+
# Visual Studio Version 17
4+
VisualStudioVersion = 17.6.33829.357
55
MinimumVisualStudioVersion = 10.0.40219.1
66
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cppwinrt", "cppwinrt\cppwinrt.vcxproj", "{D613FB39-5035-4043-91E2-BAB323908AF4}"
77
ProjectSection(ProjectDependencies) = postProject
@@ -24,6 +24,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Component", "test\old_tests
2424
EndProject
2525
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Composable", "test\old_tests\Composable\Composable.vcxproj", "{152E4C6E-9A9D-4D5A-B38D-4905D173649A}"
2626
ProjectSection(ProjectDependencies) = postProject
27+
{A91B8BF3-28E4-4D9E-8DBA-64B70E4F0270} = {A91B8BF3-28E4-4D9E-8DBA-64B70E4F0270}
2728
{D613FB39-5035-4043-91E2-BAB323908AF4} = {D613FB39-5035-4043-91E2-BAB323908AF4}
2829
EndProjectSection
2930
EndProject
@@ -41,16 +42,19 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test", "test\test\test.vcxp
4142
EndProject
4243
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_component_folders", "test\test_component_folders\test_component_folders.vcxproj", "{85695954-3800-4558-9857-966E69E9F9EC}"
4344
ProjectSection(ProjectDependencies) = postProject
45+
{A91B8BF3-28E4-4D9E-8DBA-64B70E4F0270} = {A91B8BF3-28E4-4D9E-8DBA-64B70E4F0270}
4446
{D613FB39-5035-4043-91E2-BAB323908AF4} = {D613FB39-5035-4043-91E2-BAB323908AF4}
4547
EndProjectSection
4648
EndProject
4749
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_component_no_pch", "test\test_component_no_pch\test_component_no_pch.vcxproj", "{F1C915B3-2C64-4992-AFB7-7F035B1A7607}"
4850
ProjectSection(ProjectDependencies) = postProject
51+
{A91B8BF3-28E4-4D9E-8DBA-64B70E4F0270} = {A91B8BF3-28E4-4D9E-8DBA-64B70E4F0270}
4952
{D613FB39-5035-4043-91E2-BAB323908AF4} = {D613FB39-5035-4043-91E2-BAB323908AF4}
5053
EndProjectSection
5154
EndProject
5255
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_component_base", "test\test_component_base\test_component_base.vcxproj", "{13333A6F-6A4A-48CD-865C-0F65135EB018}"
5356
ProjectSection(ProjectDependencies) = postProject
57+
{A91B8BF3-28E4-4D9E-8DBA-64B70E4F0270} = {A91B8BF3-28E4-4D9E-8DBA-64B70E4F0270}
5458
{D613FB39-5035-4043-91E2-BAB323908AF4} = {D613FB39-5035-4043-91E2-BAB323908AF4}
5559
EndProjectSection
5660
EndProject
@@ -61,6 +65,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_component_derived", "t
6165
EndProject
6266
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_component_fast", "test\test_component_fast\test_component_fast.vcxproj", "{0E0ACA62-A92F-44CF-BD41-AEB541946DF8}"
6367
ProjectSection(ProjectDependencies) = postProject
68+
{A91B8BF3-28E4-4D9E-8DBA-64B70E4F0270} = {A91B8BF3-28E4-4D9E-8DBA-64B70E4F0270}
6469
{D613FB39-5035-4043-91E2-BAB323908AF4} = {D613FB39-5035-4043-91E2-BAB323908AF4}
6570
EndProjectSection
6671
EndProject
@@ -93,6 +98,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_module_lock_none", "te
9398
EndProject
9499
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_module_lock_custom", "test\test_module_lock_custom\test_module_lock_custom.vcxproj", "{08C40663-B6A3-481E-8755-AE32BAD99501}"
95100
ProjectSection(ProjectDependencies) = postProject
101+
{A91B8BF3-28E4-4D9E-8DBA-64B70E4F0270} = {A91B8BF3-28E4-4D9E-8DBA-64B70E4F0270}
96102
{D613FB39-5035-4043-91E2-BAB323908AF4} = {D613FB39-5035-4043-91E2-BAB323908AF4}
97103
EndProjectSection
98104
EndProject
@@ -107,11 +113,13 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_win7", "test\test_win7
107113
EndProject
108114
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_cpp20", "test\test_cpp20\test_cpp20.vcxproj", "{5FF6CD6C-515A-4D55-97B6-62AD9BCB77EA}"
109115
ProjectSection(ProjectDependencies) = postProject
116+
{A91B8BF3-28E4-4D9E-8DBA-64B70E4F0270} = {A91B8BF3-28E4-4D9E-8DBA-64B70E4F0270}
110117
{D613FB39-5035-4043-91E2-BAB323908AF4} = {D613FB39-5035-4043-91E2-BAB323908AF4}
111118
EndProjectSection
112119
EndProject
113120
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_cpp20_no_sourcelocation", "test\test_cpp20_no_sourcelocation\test_cpp20_no_sourcelocation.vcxproj", "{D4C8F881-84D5-4A7B-8BDE-AB4E34A05374}"
114121
ProjectSection(ProjectDependencies) = postProject
122+
{A91B8BF3-28E4-4D9E-8DBA-64B70E4F0270} = {A91B8BF3-28E4-4D9E-8DBA-64B70E4F0270}
115123
{D613FB39-5035-4043-91E2-BAB323908AF4} = {D613FB39-5035-4043-91E2-BAB323908AF4}
116124
EndProjectSection
117125
EndProject

test/test_component/test_component.vcxproj

Lines changed: 10 additions & 99 deletions
Original file line numberDiff line numberDiff line change
@@ -182,18 +182,6 @@
182182
<AdditionalMetadataDirectories>C:\Windows\System32\WinMetadata</AdditionalMetadataDirectories>
183183
<PrependWithABINamepsace>true</PrependWithABINamepsace>
184184
</Midl>
185-
<CustomBuildStep>
186-
<Command>$(CppWinRTDir)cppwinrt -input $(OutputPath)test_component.winmd -comp "$(ProjectDir)Generated Files" -out "$(ProjectDir)Generated Files" -include test_component -ref sdk -verbose -prefix -opt -lib test -fastabi -overwrite -name test_component</Command>
187-
</CustomBuildStep>
188-
<CustomBuildStep>
189-
<Message />
190-
</CustomBuildStep>
191-
<CustomBuildStep>
192-
<Outputs>Generated Files\module.g.cpp</Outputs>
193-
</CustomBuildStep>
194-
<CustomBuildStep>
195-
<Inputs>$(OutputPath)test_component.winmd</Inputs>
196-
</CustomBuildStep>
197185
</ItemDefinitionGroup>
198186
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
199187
<ClCompile>
@@ -243,19 +231,6 @@
243231
<AdditionalMetadataDirectories>C:\Windows\System32\WinMetadata</AdditionalMetadataDirectories>
244232
<PrependWithABINamepsace>true</PrependWithABINamepsace>
245233
</Midl>
246-
<CustomBuildStep>
247-
<Command>$(CppWinRTDir)cppwinrt -input $(OutputPath)test_component.winmd -comp "$(ProjectDir)Generated Files" -out "$(ProjectDir)Generated Files" -include test_component -ref sdk -verbose -prefix -opt -lib test -fastabi -overwrite -name test_component</Command>
248-
</CustomBuildStep>
249-
<CustomBuildStep>
250-
<Message>
251-
</Message>
252-
</CustomBuildStep>
253-
<CustomBuildStep>
254-
<Outputs>Generated Files\module.g.cpp</Outputs>
255-
</CustomBuildStep>
256-
<CustomBuildStep>
257-
<Inputs>$(OutputPath)test_component.winmd</Inputs>
258-
</CustomBuildStep>
259234
</ItemDefinitionGroup>
260235
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
261236
<ClCompile>
@@ -305,19 +280,6 @@
305280
<AdditionalMetadataDirectories>C:\Windows\System32\WinMetadata</AdditionalMetadataDirectories>
306281
<PrependWithABINamepsace>true</PrependWithABINamepsace>
307282
</Midl>
308-
<CustomBuildStep>
309-
<Command>$(CppWinRTDir)cppwinrt -input $(OutputPath)test_component.winmd -comp "$(ProjectDir)Generated Files" -out "$(ProjectDir)Generated Files" -include test_component -ref sdk -verbose -prefix -opt -lib test -fastabi -overwrite -name test_component</Command>
310-
</CustomBuildStep>
311-
<CustomBuildStep>
312-
<Message>
313-
</Message>
314-
</CustomBuildStep>
315-
<CustomBuildStep>
316-
<Outputs>Generated Files\module.g.cpp</Outputs>
317-
</CustomBuildStep>
318-
<CustomBuildStep>
319-
<Inputs>$(OutputPath)test_component.winmd</Inputs>
320-
</CustomBuildStep>
321283
</ItemDefinitionGroup>
322284
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
323285
<ClCompile>
@@ -354,18 +316,6 @@
354316
<AdditionalMetadataDirectories>C:\Windows\System32\WinMetadata</AdditionalMetadataDirectories>
355317
<PrependWithABINamepsace>true</PrependWithABINamepsace>
356318
</Midl>
357-
<CustomBuildStep>
358-
<Command>$(CppWinRTDir)cppwinrt -input $(OutputPath)test_component.winmd -comp "$(ProjectDir)Generated Files" -out "$(ProjectDir)Generated Files" -include test_component -ref sdk -verbose -prefix -opt -lib test -fastabi -overwrite -name test_component</Command>
359-
</CustomBuildStep>
360-
<CustomBuildStep>
361-
<Message />
362-
</CustomBuildStep>
363-
<CustomBuildStep>
364-
<Outputs>Generated Files\module.g.cpp</Outputs>
365-
</CustomBuildStep>
366-
<CustomBuildStep>
367-
<Inputs>$(OutputPath)test_component.winmd</Inputs>
368-
</CustomBuildStep>
369319
</ItemDefinitionGroup>
370320
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
371321
<ClCompile>
@@ -406,18 +356,6 @@
406356
<AdditionalMetadataDirectories>C:\Windows\System32\WinMetadata</AdditionalMetadataDirectories>
407357
<PrependWithABINamepsace>true</PrependWithABINamepsace>
408358
</Midl>
409-
<CustomBuildStep>
410-
<Command>$(CppWinRTDir)cppwinrt -input $(OutputPath)test_component.winmd -comp "$(ProjectDir)Generated Files" -out "$(ProjectDir)Generated Files" -include test_component -ref sdk -verbose -prefix -opt -lib test -fastabi -overwrite -name test_component</Command>
411-
</CustomBuildStep>
412-
<CustomBuildStep>
413-
<Message />
414-
</CustomBuildStep>
415-
<CustomBuildStep>
416-
<Outputs>Generated Files\module.g.cpp</Outputs>
417-
</CustomBuildStep>
418-
<CustomBuildStep>
419-
<Inputs>$(OutputPath)test_component.winmd</Inputs>
420-
</CustomBuildStep>
421359
</ItemDefinitionGroup>
422360
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
423361
<ClCompile>
@@ -471,19 +409,6 @@
471409
<AdditionalMetadataDirectories>C:\Windows\System32\WinMetadata</AdditionalMetadataDirectories>
472410
<PrependWithABINamepsace>true</PrependWithABINamepsace>
473411
</Midl>
474-
<CustomBuildStep>
475-
<Command>$(CppWinRTDir)cppwinrt -input $(OutputPath)test_component.winmd -comp "$(ProjectDir)Generated Files" -out "$(ProjectDir)Generated Files" -include test_component -ref sdk -verbose -prefix -opt -lib test -fastabi -overwrite -name test_component</Command>
476-
</CustomBuildStep>
477-
<CustomBuildStep>
478-
<Message>
479-
</Message>
480-
</CustomBuildStep>
481-
<CustomBuildStep>
482-
<Outputs>Generated Files\module.g.cpp</Outputs>
483-
</CustomBuildStep>
484-
<CustomBuildStep>
485-
<Inputs>$(OutputPath)test_component.winmd</Inputs>
486-
</CustomBuildStep>
487412
</ItemDefinitionGroup>
488413
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
489414
<ClCompile>
@@ -537,19 +462,6 @@
537462
<AdditionalMetadataDirectories>C:\Windows\System32\WinMetadata</AdditionalMetadataDirectories>
538463
<PrependWithABINamepsace>true</PrependWithABINamepsace>
539464
</Midl>
540-
<CustomBuildStep>
541-
<Command>$(CppWinRTDir)cppwinrt -input $(OutputPath)test_component.winmd -comp "$(ProjectDir)Generated Files" -out "$(ProjectDir)Generated Files" -include test_component -ref sdk -verbose -prefix -opt -lib test -fastabi -overwrite -name test_component</Command>
542-
</CustomBuildStep>
543-
<CustomBuildStep>
544-
<Message>
545-
</Message>
546-
</CustomBuildStep>
547-
<CustomBuildStep>
548-
<Outputs>Generated Files\module.g.cpp</Outputs>
549-
</CustomBuildStep>
550-
<CustomBuildStep>
551-
<Inputs>$(OutputPath)test_component.winmd</Inputs>
552-
</CustomBuildStep>
553465
</ItemDefinitionGroup>
554466
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
555467
<ClCompile>
@@ -590,17 +502,16 @@
590502
<AdditionalMetadataDirectories>C:\Windows\System32\WinMetadata</AdditionalMetadataDirectories>
591503
<PrependWithABINamepsace>true</PrependWithABINamepsace>
592504
</Midl>
593-
<CustomBuildStep>
594-
<Command>$(CppWinRTDir)cppwinrt -input $(OutputPath)test_component.winmd -comp "$(ProjectDir)Generated Files" -out "$(ProjectDir)Generated Files" -include test_component -ref sdk -verbose -prefix -opt -lib test -fastabi -overwrite -name test_component</Command>
595-
</CustomBuildStep>
596-
<CustomBuildStep>
597-
<Message />
598-
</CustomBuildStep>
599-
<CustomBuildStep>
600-
<Outputs>Generated Files\module.g.cpp</Outputs>
601-
</CustomBuildStep>
602-
<CustomBuildStep>
603-
<Inputs>$(OutputPath)test_component.winmd</Inputs>
505+
</ItemDefinitionGroup>
506+
<ItemDefinitionGroup>
507+
<CustomBuildStep>
508+
<Command>
509+
$(CppWinRTDir)cppwinrt -in local -out $(OutputPath) -verbose
510+
$(CppWinRTDir)cppwinrt -input $(OutputPath)test_component.winmd -comp "$(ProjectDir)Generated Files" -out "$(ProjectDir)Generated Files" -include test_component -ref sdk -verbose -prefix -opt -lib test -fastabi -overwrite -name test_component
511+
</Command>
512+
<Message>Projecting Windows and component metadata into $(OutputPath)</Message>
513+
<Outputs>$(OutputPath)\winrt\base.h;Generated Files\module.g.cpp</Outputs>
514+
<Inputs>$(CppWinRTDir)cppwinrt.exe;$(OutputPath)test_component.winmd</Inputs>
604515
</CustomBuildStep>
605516
</ItemDefinitionGroup>
606517
<ItemGroup>

0 commit comments

Comments
 (0)