Here are instructions for how to build DigiRite from source using freely available downloads. There are two zip files to download and unzip first, and you must install Microsoft’s Visual Studio. VS2019 Community Edition instructions are detailed below.
Building the executable is straightforward, although there are a number of steps. The result of the build is a directory with a number of .exe and .dll files. All those files are required to run DigiRite.
Getting WriteLog to load your version of DigiRite requires updating some registry entries. See the final step in the instructions below.
Start by downloading the prerequisites:
- Boost is required. Version 1.67 is the most recently tested with DigiRite.
- The already-built FORTRAN codes from wsjtx, as built by W5XD.
For both of the above, once downloaded, choose a directory and unzip. There is no need to build the boost libraries. Just unzip. For the snapshots below, I unzipped into my Documents folder.
One more download. You need Visual Studio. This series of snapshots shows downloading Visual Studio 2019 Community Edition. Don’t overlook the checkboxes in the “Windows(3)” section, the checkbox on “.NET desktop development” and the checkbox on “Desktop development with C++”. It takes a while to get it downloaded.
Building DigiRite for the first time involves these steps (here’s a movie)
- Bring up Visual Studio.
- Its not in the movie, but the first time you run Visual Studio, it will want you to login to a Microsoft account, but will allow you to “not now, maybe later.” You may safely take the “not now” button. However, if you plan to update your local DigiRite over time with anything new published on github, Microsoft will require you to create a (free) account in order to run Visual Studio past about 30 days. Any of the initial Visual Studio settings will work, but I used “Visual C++” to make the movie.
- Click the “continue without code” button. We have to manually type in the github URL below.
- Switch to the “Team Explorer” tab
- If the title of the Team Explorer is not “Connect” (e.g. it says “Home”) then click on the “Manage Connections” icon (the green plug-shapped icon.)
- Click the Clone button
- Type in (or copy/paste):
- Make sure the “Recursively Clone Submodules” checkbox is ON.
- Click the “Clone” button
- In the Solution Explorer tab, open the “Digi-XDft” tree item. There are two .props files that must be modified to indicate where you unzipped boost and where you unzipped XDwsjt.
- Double click the XDwsjtFt.props item in the Solution view.
- Replace the path for XDwsjtFtSdkDir with your downloaded path. Ensure a trailing backslash.
- Click the Save button and the “x” to close the XDwsjtFt.props view
- Similarly for the WsjtxBoost.props file. Ensure a trailing semi-colon and no backslash.
- Its time to do the build. There are two solutions (.sln files) to build. You can see them in the “Switch Views” drop down.
- XDft.sln must be built first. It will ask to upgrade to the latest Visual Studio. Click OK to allow the upgrade.
- Switch to the Release configuration and x86 (The x64 build will succeed, but running it in combination with WriteLog is not supported at this time.)
- F6 to build.
- Once built, use the Switch Views button in Solution Explorer to switch to DigiRite.sln
- You may ignore an error loading the InstallDigiRite project unless and until you want to make your build run on another PC. More on that process and how to resolve that error below.
- Switch to Release and x86 as you did with the XDft solution.
- F6 again and its built!
Where did Visual Studio hide the results? Here are some snapshots to help find the executable as built. Use the Solution Explorer Switch Views button to go to the “Digi-Rite” view, right mouse click on Digi-Rite, and, finally, “Open Folder in File Explorer.” The entire build directory, bin\x86\Release, is required to run DigiRite, but the (typically huge) .pdb files are not needed and may be deleted.
Run Register.exe just once in your build folder and it will make the necessary Windows registry changes to make WriteLog’s right mouse click in its Entry Window use your new build.
Run on another machine
- You should change the text in the AssemblyVersionInfo.cs file in the build area to identify yourself. And also in Product.wxs for the same purpose.
- Install WIX version 3.11.latest from https://wixtoolset.org/releases/.
- You must build the InstallDigiRite project, which in turn requires the WIX installer, and the Visual Studio Toolset Extension for your version of Visual Studio. Get them both from the page in the previous step. You might have to right click on the InstallDigiRite project in Visual Studio’s Solution View and “Reload” it.
- Your Visual Studio build will now produce DigiRiteOpenSource.msi, which you may rename as appropriate.
- The Visual Studio 2019 C++ runtime is required for DigiRite to run on the target machine, but is not part of the msi kit. Users of your msi may have to go here for the runtime: https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads.
How to build a new DigiRite release
When a new version of DigiRite is published, it is as source code on github into the same repository as documented above—the script fetches the most recent sources at the time you run it. You may build the new release using the same instructions as above, but choose a different folder to fetch into when you “Clone”.
But if you don’t want to have to edit those props files again, you can fetch the most recent sources into your previous work directory and rebuild both solutions. Unfortunately, Visual Studio’s built in git support appears unable to fetch git submodules, so the way to do this is from a command line version of git. Here is git command line tool available for download: https://git-scm.com/downloads.
Once downloaded and installed, open a git command window, change directory to the one you fetched the previous version and type these commands:
git pull origin master git submodule update --init --recursive
Go back to Visual Studio, close the DigiRite projects and then open them again, in order, XDft.sln first and build it (Release configuration, and x86) then open DigiRite.sln and build it (Release configuration and x86).