46 Commits
Author SHA1 Message Date
Aaron Clauson d08e820abf Add a note to msvc readme re building Qt for Bitcoin Core. 2023-12-10 15:46:36 +00:00
Aaron Clauson bb1c84082c Remove the build_msvc/testconsensus project
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-11-06 21:32:34 +00:00
Aaron Clauson aab7fd0f8d Switch Appveyor CI to VS2019 stable image
The current appveyor config is using the VS2019 preview image so the latest prebuilt Qt5.12.11 binaries can be used, see #22224.

Appveyor updated the Visual Studio 2019 image to msbuild v16.10.1 on 14th of June. This is the version used to build the latest Qt binaries and removes the need to use the Appveyor VS2019 preview image.
2021-06-14 20:35:00 +01:00
Aaron Clauson e25ea54dbf Update msvc and appveyor builds to use Qt5.12.11 binaries. 2021-06-11 16:36:31 +01:00
Aaron Clauson 0a331456e4 Remove Visual Studio 2017 reference from readme
This PR was motivated by a comment in GUI PR (257) regarding a suggested improvement not being supported by VS2017.

When checking whether master can still be built with the VS2017 toolset ABI issues were encountered. Most likely due to the pre-compiled Qt binaries that are used.

It does not seem worth the effort to try and support VS2017, which would most likely require additional Qt binaries, or lengthy instructions on how to build static Qt binaries on Windows (which is very error prone and tedious).

Added advisory note about build not working with earlier Visual Studio versions.

Fixed grammar.
2021-05-01 17:15:38 +01:00
Aaron Clauson f02ca7a354 Update msvc build to use Qt5.12.10 binaries. 2021-04-19 16:41:50 +01:00
Aaron Clauson b9e3f35306 Update vcpkg checkout commit.
Previously vcpkg was relying on https://repo.msys2.org/mingw/i686/mingw-w64-i686-pkg-config-0.29.2-1-any.pkg.tar.xz which is no longer available. The vcpkg source has been updated to use http://repo.msys2.org/mingw/i686/mingw-w64-i686-pkg-config-0.29.2-2-any.pkg.tar.zst. This PR updates the commit ID used to checkout vcpkg for the updated URL.
2021-03-15 17:18:42 +00:00
Aaron Clauson 2c69381f3d Removed redundant git pull from appveyor config. 2020-12-03 09:23:22 +00:00
Aaron Clauson 8b99e609e7 Adjusted msvc compiler and linker settings to remove optimisations that are causing sporadic ABI issues on Visual Studio updates.
Tidied up debug and release configuration blocks in common project file to avoid duplication.

Updated appveyor config to use latest Visual Studio 2019 image.

Changed appveyor config file hash to use a new version of Qt pre-compiled binaries built for Visual Studio 2019 v16.8.1.

Bumped vcpkg version to tag '2020.11-1' for binary caching feature.

See #20392 for related discussion.
2020-12-02 11:39:01 +00:00
Aaron Clauson fa18e7cbc5 This change to the appveyor CI config for msvc builds reverses a change introduced in #19960. It re-applies a setting to inform vcpkg to only build release vesions of the dependencies rather than the default of debug and release.
It had been expected that the vcpkg manifest mechanism introduced in #19960 would do this automatically but it turns out not to be the case.
2020-11-25 11:07:10 +00:00
Aaron Clauson c83155b406 Bump vcpkg commit ID to get new msys mirror list
This fixes the appveyor CI job, see #20066.

Currently the job fails because some of the vcpkg dependencies need to install msys2 and the hardcoded mirror in the vcpkg config is down.

Vcpkg commit 76a7e9248fb3c57350b559966dcaa2d52a5e4458 adds new mirrors to the hardcoded list.
2020-10-06 19:17:53 +01:00
Aaron Clauson 712f95d332 Update msvc build to use new vcpkg manifest
The vcpkg tool has introduced a proper way to use manifests, https://devblogs.microsoft.com/cppblog/vcpkg-accelerate-your-team-development-environment-with-binary-caching-and-manifests/. This PR replaces the custom text file mechanism with the new manifest approach.

It is planned that vckpg manifests will include the ability to version dependencies in the future. Dependency versions would solve a number of issues that currently require workarounds with the appveyor CI.

