Skip to content

Commit fb3989c

Browse files
committed
Add Static Library template.
1 parent 6a44537 commit fb3989c

File tree

13 files changed

+307
-54
lines changed

13 files changed

+307
-54
lines changed

vsix/ProjectTemplates/VC/Windows Universal/BlankApp/BlankApp.vcxproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,9 @@
7979
<AdditionalOptions Condition="'$(CppWinRTHeapEnforcement)'==''">/DWINRT_NO_MAKE_DETECTION %(AdditionalOptions)</AdditionalOptions>
8080
<DisableSpecificWarnings></DisableSpecificWarnings>
8181
</ClCompile>
82+
<Link>
83+
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
84+
</Link>
8285
</ItemDefinitionGroup>
8386
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
8487
<ClCompile>
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#include "pch.h"
2+
#include "Class.h"
3+
#include "Class.g.cpp"
4+
5+
namespace winrt::$safeprojectname$::implementation
6+
{
7+
int32_t Class::MyProperty()
8+
{
9+
throw hresult_not_implemented();
10+
}
11+
12+
void Class::MyProperty(int32_t /* value */)
13+
{
14+
throw hresult_not_implemented();
15+
}
16+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#pragma once
2+
3+
#include "Class.g.h"
4+
5+
namespace winrt::$safeprojectname$::implementation
6+
{
7+
struct Class : ClassT<Class>
8+
{
9+
Class() = default;
10+
11+
int32_t MyProperty();
12+
void MyProperty(int32_t value);
13+
};
14+
}
15+
16+
namespace winrt::$safeprojectname$::factory_implementation
17+
{
18+
struct Class : ClassT<Class, implementation::Class>
19+
{
20+
};
21+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
namespace $safeprojectname$
2+
{
3+
[default_interface]
4+
runtimeclass Class
5+
{
6+
Class();
7+
Int32 MyProperty;
8+
}
9+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<ImportGroup Label="PropertySheets" />
4+
<PropertyGroup Label="UserMacros" />
5+
<!--
6+
To customize common C++/WinRT project properties:
7+
* right-click the project node
8+
* expand the Common Properties item
9+
* select the C++/WinRT property page
10+
11+
For more advanced scenarios, and complete documentation, please see:
12+
https://github.com/Microsoft/xlang/tree/master/src/package/cppwinrt/nuget
13+
-->
14+
<PropertyGroup />
15+
<ItemDefinitionGroup />
16+
</Project>
Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<PropertyGroup Label="Globals">
4+
<CppWinRTOptimized>true</CppWinRTOptimized>
5+
<CppWinRTRootNamespaceAutoMerge>true</CppWinRTRootNamespaceAutoMerge>
6+
<CppWinRTParameters>-lib $(MSBuildProjectName)</CppWinRTParameters>
7+
<MinimalCoreWin>true</MinimalCoreWin>
8+
<ProjectGuid>{$guid1$}</ProjectGuid>
9+
<ProjectName>$projectname$</ProjectName>
10+
<RootNamespace>$safeprojectname$</RootNamespace>
11+
<DefaultLanguage>en-US</DefaultLanguage>
12+
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
13+
<AppContainerApplication>true</AppContainerApplication>
14+
<ApplicationType>Windows Store</ApplicationType>
15+
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>
16+
<WindowsTargetPlatformVersion Condition=" '$(WindowsTargetPlatformVersion)' == '' ">$targetplatformversion$</WindowsTargetPlatformVersion>
17+
<WindowsTargetPlatformMinVersion>10.0.17134.0</WindowsTargetPlatformMinVersion>
18+
</PropertyGroup>
19+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
20+
<ItemGroup Label="ProjectConfigurations">
21+
<ProjectConfiguration Include="Debug|ARM">
22+
<Configuration>Debug</Configuration>
23+
<Platform>ARM</Platform>
24+
</ProjectConfiguration>
25+
<ProjectConfiguration Include="Debug|Win32">
26+
<Configuration>Debug</Configuration>
27+
<Platform>Win32</Platform>
28+
</ProjectConfiguration>
29+
<ProjectConfiguration Include="Debug|x64">
30+
<Configuration>Debug</Configuration>
31+
<Platform>x64</Platform>
32+
</ProjectConfiguration>
33+
<ProjectConfiguration Include="Release|ARM">
34+
<Configuration>Release</Configuration>
35+
<Platform>ARM</Platform>
36+
</ProjectConfiguration>
37+
<ProjectConfiguration Include="Release|Win32">
38+
<Configuration>Release</Configuration>
39+
<Platform>Win32</Platform>
40+
</ProjectConfiguration>
41+
<ProjectConfiguration Include="Release|x64">
42+
<Configuration>Release</Configuration>
43+
<Platform>x64</Platform>
44+
</ProjectConfiguration>
45+
</ItemGroup>
46+
<PropertyGroup Label="Configuration">
47+
<ConfigurationType>StaticLibrary</ConfigurationType>
48+
<PlatformToolset>v140</PlatformToolset>
49+
<PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
50+
<PlatformToolset Condition="'$(VisualStudioVersion)' == '16.0'">v142</PlatformToolset>
51+
<CharacterSet>Unicode</CharacterSet>
52+
<GenerateManifest>false</GenerateManifest>
53+
</PropertyGroup>
54+
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
55+
<UseDebugLibraries>true</UseDebugLibraries>
56+
<LinkIncremental>true</LinkIncremental>
57+
</PropertyGroup>
58+
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
59+
<UseDebugLibraries>false</UseDebugLibraries>
60+
<WholeProgramOptimization>true</WholeProgramOptimization>
61+
<LinkIncremental>false</LinkIncremental>
62+
</PropertyGroup>
63+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
64+
<ImportGroup Label="ExtensionSettings">
65+
</ImportGroup>
66+
<ImportGroup Label="Shared">
67+
</ImportGroup>
68+
<ImportGroup Label="PropertySheets">
69+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
70+
</ImportGroup>
71+
<ImportGroup Label="PropertySheets">
72+
<Import Project="PropertySheet.props" />
73+
</ImportGroup>
74+
<PropertyGroup Label="UserMacros" />
75+
<PropertyGroup />
76+
<ItemDefinitionGroup>
77+
<ClCompile>
78+
<PrecompiledHeader>Use</PrecompiledHeader>
79+
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
80+
<PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile>
81+
<WarningLevel>Level4</WarningLevel>
82+
<AdditionalOptions>%(AdditionalOptions) /bigobj</AdditionalOptions>
83+
<!--Temporarily disable cppwinrt heap enforcement to work around xaml compiler generated std::shared_ptr use -->
84+
<AdditionalOptions Condition="'$(CppWinRTHeapEnforcement)'==''">/DWINRT_NO_MAKE_DETECTION %(AdditionalOptions)</AdditionalOptions>
85+
<DisableSpecificWarnings></DisableSpecificWarnings>
86+
<PreprocessorDefinitions>_WINRT_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
87+
<AdditionalUsingDirectories>$(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories)</AdditionalUsingDirectories>
88+
</ClCompile>
89+
<Link>
90+
<SubSystem>Console</SubSystem>
91+
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
92+
<ModuleDefinitionFile>$safeprojectname$.def</ModuleDefinitionFile>
93+
</Link>
94+
</ItemDefinitionGroup>
95+
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
96+
<ClCompile>
97+
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
98+
</ClCompile>
99+
</ItemDefinitionGroup>
100+
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
101+
<ClCompile>
102+
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
103+
</ClCompile>
104+
<Link>
105+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
106+
<OptimizeReferences>true</OptimizeReferences>
107+
</Link>
108+
</ItemDefinitionGroup>
109+
<ItemGroup>
110+
<ClInclude Include="pch.h" />
111+
<ClInclude Include="Class.h">
112+
<DependentUpon>Class.idl</DependentUpon>
113+
</ClInclude>
114+
</ItemGroup>
115+
<ItemGroup>
116+
<ClCompile Include="pch.cpp">
117+
<PrecompiledHeader>Create</PrecompiledHeader>
118+
</ClCompile>
119+
<ClCompile Include="Class.cpp">
120+
<DependentUpon>Class.idl</DependentUpon>
121+
</ClCompile>
122+
<ClCompile Include="$(GeneratedFilesDir)module.g.cpp" />
123+
</ItemGroup>
124+
<ItemGroup>
125+
<Midl Include="Class.idl" />
126+
</ItemGroup>
127+
<ItemGroup>
128+
<None Include="PropertySheet.props" />
129+
<Text Include="readme.txt">
130+
<DeploymentContent>false</DeploymentContent>
131+
</Text>
132+
</ItemGroup>
133+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
134+
<ImportGroup Label="ExtensionTargets">
135+
</ImportGroup>
136+
</Project>
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<ItemGroup>
4+
<Filter Include="Resources">
5+
<UniqueIdentifier>accd3aa8-1ba0-4223-9bbe-0c431709210b</UniqueIdentifier>
6+
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tga;tiff;tif;png;wav;mfcribbon-ms</Extensions>
7+
</Filter>
8+
<Filter Include="Generated Files">
9+
<UniqueIdentifier>{926ab91d-31b4-48c3-b9a4-e681349f27f0}</UniqueIdentifier>
10+
</Filter>
11+
</ItemGroup>
12+
<ItemGroup>
13+
<ClCompile Include="pch.cpp" />
14+
<ClCompile Include="Class.cpp"/>
15+
<ClCompile Include="Generated Files\module.g.cpp">
16+
<Filter>Generated Files</Filter>
17+
</ClCompile>
18+
</ItemGroup>
19+
<ItemGroup>
20+
<ClInclude Include="pch.h" />
21+
<ClCompile Include="Class.h"/>
22+
</ItemGroup>
23+
<ItemGroup>
24+
<Midl Include="Class.idl" />
25+
</ItemGroup>
26+
<ItemGroup>
27+
<None Include="PropertySheet.props" />
28+
</ItemGroup>
29+
<ItemGroup>
30+
<Text Include="readme.txt" />
31+
</ItemGroup>
32+
</Project>
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Project">
2+
<TemplateData>
3+
<Name>Static Library (C++/WinRT)</Name>
4+
<Description>A project for a C++/WinRT Static Library that can be used by a Universal Windows Platform app</Description>
5+
<ProjectType>VC</ProjectType>
6+
<SortOrder>3000</SortOrder>
7+
<TemplateID>microsoft.Windows.CppWinRT.StaticLibrary</TemplateID>
8+
<CreateNewFolder>true</CreateNewFolder>
9+
<DefaultName>StaticLibrary</DefaultName>
10+
<ProvideDefaultName>true</ProvideDefaultName>
11+
<LocationField>Enabled</LocationField>
12+
<EnableLocationBrowseButton>true</EnableLocationBrowseButton>
13+
<Icon>cppwinrt.ico</Icon>
14+
<PreviewImage>cppwinrt.png</PreviewImage>
15+
</TemplateData>
16+
<TemplateContent>
17+
<Project TargetFileName="$safeprojectname$.vcxproj" File="StaticLibrary.vcxproj" ReplaceParameters="true">
18+
<ProjectItem ReplaceParameters="true" TargetFileName="$safeprojectname$.vcxproj.filters">StaticLibrary.vcxproj.filters</ProjectItem>
19+
<ProjectItem ReplaceParameters="false" TargetFileName="pch.cpp">pch.cpp</ProjectItem>
20+
<ProjectItem ReplaceParameters="false" TargetFileName="pch.h">pch.h</ProjectItem>
21+
<ProjectItem ReplaceParameters="true" TargetFileName="Class.idl">Class.idl</ProjectItem>
22+
<ProjectItem ReplaceParameters="true" TargetFileName="Class.cpp">Class.cpp</ProjectItem>
23+
<ProjectItem ReplaceParameters="true" TargetFileName="Class.h">Class.h</ProjectItem>
24+
<ProjectItem ReplaceParameters="false" TargetFileName="PropertySheet.props">PropertySheet.props</ProjectItem>
25+
<ProjectItem ReplaceParameters="true" TargetFileName="readme.txt">readme.txt</ProjectItem>
26+
</Project>
27+
</TemplateContent>
28+
<WizardExtension>
29+
<Assembly>Microsoft.VisualStudio.WinRT.TemplateWizards, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</Assembly>
30+
<FullClassName>Microsoft.VisualStudio.WinRT.TemplateWizards.CreateProjectCertificate.Wizard</FullClassName>
31+
</WizardExtension>
32+
<WizardExtension>
33+
<Assembly>Microsoft.VisualStudio.Universal.TemplateWizards, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</Assembly>
34+
<FullClassName>Microsoft.VisualStudio.Universal.TemplateWizards.PlatformVersion.Wizard</FullClassName>
35+
</WizardExtension>
36+
<WizardExtension>
37+
<Assembly>NuGet.VisualStudio.Interop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</Assembly>
38+
<FullClassName>NuGet.VisualStudio.TemplateWizard</FullClassName>
39+
</WizardExtension>
40+
<WizardData>
41+
<packages repository="extension" repositoryId="Microsoft.Windows.CppWinRT">
42+
<package id="Microsoft.Windows.CppWinRT" version="1.0.0.0" />
43+
</packages>
44+
</WizardData>
45+
</VSTemplate>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
#include "pch.h"
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#pragma once
2+
#include <unknwn.h>
3+
#include <winrt/Windows.Foundation.h>
4+
#include <winrt/Windows.Foundation.Collections.h>

0 commit comments

Comments
 (0)