aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2019-12-11 20:15:08 +1100
committerSean Hall <r.sean.hall@gmail.com>2019-12-11 20:10:40 +1000
commit20bbfc8ad82e6246f5357d8bc183a5fc0ea3fac7 (patch)
tree8eac8121addae50bda7fe9bbc7246b6cefd05ff8
parent62352fabd541aaa9d0a2c957c4bdd4b9c682df9c (diff)
downloadwix-20bbfc8ad82e6246f5357d8bc183a5fc0ea3fac7.tar.gz
wix-20bbfc8ad82e6246f5357d8bc183a5fc0ea3fac7.tar.bz2
wix-20bbfc8ad82e6246f5357d8bc183a5fc0ea3fac7.zip
Setup WixToolset.Mba.Core project and nuget package.
-rw-r--r--appveyor.cmd1
-rw-r--r--balutil.sln10
-rw-r--r--src/WixToolset.Mba.Core/Properties/AssemblyInfo.cs17
-rw-r--r--src/WixToolset.Mba.Core/WixToolset.Mba.Core.config (renamed from src/WixToolset.Mba.Core/WixToolset.BootstrapperCore.config)0
-rw-r--r--src/WixToolset.Mba.Core/WixToolset.Mba.Core.csproj111
-rw-r--r--src/WixToolset.Mba.Core/WixToolset.Mba.Core.nuspec21
-rw-r--r--src/WixToolset.Mba.Core/packages.config5
-rw-r--r--src/balutil/balutil.nuspec2
-rw-r--r--src/balutil/balutil.vcxproj9
-rw-r--r--src/balutil/packages.config4
10 files changed, 173 insertions, 7 deletions
diff --git a/appveyor.cmd b/appveyor.cmd
index ee397c4a..1aceb3b0 100644
--- a/appveyor.cmd
+++ b/appveyor.cmd
@@ -8,6 +8,7 @@ msbuild -p:Configuration=Release;Platform=x86;PlatformToolset=v140_xp
8msbuild -p:Configuration=Release;Platform=x86;PlatformToolset=v141_xp 8msbuild -p:Configuration=Release;Platform=x86;PlatformToolset=v141_xp
9 9
10msbuild -p:Configuration=Release -t:Pack src\balutil\balutil.vcxproj 10msbuild -p:Configuration=Release -t:Pack src\balutil\balutil.vcxproj
11msbuild -p:Configuration=Release -t:Pack src\WixToolset.Mba.Core\WixToolset.Mba.Core.csproj
11 12
12@popd 13@popd
13@endlocal \ No newline at end of file 14@endlocal \ No newline at end of file
diff --git a/balutil.sln b/balutil.sln
index 58f61391..9ed8e3f5 100644
--- a/balutil.sln
+++ b/balutil.sln
@@ -5,6 +5,8 @@ VisualStudioVersion = 15.0.26730.12
5MinimumVisualStudioVersion = 15.0.26124.0 5MinimumVisualStudioVersion = 15.0.26124.0
6Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "balutil", "src\balutil\balutil.vcxproj", "{EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}" 6Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "balutil", "src\balutil\balutil.vcxproj", "{EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}"
7EndProject 7EndProject
8Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WixToolset.Mba.Core", "src\WixToolset.Mba.Core\WixToolset.Mba.Core.csproj", "{E7E1841E-A58E-4901-B9CA-4845B807D45F}"
9EndProject
8Global 10Global
9 GlobalSection(SolutionConfigurationPlatforms) = preSolution 11 GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 Debug|x64 = Debug|x64 12 Debug|x64 = Debug|x64
@@ -21,6 +23,14 @@ Global
21 {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}.Release|x64.Build.0 = Release|x64 23 {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}.Release|x64.Build.0 = Release|x64
22 {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}.Release|x86.ActiveCfg = Release|Win32 24 {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}.Release|x86.ActiveCfg = Release|Win32
23 {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}.Release|x86.Build.0 = Release|Win32 25 {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}.Release|x86.Build.0 = Release|Win32
26 {E7E1841E-A58E-4901-B9CA-4845B807D45F}.Debug|x64.ActiveCfg = Debug|Any CPU
27 {E7E1841E-A58E-4901-B9CA-4845B807D45F}.Debug|x64.Build.0 = Debug|Any CPU
28 {E7E1841E-A58E-4901-B9CA-4845B807D45F}.Debug|x86.ActiveCfg = Debug|Any CPU
29 {E7E1841E-A58E-4901-B9CA-4845B807D45F}.Debug|x86.Build.0 = Debug|Any CPU
30 {E7E1841E-A58E-4901-B9CA-4845B807D45F}.Release|x64.ActiveCfg = Release|Any CPU
31 {E7E1841E-A58E-4901-B9CA-4845B807D45F}.Release|x64.Build.0 = Release|Any
32 {E7E1841E-A58E-4901-B9CA-4845B807D45F}.Release|x86.ActiveCfg = Release|Any CPU
33 {E7E1841E-A58E-4901-B9CA-4845B807D45F}.Release|x86.Build.0 = Release|Any CPU
24 EndGlobalSection 34 EndGlobalSection
25 GlobalSection(SolutionProperties) = preSolution 35 GlobalSection(SolutionProperties) = preSolution
26 HideSolutionNode = FALSE 36 HideSolutionNode = FALSE
diff --git a/src/WixToolset.Mba.Core/Properties/AssemblyInfo.cs b/src/WixToolset.Mba.Core/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..386748a8
--- /dev/null
+++ b/src/WixToolset.Mba.Core/Properties/AssemblyInfo.cs
@@ -0,0 +1,17 @@
1// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2
3using System;
4using System.Reflection;
5using System.Runtime.InteropServices;
6
7[assembly: AssemblyTitle("Managed Bootstrapper Application Core (WiX)")]
8[assembly: AssemblyDescription("Managed Bootstrapper Application Core")]
9[assembly: AssemblyProduct("WiX Toolset")]
10[assembly: AssemblyCompany("WiX Toolset Team")]
11[assembly: AssemblyCopyright("Copyright (c) .NET Foundation and contributors. All rights reserved.")]
12
13// Types should not be visible to COM by default.
14[assembly: ComVisible(false)]
15[assembly: Guid("6f4e0cc9-8ad4-4b5a-a669-3aafff67a76f")]
16
17[assembly: CLSCompliantAttribute(true)]
diff --git a/src/WixToolset.Mba.Core/WixToolset.BootstrapperCore.config b/src/WixToolset.Mba.Core/WixToolset.Mba.Core.config
index 1e284001..1e284001 100644
--- a/src/WixToolset.Mba.Core/WixToolset.BootstrapperCore.config
+++ b/src/WixToolset.Mba.Core/WixToolset.Mba.Core.config
diff --git a/src/WixToolset.Mba.Core/WixToolset.Mba.Core.csproj b/src/WixToolset.Mba.Core/WixToolset.Mba.Core.csproj
new file mode 100644
index 00000000..16d278b0
--- /dev/null
+++ b/src/WixToolset.Mba.Core/WixToolset.Mba.Core.csproj
@@ -0,0 +1,111 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
4
5<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
6 <PropertyGroup>
7 <ProjectGuid>{E7E1841E-A58E-4901-B9CA-4845B807D45F}</ProjectGuid>
8 <AssemblyName>WixToolset.Mba.Core</AssemblyName>
9 <OutputType>Library</OutputType>
10 <RootNamespace>WixToolset.Mba.Core</RootNamespace>
11 <NoWarn>0693;1591</NoWarn>
12 <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
13 <Description>Managed Bootstrapper Application entry point</Description>
14 </PropertyGroup>
15 <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
16 <DebugSymbols>true</DebugSymbols>
17 <Optimize>false</Optimize>
18 <DefineConstants>$(DefineConstants);DEBUG;TRACE</DefineConstants>
19 </PropertyGroup>
20 <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
21 <DebugSymbols>true</DebugSymbols>
22 <Optimize>true</Optimize>
23 <DefineConstants>$(DefineConstants);TRACE</DefineConstants>
24 </PropertyGroup>
25 <ItemGroup>
26 <Compile Include="BaseBootstrapperApplicationFactory.cs" />
27 <Compile Include="BootstrapperApplication.cs" />
28 <Compile Include="BootstrapperApplicationData.cs" />
29 <Compile Include="BootstrapperApplicationFactory.cs" />
30 <Compile Include="BootstrapperApplicationFactoryAttribute.cs" />
31 <Compile Include="BootstrapperCommand.cs" />
32 <Compile Include="BootstrapperSectionGroup.cs" />
33 <Compile Include="BundleInfo.cs" />
34 <Compile Include="Engine.cs" />
35 <Compile Include="EventArgs.cs" />
36 <Compile Include="Exceptions.cs" />
37 <Compile Include="HostSection.cs" />
38 <Compile Include="IBootstrapperApplicationData.cs" />
39 <Compile Include="IBootstrapperApplicationFactory.cs" />
40 <Compile Include="IBootstrapperCommand.cs" />
41 <Compile Include="IBundleInfo.cs" />
42 <Compile Include="IDefaultBootstrapperApplication.cs" />
43 <Compile Include="IEngine.cs" />
44 <Compile Include="IPackageInfo.cs" />
45 <Compile Include="IVariables.cs" />
46 <Compile Include="NativeMethods.cs" />
47 <Compile Include="PackageInfo.cs" />
48 <Compile Include="Properties\AssemblyInfo.cs" />
49 <Compile Include="SupportedFrameworkElementCollection.cs" />
50 <Compile Include="SupportedFrameworkElement.cs" />
51 </ItemGroup>
52 <ItemGroup>
53 <Content Include="WixToolset.Mba.Core.config">
54 <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
55 </Content>
56 </ItemGroup>
57 <ItemGroup>
58 <None Include="packages.config" />
59 </ItemGroup>
60 <ItemGroup>
61 <Reference Include="System" />
62 <Reference Include="System.Configuration" />
63 <Reference Include="System.Data" />
64 <Reference Include="System.Xml" />
65 <Reference Include="WixToolset.BootstrapperCore">
66 <HintPath>..\..\packages\WixToolset.BootstrapperCore.4.0.8\lib\net20\WixToolset.BootstrapperCore.dll</HintPath>
67 </Reference>
68 </ItemGroup>
69 <ItemGroup>
70 <HeaderPath Include="$(BaseOutputPath)$(Configuration)\$(AssemblyName).h">
71 <Visible>False</Visible>
72 </HeaderPath>
73 </ItemGroup>
74
75 <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
76
77 <Target Name="GenerateIdentityHeader" AfterTargets="Build" Inputs="$(TargetPath)" Outputs="@(HeaderPath)">
78 <GetAssemblyIdentity AssemblyFiles="$(TargetPath)">
79 <Output TaskParameter="Assemblies" ItemName="AssemblyIdentity" />
80 </GetAssemblyIdentity>
81 <ItemGroup>
82 <Line Include="#define MBA_ASSEMBLY_FULL_NAME L&quot;%(AssemblyIdentity.Identity)&quot;" />
83 <Line Include="#define MBA_ASSEMBLY_NAME L&quot;%(AssemblyIdentity.Name)&quot;" />
84 <Line Include="#define MBA_ASSEMBLY_VERSION L&quot;%(AssemblyIdentity.Version)&quot;" />
85 <Line Include="#define MBA_ASSEMBLY_CULTURE L&quot;%(AssemblyIdentity.Culture)&quot;" Condition="'%(AssemblyIdentity.Culture)'!=''" />
86 <Line Include="#define MBA_ASSEMBLY_CULTURE L&quot;neutral&quot;" Condition="'%(AssemblyIdentity.Culture)'==''" />
87 <Line Include="#define MBA_ASSEMBLY_PUBLICKEYTOKEN L&quot;%(AssemblyIdentity.PublicKeyToken)&quot;" />
88 </ItemGroup>
89 <Message Importance="normal" Text="Generating identity definitions into @(HeaderPath->'%(FullPath)')" />
90 <WriteLinesToFile File="@(HeaderPath)" Lines="@(Line)" Overwrite="True" />
91 <ItemGroup>
92 <FileWrites Include="@(HeaderPath)" />
93 </ItemGroup>
94 </Target>
95
96 <Target Name="Pack" DependsOnTargets="GetBuildVersion">
97 <Exec Command='nuget pack $(AssemblyName).nuspec -OutputDirectory "$(BaseOutputPath)$(Configuration)" -Properties Configuration=$(Configuration);Id=$(AssemblyName);Version="$(BuildVersionSimple)";Authors="$(Authors)";Copyright="$(Copyright)";Description="$(Description)";Title="$(Title)"' />
98 </Target>
99
100 <Import Project="..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets" Condition="Exists('..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets')" />
101 <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
102 <PropertyGroup>
103 <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
104 </PropertyGroup>
105 <Error Condition="!Exists('..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets'))" />
106 </Target>
107
108 <PropertyGroup Condition=" '$(CreateDocumentation)'!='false' ">
109 <DocumentationFile>$(OutputPath)\$(AssemblyName).xml</DocumentationFile>
110 </PropertyGroup>
111</Project> \ No newline at end of file
diff --git a/src/WixToolset.Mba.Core/WixToolset.Mba.Core.nuspec b/src/WixToolset.Mba.Core/WixToolset.Mba.Core.nuspec
new file mode 100644
index 00000000..04eee9ec
--- /dev/null
+++ b/src/WixToolset.Mba.Core/WixToolset.Mba.Core.nuspec
@@ -0,0 +1,21 @@
1<?xml version="1.0"?>
2<package >
3 <metadata>
4 <id>$id$</id>
5 <version>$version$</version>
6 <authors>WiX Toolset Team</authors>
7 <owners>WiX Toolset Team</owners>
8 <!-- <license type="expression">MS-RL</license> -->
9 <licenseUrl>https://licenses.nuget.org/MS-RL</licenseUrl>
10 <projectUrl>https://github.com/wixtoolset/BootstrapperCore</projectUrl>
11 <requireLicenseAcceptance>false</requireLicenseAcceptance>
12 <description>$description$</description>
13 <copyright>$copyright$</copyright>
14 </metadata>
15
16 <files>
17 <file src="..\..\build\$configuration$\$id$.config" target="samples" />
18 <file src="..\..\build\$configuration$\$id$.h" target="build\native\include" />
19 <file src="..\..\build\$configuration$\$id$.dll" target="lib\net20" />
20 </files>
21</package>
diff --git a/src/WixToolset.Mba.Core/packages.config b/src/WixToolset.Mba.Core/packages.config
new file mode 100644
index 00000000..3702a604
--- /dev/null
+++ b/src/WixToolset.Mba.Core/packages.config
@@ -0,0 +1,5 @@
1<?xml version="1.0" encoding="utf-8"?>
2<packages>
3 <package id="Nerdbank.GitVersioning" version="2.1.65" targetFramework="net20" developmentDependency="true" />
4 <package id="WixToolset.BootstrapperCore" version="4.0.8" targetFramework="net20" />
5</packages> \ No newline at end of file
diff --git a/src/balutil/balutil.nuspec b/src/balutil/balutil.nuspec
index 67ed9bde..0a26004a 100644
--- a/src/balutil/balutil.nuspec
+++ b/src/balutil/balutil.nuspec
@@ -12,7 +12,7 @@
12 <description>$description$</description> 12 <description>$description$</description>
13 <copyright>$copyright$</copyright> 13 <copyright>$copyright$</copyright>
14 <dependencies> 14 <dependencies>
15 <dependency id="WixToolset.BootstrapperCore" version="[4,5)" /> 15 <dependency id="WixToolset.BootstrapperCore.Native" version="[4,5)" />
16 <dependency id="WixToolset.DUtil" version="[4,5)" /> 16 <dependency id="WixToolset.DUtil" version="[4,5)" />
17 </dependencies> 17 </dependencies>
18 </metadata> 18 </metadata>
diff --git a/src/balutil/balutil.vcxproj b/src/balutil/balutil.vcxproj
index a8b97615..42aa909e 100644
--- a/src/balutil/balutil.vcxproj
+++ b/src/balutil/balutil.vcxproj
@@ -2,8 +2,8 @@
2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. --> 2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3 3
4<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 4<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 <Import Project="..\..\packages\WixToolset.BootstrapperCore.4.0.1\build\WixToolset.BootstrapperCore.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.4.0.1\build\WixToolset.BootstrapperCore.props')" /> 5 <Import Project="..\..\packages\WixToolset.BootstrapperCore.Native.4.0.8\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.8\build\WixToolset.BootstrapperCore.Native.props')" />
6 <Import Project="..\..\packages\WixToolset.DUtil.4.0.13\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.13\build\WixToolset.DUtil.props')" /> 6 <Import Project="..\..\packages\WixToolset.DUtil.4.0.18\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.18\build\WixToolset.DUtil.props')" />
7 7
8 <ItemGroup Label="ProjectConfigurations"> 8 <ItemGroup Label="ProjectConfigurations">
9 <ProjectConfiguration Include="Debug|Win32"> 9 <ProjectConfiguration Include="Debug|Win32">
@@ -70,6 +70,7 @@
70 <ClInclude Include="inc\balretry.h" /> 70 <ClInclude Include="inc\balretry.h" />
71 <ClInclude Include="inc\balutil.h" /> 71 <ClInclude Include="inc\balutil.h" />
72 <ClInclude Include="inc\IBAFunctions.h" /> 72 <ClInclude Include="inc\IBAFunctions.h" />
73 <ClInclude Include="inc\IBootstrapperApplicationFactory.h" />
73 <ClInclude Include="precomp.h" /> 74 <ClInclude Include="precomp.h" />
74 </ItemGroup> 75 </ItemGroup>
75 76
@@ -87,8 +88,8 @@
87 <PropertyGroup> 88 <PropertyGroup>
88 <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> 89 <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
89 </PropertyGroup> 90 </PropertyGroup>
90 <Error Condition="!Exists('..\..\packages\WixToolset.BootstrapperCore.4.0.1\build\WixToolset.BootstrapperCore.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BootstrapperCore.4.0.1\build\WixToolset.BootstrapperCore.props'))" /> 91 <Error Condition="!Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.8\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BootstrapperCore.Native.4.0.8\build\WixToolset.BootstrapperCore.Native.props'))" />
91 <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.13\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.13\build\WixToolset.DUtil.props'))" /> 92 <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.18\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.18\build\WixToolset.DUtil.props'))" />
92 <Error Condition="!Exists('..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets'))" /> 93 <Error Condition="!Exists('..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets'))" />
93 </Target> 94 </Target>
94</Project> 95</Project>
diff --git a/src/balutil/packages.config b/src/balutil/packages.config
index 52c84cf0..769c5a6e 100644
--- a/src/balutil/packages.config
+++ b/src/balutil/packages.config
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<packages> 2<packages>
3 <package id="Nerdbank.GitVersioning" version="2.1.65" targetFramework="native" developmentDependency="true" /> 3 <package id="Nerdbank.GitVersioning" version="2.1.65" targetFramework="native" developmentDependency="true" />
4 <package id="WixToolset.BootstrapperCore" version="4.0.1" targetFramework="native" /> 4 <package id="WixToolset.BootstrapperCore.Native" version="4.0.8" targetFramework="native" />
5 <package id="WixToolset.DUtil" version="4.0.13" targetFramework="native" /> 5 <package id="WixToolset.DUtil" version="4.0.18" targetFramework="native" />
6</packages> \ No newline at end of file 6</packages> \ No newline at end of file