mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-09-11 21:20:39 +02:00
Visual Studio build configuration for Bitcoin Core
This commit is contained in:
53
build_msvc/msbuild/tasks/hexdump.targets
Normal file
53
build_msvc/msbuild/tasks/hexdump.targets
Normal file
@@ -0,0 +1,53 @@
|
||||
<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>
|
||||
Reference in New Issue
Block a user