Building SV v3.1 on Windows¶
Versions 3.0+ of Sonic Visualiser are primarily 64-bit for Windows, although the 32-bit version is still supported.
- Both builds can be run from Qt Creator, or from a command prompt using batch build scripts provided. The release packages are built using the batch scripts.
- The 64-bit version is built using the Microsoft Visual C++ compiler. Install 64-bit Microsoft Visual Studio 2017 Community Edition and then Qt 5.11 (or latest 5.x).
- The 32-bit version is built using the MinGW compiler. Install Qt 5.11 (or latest 5.x) with Qt Creator and ensure that the 32-bit MinGW option is available.
- The official 64-bit installer also includes some helper binaries from the 32-bit build, enabling it to use 32-bit Vamp plugins as well as 64-bit ones. So to make our official 64-bit installer, we actually have to complete both builds.
- The installers are built using WiX, so you must have that installed. The path to WiX is hardcoded in our script and at the time of writing it assumes WiX v3.11.
- We use the Repoint source dependency manager. Ensure the required SML runtime for this is available (either SML/NJ or Poly/ML), and then run
.\repoint install
in a command prompt or Powershell window before opening a build project or starting a build.
- We carry out automatic CI builds with AppVeyor, and you can refer to the
.appveyor.yml
file in the SV repository root to see how these builds are run.
In both cases (32 and 64 bit) the dependent libraries we use are found in the sv-dependency-builds
subrepo. Prior to the switch to using the Repoint dependency manager, this subrepo was checked out by Mercurial as a matter of course with the SV repo; after the switch to Repoint, it is one of the library modules that is installed by running .\repoint install
. There should be no other external dependencies besides Qt and the runtime libraries it needs.
Which SV branch to use¶
Use the default
branch of the SV Mercurial repo unless you have a particular reason to know otherwise.
32-bit build¶
Build with Qt Creator¶
This process is similar to that introduced in v2.1 (see WindowsBuild21), except that we now do use a shadow build.
- Check out the correct branch (probably
default
as described above) - Run
.\repoint install
to get the code dependencies - Open the main
sonic-visualiser.pro
project in Qt Creator - Set up a release build using Desktop Qt 5.11.0 MinGW 32-bit as a shadow build
- "Run qmake" and "Rebuild All"
There is still one unresolved manual step before you can run Sonic Visualiser:
- Go to the build directory (e.g.
build-sonic-visualiser-Desktop_Qt_5_11_0_MinGW_32bit-Release
) and copy the filechecker\release\vamp-plugin-load-checker.exe
to the top-levelrelease
directory
If the build was successful, you should now be able to run Sonic Visualiser from within the IDE. (You can't yet run the binary from the Windows Explorer, as Qt and other dependencies won't be found.)
You can also run individual unit test suites by selecting them as target executable in Qt Creator.
Build using batch script¶
- Check out the correct branch (probably
default
as described above) - Open a command prompt and cd to the main
sonic-visualiser
directory - Run
deploy\win64\build-32.bat
(yes, it is in thewin64
directory)
The built executables will be left in build-win32\release
.
Note that the build script also copies in the necessary Qt and C++ runtime libraries for the executables, so it should be possible to run the resulting application just by opening build-win32\release\Sonic Visualiser.exe
from Windows Explorer.
64-bit build¶
Build with Qt Creator¶
- Check out the correct branch (probably
default
as described above) - Run
.\repoint install
to get the code dependencies - Open the main
sonic-visualiser.pro
project in Qt Creator - Set up a release build using Desktop Qt 5.11.0 MSVC 64-bit as a shadow build
- "Run qmake" and "Rebuild All"
If the code is already checked out for a 32-bit build, then it should be possible to add or select the 64-bit MSVC "kit" as a target in Qt Creator and then build that from the same directory as a separate shadow build, rather than having to check out the code again.
And we have the same unresolved manual step as for the 32-bit build:
- Go to the build directory (e.g.
build-sonic-visualiser-Desktop_Qt_5_11_0_MSVC2015_64bit-Release
) and copy the filechecker\release\vamp-plugin-load-checker.exe
to the top-levelrelease
directory
If the build was successful, you should now be able to run Sonic Visualiser from within the IDE. (You can't yet run the binary from the Windows Explorer, as Qt and other dependencies won't be found.)
You can also run individual unit test suites by selecting them as target executable in Qt Creator.
Build using batch script¶
- Check out the correct branch (probably
default
as described above) - Open a command prompt and cd to the main
sonic-visualiser
directory - Run
deploy\win64\build-64.bat
The built executables will be left in build-win64\release
.
Note that the build script also copies in the necessary Qt and C++ runtime libraries for the executables, so it should be possible to run the resulting application just by opening build-win32\release\Sonic Visualiser.exe
from Windows Explorer.
Installers¶
We create both 32-bit and 64-bit installers at the same time using the script deploy\win64\build-and-package.bat
. This does a complete rebuild from clean every time it is run.
The 64-bit installer needs files from both the 64- and 32-bit builds.
The general principle is that the script runs both the build-32
and build-64
batch scripts, then runs WiX twice using two separate installer definition files. The 32-bit installer is defined by deploy\win32\sonic-visualiser.wxs
and the 64-bit one by deploy\win64\sonic-visualiser.wxs
. Both files have the SV version and C++-runtime-related paths hardcoded, so they will need inspecting and updating for each new release.