Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Windows build #1326

Merged
merged 1 commit into from
Feb 9, 2024
Merged

Add Windows build #1326

merged 1 commit into from
Feb 9, 2024

Conversation

argilo
Copy link
Member

@argilo argilo commented Dec 1, 2023

Fixes #1313.

Based on @cozycactus's work in #1325, I've added a Windows release to the build workflow. This is a prototype, and it has some limitations:

  • The code is unsigned, so Microsoft Defender SmartScreen will likely block execution. To bypass it, click More info → Run anyway.
  • Only RTL-SDR is supported so far. I don't expect it will be difficult to add other drivers, though.
  • Even though the RTL-SDR driver is available as an MSYS2 package, I had to build it from source because the packaged version crashes.
  • RTL-SDR Spectrum Server (rtl_tcp) is not supported because the gr-osmosdr module fails to build. It will need to be patched.

The build can be downloaded from the Artifacts section here: https://github.com/gqrx-sdr/gqrx/actions/runs/7055766990

Comment on lines +360 to +410
libb2-1.dll \
libboost_program_options-mt.dll \
libboost_thread-mt.dll \
libbrotlicommon.dll \
libbrotlidec.dll \
libbz2-1.dll \
libdouble-conversion.dll \
libfftw3f-3.dll \
libfftw3f_threads-3.dll \
libFLAC.dll \
libfmt.dll \
libfreetype-6.dll \
libgcc_s_seh-1.dll \
libglib-2.0-0.dll \
libgmp-10.dll \
libgnuradio-*.dll \
libgraphite2.dll \
libharfbuzz-0.dll \
libiconv-2.dll \
libicudt74.dll \
libicuin74.dll \
libicuuc74.dll \
libintl-8.dll \
libmd4c.dll \
libmp3lame-0.dll \
libmpg123-0.dll \
libogg-0.dll \
libopus-0.dll \
liborc-0.4-0.dll \
libpcre2-16-0.dll \
libpcre2-8-0.dll \
libpng16-16.dll \
librtlsdr.dll \
libsndfile-1.dll \
libSoapySDR.dll \
libspdlog.dll \
libstdc++-6.dll \
libusb-1.0.dll \
libvolk.dll \
libvorbis-0.dll \
libvorbisenc-2.dll \
libwinpthread-1.dll \
libzstd.dll \
zlib1.dll \
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had to put together this list of library dependencies manually. I wonder if there's a tool that could do this automatically (like dylibbundler on macOS).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can it be helpful?

What specifically were you looking at? It doesn't look like that project has any shared library dependencies like Gqrx does.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

- name: Clone and build GNU Radio
working-directory: ${{ runner.temp }}
run: |
git clone --depth 1 https://github.com/gnuradio/gnuradio.git
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We're building GNU Radio's main branch at the moment, since gnuradio/gnuradio#6971 is needed. Once that's backported we could switch to the maint-3.10 branch, and once a new release is out we could switch to e.g. v3.10.9.0.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The backport was made in gnuradio/gnuradio#6982, so I switched over to the maint-3.10 branch.

@willcode
Copy link
Contributor

willcode commented Dec 2, 2023

OK, I'll do that now.

@argilo
Copy link
Member Author

argilo commented Dec 3, 2023

RTL-SDR Spectrum Server (rtl_tcp) is not supported because the gr-osmosdr module fails to build. It will need to be patched.

I submitted a pull request to fix rtl_tcp (as well as Red Pitaya, which has the same bug): https://gitea.osmocom.org/sdr/gr-osmosdr/pulls/5

@argilo argilo force-pushed the add-windows-build branch 2 times, most recently from 3c4ad44 to cb59395 Compare December 4, 2023 22:01
@argilo
Copy link
Member Author

argilo commented Dec 4, 2023

I submitted a pull request to fix rtl_tcp (as well as Red Pitaya, which has the same bug): https://gitea.osmocom.org/sdr/gr-osmosdr/pulls/5

The patch was merged, so I enabled rtl_tcp and Red Pitaya support.

@cozycactus
Copy link
Contributor

it works with rlt-sdr stick on my windows 11

@kukabu
Copy link
Contributor

kukabu commented Dec 21, 2023

I think the '--depth=1' should be added to 'git clone' for speed up.

@argilo
Copy link
Member Author

argilo commented Dec 21, 2023

I think the '--depth=1' should be added to 'git clone' for speed up.

Where? I've already done that for gnuradio, which is the only big repository involved.

@kukabu
Copy link
Contributor

kukabu commented Dec 22, 2023

I think the '--depth=1' should be added to 'git clone' for speed up.

Where? I've already done that for gnuradio, which is the only big repository involved.

rtl-sdr and gr-osmosdr

@argilo argilo force-pushed the add-windows-build branch 2 times, most recently from 08aaa69 to 369b3d3 Compare February 9, 2024 19:18
@argilo argilo merged commit a5282fc into master Feb 9, 2024
24 checks passed
@argilo argilo deleted the add-windows-build branch February 9, 2024 20:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Why is there no Windows version?
5 participants