Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

commits from bitcoin/master #359

Merged
merged 133 commits into from Sep 4, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
133 commits
Select commit Hold shift + click to select a range
2d28bf1
ui: Compile boost:signals2 only once
Jul 11, 2018
079019b
tests: Replace usage of tostring() with tobytes()
dongcarl Aug 14, 2018
6143f4f
Remove unused dummy_tx variable from FillPSBT
dongcarl Aug 14, 2018
ce690c0
Removes unsed `CBloomFilter` constructor.
l2a5b1 Aug 12, 2018
6b8f4eb
Import CInv from correct module
ken2812221 Aug 14, 2018
13e9df4
Fix PSBT deserialization of 0-input transactions
achow101 Aug 13, 2018
bde6419
Serialize non-witness utxo as a non-witness tx but always deserialize…
achow101 Aug 13, 2018
2a626a3
Additional sanity checks in SignPSBTInput
sipa Aug 8, 2018
cb84dec
Only wipe wrong UTXO type data if overwritten by wallet
sipa Aug 8, 2018
90ccaaf
Test that a non-witness script as witness utxo is not signed
achow101 Aug 8, 2018
28aff9b
More tests of signer checks
achow101 Aug 8, 2018
594c468
Make macro compatible with MSVC
ken2812221 Aug 14, 2018
d13e698
ci: Add appveyor.yml to build on MSVC
ken2812221 Aug 14, 2018
be6a9fb
Use wildcard path in test_bitcoin.vcxproj
ken2812221 Aug 14, 2018
bde2ed0
[trivial] Fix typo in CDiskBlockPos struct's ToString
Aug 14, 2018
4e68a4a
refactor: use fs:: over boost::filesystem::
fanquake Aug 15, 2018
4fad39d
[RPC] Remove getinfo deprecation warning
jnewbery Aug 6, 2018
8fe31c6
rpc: Expose ProcessNewBlockHeaders
Jun 4, 2018
42ae9ce
qa: Add tests for submitheader
Jun 5, 2018
1d945f3
Fix typo in feature_blocksdir.py log message
leishman Aug 15, 2018
dde1ea7
[depends] Add riscv qt depends support for cross compiling bitcoin-qt
ken2812221 Jul 19, 2018
5fb9a7c
Add risc-v 64-bit to gitian
ken2812221 Jul 14, 2018
10669ee
appveyor: fetch the latest port data
ken2812221 Aug 17, 2018
3c5f47f
depends: fix qt determinism
theuni Aug 17, 2018
c961dd7
[gui] Make proxy icon from statusbar clickable
mess110 May 16, 2018
b5cc990
[qt] TransactionView: highlight replacement tx after fee bump
Sjors Aug 1, 2018
5b866db
Allow ConstructTransaction to not throw error with 0-input txn
instagibbs Aug 14, 2018
6ce91b0
walletcreatefundedpsbt: remove duplicate replaceable arg
instagibbs Aug 15, 2018
741554b
QA: add basic walletcreatefunded optional arg test
instagibbs Aug 15, 2018
a772153
RPCTypeCheck bip32derivs arg in walletcreatefunded
instagibbs Aug 20, 2018
16c0fa6
qt: Use new Qt5 connect syntax
promag Jun 24, 2018
88edfb4
test: Add lint to prevent SIGNAL/SLOT connect style
promag Jun 24, 2018
ed6993f
http: Add const modifier to HTTPRequest methods
promag Aug 17, 2018
5b435f8
Add PSBT documentation
sipa Jul 31, 2018
3f4deea
don't report minversion wallet entry as unknown
instagibbs Aug 14, 2018
253e6e4
Add checks for settxfee reasonableness
ajtowns Aug 8, 2018
ad28b17
test: Check RPC settxfee errors
promag Aug 20, 2018
72584c6
contrib: Support github pull request gitian-build
ken2812221 Jul 26, 2018
e346d8b
p2p: Remove dead code for nVersion=10300
Aug 22, 2018
c80feed
qa: Remove unused deserialization code in msg_version
Aug 23, 2018
14fb451
rpc: Avoid locking cs_main in some wallet RPC
promag Aug 23, 2018
a99fd36
qa: Add TestNode::assert_debug_log
Aug 21, 2018
f9ca311
Add CMerkleTx::IsImmatureCoinBase method
Empact Jul 11, 2018
87dfa01
Return the script type from Solver
Empact Jun 11, 2018
535bc1f
p2p: Clarify control flow in ProcessMessage()
Aug 12, 2018
bed3e8b
util: Replace boost::signals2 with std::function
Aug 13, 2018
8862794
Tests: add usage note to check-rpc-mappings.py
Jul 19, 2018
0215edf
Add "bip125-replaceable" flag to mempool RPCs
dexX7 Mar 13, 2018
f3ba3f7
Update functional RBF test to check replaceable flag
dexX7 Mar 13, 2018
8b5f082
Add compile time checking for all cs_main runtime locking assertions
practicalswift Aug 13, 2018
ba564f9
Move cs_main locking annotations from .cpp to .h
practicalswift Aug 25, 2018
ffcfcb6
Use assert when running from multithreaded code as BOOST_CHECK_* are …
skeees Aug 26, 2018
9b80dc1
streams: Create VectorReader stream interface for vectors.
Jan 23, 2018
72e1f44
blockfilter: Declare GCSFilter class for BIP 158 impl.
Jan 24, 2018
61683ea
streams: Implement BitStreamReader/Writer classes.
Jan 24, 2018
9a597d1
blockfilter: Implement GCSFilter constructors.
Jan 24, 2018
e40eada
blockfilter: Implement GCSFilter Match methods.
Jan 24, 2018
efe9711
blockfilter: Simple test for GCSFilter construction and Match.
Jan 24, 2018
edcb06e
blockfilter: Construction of basic block filters.
Jan 24, 2018
a968af1
blockfilter: Serialization methods on BlockFilter.
Jan 24, 2018
1c05cf2
blockfilter: Additional helper methods to compute hash and header.
Jan 24, 2018
e147cec
blockfilter: Unit test against BIP 158 test vectors.
Jan 24, 2018
9384d75
streams: Unit test for VectorReader class.
Apr 12, 2018
1af0339
streams: Unit tests for BitStreamReader and BitStreamWriter.
Apr 17, 2018
a8f62b1
blockfilter: Optimization on compilers with int128 support.
jimpo May 13, 2018
09e9e66
bench: Benchmark GCS filter creation and matching.
jimpo May 14, 2018
cbfd155
auto generate MSVC project files
ken2812221 Aug 25, 2018
831909e
qa: Stop txindex thread before calling destructor
Aug 26, 2018
8a265bd
Docs: Fix help message typo optiona -> optional
Empact Aug 24, 2018
6055d83
depends: allow CC/CXX to be overridden during configure
theuni Aug 23, 2018
66edb5d
Make IS_TRIVIALLY_CONSTRUCTIBLE consistent on GCC < 5
Empact Aug 23, 2018
3679580
Remove default argument to prevector constructor to remove ambiguity
Empact Aug 23, 2018
56b3072
test: Add testing of value_ret for SelectCoinsBnB
Empact May 12, 2018
d85bbce
Report minfeefilter value in getpeerinfo rpc
ajtowns Jun 22, 2018
54e31ff
contrib: Adjust output to current test format
AkioNak Aug 6, 2018
b1bfd5e
Update lint script
Bushstar Sep 4, 2018
63b3bbe
[tests] Remove wallet accounts test
jnewbery Jul 27, 2018
8c2e533
[wallet] Remove wallet account RPCs
jnewbery Jul 27, 2018
4062202
[wallet] Re-sort wallet RPC commands
jnewbery Jul 27, 2018
ed053c7
[doc] Add release notes for 'account' API removal
jnewbery Aug 27, 2018
7c81b62
Mark single-argument constructors "explicit"
practicalswift Jul 26, 2018
5f5e727
Remove redundant assignments (dead stores)
practicalswift Jul 26, 2018
451fdd5
Remove unused variable
practicalswift Aug 2, 2018
763af81
[Tests] Make combine_logs.py handle multi-line logs
jnewbery Aug 24, 2018
6352925
test padding non micro timestamps
jnewbery Aug 27, 2018
a24d1a1
Make SigningProvider expose key origin information
sipa Jul 20, 2018
d503787
Introduce KeyOriginInfo for fingerprint + path
sipa Jul 20, 2018
a4d3295
[MOVEONLY] Move ParseHDKeypath to utilstrencodings
sipa Jul 20, 2018
2cc570a
Implement key origin lookup in CWallet
sipa Jul 20, 2018
15a6b2d
Generalize PublicOnlySigningProvider into HidingSigningProvider
sipa Jul 20, 2018
d22f942
Pass HD path data through SignatureData
sipa Jul 20, 2018
5367785
Make SignPSBTInput operate on a private SignatureData object
sipa Jul 20, 2018
34eb441
qa: Add some actual witness in rpc_rawtransaction
Aug 24, 2018
6a2e8f7
fix walletcreatefundedpsbt deriv paths, add test
instagibbs Aug 24, 2018
bf48067
tests: Fix accidental trunction from int to bool
practicalswift Aug 28, 2018
68f2706
add unicode compatible file_lock for Windows
ken2812221 Jul 25, 2018
44b269b
Implements ParseNetwork unit test.
l2a5b1 Jul 15, 2018
699ce1a
Implements custom tolower and toupper functions.
l2a5b1 Aug 28, 2018
8a9ab50
Removes the Boost case_conv.hpp dependency.
l2a5b1 Jul 25, 2018
8f3e8c5
Explicitly initialize prevector _union
Empact Aug 23, 2018
f029ba0
test: Add tests for RPC help
promag Aug 22, 2018
8e0a97b
Mark CTxMemPoolEntry members that should not be modified const
Jul 29, 2018
72df9de
tx pool: Use the entry's hash instead of the one passed to addUnchecked
Jul 29, 2018
559f476
scripted-diff: Remove unused first argument to addUnchecked
Jul 30, 2018
ec84d6a
validation: Log FormatStateMessage on ConnectBlock error in ConnectTip
Aug 29, 2018
8ada5cb
Fix incorrect Doxygen comments
practicalswift Aug 8, 2018
0262ad6
Add missing locks (cs_args)
practicalswift Aug 27, 2018
14db703
Add lock annotations (cs_args)
practicalswift Aug 29, 2018
444162e
Fix potential deadlock
practicalswift Aug 30, 2018
87737fc
[wallet] Kill accounts
jnewbery Jul 31, 2018
b762f7a
[contrib] Support ARM and RISC-V symbol check
ken2812221 Jul 20, 2018
d616f99
Add README.md to linux release tarballs
hebasto Aug 23, 2018
49b6ac6
scripted-diff: Pass node into p2p_segwit acceptance tests
Aug 29, 2018
c74999e
scripted-diff: Use named arguments in feature_block
Aug 29, 2018
7bd4f60
qa: Use named args in some tests
Aug 29, 2018
3eb9022
Don't close old debug log file handle prematurely when trying to re-o…
practicalswift May 3, 2018
d105863
Remove unused fsbridge::freopen
practicalswift May 3, 2018
a9b6355
blockfilter: Omit empty scripts from filter contents.
jimpo Aug 26, 2018
85d68b7
tests: Add missing locking annotations and locks
practicalswift Aug 30, 2018
a465ab6
Don't assert(...) with side effects
practicalswift Aug 28, 2018
1ea15a8
Add regression test: Don't assert(...) with side effects
practicalswift Aug 28, 2018
252712d
Add AssertLockHeld assertions in CWallet::ListCoins
ryanofsky Jun 15, 2017
3102eba
Add EXCLUSIVE_LOCKS_REQUIRED to CWallet::ListCoins
ryanofsky Aug 31, 2018
9f5fae9
Add unit test for DEBUG_LOCKORDER code
ryanofsky Nov 8, 2017
45bce20
Make LOCK, LOCK2, TRY_LOCK work with CWaitableCriticalSection
ryanofsky Nov 8, 2017
4afac1d
Use LOCK macros for non-recursive locks
ryanofsky Nov 8, 2017
9c61bbf
MOVEONLY Move AnnotatedMixin declaration
ryanofsky Dec 7, 2017
75bc34a
scripted-diff: Small locking rename
ryanofsky Nov 3, 2017
9cd071a
Test rpc_help.py failed: Check whether ZMQ is enabled or not.
Kvaciral Aug 31, 2018
d39e5df
added note that control port must be enabled and how to do that in to…
JBaczuk Jul 17, 2018
cc00c9a
Missing from commit 45bce20
Bushstar Sep 4, 2018
8366004
Remove unused alert function
Bushstar Sep 4, 2018
a13136c
Update alerts
Bushstar Sep 4, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
40 changes: 40 additions & 0 deletions appveyor.yml
@@ -0,0 +1,40 @@
version: '{branch}.{build}'
skip_tags: true
image: Visual Studio 2017
configuration: Release
platform: x64
environment:
APPVEYOR_SAVE_CACHE_ON_ERROR: true
cache: C:\tools\vcpkg\installed\
init:
- cmd: set PATH=C:\Python36-x64;%PATH%
before_build:
- ps: >-
$packages = @(
"boost-filesystem",
"boost-signals2",
"boost-interprocess",
"boost-test",
"libevent",
"openssl",
"zeromq",
"berkeleydb",
"secp256k1",
"leveldb"
)

