Skip to content

Commit 60f2747

Browse files
authored
Restructure code (#5)
* Move code into a DLL, but VS not copying it to output yet * Make Core a lib rather than a dll. * Move telemetry reference to Core lib. * Create RAII telemetry registration.
1 parent 67800b0 commit 60f2747

28 files changed

+628
-326
lines changed

src/AppInstallerCLI/AppInstallerCLI.vcxproj

Lines changed: 15 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,6 @@
6969
<ImportGroup Label="ExtensionSettings">
7070
</ImportGroup>
7171
<ImportGroup Label="Shared">
72-
<Import Project="..\Telemetry\Telemetry.vcxitems" Label="Shared" />
7372
</ImportGroup>
7473
<ImportGroup Label="PropertySheets">
7574
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
@@ -112,7 +111,7 @@
112111
</PropertyGroup>
113112
<ItemDefinitionGroup>
114113
<ClCompile>
115-
<PrecompiledHeader>Use</PrecompiledHeader>
114+
<PrecompiledHeader>NotUsing</PrecompiledHeader>
116115
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
117116
<PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile>
118117
<PreprocessorDefinitions>_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@@ -124,9 +123,9 @@
124123
<ClCompile>
125124
<Optimization>Disabled</Optimization>
126125
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
127-
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
128-
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
129-
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
126+
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">$(ProjectDir);$(SolutionDir)AppInstallerCLICore\Public\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
127+
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(ProjectDir);$(SolutionDir)AppInstallerCLICore\Public\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
128+
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir);$(SolutionDir)AppInstallerCLICore\Public\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
130129
</ClCompile>
131130
<Link>
132131
<SubSystem>Console</SubSystem>
@@ -136,7 +135,7 @@
136135
<ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
137136
<ClCompile>
138137
<PreprocessorDefinitions>WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
139-
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
138+
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir);$(SolutionDir)AppInstallerCLICore\Public\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
140139
</ClCompile>
141140
</ItemDefinitionGroup>
142141
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
@@ -145,10 +144,10 @@
145144
<FunctionLevelLinking>true</FunctionLevelLinking>
146145
<IntrinsicFunctions>true</IntrinsicFunctions>
147146
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
148-
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
149-
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
150-
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
151-
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
147+
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">$(ProjectDir);$(SolutionDir)AppInstallerCLICore\Public\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
148+
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(ProjectDir);$(SolutionDir)AppInstallerCLICore\Public\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
149+
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir);$(SolutionDir)AppInstallerCLICore\Public\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
150+
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir);$(SolutionDir)AppInstallerCLICore\Public\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
152151
</ClCompile>
153152
<Link>
154153
<SubSystem>Console</SubSystem>
@@ -158,30 +157,17 @@
158157
</Link>
159158
</ItemDefinitionGroup>
160159
<ItemGroup>
161-
<ClInclude Include="Command.h" />
162-
<ClInclude Include="Commands\DescribeCommand.h" />
163-
<ClInclude Include="Commands\InstallCommand.h" />
164-
<ClInclude Include="Commands\RootCommand.h" />
165-
<ClInclude Include="Common.h" />
166-
<ClInclude Include="Invocation.h" />
167-
<ClInclude Include="Localization.h" />
168-
<ClInclude Include="pch.h" />
169-
<ClInclude Include="Search\Search.h" />
170-
</ItemGroup>
171-
<ItemGroup>
172-
<ClCompile Include="Command.cpp" />
173-
<ClCompile Include="Commands\DescribeCommand.cpp" />
174-
<ClCompile Include="Commands\InstallCommand.cpp" />
175-
<ClCompile Include="Commands\RootCommand.cpp" />
176160
<ClCompile Include="main.cpp" />
177-
<ClCompile Include="pch.cpp">
178-
<PrecompiledHeader>Create</PrecompiledHeader>
179-
</ClCompile>
180161
</ItemGroup>
181162
<ItemGroup>
182-
<None Include="packages.config" />
183163
<None Include="PropertySheet.props" />
184164
</ItemGroup>
165+
<ItemGroup>
166+
<ProjectReference Include="..\AppInstallerCLICore\AppInstallerCLICore.vcxproj">
167+
<Project>{1c6e0108-2860-4b17-9f7e-fa5c6c1f3d3d}</Project>
168+
<Private>false</Private>
169+
</ProjectReference>
170+
</ItemGroup>
185171
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
186172
<ImportGroup Label="ExtensionTargets">
187173
<Import Project="$(SolutionDir)\packages\Microsoft.Windows.CppWinRT.2.0.191111.2\build\native\Microsoft.Windows.CppWinRT.targets" Condition="Exists('$(SolutionDir)\packages\Microsoft.Windows.CppWinRT.2.0.191111.2\build\native\Microsoft.Windows.CppWinRT.targets')" />

