Commit Graph

72 Commits

Author SHA1 Message Date
Aaron Clauson
75d9317bc1
Update msvc build for Visual Studio 2019 v16.4
msvc warning C4834 for the Bitcoin Core build was introduced by Visual Studio 16.4.0. This PR adds an ignore rule for the warning (it's related to the nodiscard attribute and is not considered relevant).
An additional side effect of the msvc compiler update is the prebuilt Qt5.9.8 libraries cannot be linked due to being built with an earlier version of the compiler. To fix this a new Qt5.9.8 version has been compiled and the appveyor job updated to use them. The GitHub Actions job needs to continue to use the original Qt5.9.8 libraries until the latest GitHub Windows image also updates to >= Visual Studio 2019 v16.4.
2019-12-12 18:51:30 +00:00
Aaron Clauson
f13e274b6f
Appveyor install libevent[thread] vcpkg
As per #17586 the default libevent vcpkg install now has thread disabled. This PR installs libevent with the thread feature enabled.
2019-11-25 13:35:36 +00:00
Aaron Clauson
b509554433
Added libtest_util library to msvc build configuration. 2019-11-23 15:49:16 +00:00
fanquake
397dbae070
ci: remove OpenSSL installation 2019-11-18 08:56:48 -05:00
fanquake
a4eb839619
doc: remove OpenSSL from build instructions and licensing info 2019-11-18 08:56:48 -05:00
Aaron Clauson
29eb039252
Moves vcpkg list to a text file and updates the appveyor job and readme to use it. 2019-11-10 13:49:28 +00:00
Aaron Clauson
b80f7db832
Remove redundant class file includes from test_bitcoin project. 2019-11-07 20:03:23 +00:00
MarcoFalke
46e0e27639
Merge #17364: Updates to appveyor config for VS2019 and Qt5.9.8 + msvc project fixes
3c84deebaa Updated appveyor config:  - Update build image from Visual Studio 2017 to Visual Studio 2019.  - Updated Qt static library from Qt5.9.7 to Qt5.9.8.  - Added commands to update vcpkg port files (this does not update already installed packages).  - Updated vcpkg package list as per #17309.  - Removed commands setting common project file options. Now done via common.init.vcxproj include.  - Changed msbuild verbosity from normal to quiet. Normal rights a LOT of logs and impacts appveyor job duration. Updated msvc project configs:  - Updated platform toolset from v141 to v142.  - Updated Qt static library from Qt5.9.7 to Qt5.9.8.  - Added ignore for linker warning building bitcoin-qt program.  - Added missing util/str.cpp class file to test_bitcoin project file. (Aaron Clauson)

Pull request description:

  Updates to appveyor config:
   - Update build image from Visual Studio 2017 to Visual Studio 2019.
   - Updated Qt static library from Qt5.9.7 to Qt5.9.8.
   - Added commands to update vcpkg port files (this does not update already installed packages).
   - Updated vcpkg package list as per #17309.
   - Removed commands setting common project file options. Now done via common.init.vcxproj include.
   - Changed msbuild verbosity from normal to quiet. Normal writes a LOT of logs and impacts appveyor job duration.

  Updates to msvc project configs:
   - Updated platform toolset from v141 to v142.
   - Updated Qt static library from Qt5.9.7 to Qt5.9.8.
   - Added ignore for linker warning building bitcoin-qt program.
   - Added missing util/str.cpp class file to test_bitcoin project file.

  In order for an existing appveyor job based on the new config to work the cache must be purged. The steps to do this are shown below. The specific appveyor project path will need to be adjusted.

  ````
  export APPVEYOR_TOKEN="<your-api-token>"
  curl -H "Authorization: Bearer $APPVEYOR_TOKEN" -X DELETE https://ci.appveyor.com/api/projects/bitcoin/bitcoin-9ql6k/buildcache
  ````

ACKs for top commit:
  ryanofsky:
    Non-expert code review ACK 3c84deebaa.

Tree-SHA512: 77063d4588c3499de78b0bcc4d8b638f36c70284485ae94ce5c718a3dacb6d28cc34f9443c54c4e98c07b446d26b59589259671c2f6bcc952344042b4a3baf8f
2019-11-07 09:45:47 -05:00
Aaron Clauson
3c84deebaa
Updated appveyor config:
- Update build image from Visual Studio 2017 to Visual Studio 2019.
 - Updated Qt static library from Qt5.9.7 to Qt5.9.8.
 - Added commands to update vcpkg port files (this does not update already installed packages).
 - Updated vcpkg package list as per #17309.
 - Removed commands setting common project file options. Now done via common.init.vcxproj include.
 - Changed msbuild verbosity from normal to quiet. Normal rights a LOT of logs and impacts appveyor job duration.
Updated msvc project configs:
 - Updated platform toolset from v141 to v142.
 - Updated Qt static library from Qt5.9.7 to Qt5.9.8.
 - Added ignore for linker warning building bitcoin-qt program.
 - Added missing util/str.cpp class file to test_bitcoin project file.
2019-11-06 22:02:16 +00:00
MarcoFalke
faec28252c
scripted-diff: test: Move setup_common to test library
-BEGIN VERIFY SCRIPT-
 # Move files
 for f in $(git ls-files src/test/lib/); do git mv $f src/test/util/; done
 git mv src/test/setup_common.cpp                     src/test/util/
 git mv src/test/setup_common.h                       src/test/util/
 # Replace Windows paths
 sed -i -e 's|\\setup_common|\\util\\setup_common|g' $(git grep -l '\\setup_common')
 sed -i -e 's|src\\test\\lib\\|src\\test\\util\\|g'  build_msvc/test_bitcoin/test_bitcoin.vcxproj
 # Everything else
 sed -i -e 's|/setup_common|/util/setup_common|g'    $(git grep -l 'setup_common')
 sed -i -e 's|test/lib/|test/util/|g'                $(git grep -l 'test/lib/')
 # Fix include guard
 sed -i -e 's|BITCOIN_TEST_SETUP_COMMON_H|BITCOIN_TEST_UTIL_SETUP_COMMON_H|g' ./src/test/util/setup_common.h
 sed -i -e 's|BITCOIN_TEST_LIB_|BITCOIN_TEST_UTIL_|g'                     $(git grep -l 'BITCOIN_TEST_LIB_')
-END VERIFY SCRIPT-
2019-11-06 11:56:41 -05:00
fanquake
b1f1fb5f1d
doc: update MSVC instructions to remove Qt configuration
Also adds missing Boost packages. Installing only the currently listed
packages was not sufficient to complete a build.
2019-11-01 15:25:52 -04:00
fanquake
befbc40eb5
build: remove EVP_MD_CTX_new detection
This was added in #9475 to fix LibreSSL compatibility for
BIP70, so is no longer required.
2019-10-24 16:01:43 -04:00
Sebastian Falbesoner
a0fc076476 refactor: test/bench: dedup Build{Crediting,Spending}Transaction()
prototypes used in src/test/script_tests.cpp:
- CMutableTransaction BuildCreditingTransaction(const CScript& scriptPubKey, int nValue = 0);
- CMutableTransaction BuildSpendingTransaction(const CScript& scriptSig, const CScriptWitness& scriptWitness, const CTransaction& txCredit);

prototypes used in bench/verify_script.cpp:
- CMutableTransaction BuildCreditingTransaction(const CScript& scriptPubKey);
- CMutableTransaction BuildSpendingTransaction(const CScript& scriptSig, const CMutableTransaction& txCredit);

The more generic versions from the script tests are moved into a new file pair
transaction_utils.cpp/h and the calls are adapted accordingly in the
verify_script benchmark (passing the nValue of 1 explicitely for
BuildCreditingTransaction(), passing empty scriptWitness explicitely and
converting txCredit parameter to CTransaction in BuildSpendingTransaction()).
2019-10-23 01:59:32 +02:00
Jon Atack
c0859b7dac
build: 0.19 release updates on master
as per doc/release-process.md.

Note: On branch-off, these same changes should be made on the release branch, with also these additional changes to both files:

  - set `CLIENT_VERSION_REVISION` to `0`
  - set `CLIENT_VERSION_IS_RELEASE` to `true`
2019-10-02 11:08:15 +02:00
Aaron Clauson
1619684322
Added libbitcoin_qt and bitcoin-qt to the msbuild configuration. 2019-09-08 14:13:05 +02:00
Aaron Clauson
d53d591230
Added the bench_bitcoin project to the list automatically produced by the msvc-autogen python script. 2019-08-29 06:22:06 +02:00
Aaron Clauson
aff1c9c884
Adds an option to msbuild common configuration to ignore linker warning 4221. This warning is for object files that do not include any symbols. The warning is harmless and occurs due to some classes that are *nix only having no source to compile for an msvc build. 2019-08-28 15:03:23 +02:00
Wladimir J. van der Laan
390874c722 qt: Remove menu icons 2019-08-15 13:05:10 +02:00
Aaron Clauson
e0324c3768
Updated python command in readme so it will work on systems that have both python2 and 3 installed. 2019-07-29 10:16:22 +02:00
Wladimir J. van der Laan
0a6ee9797e
Merge #16267: bench: Benchmark blockToJSON
91509ffe24 bench: Benchmark blockToJSON (Kirill Fomichev)

Pull request description:

  Related:
  - "getblock performance issue on verbosity" https://github.com/bitcoin/bitcoin/issues/15925
  - "refactor: Avoid UniValue copy constructor" #15974

ACKs for top commit:
  laanwj:
    ACK 91509ffe24

Tree-SHA512: e70b12cb31921c7527bde334f52f39776da698b6bbdb196079a8b68478c67585a5bd7bed7403f65166bd604f7ed60778c53dc064d743bb8368318a1283d1073e
2019-07-08 20:14:31 +02:00
Wladimir J. van der Laan
8c69fae944
Merge #15457: Check std::system for -[alert|block|wallet]notify
f874e14cd3 [build]: check std::system for -[alert|block|wallet]notify (Sjors Provoost)
cc3ad56ff2 [build] MSVC: set HAVE_SYSTEM for desktop apps (Sjors Provoost)
c1c91bb78d [build] detect std::system or ::wsystem (Sjors Provoost)

Pull request description:

  Platforms such as iOs and Universal Windows Platform do not support launching a process through system().

ACKs for top commit:
  laanwj:
    code review ACK f874e14cd3

Tree-SHA512: 16bb4a8fa1896046ccb22a46c8985e1aa45f5b11ecf5539eb2299e9a58f1a5b085c0c12cb6939c7493d93abce7e84fadcbfc73374c887db63da6d00c08aa476d
2019-07-05 17:33:33 +02:00
Kirill Fomichev
91509ffe24
bench: Benchmark blockToJSON 2019-07-05 17:53:57 +03:00
fanquake
4f378ac30c
Merge #16308: [MSVC] Copy build output to src/ automatically after build
08c721dab2 [MSVC] Copy build output to src/ automatically after build (nicolas.dorier)

Pull request description:

  I got frustrated many time that I run functional tests on an outdated binary.

  This make sure that files are properly copied (and debuggable) for functional tests after a build.

  This PR add a `common.vcxproj` which can be used to extend the build steps.
  I can't move it in `common.init`, because build step customization must always come at the end of a project file.

ACKs for top commit:
  sipsorcery:
    tACK 08c721dab2.
  fanquake:
    ACK 08c721dab2

Tree-SHA512: 7c033552a7bbbd3bb51a72d13bf4254e3b779c59ec93629c85f17745a1b17a8c1d6c87bb5e50eb5f4e5486e767929c0126e555b185608fd666aa39729b5068e1
2019-07-05 10:10:16 +08:00
MarcoFalke
91c345eb92
Merge #16299: bench: Move generated data to a dedicated translation unit
3d60a03a7c bench: Move generated data to a dedicated translation unit (João Barbosa)

Pull request description:

  With this change multiple benchmarks can use the same data without incurring in a bigger binary.

ACKs for top commit:
  laanwj:
    code review ACK 3d60a03a7c

Tree-SHA512: 8903bb09e4327c88e585a09bc7df1cbdfc18ebdc5d9c86bf3d6d9252a05eaf18b14ecd2bafdacd82f05a659e4b35ecd301c36011c97f7bf89302793165b00fdc
2019-07-03 11:13:58 -04:00
João Barbosa
3d60a03a7c bench: Move generated data to a dedicated translation unit 2019-07-02 18:11:15 +01:00
nicolas.dorier
08c721dab2
[MSVC] Copy build output to src/ automatically after build 2019-07-01 19:16:19 +09:00
nicolas.dorier
c83f0ac9b2
[MSVC] allow user level project customization 2019-06-29 16:25:40 +09:00
nicolas.dorier
819c5ddad3
[MSVC] Enable Fuzz for functional tests 2019-06-28 16:43:56 +09:00
nicolas.dorier
e47e79377f
[MSVC]: Create the config.ini as part of bitcoind build 2019-06-21 16:23:35 +09:00
nicolas.dorier
eb832cd3b4
MSVC: Fix error in debug mode (Fix #16245) 2019-06-20 12:45:57 +09:00
MarcoFalke
b1344eac5f
Merge #16241: docs: add rapidcheck to vcpkg install list
4971be76a7 docs: add rapidcheck to vcpkg install list (fanquake)

Pull request description:

  Setting up a fresh Windows 10 VM using [this guide](https://github.com/fanquake/core-review/blob/master/windows.md), installing `rapidcheck` and building using the changes in #16235 resulted in a working `bitcoind` and all tests passing.

ACKs for commit 4971be:

Tree-SHA512: d0cb2d1d6ac5cdecf77c21f9b05e8803266511dbd06cb644352a229d101c7bf63f8022822852877371cce83c414275a850eb9ab6876a61c2fd1061627b7223f7
2019-06-19 15:47:40 -04:00
fanquake
4971be76a7
docs: add rapidcheck to vcpkg install list 2019-06-19 16:04:37 +08:00
Aaron Clauson
750d1bc7df
Cleaned up and consolidated msvc build files to allow faster builds and easier migration to vs2019. 2019-06-19 09:20:20 +02:00
Sjors Provoost
cc3ad56ff2
[build] MSVC: set HAVE_SYSTEM for desktop apps 2019-06-06 11:50:16 +02:00
Jon Atack
3ee28c506d
build: bump bitcoin_config.h packages to v0.18
Follow-up to 48ed65b.
2019-05-23 18:02:51 +02:00
Hennadii Stepanov
48ed65bcdd
Align MSVC build options with Linux build ones 2019-04-27 10:11:52 +03:00
MarcoFalke
fa46ac3127
bench: Add wallet_balance benchmarks 2019-04-15 16:49:34 -04:00
MarcoFalke
fa821904bf
scripted-diff: Rename test_bitcoin to test/setup_common
-BEGIN VERIFY SCRIPT-
sed -i --regexp-extended -e 's/test_bitcoin\.(h|cpp)/setup_common.\1/g' $(git grep -l test_bitcoin)
git mv ./src/test/test_bitcoin.h   ./src/test/setup_common.h
git mv ./src/test/test_bitcoin.cpp ./src/test/setup_common.cpp
sed -i -e 's/BITCOIN_TEST_TEST_BITCOIN_H/BITCOIN_TEST_SETUP_COMMON_H/g' ./src/test/setup_common.h
-END VERIFY SCRIPT-
2019-04-11 10:12:36 -04:00
MarcoFalke
fa8685d49e
test: Use test_bitcoin setup in bench, Add test utils 2019-04-10 15:59:11 -04:00
John Newbery
9eaeb7fb8d [build] Move wallet load functions to wallet/load unit
Moves the following wallet load functions to a new wallet/load unit in
the libbitcoin_wallet library. All other functions in wallet/init remain
in libbitcoin_server:

- `VerifyWallets`
- `LoadWallets`
- `StartWallets`
- `FlushWallets`
- `StopWallets`
- `UnloadWallets`
2019-04-09 17:53:08 -04:00
John Newbery
fdf8888b6f [build] Move CheckTransaction from lib_server to lib_consensus
CheckTransaction is a context-free function that does not require access
to the blockchain or mempool. Move it from src/consensus/tx_verify in
lib_server to a new unit src/consensus/tx_check in lib_consensus so that
it can be called by non-server libraries.
2019-04-09 17:53:08 -04:00
MarcoFalke
3515612e06
Merge #15473: bench: Benchmark MempoolToJSON
fa38535130 bench: Benchmark MempoolToJSON (MarcoFalke)
fa5dc3534b rpc: Pass mempool into MempoolToJSON (MarcoFalke)

Pull request description:

  This is used in production (e.g. https://jochen-hoenicke.de/queue/#0,24h), so add a benchmark to avoid making it even slower.

  Related:

  * "getrawmempool true RPC call is O(n^2)" #14765

Tree-SHA512: da09d2e54ee261af8671152f97f863cf1acd7a6adc6578e94046b1ec9e647a670c67499760ef765254f65522dfdf773c3c8729006fa2d63ccb6d53166bafc425
2019-03-06 16:58:37 -05:00
MarcoFalke
fa02b22245
test: Remove useless test_bitcoin_main.cpp 2019-02-28 15:44:02 -05:00
Chun Kuan Lee
4a5e52cb51 msvc: Use a single file to specify the include path 2019-03-01 02:30:07 +08:00
MarcoFalke
fa38535130
bench: Benchmark MempoolToJSON 2019-02-25 10:13:23 -05:00
riordant
3f5ad622e5 Enable PID file creation on Windows
- Add available WIN PID function
- Consider WIN32 in each relevant case
- Add new preprocessor definitions to suppress warning
- Update error message for generic OS

Co-authored-by: Jörn Röder <kontakt@joernroeder.de>
2019-02-25 16:00:34 +07:00
Chun Kuan Lee
8a1f0a38d4 scripted-diff: Remove NDEBUG pre-define
-BEGIN VERIFY SCRIPT-
sed -i 's/NDEBUG;//g' $(git grep --name-only 'NDEBUG;' build_msvc)
-END VERIFY SCRIPT-
2019-02-17 18:26:11 +08:00
Wladimir J. van der Laan
e9c190044d
Merge #15398: msvc: add rapidcheck property tests
d067e81dcf msvc: add rapid check property tests (Chun Kuan Lee)

Pull request description:

  This PR add the property tests into the binaries built by MSVC.

  And another trivial change is that I reordered the appveyor package list.

Tree-SHA512: 25d66db464beb7b512cc1f88d8557d6a047000a97d78f49884bb91a65ec142e0458039c919f51bf73413359fcf3e63e1ea4d76586b862f1c140d2ca05ee8b23d
2019-02-17 02:42:06 +01:00
Chun Kuan Lee
3c6ef0393f msvc: Fix silent merge conflict between #13926 and #14372 part II 2019-02-14 20:08:15 +08:00
Wladimir J. van der Laan
3a573fd46c
Merge #14922: windows: Set _WIN32_WINNT to 0x0601 (Windows 7)
0164b0f5cf build: Remove WINVER pre define in Makefile.leveldb.inlcude (Chun Kuan Lee)
d0522ec94e Drop defunct Windows compat fixes (Ben Woosley)
d8a2992067 windows: Call SetProcessDEPPolicy directly (Chun Kuan Lee)
1bd9ffdd44 windows: Set _WIN32_WINNT to 0x0601 (Windows 7) (Chun Kuan Lee)

Pull request description:

  The current minimum support Windows version is Vista. So set it to 0x0600
  5a88def8ad/mingw-w64-headers/include/sdkddkver.h (L19)

Tree-SHA512: 38e2afc79426ae547131c8ad3db2e0a7f54a95512f341cfa0c06e4b2fe79521ae67d2795ef96b0192e683e4f1ba6183c010d7b4b8d6b3e68b9bf48c374c59e7d
2019-02-05 18:15:01 +01:00