for ($i=0; $i -lt $packages.length; $i++) {
$all_packages += $packages[$i] + ":" + $env:PLATFORM + "-windows-static "
}

git -C C:\Tools\vcpkg pull # This is a temporary fix, can be removed after appveyor update its image to include Microsoft/vcpkg#4046

Invoke-Expression -Command "vcpkg install $all_packages"
- cmd: python build_msvc\msvc-autogen.py
build:
project: build_msvc\bitcoin.sln
parallel: true
verbosity: minimal
test_script:
- cmd: build_msvc\%PLATFORM%\Release\test_bitcoin.exe
deploy: off
1 change: 1 addition & 0 deletions build_msvc/.gitignore
Expand Up @@ -8,3 +8,4 @@ packages/*
*/Release
*/x64
*.vcxproj.user
*.vcxproj
6 changes: 6 additions & 0 deletions build_msvc/README.md
Expand Up @@ -47,4 +47,10 @@ The instructions below use vcpkg to install the dependencies.
leveldb:x64-windows-static
```

- Use Python to generate *.vcxproj from Makefile

```
PS >python msvc-autogen.py
```

- Build in Visual Studio.
Expand Up @@ -20,7 +20,7 @@
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\rpc\client.cpp" />
@SOURCE_FILES@
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
Expand Down
Expand Up @@ -165,43 +165,7 @@
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="..\..\src\base58.h" />
<ClInclude Include="..\..\src\bech32.h" />
<ClInclude Include="..\..\src\chainparams.h" />
<ClInclude Include="..\..\src\coins.h" />
<ClInclude Include="..\..\src\compressor.h" />
<ClInclude Include="..\..\src\key.h" />
<ClInclude Include="..\..\src\keystore.h" />
<ClInclude Include="..\..\src\netaddress.h" />
<ClInclude Include="..\..\src\netbase.h" />
<ClInclude Include="..\..\src\policy\feerate.h" />
<ClInclude Include="..\..\src\protocol.h" />
<ClInclude Include="..\..\src\scheduler.h" />
<ClInclude Include="..\..\src\script\sign.h" />
<ClInclude Include="..\..\src\script\standard.h" />
<ClInclude Include="..\..\src\warnings.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\base58.cpp" />
<ClCompile Include="..\..\src\bech32.cpp" />
<ClCompile Include="..\..\src\chainparams.cpp" />
<ClCompile Include="..\..\src\coins.cpp" />
<ClCompile Include="..\..\src\compressor.cpp" />
<ClCompile Include="..\..\src\core_read.cpp" />
<ClCompile Include="..\..\src\core_write.cpp" />
<ClCompile Include="..\..\src\key.cpp" />
<ClCompile Include="..\..\src\key_io.cpp" />
<ClCompile Include="..\..\src\keystore.cpp" />
<ClCompile Include="..\..\src\netaddress.cpp" />
<ClCompile Include="..\..\src\netbase.cpp" />
<ClCompile Include="..\..\src\policy\feerate.cpp" />
<ClCompile Include="..\..\src\protocol.cpp" />
<ClCompile Include="..\..\src\scheduler.cpp" />
<ClCompile Include="..\..\src\script\descriptor.cpp" />
<ClCompile Include="..\..\src\script\sign.cpp" />
<ClCompile Include="..\..\src\script\ismine.cpp" />
<ClCompile Include="..\..\src\script\standard.cpp" />
<ClCompile Include="..\..\src\warnings.cpp" />
@SOURCE_FILES@
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
Expand Down
Expand Up @@ -151,25 +151,7 @@
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="..\..\src\crypto\aes.h" />
<ClInclude Include="..\..\src\crypto\chacha20.h" />
<ClInclude Include="..\..\src\crypto\common.h" />
<ClInclude Include="..\..\src\crypto\hmac_sha256.h" />
<ClInclude Include="..\..\src\crypto\hmac_sha512.h" />
<ClInclude Include="..\..\src\crypto\ripemd160.h" />
<ClInclude Include="..\..\src\crypto\sha1.h" />
<ClInclude Include="..\..\src\crypto\sha256.h" />
<ClInclude Include="..\..\src\crypto\sha512.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\crypto\aes.cpp" />
<ClCompile Include="..\..\src\crypto\chacha20.cpp" />
<ClCompile Include="..\..\src\crypto\hmac_sha256.cpp" />
<ClCompile Include="..\..\src\crypto\hmac_sha512.cpp" />
<ClCompile Include="..\..\src\crypto\ripemd160.cpp" />
<ClCompile Include="..\..\src\crypto\sha1.cpp" />
<ClCompile Include="..\..\src\crypto\sha256.cpp" />
<ClCompile Include="..\..\src\crypto\sha512.cpp" />
@SOURCE_FILES@
</ItemGroup>
<Import Label="configTarget" Project="..\common.vcxproj" />
</Project>
Expand Up @@ -154,53 +154,13 @@
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\src\addrdb.cpp" />
<ClCompile Include="..\..\src\addrman.cpp" />
<ClCompile Include="..\..\src\blockencodings.cpp" />
<ClCompile Include="..\..\src\bloom.cpp" />
<ClCompile Include="..\..\src\chain.cpp" />
<ClCompile Include="..\..\src\checkpoints.cpp" />
<ClCompile Include="..\..\src\consensus\tx_verify.cpp" />
<ClCompile Include="..\..\src\dbwrapper.cpp" />
<ClCompile Include="..\..\src\httprpc.cpp" />
<ClCompile Include="..\..\src\httpserver.cpp" />
<ClCompile Include="..\..\src\index\base.cpp" />
<ClCompile Include="..\..\src\init.cpp" />
<ClCompile Include="..\..\src\merkleblock.cpp" />
<ClCompile Include="..\..\src\miner.cpp" />
<ClCompile Include="..\..\src\net.cpp" />
<ClCompile Include="..\..\src\net_processing.cpp" />
<ClCompile Include="..\..\src\noui.cpp" />
<ClCompile Include="..\..\src\outputtype.cpp" />
<ClCompile Include="..\..\src\policy\fees.cpp" />
<ClCompile Include="..\..\src\policy\policy.cpp" />
<ClCompile Include="..\..\src\policy\rbf.cpp" />
<ClCompile Include="..\..\src\pow.cpp" />
<ClCompile Include="..\..\src\rest.cpp" />
<ClCompile Include="..\..\src\shutdown.cpp" />
<ClCompile Include="..\..\src\rpc\blockchain.cpp" />
<ClCompile Include="..\..\src\rpc\mining.cpp" />
<ClCompile Include="..\..\src\rpc\misc.cpp" />
<ClCompile Include="..\..\src\rpc\net.cpp">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)\netrpc.obj</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)\netrpc.obj</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)\netrpc.obj</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)\netrpc.obj</ObjectFileName>
</ClCompile>
<ClCompile Include="..\..\src\rpc\rawtransaction.cpp" />
<ClCompile Include="..\..\src\rpc\server.cpp" />
<ClCompile Include="..\..\src\rpc\util.cpp" />
<ClCompile Include="..\..\src\script\ismine.cpp" />
<ClCompile Include="..\..\src\script\sigcache.cpp" />
<ClCompile Include="..\..\src\timedata.cpp" />
<ClCompile Include="..\..\src\torcontrol.cpp" />
<ClCompile Include="..\..\src\txdb.cpp" />
<ClCompile Include="..\..\src\txmempool.cpp" />
<ClCompile Include="..\..\src\ui_interface.cpp" />
<ClCompile Include="..\..\src\validation.cpp" />
<ClCompile Include="..\..\src\validationinterface.cpp" />
<ClCompile Include="..\..\src\versionbits.cpp" />
<ClCompile Include="..\..\src\index\txindex.cpp" />
@SOURCE_FILES@
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
Expand Down
Expand Up @@ -174,23 +174,7 @@
</ProjectReference>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\src\chainparamsbase.cpp" />
<ClCompile Include="..\..\src\clientversion.cpp" />
<ClCompile Include="..\..\src\compat\glibcxx_sanity.cpp" />
<ClCompile Include="..\..\src\compat\glibc_sanity.cpp" />
<ClCompile Include="..\..\src\compat\strnlen.cpp" />
<ClCompile Include="..\..\src\fs.cpp" />
<ClCompile Include="..\..\src\logging.cpp" />
<ClCompile Include="..\..\src\random.cpp" />
<ClCompile Include="..\..\src\rpc\protocol.cpp" />
<ClCompile Include="..\..\src\support\cleanse.cpp" />
<ClCompile Include="..\..\src\support\lockedpool.cpp" />
<ClCompile Include="..\..\src\sync.cpp" />
<ClCompile Include="..\..\src\threadinterrupt.cpp" />
<ClCompile Include="..\..\src\util.cpp" />
<ClCompile Include="..\..\src\utilmoneystr.cpp" />
<ClCompile Include="..\..\src\utilstrencodings.cpp" />
<ClCompile Include="..\..\src\utiltime.cpp" />
@SOURCE_FILES@
</ItemGroup>
<Import Label="configTarget" Project="..\common.vcxproj" />
</Project>
Expand Up @@ -20,18 +20,7 @@
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\wallet\coinselection.cpp" />
<ClCompile Include="..\..\src\wallet\coincontrol.cpp" />
<ClCompile Include="..\..\src\wallet\crypter.cpp" />
<ClCompile Include="..\..\src\wallet\db.cpp" />
<ClCompile Include="..\..\src\wallet\feebumper.cpp" />
<ClCompile Include="..\..\src\wallet\fees.cpp" />
<ClCompile Include="..\..\src\wallet\init.cpp" />
<ClCompile Include="..\..\src\wallet\rpcdump.cpp" />
<ClCompile Include="..\..\src\wallet\rpcwallet.cpp" />
<ClCompile Include="..\..\src\wallet\wallet.cpp" />
<ClCompile Include="..\..\src\wallet\walletdb.cpp" />
<ClCompile Include="..\..\src\wallet\walletutil.cpp" />
@SOURCE_FILES@
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
Expand Down
Expand Up @@ -20,10 +20,7 @@
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\zmq\zmqabstractnotifier.cpp" />
<ClCompile Include="..\..\src\zmq\zmqnotificationinterface.cpp" />
<ClCompile Include="..\..\src\zmq\zmqpublishnotifier.cpp" />
<ClCompile Include="..\..\src\zmq\zmqrpc.cpp" />
@SOURCE_FILES@
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
Expand Down
63 changes: 63 additions & 0 deletions build_msvc/msvc-autogen.py
@@ -0,0 +1,63 @@
#!/usr/bin/env python3

import os
import re

SOURCE_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'src'))

libs = [
'libbitcoin_cli',
'libbitcoin_common',
'libbitcoin_crypto',
'libbitcoin_server',
'libbitcoin_util',
'libbitcoin_wallet',
'libbitcoin_zmq',
]

ignore_list = [
'rpc/net.cpp',
'interfaces/handler.cpp',
'interfaces/node.cpp',
'interfaces/wallet.cpp',
]

lib_sources = {}


def parse_makefile(makefile):
with open(makefile, 'r', encoding='utf-8') as file:
current_lib = ''
for line in file.read().splitlines():
if current_lib:
source = line.split()[0]
if source.endswith('.cpp') and not source.startswith('$') and source not in ignore_list:
lib_sources[current_lib].append(source.replace('/', '\\'))
if not line.endswith('\\'):
current_lib = ''
continue
for lib in libs:
_lib = lib.replace('-', '_')
if re.search(_lib + '.*_SOURCES \\= \\\\', line):
current_lib = lib
lib_sources[current_lib] = []
break


def main():
for makefile_name in os.listdir(SOURCE_DIR):
if 'Makefile' in makefile_name:
parse_makefile(os.path.join(SOURCE_DIR, makefile_name))
for key, value in lib_sources.items():
vcxproj_filename = os.path.abspath(os.path.join(os.path.dirname(__file__), key, key + '.vcxproj'))
content = ''
for source_filename in value:
content += ' <ClCompile Include="..\\..\\src\\' + source_filename + '" />\n'
with open(vcxproj_filename + '.in', 'r', encoding='utf-8') as vcxproj_in_file:
with open(vcxproj_filename, 'w', encoding='utf-8') as vcxproj_file:
vcxproj_file.write(vcxproj_in_file.read().replace(
'@SOURCE_FILES@\n', content))


if __name__ == '__main__':
main()
68 changes: 3 additions & 65 deletions build_msvc/test_bitcoin/test_bitcoin.vcxproj
Expand Up @@ -20,72 +20,10 @@
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\test\addrman_tests.cpp" />
<ClCompile Include="..\..\src\test\allocator_tests.cpp" />
<ClCompile Include="..\..\src\test\amount_tests.cpp" />
<ClCompile Include="..\..\src\test\arith_uint256_tests.cpp" />
<ClCompile Include="..\..\src\test\base32_tests.cpp" />
<ClCompile Include="..\..\src\test\base58_tests.cpp" />
<ClCompile Include="..\..\src\test\base64_tests.cpp" />
<ClCompile Include="..\..\src\test\bech32_tests.cpp" />
<ClCompile Include="..\..\src\test\bip32_tests.cpp" />
<ClCompile Include="..\..\src\test\blockchain_tests.cpp" />
<ClCompile Include="..\..\src\test\blockencodings_tests.cpp" />
<ClCompile Include="..\..\src\test\bloom_tests.cpp" />
<ClCompile Include="..\..\src\test\bswap_tests.cpp" />
<ClCompile Include="..\..\src\test\checkqueue_tests.cpp" />
<ClCompile Include="..\..\src\test\coins_tests.cpp" />
<ClCompile Include="..\..\src\test\compress_tests.cpp" />
<ClCompile Include="..\..\src\test\crypto_tests.cpp" />
<ClCompile Include="..\..\src\test\cuckoocache_tests.cpp" />
<ClCompile Include="..\..\src\test\dbwrapper_tests.cpp" />
<ClCompile Include="..\..\src\test\denialofservice_tests.cpp" />
<ClCompile Include="..\..\src\test\getarg_tests.cpp" />
<ClCompile Include="..\..\src\test\hash_tests.cpp" />
<ClCompile Include="..\..\src\test\key_tests.cpp" />
<ClCompile Include="..\..\src\test\limitedmap_tests.cpp" />
<ClCompile Include="..\..\src\test\main_tests.cpp" />
<ClCompile Include="..\..\src\test\mempool_tests.cpp" />
<ClCompile Include="..\..\src\test\merkle_tests.cpp" />
<ClCompile Include="..\..\src\test\miner_tests.cpp" />
<ClCompile Include="..\..\src\test\multisig_tests.cpp" />
<ClCompile Include="..\..\src\test\netbase_tests.cpp" />
<ClCompile Include="..\..\src\test\net_tests.cpp" />
<ClCompile Include="..\..\src\test\pmt_tests.cpp" />
<ClCompile Include="..\..\src\test\policyestimator_tests.cpp" />
<ClCompile Include="..\..\src\test\pow_tests.cpp" />
<ClCompile Include="..\..\src\test\prevector_tests.cpp" />
<ClCompile Include="..\..\src\test\raii_event_tests.cpp" />
<ClCompile Include="..\..\src\test\random_tests.cpp" />
<ClCompile Include="..\..\src\test\reverselock_tests.cpp" />
<ClCompile Include="..\..\src\test\rpc_tests.cpp" />
<ClCompile Include="..\..\src\test\sanity_tests.cpp" />
<ClCompile Include="..\..\src\test\scheduler_tests.cpp" />
<ClCompile Include="..\..\src\test\scriptnum_tests.cpp" />
<ClCompile Include="..\..\src\test\script_p2sh_tests.cpp" />
<ClCompile Include="..\..\src\test\script_standard_tests.cpp" />
<ClCompile Include="..\..\src\test\script_tests.cpp" />
<ClCompile Include="..\..\src\test\serialize_tests.cpp" />
<ClCompile Include="..\..\src\test\sighash_tests.cpp" />
<ClCompile Include="..\..\src\test\sigopcount_tests.cpp" />
<ClCompile Include="..\..\src\test\skiplist_tests.cpp" />
<ClCompile Include="..\..\src\test\streams_tests.cpp" />
<ClCompile Include="..\..\src\test\*_tests.cpp" />
<ClCompile Include="..\..\src\wallet\test\*_tests.cpp" />
<ClCompile Include="..\..\src\test\test_bitcoin.cpp" />
<ClCompile Include="..\..\src\test\test_bitcoin_main.cpp" />
<ClCompile Include="..\..\src\test\timedata_tests.cpp" />
<ClCompile Include="..\..\src\test\torcontrol_tests.cpp" />
<ClCompile Include="..\..\src\test\transaction_tests.cpp" />
<ClCompile Include="..\..\src\test\txindex_tests.cpp" />
<ClCompile Include="..\..\src\test\txvalidationcache_tests.cpp" />
<ClCompile Include="..\..\src\test\uint256_tests.cpp" />
<ClCompile Include="..\..\src\test\util_tests.cpp" />
<ClCompile Include="..\..\src\test\validation_block_tests.cpp" />
<ClCompile Include="..\..\src\test\versionbits_tests.cpp" />
<ClCompile Include="..\..\src\wallet\test\accounting_tests.cpp" />
<ClCompile Include="..\..\src\wallet\test\coinselector_tests.cpp" />
<ClCompile Include="..\..\src\wallet\test\psbt_wallet_tests.cpp" />
<ClCompile Include="..\..\src\wallet\test\wallet_crypto_tests.cpp" />
<ClCompile Include="..\..\src\wallet\test\wallet_tests.cpp" />
<ClCompile Include="..\..\src\wallet\test\wallet_test_fixture.cpp" />
</ItemGroup>
<ItemGroup>
Expand Down Expand Up @@ -266,4 +204,4 @@
</Target>
<Import Label="configTarget" Project="..\common.vcxproj" />
<Import Label="hexdumpTarget" Project="..\msbuild\tasks\hexdump.targets" />
</Project>
</Project>