src/AppInstallerCLI/AppInstallerCLI.vcxproj.filters

Lines changed: 0 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -18,56 +18,11 @@
1818
</Filter>
1919
</ItemGroup>
2020
<ItemGroup>
21-
<ClInclude Include="pch.h">
22-
<Filter>Header Files</Filter>
23-
</ClInclude>
24-
<ClInclude Include="Commands\RootCommand.h">
25-
<Filter>Commands</Filter>
26-
</ClInclude>
27-
<ClInclude Include="Localization.h">
28-
<Filter>Header Files</Filter>
29-
</ClInclude>
30-
<ClInclude Include="Commands\InstallCommand.h">
31-
<Filter>Commands</Filter>
32-
</ClInclude>
33-
<ClInclude Include="Commands\DescribeCommand.h">
34-
<Filter>Commands</Filter>
35-
</ClInclude>
36-
<ClInclude Include="Command.h">
37-
<Filter>Header Files</Filter>
38-
</ClInclude>
39-
<ClInclude Include="Invocation.h">
40-
<Filter>Header Files</Filter>
41-
</ClInclude>
42-
<ClInclude Include="Common.h">
43-
<Filter>Header Files</Filter>
44-
</ClInclude>
45-
<ClInclude Include="Search\Search.h">
46-
<Filter>Header Files</Filter>
47-
</ClInclude>
48-
</ItemGroup>
49-
<ItemGroup>
50-
<ClCompile Include="pch.cpp">
51-
<Filter>Source Files</Filter>
52-
</ClCompile>
5321
<ClCompile Include="main.cpp">
5422
<Filter>Source Files</Filter>
5523
</ClCompile>
56-
<ClCompile Include="Commands\RootCommand.cpp">
57-
<Filter>Commands</Filter>
58-
</ClCompile>
59-
<ClCompile Include="Commands\InstallCommand.cpp">
60-
<Filter>Commands</Filter>
61-
</ClCompile>
62-
<ClCompile Include="Commands\DescribeCommand.cpp">
63-
<Filter>Commands</Filter>
64-
</ClCompile>
65-
<ClCompile Include="Command.cpp">
66-
<Filter>Source Files</Filter>
67-
</ClCompile>
6824
</ItemGroup>
6925
<ItemGroup>
7026
<None Include="PropertySheet.props" />
71-
<None Include="packages.config" />
7227
</ItemGroup>
7328
</Project>

src/AppInstallerCLI/main.cpp

Lines changed: 3 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,8 @@
11
// Copyright (c) Microsoft Corporation.
22
// Licensed under the MIT License.
3-
#include "pch.h"
4-
#include "Commands/RootCommand.h"
3+
#include <AppInstallerCLICore.h>
54

6-
using namespace winrt;
7-
using namespace Windows::Foundation;
8-
using namespace AppInstaller::CLI;
9-
10-
int wmain(int argc, wchar_t const** argv) try
11-
{
12-
init_apartment();
13-
RegisterTraceLogging();
14-
15-
RootCommand root;
16-
Invocation invocation{ argc, argv };
17-
18-
// The root command is our fallback in the event of very bad or very little input
19-
Command* commandToExecute = &root;
20-
std::unique_ptr<Command> foundCommand;
21-
22-
try
23-
{
24-
foundCommand = root.FindInvokedCommand(invocation);
25-
if (foundCommand)
26-
{
27-
commandToExecute = foundCommand.get();
28-
}
29-
commandToExecute->ParseArguments(invocation);
30-
commandToExecute->ValidateArguments(invocation);
31-
}
32-
// Exceptions specific to parsing the arguments of a command
33-
catch (const CommandException& ce)
34-
{
35-
commandToExecute->OutputHelp(std::wcout, &ce);
36-
UnRegisterTraceLogging();
37-
return 1;
38-
}
39-
40-
try
41-
{
42-
commandToExecute->Execute(invocation, std::wcout);
43-
}
44-
// Exceptions that may occur in the process of executing an arbitrary command
45-
catch (const winrt::hresult_error&)
46-
{
47-
48-
}
49-
catch (const std::exception&)
50-
{
51-
52-
}
53-
54-
UnRegisterTraceLogging();
55-
}
56-
// End of the line exceptions that are not ever expected
57-
catch (const winrt::hresult_error&)
5+
int wmain(int argc, wchar_t const** argv)
586
{
59-
60-
}
61-
catch (const std::exception&)
62-
{
63-
7+
return CLICoreMain(argc, argv);
648
}

0 commit comments

Comments
 (0)