Skip to content

Commit 0f30954

Browse files
committed
Merge #16258: [MSVC]: Create the config.ini as part of bitcoind build
819c5dd [MSVC] Enable Fuzz for functional tests (nicolas.dorier) e47e793 [MSVC]: Create the config.ini as part of bitcoind build (nicolas.dorier) Pull request description: This remove the patchwork of powershell done in AppVeyor to the `AfterBuild` target of `bitcoind` so that windows developers do not have to figure out how to manually edit the config.ini before running the functional tests. You can easily test with `msbuild /t:AfterBuild` in bitcoind folder. ACKs for top commit: sipsorcery: tACK 819c5dd. fanquake: ACK 819c5dd Tree-SHA512: 657a3019532c6a3729310e52bfc2183cc805a406aab84cd83b0219e3ef8a6f208a3b1760317b41978d9dabb90fae0350e8cb00cf7e219b3bab04010ef1267a4b
2 parents 935cd6b + 819c5dd commit 0f30954

File tree

3 files changed

+61
-11
lines changed

3 files changed

+61
-11
lines changed

.appveyor.yml

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -38,17 +38,6 @@ after_build:
3838
- ps: fsutil behavior set disablelastaccess 1 # Disable Access time feature on Windows (better performance)
3939
- ps: clcache -z
4040
before_test:
41-
- ps: ${conf_ini} = (Get-Content([IO.Path]::Combine(${env:APPVEYOR_BUILD_FOLDER}, "test", "config.ini.in")))
42-
- ps: ${conf_ini} = ${conf_ini}.Replace("@PACKAGE_NAME@", "Bitcoin Core")
43-
- ps: ${conf_ini} = ${conf_ini}.Replace("@abs_top_srcdir@", ${env:APPVEYOR_BUILD_FOLDER})
44-
- ps: ${conf_ini} = ${conf_ini}.Replace("@abs_top_builddir@", ${env:APPVEYOR_BUILD_FOLDER})
45-
- ps: ${conf_ini} = ${conf_ini}.Replace("@EXEEXT@", ".exe")
46-
- ps: ${conf_ini} = ${conf_ini}.Replace("@ENABLE_WALLET_TRUE@", "")
47-
- ps: ${conf_ini} = ${conf_ini}.Replace("@BUILD_BITCOIN_CLI_TRUE@", "")
48-
- ps: ${conf_ini} = ${conf_ini}.Replace("@BUILD_BITCOIND_TRUE@", "")
49-
- ps: ${conf_ini} = ${conf_ini}.Replace("@ENABLE_ZMQ_TRUE@", "")
50-
- ps: ${utf8} = New-Object System.Text.UTF8Encoding ${false}
51-
- ps: '[IO.File]::WriteAllLines([IO.Path]::Combine(${env:APPVEYOR_BUILD_FOLDER}, "test", "config.ini"), ${conf_ini}, ${utf8})'
5241
- ps: move "build_msvc\${env:PLATFORM}\${env:CONFIGURATION}\*.exe" src
5342
test_script:
5443
- cmd: src\test_bitcoin.exe -k stdout -e stdout 2> NUL

build_msvc/bitcoind/bitcoind.vcxproj

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,30 @@
4545
</ItemGroup>
4646
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
4747
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
48+
<Import Label="ReplaceInFile" Project="..\msbuild\tasks\replaceinfile.targets" />
49+
<PropertyGroup>
50+
<ConfigIniIn>..\..\test\config.ini.in</ConfigIniIn>
51+
<ConfigIniOut>..\..\test\config.ini</ConfigIniOut>
52+
</PropertyGroup>
53+
<Target Name="AfterBuild">
54+
<Copy SourceFiles="$(ConfigIniIn)" DestinationFiles="$(ConfigIniOut)" ></Copy>
55+
<ReplaceInFile FilePath="$(ConfigIniOut)"
56+
Replace="@PACKAGE_NAME@" By="Bitcoin Core"></ReplaceInFile>
57+
<ReplaceInFile FilePath="$(ConfigIniOut)"
58+
Replace="@abs_top_srcdir@" By="..\.." ToFullPath="true"></ReplaceInFile>
59+
<ReplaceInFile FilePath="$(ConfigIniOut)"
60+
Replace="@abs_top_builddir@" By="..\.." ToFullPath="true"></ReplaceInFile>
61+
<ReplaceInFile FilePath="$(ConfigIniOut)"
62+
Replace="@EXEEXT@" By=".exe"></ReplaceInFile>
63+
<ReplaceInFile FilePath="$(ConfigIniOut)"
64+
Replace="@ENABLE_WALLET_TRUE@" By=""></ReplaceInFile>
65+
<ReplaceInFile FilePath="$(ConfigIniOut)"
66+
Replace="@BUILD_BITCOIN_CLI_TRUE@" By=""></ReplaceInFile>
67+
<ReplaceInFile FilePath="$(ConfigIniOut)"
68+
Replace="@BUILD_BITCOIND_TRUE@" By=""></ReplaceInFile>
69+
<ReplaceInFile FilePath="$(ConfigIniOut)"
70+
Replace="@ENABLE_FUZZ_TRUE@" By=""></ReplaceInFile>
71+
<ReplaceInFile FilePath="$(ConfigIniOut)"
72+
Replace="@ENABLE_ZMQ_TRUE@" By=""></ReplaceInFile>
73+
</Target>
4874
</Project>
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2+
<UsingTask
3+
TaskName="ReplaceInFile"
4+
TaskFactory="CodeTaskFactory"
5+
AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.Core.dll" >
6+
<ParameterGroup>
7+
<FilePath Required="true" />
8+
<Replace Required="true" />
9+
<By Required="false" />
10+
<ToFullPath Required="false" />
11+
</ParameterGroup>
12+
<Task>
13+
<Using Namespace="System"/>
14+
<Using Namespace="System.IO"/>
15+
<Code Type="Fragment" Language="cs">
16+
<![CDATA[
17+
if(File.Exists(FilePath) == false) {
18+
Log.LogError("replaceinfile task could not locate " + FilePath + ".");
19+
}
20+
else {
21+
var data = File.ReadAllText(FilePath);
22+
var by = By;
23+
if (ToFullPath == "true")
24+
{
25+
by = Path.GetFullPath(by);
26+
}
27+
data = data.Replace(Replace, by);
28+
Log.LogMessage("Replace '" + Replace + "' by '" + by + "' in " + FilePath);
29+
File.WriteAllText(FilePath, data, new System.Text.UTF8Encoding(false));
30+
}
31+
]]>
32+
</Code>
33+
</Task>
34+
</UsingTask>
35+
</Project>

0 commit comments

Comments
 (0)