Set vcpkg manifest version to 1 to avoid any perception it's related to any release or other version numbering.
2020-09-29 13:48:28 +01:00
Aaron Clauson a104caeb40 Update the vcpkg checkout commit ID in appveyor config. 2020-08-31 08:10:02 +01:00
Aaron Clauson 3ec8f4c080 Set appveyor vm version to previous Visual Studio 2019 release.
Latest vm version has updated cmake and the berkeleydb vcpkg now fails to build.
2020-08-30 12:34:43 +01:00
Aaron Clauson 2894e94d17 Updates msvc build to use ISO standard C++17. 2020-07-04 16:03:18 +01:00
Aaron Clauson 961e667600 Remove cached directories and associated script blocks from appveyor CI configuration. 2020-07-04 13:43:18 +01:00
Aaron Clauson 21a65756f5 Add Windows WSL build recommendation to temporarily disable Win32 PE support. 2020-06-29 13:25:59 +01:00
Aaron Clauson 085423b978 Remove GitHub Actions CI workflow. 2020-01-30 18:45:28 +00:00
Aaron Clauson 8e68bb1dde build: Disable msvc warning 4722 for leveldb build
This prevents AppVeyor from failing on a warning in leveldb's new
Windows environment.
2020-01-28 17:01:48 +01:00
Aaron Clauson be23949765 build: MSVC changes for leveldb update 2020-01-28 17:01:48 +01:00
Aaron Clauson 2bcc70531a Updated appveyor job to checkout a specific vcpkg commit ID. 2020-01-25 19:07:03 +00:00
Aaron Clauson 0874a109da Ignore msvc linker warning and update to msvc build instructions.
- Update Visual Studio instructions.
- Remove x64 platform conditional from bitcoin-qt project configuration.
- Set use native environment toolset to fix linker warning.
- Ignore linker warning about precompiled type information missing for test_bitcoin_qt.
2020-01-09 09:19:36 +00:00
Aaron Clauson 592af5ad3a Moved the include of the system projects to before the build depends on task. Otherwise it doesn't get run. 2019-12-13 14:01:52 +00:00
Aaron Clauson 6e2215187e Included test_bitcoin-qt in msvc build. 2019-12-13 12:07:32 +00:00
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 b0b1531737 Adds GitHub Action workflow which duplicates AppVeyor job. 2019-12-09 15:06:00 +00:00
Aaron Clauson 70ed2ab7ef Add unit test for DB creation with unicode path
An issue arose when attempting to switch back to the main repo version of leveldb when the bitcoin data directory uses a unicode path. The leveldb windows file IO wrapper was using the *A ANSI win32 calls instead of the Unicode *W ones. This unit test will catch if the path created by leveldb doesn't match what we're expecting. For more info see https://github.com/google/leveldb/issues/755.
2019-11-30 21:31:46 +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
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
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
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
Aaron Clauson 9063911017 sipsorcery gitian key. 2019-08-10 05:39:47 +02:00
Aaron Clauson 0646ca5ea2 Changes the verbosity of msbuild from quiet to normal in the appveyor script. Increasing the verbosity helps to identify the cause of build errors which is the main purpose of the appveyor script. 2019-07-31 10:00:02 +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
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
Aaron Clauson ef7beaea6a Visual Studio build configuration for Bitcoin Core 2018-08-10 09:19:00 +02:00
Aaron Clauson 822a2a33a7 Modified in_addr6 cast in CConman class to work with msvc. 2018-07-16 16:29:27 +10:00
Aaron Clauson abd58a2fca Fix for utiltime to compile with msvc. 2018-04-20 08:41:15 +10:00
Aaron Clauson f94c2ecb48 Fix for mismatched extern definition in wallet test classes which was breaking msvc linking. 2017-11-18 18:55:45 +11:00
Aaron Clauson 1cecea71ad doc: Specify required source location for Windows WSL builds
- Added steps to specify required source location for Windows WSL
  builds.
- Attempted to make the introduction and options for building on Windows
  clearer.
2017-11-17 14:31:05 +01:00
Aaron Clauson fbf327b138 Minimal code changes to allow msvc compilation. 2017-11-10 07:06:49 +11:00
Aaron Clauson 7383d77264 Updated instructions for Windows 10 Fall Creators Update. 2017-10-18 10:14:22 +11:00