Section 01

WSJT-X Development Environment

The complete build guide, reproduced from the project's index page โ€” from a bare MSYS2 install through to a signed-ready installer.

(a) Install MSYS2

C:\msys64

Accept all default installation options.

(b) Install the Toolchain

Launch the MSYS2 MINGW64 shell.

ImportantDo not use the MSYS2 MSYS shell or the UCRT64 shell.

Update the MSYS2 environment:

pacman -Syuu
NoteYou may need to repeat this command several times until no further updates are available.

Install the packages required to build WSJT-X and Hamlib with the following (concatenated) command:

pacman -S --needed \
  git make tar autoconf automake libtool \
  mingw-w64-x86_64-gcc \
  mingw-w64-x86_64-gcc-fortran \
  mingw-w64-x86_64-cmake \
  mingw-w64-x86_64-qt5-base \
  mingw-w64-x86_64-qt5-multimedia \
  mingw-w64-x86_64-qt5-serialport \
  mingw-w64-x86_64-qt5-svg \
  mingw-w64-x86_64-qt5-tools \
  mingw-w64-x86_64-qt5-websockets \
  mingw-w64-x86_64-qt5-activeqt \
  mingw-w64-x86_64-fftw \
  mingw-w64-x86_64-boost \
  mingw-w64-x86_64-libusb \
  mingw-w64-x86_64-portaudio \
  mingw-w64-x86_64-pkg-config \
  mingw-w64-x86_64-nsis \
  mingw-w64-x86_64-osslsigncode \
  mingw-w64-x86_64-ruby

Notes

pacman -S mingw-w64-x86_64-gcc

(c) Update Ruby and Install AsciiDoctor

Install AsciiDoctor by executing the following command:

gem install asciidoctor --no-document

You may see a message similar to:

A new release of RubyGems is available: 4.0.16 โ†’ 4.0.17!
Run `gem update --system 4.0.17` to update your installation.

Run the recommended command, for example:

gem update --system 4.0.17

Alternatively, update to the latest RubyGems release with:

gem update --system

(d) Clone the WSJT-X Source

cd ~
git clone https://github.com/WSJTX/wsjtx.git

(e) Alias dumpcpp in MSYS2

MSYS2 ships Qt's dumpcpp tool as dumpcpp-qt5, while the WSJT-X build expects it to be named dumpcpp.

ln -sf /mingw64/bin/dumpcpp-qt5.exe /mingw64/bin/dumpcpp.exe

(f) Install OmniRig

WSJT-X can optionally use the legacy OmniRig environment for CAT control under Windows. This remains the preferred approach for many of the WSJT-X core developers working with EME (Moonbounce) and Meteor Scatter equipment.

C:\Program Files (x86)\Afreet\OmniRig\OmniRig.exe

(g) Build Hamlib

ImportantWSJT-X is pinned to a specific Hamlib release. At the time of writing this is Version 4.7.2.

Enter the following commands:

git clone --depth 1 --branch 4.7.2 \
  https://github.com/Hamlib/Hamlib.git hamlib-src

cd hamlib-src

./bootstrap

./configure --prefix="$HOME/hamlib-prefix" \
  --enable-shared --disable-static \
  --without-cxx-binding --without-readline \
  CFLAGS="-DNDEBUG -g -O2 -fdata-sections -ffunction-sections" \
  LDFLAGS="-Wl,--gc-sections"

make -j$(nproc)

make install-strip

cd ..

Notes


WSJT-X Build Steps

Configure and Build WSJT-X

cd ~/wsjtx

OMNIRIG=$(cygpath "C:/Program Files (x86)/Afreet/OmniRig/OmniRig.exe")

cmake -G "MSYS Makefiles" -S . -B build \
  -DCMAKE_PREFIX_PATH="$HOME/hamlib-prefix" \
  -DCMAKE_INSTALL_PREFIX=C:/WSJT/wsjtx \
  -DOMNIRIG_TYPE_LIB="$OMNIRIG" \
  -DCMAKE_Fortran_FLAGS="-fallow-argument-mismatch -std=legacy" \
  -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
  -DWSJT_SKIP_MANPAGES=ON \
  -DWSJT_FORTRAN_LIBRARY_VARIANTS=OPENMP_ONLY \
  -Wno-author

cmake --build build -j$(nproc)

Notes


WSJT-X Deployment (from the build tree)

Not to be confused withThis is the source guide's own install/package section for a manual build. For running the pre-built build-wsjtx-menu.sh script instead, see the Deployment page in the menu.

(a) Install and Run not recommended

The build tree is not directly runnable.

The executables expect installed support files (such as ALLCALL7.TXT and cty.dat) to exist relative to the installed application, while the required Qt and Hamlib DLLs are also expected to be in their installed locations.

Installing places everything where WSJT-X expects it. This method bypasses the Windows installer and is intended only for development and testing.

cmake --build build --target install

Notes

(b) Build an Installer preferred

The preferred deployment method is to build a standard Windows installer. This integrates correctly with Windows application management and provides a clean installation and removal process.

cmake --build build --target package

Notes


See also

Ready to run the finished menu script instead of building manually? See Deployment.