All following steps are to be done in a MinGW64 shell (notin a MSYS shell, which also getsinstalled by the MSYS2 installer)
pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake mingw-w64-x86_64-make
pacman -S mingw-w64-x86_64-glm mingw-w64-x86_64-libsigc++ mingw-w64-x86_64-gtkmm3 mingw-w64-x86_64-yaml-cpp mingw-w64-x86_64-glew

git config submodule.recurse true

cd ~
git clone https://github.com/anthonix/ffts.git
cd ~
cd ffts
mkdir build
cd build
cmake -G"MinGW Makefiles" --enable-sse -DCMAKE_INSTALL_PREFIX=$MSYSTEM_PREFIX -DENABLE_SHARED=ON -DCMAKE_BUILD_TYPE=Release ..
mingw32-make -j8
mingw32-make install

#####################################
# For Release build Windows
#####################################
cd ~
git clone https://github.com/azonenberg/scopehal-apps.git --recurse -submodules

cd ~
cd scopehal-apps
mkdir build
cd build
cmake -G"MinGW Makefiles" -DBUILD_TESTING=OFF -DCMAKE_BUILD_TYPE=Release ..
mingw32-make -j8

cd ~
mkdir glscopeclient_build_release
cd ./scopehal-apps/build
cp C:/msys64/mingw64/bin/libstdc++-6.dll ~/glscopeclient_build_release/
cp ./src/glscopeclient/glscopeclient.exe ~/glscopeclient_build_release/
cp -r ../src/glscopeclient/gradients ~/glscopeclient_build_release/
cp -r ../src/glscopeclient/icons ~/glscopeclient_build_release/
cp -r ../src/glscopeclient/masks ~/glscopeclient_build_release/
cp -r ../src/glscopeclient/shaders ~/glscopeclient_build_release/
cp -r ../src/glscopeclient/styles ~/glscopeclient_build_release/
cp ./lib/graphwidget/libgraphwidget.dll ~/glscopeclient_build_release/
cp ./lib/log/liblog.dll ~/glscopeclient_build_release/
cp ./lib/scopehal/libscopehal.dll ~/glscopeclient_build_release/
cp ./lib/scopeprotocols/libscopeprotocols.dll ~/glscopeclient_build_release/

#####################################
# For Dev/Debug build Windows
#####################################
cd ~
git clone https://github.com/azonenberg/scopehal-apps.git --recurse -submodules

cd ~
cd scopehal-apps
mkdir build
cd build
cmake -G"MinGW Makefiles" -DBUILD_TESTING=OFF ..
mingw32-make -j8

cd ~
mkdir glscopeclient_build_debug
cd ./scopehal-apps/build
cp C:/msys64/mingw64/bin/libstdc++-6.dll ~/glscopeclient_build_debug/
cp ./src/glscopeclient/glscopeclient.exe ~/glscopeclient_build_debug/
cp -r ../src/glscopeclient/gradients ~/glscopeclient_build_debug/
cp -r ../src/glscopeclient/icons ~/glscopeclient_build_debug/
cp -r ../src/glscopeclient/masks ~/glscopeclient_build_debug/
cp -r ../src/glscopeclient/shaders ~/glscopeclient_build_debug/
cp -r ../src/glscopeclient/styles ~/glscopeclient_build_debug/
cp ./lib/graphwidget/libgraphwidget.dll ~/glscopeclient_build_debug/
cp ./lib/log/liblog.dll ~/glscopeclient_build_debug/
cp ./lib/scopehal/libscopehal.dll ~/glscopeclient_build_debug/
cp ./lib/scopeprotocols/libscopeprotocols.dll ~/glscopeclient_build_debug/

How to Debug scopeSession
Debug workaround with gdb:
cd ~
cd glscopeclient_build_release
export OMP_WAIT_POLICY=PASSIVE
winpty gdb ./glscopeclient.exe
set args spi-compressed.scopesession
run
Ctrl-C

How to Debug Rigol MSO5000 Ethernet
Debug workaround with gdb:
cd ~
cd glscopeclient_build_release
export OMP_WAIT_POLICY=PASSIVE
winpty gdb ./glscopeclient.exe
set args --debug RigolMSO5k:rigol:lan:192.168.0.10:5555
run
Ctrl-C

In case of crash SIGSEGV
cd ~
cd glscopeclient_build
export OMP_WAIT_POLICY=PASSIVE
winpty gdb ./glscopeclient.exe
set args --debug RigolMSO5k:rigol:lan:192.168.0.10:5555
catch fork
catch vfork
set follow-fork-mode child
run
Ctrl-C

where


run glscopeclient --debug myscope:demo:null:null
<azonenberg> or just launch with no args and select the "demo" driver and null transport

How to Debug Demo
Debug workaround with gdb:
cd ~
cd glscopeclient_build_release
export OMP_WAIT_POLICY=PASSIVE
winpty gdb ./glscopeclient.exe
set args --debug myscope:demo:null:null
catch throw
catch catch
catch fork
catch vfork
set follow-fork-mode child
run
Ctrl-C

b TestWaveformSource.cpp:280


frame 1
print *p
(gdb) print *p
$1 = {offsets = 0x0, ws = 0x0, oe_ws = 0x0, eo_ws = 0x0, ee_ws = 0x0, is = 0x0, ws_is = 0x0, i0 = 0, i1 = 0, n_luts = 0, N = 131071,
  lastlut = 0x0, transform = 0x6a4c45ea <ffts_execute_1d_real>, transform_base = 0x0, transform_size = 0, constants = 0x0, plans = 0xea61b70,
  rank = 1, Ns = 0x0, Ms = 0x0, buf = 0x12e1f780, transpose_buf = 0x0, destroy = 0x6a4c453c <ffts_free_1d_real>, A = 0x12e9f7e0,
  B = 0x12f1f840, i2 = 0}

bt
frame
where
thread apply all bt
info locals
info args
print varname
display/i $pc
display /3i $pc
print r14



layout asm
=> Crash gdb ??
