mirror of
https://github.com/bitcoin/bitcoin.git
synced 2024-11-20 10:38:42 +01:00
53 lines
1.6 KiB
Plaintext
53 lines
1.6 KiB
Plaintext
|
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||
|
<UsingTask
|
||
|
TaskName="HeaderFromHexdump"
|
||
|
TaskFactory="CodeTaskFactory"
|
||
|
AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.Core.dll" >
|
||
|
<ParameterGroup>
|
||
|
<RawFilePath Required="true" />
|
||
|
<HeaderFilePath Required="true" />
|
||
|
<SourceHeader Required="true" />
|
||
|
<SourceFooter Required="true" />
|
||
|
</ParameterGroup>
|
||
|
<Task>
|
||
|
<Using Namespace="System"/>
|
||
|
<Using Namespace="System.IO"/>
|
||
|
<Code Type="Fragment" Language="cs">
|
||
|
<![CDATA[
|
||
|
Log.LogMessage("msbuild inline hexdump task for " + RawFilePath + ".");
|
||
|
if(File.Exists(RawFilePath) == false) {
|
||
|
Log.LogError("hexdump task could not locate " + RawFilePath + ".");
|
||
|
}
|
||
|
else {
|
||
|
FileInfo inFileInfo = new FileInfo(RawFilePath);
|
||
|
FileInfo outFileInfo = new FileInfo(HeaderFilePath);
|
||
|
|
||
|
if (outFileInfo.Exists == false || inFileInfo.LastWriteTime > outFileInfo.LastWriteTime)
|
||
|
{
|
||
|
using (Stream inStm = File.OpenRead(RawFilePath))
|
||
|
{
|
||
|
using (StreamWriter sw = new StreamWriter(HeaderFilePath))
|
||
|
{
|
||
|
sw.WriteLine(SourceHeader);
|
||
|
int count = 0;
|
||
|
int rawChar = inStm.ReadByte();
|
||
|
while(rawChar != -1)
|
||
|
{
|
||
|
sw.Write("0x{0:x2}, ", rawChar);
|
||
|
count++;
|
||
|
if(count % 8 == 0)
|
||
|
{
|
||
|
sw.WriteLine();
|
||
|
}
|
||
|
rawChar = inStm.ReadByte();
|
||
|
}
|
||
|
sw.WriteLine(SourceFooter);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
]]>
|
||
|
</Code>
|
||
|
</Task>
|
||
|
</UsingTask>
|
||
|
</Project>
|