215 lines
11 KiB
XML
215 lines
11 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
|
<PropertyGroup>
|
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
|
<ProjectGuid>{DDF5040E-9C6C-4686-800B-D4563C289F01}</ProjectGuid>
|
|
<OutputType>Exe</OutputType>
|
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
|
<RootNamespace>CitizenMP.Server.Installer</RootNamespace>
|
|
<AssemblyName>citizenmp_server_updater</AssemblyName>
|
|
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
|
<FileAlignment>512</FileAlignment>
|
|
<NuGetPackageImportStamp>95b7e825</NuGetPackageImportStamp>
|
|
<TargetFrameworkProfile />
|
|
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
|
|
<RestorePackages>true</RestorePackages>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
|
<DebugSymbols>true</DebugSymbols>
|
|
<DebugType>full</DebugType>
|
|
<Optimize>false</Optimize>
|
|
<DefineConstants>TRACE;DEBUG;NO_COMMANDLINE</DefineConstants>
|
|
<ErrorReport>prompt</ErrorReport>
|
|
<WarningLevel>4</WarningLevel>
|
|
<Prefer32Bit>false</Prefer32Bit>
|
|
<UseVSHostingProcess>false</UseVSHostingProcess>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
|
<DebugType>pdbonly</DebugType>
|
|
<Optimize>true</Optimize>
|
|
<DefineConstants>TRACE;NO_COMMANDLINE</DefineConstants>
|
|
<ErrorReport>prompt</ErrorReport>
|
|
<WarningLevel>4</WarningLevel>
|
|
<Prefer32Bit>false</Prefer32Bit>
|
|
<UseVSHostingProcess>false</UseVSHostingProcess>
|
|
</PropertyGroup>
|
|
<PropertyGroup>
|
|
<OutDir>$(SolutionDir)\bin\$(Configuration)\$(Platform)\$(AssemblyName)\</OutDir>
|
|
<IntDir>$(SolutionDir)\obj\$(AssemblyName)\$(Configuration)\$(Platform)\</IntDir>
|
|
<IntermediateOutputPath>$(SolutionDir)\obj\$(AssemblyName)\$(Configuration)\$(Platform)\</IntermediateOutputPath>
|
|
<BaseIntermediateOutputPath>$(SolutionDir)\obj\$(AssemblyName)\$(Configuration)\$(Platform)\</BaseIntermediateOutputPath>
|
|
<OutputPath>$(SolutionDir)\bin\$(Configuration)\$(Platform)\$(AssemblyName)\</OutputPath>
|
|
</PropertyGroup>
|
|
<PropertyGroup>
|
|
<StartupObject>CitizenMP.Server.Installer.Program</StartupObject>
|
|
</PropertyGroup>
|
|
<ItemGroup>
|
|
<Reference Include="CommandLine, Version=1.9.71.2, Culture=neutral, PublicKeyToken=de6f01bd326f8c32, processorArchitecture=MSIL">
|
|
<SpecificVersion>False</SpecificVersion>
|
|
<HintPath>$(SolutionDir)\packages\CommandLineParser.1.9.71\lib\net40\CommandLine.dll</HintPath>
|
|
</Reference>
|
|
<Reference Include="Microsoft.Build" />
|
|
<Reference Include="Microsoft.Build.Conversion.v4.0" />
|
|
<Reference Include="Microsoft.Build.Engine" />
|
|
<Reference Include="Microsoft.Build.Framework" />
|
|
<Reference Include="Microsoft.Build.Tasks.v4.0" />
|
|
<Reference Include="Microsoft.Build.Utilities.v4.0" />
|
|
<Reference Include="Mono.Posix">
|
|
<HintPath>$(SolutionDir)\packages\Mono.Posix.4.0.0.0\lib\net40\Mono.Posix.dll</HintPath>
|
|
</Reference>
|
|
<Reference Include="System" />
|
|
<Reference Include="System.Core" />
|
|
<Reference Include="System.Xml.Linq" />
|
|
<Reference Include="System.Data.DataSetExtensions" />
|
|
<Reference Include="Microsoft.CSharp" />
|
|
<Reference Include="System.Data" />
|
|
<Reference Include="System.Xml" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<Compile Include="CommandLineOptions.cs" />
|
|
<Compile Include="Program.cs" />
|
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
|
<Compile Include="RepositoryExtensions.cs" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<None Include="App.config" />
|
|
<None Include="costura32\libgit2-91fa31f.so" />
|
|
<None Include="costura64\libgit2-91fa31f.so" />
|
|
<None Include="packages.config">
|
|
<SubType>Designer</SubType>
|
|
</None>
|
|
</ItemGroup>
|
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
|
<PropertyGroup>
|
|
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
|
</PropertyGroup>
|
|
<Error Condition="!Exists('$(SolutionDir).nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir).nuget\NuGet.targets'))" />
|
|
<Error Condition="!Exists('$(SolutionDir)packages\Fody.1.26.4\build\Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)packages\Fody.1.26.4\build\Fody.targets'))" />
|
|
<Error Condition="!Exists('$(SolutionDir)packages\GitVersionTask.2.0.0\Build\GitVersionTask.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)packages\GitVersionTask.2.0.0\Build\GitVersionTask.targets'))" />
|
|
</Target>
|
|
<ItemGroup>
|
|
<EmbeddedResource Include="costura32\git2-91fa31f.dll" />
|
|
<EmbeddedResource Include="costura64\git2-91fa31f.dll" />
|
|
<EmbeddedResource Include="costura32\*.so" />
|
|
<EmbeddedResource Include="costura64\*.so" />
|
|
<Content Include="FodyWeavers.xml">
|
|
<SubType>Designer</SubType>
|
|
</Content>
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<ProjectReference Include="$(SolutionDir)deps\libgit2sharp\LibGit2Sharp\LibGit2Sharp.csproj">
|
|
<Project>{ee6ed99f-cb12-4683-b055-d28fc7357a34}</Project>
|
|
<Name>LibGit2Sharp</Name>
|
|
</ProjectReference>
|
|
</ItemGroup>
|
|
<UsingTask TaskName="CosturaCleanup" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll" TaskFactory="CodeTaskFactory">
|
|
<ParameterGroup>
|
|
<Config Output="false" Required="true" ParameterType="Microsoft.Build.Framework.ITaskItem" />
|
|
<Files Output="false" Required="true" ParameterType="Microsoft.Build.Framework.ITaskItem[]" />
|
|
</ParameterGroup>
|
|
<Task Evaluate="true">
|
|
<Reference xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Include="System.Xml" />
|
|
<Reference xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Include="System.Xml.Linq" />
|
|
<Using xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Namespace="System" />
|
|
<Using xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Namespace="System.IO" />
|
|
<Using xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Namespace="System.Xml.Linq" />
|
|
<Code xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Type="Fragment" Language="cs"><![CDATA[
|
|
var config = XElement.Load(Config.ItemSpec).Elements("Costura").FirstOrDefault();
|
|
|
|
if (config == null) return true;
|
|
|
|
var excludedAssemblies = new List<string>();
|
|
var attribute = config.Attribute("ExcludeAssemblies");
|
|
if (attribute != null)
|
|
foreach (var item in attribute.Value.Split('|').Select(x => x.Trim()).Where(x => x != string.Empty))
|
|
excludedAssemblies.Add(item);
|
|
var element = config.Element("ExcludeAssemblies");
|
|
if (element != null)
|
|
foreach (var item in element.Value.Split(new[] { "\r\n", "\n" }, StringSplitOptions.RemoveEmptyEntries).Select(x => x.Trim()).Where(x => x != string.Empty))
|
|
excludedAssemblies.Add(item);
|
|
|
|
var filesToCleanup = Files.Select(f => f.ItemSpec).Where(f => !excludedAssemblies.Contains(Path.GetFileNameWithoutExtension(f), StringComparer.InvariantCultureIgnoreCase));
|
|
|
|
foreach (var item in filesToCleanup)
|
|
File.Delete(item);
|
|
]]></Code>
|
|
</Task>
|
|
</UsingTask>
|
|
<Target Name="CleanReferenceCopyLocalPaths" AfterTargets="AfterBuild;NonWinFodyTarget">
|
|
<CosturaCleanup Config="FodyWeavers.xml" Files="@(ReferenceCopyLocalPaths->'$(OutDir)%(DestinationSubDirectory)%(Filename)%(Extension)')" />
|
|
</Target>
|
|
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
|
|
<PropertyGroup Condition=" '$(OS)' == 'Windows_NT'">
|
|
<PreBuildEvent>pushd "$(SolutionDir)deps\libgit2sharp\libgit2"
|
|
|
|
set /p LIBGIT2_HASH=< ..\LibGit2Sharp\libgit2_hash.txt
|
|
set LIBGIT2_HASH=%25LIBGIT2_HASH:~0,7%25
|
|
|
|
mkdir Build
|
|
pushd Build
|
|
|
|
if not exist "$(SolutionDir)src\updater\costura64\git2-%25LIBGIT2_HASH%25.dll" (
|
|
rmdir /q /s x64
|
|
mkdir x64
|
|
pushd x64
|
|
cmake ../.. "-DCMAKE_INSTALL_PREFIX=%25cd%25" "-DBIN_INSTALL_DIR=$(SolutionDir)src\updater\costura64" -DCMAKE_BUILD_TYPE=Release -DBUILD_CLAR:BOOL=OFF -Ax64 -DUSE_SSH=OFF -DENABLE_TRACE=ON -DLIBGIT2_FILENAME=git2-%25LIBGIT2_HASH%25 -DCMAKE_OSX_ARCHITECTURES="x86_64"
|
|
cmake --build . --config Release --target install
|
|
popd
|
|
)
|
|
|
|
if not exist "$(SolutionDir)src\updater\costura32\git2-%25LIBGIT2_HASH%25.dll" (
|
|
rmdir /q /s x86
|
|
mkdir x86
|
|
pushd x86
|
|
cmake ../.. "-DCMAKE_INSTALL_PREFIX=%25cd%25" "-DBIN_INSTALL_DIR=$(SolutionDir)src\updater\costura32" -DCMAKE_BUILD_TYPE=Release -DBUILD_CLAR:BOOL=OFF -AWin32 -DUSE_SSH=OFF -DENABLE_TRACE=ON -DLIBGIT2_FILENAME=git2-%25LIBGIT2_HASH%25 -DCMAKE_OSX_ARCHITECTURES="i386"
|
|
cmake --build . --config Release --target install
|
|
popd
|
|
)
|
|
|
|
popd</PreBuildEvent>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition=" '$(OS)' != 'Windows_NT'">
|
|
<PreBuildEvent>cd "$(SolutionDir)deps\libgit2sharp\libgit2"
|
|
|
|
LIBGIT2_HASH=$(cat ../LibGit2Sharp/libgit2_hash.txt)
|
|
LIBGIT2_HASH=${LIBGIT2_HASH:0:7}
|
|
|
|
mkdir -p Build
|
|
|
|
cd Build
|
|
|
|
if [ ! -e "$(SolutionDir)src/updater/costura64"/git*.so ]; then
|
|
rm -rf x64
|
|
mkdir -p x64
|
|
cd x64
|
|
cmake ../.. "-DCMAKE_INSTALL_PREFIX=%25cd%25" "-DBIN_INSTALL_DIR=$(SolutionDir)src\updater\costura64" -DCMAKE_BUILD_TYPE=Release -DBUILD_CLAR:BOOL=OFF -Ax64 -DUSE_SSH=OFF -DENABLE_TRACE=ON -DLIBGIT2_FILENAME=git2-%25LIBGIT2_HASH%25 -DCMAKE_OSX_ARCHITECTURES="x86_64"
|
|
cmake --build . --target install
|
|
cd ..
|
|
fi
|
|
|
|
if [ ! -e "$(SolutionDir)src/updater/costura32"/git*.so ]; then
|
|
rm -rf x86
|
|
mkdir -p x86
|
|
cd x86
|
|
cmake ../.. "-DCMAKE_INSTALL_PREFIX=%25cd%25" "-DBIN_INSTALL_DIR=$(SolutionDir)src\updater\costura32" -DCMAKE_BUILD_TYPE=Release -DBUILD_CLAR:BOOL=OFF -AWin32 -DUSE_SSH=OFF -DENABLE_TRACE=ON -DLIBGIT2_FILENAME=git2-%25LIBGIT2_HASH%25 -DCMAKE_OSX_ARCHITECTURES="i386"
|
|
cmake --build . --target install
|
|
cd ..
|
|
fi
|
|
</PreBuildEvent>
|
|
</PropertyGroup>
|
|
<Import Project="$(SolutionDir)packages\Fody.1.26.1\build\Fody.targets" Condition="Exists('$(SolutionDir)packages\Fody.1.26.1\build\Fody.targets')" />
|
|
<Import Project="$(SolutionDir)packages\Fody.1.26.4\build\Fody.targets" Condition="Exists('..\..\packages\Fody.1.26.4\build\Fody.targets')" />
|
|
<Import Project="$(SolutionDir)packages\GitVersionTask.2.0.0\Build\GitVersionTask.targets" Condition="Exists('..\..\packages\GitVersionTask.2.0.0\Build\GitVersionTask.targets')" />
|
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
|
Other similar extension points exist, see Microsoft.Common.targets.
|
|
<Target Name="BeforeBuild">
|
|
</Target>
|
|
<Target Name="AfterBuild">
|
|
</Target>
|
|
-->
|
|
</Project> |