Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Directory.Build.targets 8.94 KiB
Newer Older
<Project DefaultTargets = "Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >
	<!--<Target Name="VersionMessage" AfterTargets="build">
        <Message Text="$(AssemblyName) -> $(Version)" importance="high"/>
    </Target>-->
	<UsingTask TaskName="Zip" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
		<ParameterGroup>
			<OutputFilename ParameterType="System.String" Required="true" />
			<Files ParameterType="Microsoft.Build.Framework.ITaskItem[]" Required="true" />
			<SourcePath ParameterType="System.String" Required="true"/>
			<DestinationPath ParameterType="System.String" Required="true"/>
		</ParameterGroup>
		<Task>
			<Reference Include="System.IO.Compression" />
			<Using Namespace="System.IO.Compression" />
			<Code Type="Fragment" Language="cs">
				<![CDATA[
      try
      {
        using (Stream zipStream = new FileStream(Path.GetFullPath(OutputFilename), FileMode.Create, FileAccess.Write))
        using (ZipArchive archive = new ZipArchive(zipStream, ZipArchiveMode.Create))
        {
            foreach (ITaskItem fileItem in Files)
            {
                string filename = fileItem.ItemSpec;
                using (Stream fileStream = new FileStream(filename, FileMode.Open, FileAccess.Read))
				using (Stream fileStreamInZip = archive.CreateEntry(fileItem.ItemSpec.Replace(SourcePath, DestinationPath)).Open())
                    fileStream.CopyTo(fileStreamInZip);
            }
        }
        return true;
      }
      catch (Exception ex)
      {
        Log.LogErrorFromException(ex);
        return false;
      }
    ]]>
			</Code>
		</Task>
	</UsingTask>

	<Target Name="GenerateReleasenotesPDF" BeforeTargets="AfterBuild"  Condition="$(Configuration) == 'Deploy'">
		<Message Text="Generating Release Notes PDF"/>
		<Exec Command="cscript &quot;$(solutiondir)documentation\user manual source\convertpptxtopdf.vbs&quot; &quot;$(solutiondir)documentation\user manual source\release notes vecto3.x.pptx&quot; &quot;$(solutiondir)documentation\user manual source\release notes vecto3.x.pdf&quot;"/>
	</Target>
	<!-- 
