aboutsummaryrefslogtreecommitdiff
path: root/build_msvc
AgeCommit message (Collapse)Author
2023-04-05Fixes compile errors in MSVC build #27332Ethan Heilman
+ Pins the compatible version of libevent in vcpkg
2023-01-13Merge bitcoin/bitcoin#26691: Update secp256k1 subtree to libsecp256k1 ↵fanquake
version 0.2.0 202291722300b86f36e97de7960d40a32544c2d1 Add secp256k1_selftest call (Pieter Wuille) 3bfca788b0dae879bfc745cc52c2cb6edc49fd70 Remove explicit enabling of default modules (Pieter Wuille) 4462cb04986d77eddcfc6e8f75e04dc278a8147a Adapt to libsecp256k1 API changes (Pieter Wuille) 9d47e7b71b2805430e8c7b43816efd225a6ccd8c Squashed 'src/secp256k1/' changes from 44c2452fd3..21ffe4b22a (Pieter Wuille) Pull request description: Now that libsecp256k1 has a release (https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-December/021271.html), update the subtree to match it. The changes themselves are not very impactful for Bitcoin Core, but include: * It's no longer needed to specify whether contexts are for signing or verification or both (all contexts support everything), so make use of that in this PR. * Verification operations can use the static context now, removing the need for some infrastructure in pubkey.cpp to make sure a context exists. * Most modules are now enabled by default, so we can drop explicit enabling for them. * CI improvements (in particular, MSVC and more recent MacOS) * Introduction of an internal int128 type, which has no effect for GCC/Clang builds, but enables 128-bit multiplication in MSVC, giving a ~20% speedup there (but still slower than GCC/Clang). * Release process changes (process documentation, changelog, ...). ACKs for top commit: Sjors: ACK 202291722300b86f36e97de7960d40a32544c2d1, but 4462cb04986d77eddcfc6e8f75e04dc278a8147a could use more eyes on it. achow101: ACK 202291722300b86f36e97de7960d40a32544c2d1 jonasnick: utACK 202291722300b86f36e97de7960d40a32544c2d1 Tree-SHA512: 8a9fe28852abe74abd6f96fef16a94d5a427b1d99bff4caab1699014d24698aab9b966a5364a46ed1001c07a7c1d825154ed4e6557c7decce952b77330a8616b
2022-12-31doc: Correct linked Microsoft URLsSuriyaa Sundararuban
2022-12-24scripted-diff: Bump copyright headersHennadii Stepanov
-BEGIN VERIFY SCRIPT- ./contrib/devtools/copyright_header.py update ./ -END VERIFY SCRIPT- Commits of previous years: - 2021: f47dda2c58b5d8d623e0e7ff4e74bc352dfa83d7 - 2020: fa0074e2d82928016a43ca408717154a1c70a4db - 2019: aaaaad6ac95b402fe18d019d67897ced6b316ee0
2022-12-13Remove explicit enabling of default modulesPieter Wuille
2022-11-14doc: Mention required workload when building with MSVCHennadii Stepanov
2022-10-31refactor: move url.h/cpp from lib util to lib commonfanquake
2022-10-23build, msvc: Drop no longer required macro definitions for leveldbHennadii Stepanov
Since levedb v1.21: - the `__STDC_LIMIT_MACROS` macro definition is unneeded; commit: 50fbc87e8c62a816d6afd4740e0652a13ac6dc3e - the `LEVELDB_ATOMIC_PRESENT` macro is unused; commit: 04f39105c5a418905da8b7657ca244d672c99d3b
2022-10-18test: Remove unused txmempool include from testsMacroFake
2022-10-04refactor: Make 64-bit shift explicitHennadii Stepanov
Also this change enables MSVC warning C4334 for all codebase. https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-3-c4334
2022-10-04build, msvc: Enable C4834 warningHennadii Stepanov
https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/c4834
2022-09-23build: remove unused MSVC definesfanquake
Most of these aren't unused in the codebase at all, let alone for MSVC.
2022-09-21build: remove stdio.h from header checksfanquake
We already use a mix of <cstdio> and stdio.h unconditionally throughout the codebase. Us checking this header also duplicates work already done by autotools. Currently stdio.h is checked for 3 times during a ./configure run, after this change, at least it's only twice.
2022-09-20build: remove strings.h from header checksfanquake
We don't include strings.h anywhere. This is also already checked for by autoconf, so us checking for it just means a 3rd existence check during ./configure.
2022-08-19fs: work around u8path deprecated-declaration warnings with libc++fanquake
When building in c++20 mode using libc++, the following warning is emitted: ```bash ./fs.h:72:29: warning: 'u8path<std::string>' is deprecated [-Wdeprecated-declarations] return std::filesystem::u8path(utf8_str); ^ /usr/lib/llvm-14/bin/../include/c++/v1/__filesystem/u8path.h:72:27: note: 'u8path<std::string>' has been explicitly marked deprecated here _LIBCPP_INLINE_VISIBILITY _LIBCPP_DEPRECATED_WITH_CHAR8_T ^ /usr/lib/llvm-14/bin/../include/c++/v1/__config:1042:43: note: expanded from macro '_LIBCPP_DEPRECATED_WITH_CHAR8_T' ^ /usr/lib/llvm-14/bin/../include/c++/v1/__config:1007:48: note: expanded from macro '_LIBCPP_DEPRECATED' ^ 1 warning generated. ``` as u8path<std::string> is deprecated starting with c++20. Fixes: #24682. Co-authored-by: MacroFake <falke.marco@gmail.com> Co-authored-by: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
2022-08-10msvc: Drop `_SILENCE_CXX17_OLD_ALLOCATOR_MEMBERS_DEPRECATION_WARNING`Hennadii Stepanov
It is no longer needed.
2022-07-30build: Bump Qt to 5.15.5 in dependsHennadii Stepanov
2022-07-07build: Increase MS Visual Studio minimum versionHennadii Stepanov
Visual Studio 2022 with `/std:c++20` supports designated initializers.
2022-06-28build: Clean up `build_msvc/libsecp256k1_config.h`Hennadii Stepanov
Unused since bitcoin/bitcoin#19944: - `USE_FIELD_10X26` - `USE_FIELD_5X52` - `USE_SCALAR_4X64` - `USE_SCALAR_8X32` Unused since bitcoin/bitcoin#20147: - `USE_ENDOMORPHISM` Unused since bitcoin/bitcoin#21573: - `USE_FIELD_INV_BUILTIN` - `USE_FIELD_INV_NUM` - `USE_NUM_GMP` - `USE_NUM_NONE` - `USE_SCALAR_INV_BUILTIN` - `USE_SCALAR_INV_NUM`
2022-06-26build: Bump default `PlatformToolset` for Visual Studio 2022Hennadii Stepanov
2022-06-26doc: Make Windows build docs match the CI taskHennadii Stepanov
Added Visual Studio 2022.
2022-06-14qt, refactor: Add `transactionoverviewwidget.cpp` source fileHennadii Stepanov
Required for better/simpler interaction with CMake AUTOMOC.
2022-06-01Use designated initializersMarcoFalke
2022-04-13Revert "build: Specify `zeromq` port explicitly for MSVC builds"Hennadii Stepanov
This reverts commit 20b6c871178f20661b849ad5677bd8ecae55cf19.
2022-04-07build: fix MSVC build after subtree updatedhruv
Co-authored-by: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> Co-authored-by: Aaron Clauson <aaron@sipsorcery.com>
2022-04-05build: Do not modify `common.init.vcxproj` directlyHennadii Stepanov
2022-04-05build, refactor: Add set_properties() to msvc-autogen.pyHennadii Stepanov
2022-04-01build, qt: bump Qt5 version to 5.15.3Pavol Rusnak
Qt 5.15.3 release is a patch release made on the top of Qt 5.15.2. As a patch release, Qt 5.15.3 does not add any new functionality but provides bug fixes and other improvements. https://code.qt.io/cgit/qt/qtreleasenotes.git/about/qt/5.15.3/release-note.md * dropped patches: - patches/qt/dont_use_avx_android_x86_64.patch - patches/qt/fix_bigsur_style.patch * adjusted patches: - patches/qt/fix_android_jni_static.patch - patches/qt/fix_limits_header.patch - patches/qt/use_android_ndk23.patch Co-authored-by: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
2022-03-29compat: remove strnlen back-compat codefanquake
This was needed for mingw (not mingw-w64), and some older versions of macOS, which we no-longer support.
2022-03-10build: Drop `double-conversion` from MSVC dependenciesHennadii Stepanov
Qt uses its own `double-conversion`.
2022-03-10build: Specify `zeromq` port explicitly for MSVC buildsHennadii Stepanov
Current port 4 is broken: - https://github.com/microsoft/vcpkg/pull/22681#issuecomment-1061312320
2022-03-07test: Add tests for GetArg methods / settings.json type coercionRyan Ofsky
Just add tests. No changes to application behavior. Tests will be updated in the next commit changing & improving current behavior. Include a Qt test for GUI startup crash reported by Rspigler in https://github.com/bitcoin/bitcoin/issues/24457 caused by GetArg behavior that happens if settings.json contains an integer value for any of the configuration options which GUI settings can currently clash with (-dbcache, -par, -spendzeroconfchange, -signer, -upnp, -natpmp, -listen, -server, -proxy, -proxy, -onion, -onion, -lang, and -prune).
2022-02-13build: use header-only Boost unit testfanquake
2022-02-05Add bitcoin_config.h to build_msvc/.gitignoreHennadii Stepanov
bitcoin_config.h is auto-generated by the msvc-autogen.py script.
2022-02-03build: remove Boost::system usagefanquake
2022-02-03build: remove boost::filesystem usageKiminuo
2022-01-06Merge bitcoin/bitcoin#23828: scripted-diff: Rename libbitcoin_server.a to ↵MarcoFalke
libbitcoin_node.a 172096e9dd5b0e04b88ffd6dc1f6d43190070e14 scripted-diff: Rename libbitcoin_server.a to libbitcoin_node.a (Russell Yanofsky) Pull request description: Goal along with namespacing PR #23497 is to make code organization more obvious and have `src/node/` code in `node::` namespace in `libbitcoin_node.a` library ACKs for top commit: MarcoFalke: cr ACK 172096e9dd5b0e04b88ffd6dc1f6d43190070e14 Tree-SHA512: a2e787eeaa3ab769b0f5376473072cae584d237aa8b67b677bea833bb36b0134a0eca17eb01722389639473b8463f4953bc3a5e4801a6b2c8965ac1075cba005
2021-12-30scripted-diff: Bump copyright headersHennadii Stepanov
-BEGIN VERIFY SCRIPT- ./contrib/devtools/copyright_header.py update ./ -END VERIFY SCRIPT- Commits of previous years: * 2020: fa0074e2d82928016a43ca408717154a1c70a4db * 2019: aaaaad6ac95b402fe18d019d67897ced6b316ee0
2021-12-20scripted-diff: Rename libbitcoin_server.a to libbitcoin_node.aRussell Yanofsky
Goal along with namespacing PR #23497 is to have src/node/ code in node:: namespace in libbitcoin_node.a library -BEGIN VERIFY SCRIPT- bash -c ' # Bash shell needed for brace expansion {a,b} git mv build_msvc/libbitcoin_{server,node} git mv build_msvc/libbitcoin_node/libbitcoin_{server,node}.vcxproj.in ren() { git grep -l "$1" src build_msvc | xargs sed -i "s/$1/$2/g"; } ren LIBBITCOIN_{SERVER,NODE} ren libbitcoin_{server,node} ' -END VERIFY SCRIPT-
2021-12-03doc: Update `build_msvc/README.md` for Qt 5.15.2Hennadii Stepanov
2021-11-16doc: Fix typos in endif header commentsMarcoFalke
2021-11-15Merge bitcoin/bitcoin#23345: build: Drop unneeded dependencies for ↵W. J. van der Laan
bitcoin-wallet tool 4fe7cf167796015c0f24e740f81a2452e3996a92 build: Drop unneeded dependencies for bitcoin-wallet tool (Hennadii Stepanov) Pull request description: `bitcoin-wallet` is an offline tool, and its code does not depend on networking stuff (ZMQ, UPnP, NAT-PMP, and LIBBITCOIN_SERVER). Also `bitcoin-wallet` does not interacts with the chainstate, therefore dependency on LevelDB is not needed. ACKs for top commit: laanwj: Code review ACK 4fe7cf167796015c0f24e740f81a2452e3996a92 Tree-SHA512: 97342d9cdf8670806efe16dc7885a85ec92f3c1ae0819a4c3cc147938fc8642089e303c4432cb1395fc75b852c1af6a6a13fc58e29e027c23f75219fd3bd8cb4
2021-11-14build_msvc/bitcoin_config.h is generated using build_msvc/msvc-autogen.pyCallMeMisterOwl
2021-11-13build: Drop unneeded dependencies for bitcoin-wallet toolHennadii Stepanov
2021-11-12Merge bitcoin/bitcoin#23114: Add minisketch subtree and integrate into ↵fanquake
build/test 29173d6c6ca0cc3be9fa6bf2409a509ffea1a02a ubsan: add minisketch exceptions (Cory Fields) 54b5e1aeab73953c1f12ec2c041572038f6f59da Add thin Minisketch wrapper to pick best implementation (Pieter Wuille) ee9dc71c1bc16205494f2a0aebe575a3c062ff52 Add basic minisketch tests (Pieter Wuille) 0659f12b131fc5915fe7a493306af197f4fb838b Add minisketch dependency (Gleb Naumenko) 0eb7928ab8d9dcb840e4965bfa81deb752b00dfa Add MSVC build configuration for libminisketch (Pieter Wuille) 8bc166d5b179205fc56855e2b462aa273a6f8661 build: add minisketch build file and include it (Cory Fields) b2904ceb85b4d440b1f4bbd716fcb601411cc2c9 build: add configure checks for minisketch (Cory Fields) b6487dc4ef47ec9ea894eceac25f37d0b806f8aa Squashed 'src/minisketch/' content from commit 89629eb2c7 (fanquake) Pull request description: This takes over #21859, which has [recently switched](https://github.com/bitcoin/bitcoin/pull/21859#issuecomment-921899200) to my integration branch. A few more build issues came up (and have been fixed) since, and after discussing with sipa it was decided I would open a PR to shepherd any final changes through. > This adds a `src/minisketch` subtree, taken from the master branch of https://github.com/sipa/minisketch, to prepare for Erlay implementation (see #21515). It gets configured for just supporting 32-bit fields (the only ones we're interested in in the context of Erlay), and some code on top is added: > * A very basic unit test (just to make sure compilation & running works; actual correctness checking is done through minisketch's own tests). > * A wrapper in `minisketchwrapper.{cpp,h}` that runs a benchmark to determine which field implementation to use. Only changes since my last update to the branch in the previous PR have been rebasing on master and fixing an issue with a header in an introduced file. ACKs for top commit: naumenkogs: ACK 29173d6c6ca0cc3be9fa6bf2409a509ffea1a02a Tree-SHA512: 1217d3228db1dd0de12c2919314e1c3626c18a416cf6291fec99d37e34fb6eec8e28d9e9fb935f8590273b8836cbadac313a15f05b4fd9f9d3024c8ce2c80d02
2021-11-06Remove the build_msvc/testconsensus projectAaron Clauson
The testconsensus project is not integral to the Bitcoin Core code. It was originally added as a quick and dirty demo of how to do a consensus check with the msvc build. There are better examples. PR #23438 made a change that caused a compiler error with the buildmsvc/testconsensus code. Rather than leave it hanging around to incur potential bitrot, or furhter PR build failures, it should be removed.
2021-10-26Merge bitcoin/bitcoin#23006: multiprocess: Add new bitcoin-gui, bitcoin-qt, ↵MarcoFalke
bitcoin-wallet init implementations d5f985e51f2863fda0c0d632e836eba42a5c3e15 multiprocess: Add new bitcoin-gui, bitcoin-qt, bitcoin-wallet init implementations (Russell Yanofsky) Pull request description: Add separate `interfaces::Init` subclasses for `bitcoin-wallet`, `bitcoin-gui`, and `bitcoin-qt` binaries instead of sharing `bitcoind` and `bitcoin-node` init subclasses in different binaries. After this, the new init subclasses can be customized in #10102, so node and wallet code is dropped from the `bitcoin-gui` binary and wallet code is dropped from into the `bitcoin-node` binary. --- This PR is part of the [process separation project](https://github.com/bitcoin/bitcoin/projects/10). ACKs for top commit: lsilva01: reACK d5f985e hebasto: re-ACK d5f985e51f2863fda0c0d632e836eba42a5c3e15, only suggested changes since my [previous](https://github.com/bitcoin/bitcoin/pull/23006#pullrequestreview-787537444) review. Tree-SHA512: 6784210bd9ce3a6fbc66852680d0e9bc513c072dc538aeb7f48cb6a41580d3f567ccef04f975ee767a714a4b05d4d87273e94a79abda1b9c25d5ac4bbe752006
2021-10-21Add MSVC build configuration for libminisketchPieter Wuille
2021-10-07Merge bitcoin/bitcoin#22890: doc: Replace a link to Qt precompiled binaries ↵fanquake
with compile instructions 6bc43989372386bf1dc6ee2a763a46a2d0780059 doc: Suggest using jom instead of nmake (Hennadii Stepanov) c4139f06a943edc38e3b02980fbe7aa4ed794374 doc: Replace a link to Qt precompiled binaries with compile instructions (Hennadii Stepanov) 5e42f2ad26d35950405480f3eea2ed73fdfba841 build: Make <QtBaseDir> default name Qt and VS versions agnostic (Hennadii Stepanov) Pull request description: This PR replaces a [link to Qt precompiled binaries](https://github.com/sipsorcery/qt_win_binary/releases) with compile instructions that allow users to self-compile static Qt package which is required for building Bitcoin Core with Visual Studio. ACKs for top commit: sipsorcery: ACK 6bc43989372386bf1dc6ee2a763a46a2d0780059. Tree-SHA512: 0c91536e51177ec2ed437614cb37b3fd1dccce856548c22307359da68200433971fd97cd8a537b0856cfccc521ac50d61801a78cb5275b818829ee7b43bc7d6a
2021-09-30doc: Suggest using jom instead of nmakeHennadii Stepanov