<Target Name="GenerateHelpHTML" BeforeTargets="AfterBuild"  Condition="$(Configuration) == 'Deploy'">
	<Message Text="Generating Help"/>
	<Exec Command="&quot;$(solutiondir)documentation\user manual\convert.bat&quot;" WorkingDirectory="$(solutiondir)documentation\user manual"/>  
	<Exec Command="&quot;$(solutiondir)documentation\VectoHashingTool\convert.bat&quot;" WorkingDirectory="$(solutiondir)documentation\VectoHashingTool"/>  
 </Target>   
 -->

	<Target Name="AfterBuild" Condition="$(Configuration) == 'Deploy'">
		<ItemGroup>
			<VectoCoreAssembly Include="$(OutputPath)VectoCore.dll" />
			<VectoCommandLine Include="$(SolutionDir)VectoConsole\bin\Release\net45\vectocmd.exe*"/>

			<GenericVehicles Include="$(SolutionDir)Generic Vehicles\**\*.*" Exclude="$(SolutionDir)**\*.vmod;$(SolutionDir)**\*.vsum;$(SolutionDir)**\*RSLT_*.xml;$(SolutionDir)**\*.pdf"/>
			<MissionProfiles Include="$(SolutionDir)VectoCore\VectoCore\Resources\Declaration\MissionCycles\**\*.*"/>
			<DeclarationData Include="$(SolutionDir)VectoCore\VectoCore\Resources\Declaration\**/*.csv" Exclude="$(SolutionDir)**\MissionCycles\**\*.*"/>
			<DeclarationData Include="$(SolutionDir)VectoCore\VectoCore\Resources\Declaration\**/*.vacc" Exclude="$(SolutionDir)**\MissionCycles\**\*.*"/>
			<DeclarationData Include="$(SolutionDir)VectoCore\VectoCore\Resources\Declaration\**/*.apac" Exclude="$(SolutionDir)**\MissionCycles\**\*.*"/>
			<DeclarationData Include="$(SolutionDir)VectoCore\VectoCore\Resources\Declaration\**/*.aenv" Exclude="$(SolutionDir)**\MissionCycles\**\*.*"/>
			<DeclarationData Include="$(SolutionDir)VectoCore\VectoCore\Resources\Declaration\**/*.aaux" Exclude="$(SolutionDir)**\MissionCycles\**\*.*"/>
			<DeclarationData Include="$(SolutionDir)VectoCore\VectoCore\Resources\Declaration\**/*.ahsm" Exclude="$(SolutionDir)**\MissionCycles\**\*.*"/>
			<DeclarationData Include="$(SolutionDir)VectoCore\VectoCore\Resources\Declaration\**/*.acmp" Exclude="$(SolutionDir)**\MissionCycles\**\*.*"/>
			<DeclarationData Include="$(SolutionDir)VectoCore\VectoCore\Resources\Declaration\**/*.vmap" Exclude="$(SolutionDir)**\MissionCycles\**\*.*"/>
			<VectoXSD Include="$(SolutionDir)VectoCore\VectoCore\Resources\XSD\**\*.*" Exclude="$(SolutionDir)**\*Engineering*"/>
			<VectoXMLExamples Include="$(SolutionDir)VectoCore\VectoCoreTest\TestData\XML\XMLReaderDeclaration\*-sample.xml"/>
			<UserManual Include="$(SolutionDir)Documentation\User Manual\help.html"/>
			<UserManual Include="$(SolutionDir)Documentation\VectoHashingTool\HashingToolHelp.html"/>
			<UserManual Include="$(SolutionDir)Documentation\XML\*.png"/>
			<UserManual Include="$(SolutionDir)Documentation\XML\VectoParameters.html"/>
			<UserManual Include="$(SolutionDir)Documentation\User Manual Source\JIRA Quick Start Guide.pdf"/>
			<UserManual Include="$(SolutionDir)Documentation\Cdv_Generator_VECTO3.2.xlsx"/>
			<ReleaseNotes Include="$(SolutionDir)Documentation\User Manual Source\Release Notes Vecto3.x.pdf"/>

			<HashingTool Include="$(SolutionDir)HashingTool\bin\Release\net45\HashingTool.exe"/>
			<HashingTool Include="$(SolutionDir)HashingCmd\bin\Release\net45\hashingcmd.exe"/>

			<VectoConfigurationSample Include="$(SolutionDir)VECTO\install.ini"/>

			<VectoMultistage Include="$(SolutionDir)VECTO3GUI2020\bin\Release\net5.0-windows\VECTOMultistage.exe*"/>
			<VectoMultistage Include="$(SolutionDir)VECTO3GUI2020\bin\Release\net5.0-windows\*.dll"/>
		</ItemGroup>

		<Message Text="@(VectoCommandLine)"/>
		<Copy SourceFiles="@(VectoCommandLine)" DestinationFolder="$(OutputPath)"/>
		<Copy SourceFiles="@(VectoMultistage)" DestinationFolder="$(OutputPath)"/>
		<Copy SourceFiles="@(HashingTool)" DestinationFolder="$(OutputPath)"/>
		<Copy SourceFiles="@(GenericVehicles)" DestinationFiles="@(GenericVehicles->'$(OutputPath)\Generic Vehicles\%(RecursiveDir)%(Filename)%(Extension)')" />
		<Copy SourceFiles="@(DeclarationData)" DestinationFolder="$(OutputPath)\Declaration" />
		<Copy SourceFiles="@(MissionProfiles)" DestinationFolder="$(OutputPath)\Mission Profiles" />
		<Copy SourceFiles="@(VectoXMLExamples)" DestinationFolder="$(OutputPath)\XML\Examples" />
		<Copy SourceFiles="@(VectoXSD)" DestinationFolder="$(OutputPath)\XML\XSD" />
		<Copy SourceFiles="@(UserManual)" DestinationFolder="$(OutputPath)\User Manual" />
		<Copy SourceFiles="@(ReleaseNotes)" DestinationFiles="$(OutputPath)\User Manual\Release Notes.pdf" />
		<Copy SourceFiles="@(VectoConfigurationSample)" DestinationFolder="$(OutputPath)"/>
		<Copy SourceFiles="$(SolutionDir)\Documentation\User Manual Source\README for Mission Profiles Directory.txt" DestinationFiles="$(OutputPath)\Mission Profiles\!! README !!.TXT"/>
		<Copy SourceFiles="$(SolutionDir)\Documentation\User Manual Source\README for Declaration Directory.txt" DestinationFiles="$(OutputPath)\Declaration\!! README !!.TXT"/>
		<ItemGroup>
			<ZipFiles Include="$(OutputPath)Declaration\**\*.*" />
			<ZipFiles Include="$(OutputPath)Generic Vehicles\**\*.*" />
			<ZipFiles Include="$(OutputPath)Mission Profiles\**\*.*" />
			<ZipFiles Include="$(OutputPath)User Manual\**\*.*" />
			<ZipFiles Include="$(OutputPath)XML\**\*.*" />
		</ItemGroup>

		<GetAssemblyIdentity  AssemblyFiles="@(VectoCoreAssembly)">
			<Output  TaskParameter="Assemblies"  ItemName="VectoAssemblyIdentities"  />
		</GetAssemblyIdentity>
		<ItemGroup>
			<ZipFiles Include="$(OutputPath)*.dll" />
			<ZipFiles Include="$(OutputPath)*.ini" />
			<ZipFiles Include="$(OutputPath)VECTO.exe*" />
			<ZipFiles Include="$(OutputPath)VECTOMultistage.exe*" />
			<ZipFiles Include="$(OutputPath)vectocmd.exe*"/>
			<!-- <ZipFiles Include="$(OutputPath)VECTO3.exe*" /> -->
			<ZipFiles Include="$(OutputPath)HashingTool.exe*"/>
			<ZipFiles Include="$(OutputPath)hashingcmd.exe*"/>
		</ItemGroup>
		<PropertyGroup>
			<CurrentDate>$([System.DateTime]::Now.ToString(yyy_MM_dd))</CurrentDate>
		</PropertyGroup>
		<Message Text="Creating ZIP, CurrentDate: $(CurrentDate)"/>
		<Zip OutputFilename="$(SolutionDir)$(CurrentDate)-VECTO-%(VectoAssemblyIdentities.Version)-$(TargetFramework).zip" Files="@(ZipFiles)" SourcePath="$(OutputPath)" DestinationPath="$(CurrentDate)-VECTO-%(VectoAssemblyIdentities.Version)\"/>
	<Target Name="CleanVectoDeploy" AfterTargets="AfterClean">
		<ItemGroup>
			<CustomFilesToClean Include="$(OutputPath)Declaration\**\*.*" />
			<CustomFilesToClean Include="$(OutputPath)Generic Vehicles\**\*.*" />
			<CustomFilesToClean Include="$(OutputPath)Mission Profiles\**\*.*" />
			<CustomFilesToClean Include="$(OutputPath)User Manual\**\*.*" />
			<CustomFilesToClean Include="$(OutputPath)XML\**\*.*" />
			<CustomFoldersToClean Include="%(CustomFilesToClean.RootDir)%(CustomFilesToClean.Directory)"/>
		</ItemGroup>
		<!-- <Message Text="@(CustomFilesToClean)" Importance="normal"/> -->
		<!-- <Message Text="@(CustomFoldersToClean)" Importance="normal"/> -->
		<Delete Files="@CustomFilesToClean"/>
		<RemoveDir Directories="@(CustomFoldersToClean)"/>
	</Target>