discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Update on windows installer


From: Geof Nieboer
Subject: Update on windows installer
Date: Mon, 4 Jan 2021 00:42:31 -0500

All,

Just wanted to drop a note that while I have not released an installer for a bit, there is in fact work in progress.

The longer version... 

The original installers used Py2.7, which was designed to use VS 2008.. which then forced packages to use the same compiler...  But GR 3.7 required newer compilers... the net result was that handy tools like "pip" and most pre-built binaries were nearly useless due to ABI conflicts, and everything in those packages had to be built from scratch with VS 2015... So the Win64 build scripts have painful manual compilation of libraries never originally intended for windows, and built with VS 2015+ consistently.

THIS in work version, using python 3.x, does not have this issue, as VS 2015/17/19 are pretty much cross-compatible now and the expected compilers for Py3 versions.  As a result, we can use the nifty "vcpkg" project to do most of the dependency heavy lifting, and get standard packages from pip.  Plus 64-bit packages are now pretty much standard.

The good news here is that the final product will be simpler to maintain, as now windows-unique issues will be handled upstream, and the installer scripts will just need to handle GNURadio and a handful of specialized packages not found elsewhere.  And for 95% of the packages, a single line of script code will add the package.  So that means more rapid turnaround of releases, and inching closer to be able to integrate into a CI framework.

The bad news is that 5%.  Things like the most recent numpy (1.19.4) being completely broken on windows... most of that 5% is in my personal nemesis, gobject-introspection, which is not currently supported by vcpkg, and is required by GTK.  This library is a nightmare to build... but I am working to try to add it to the vcpkg ports.  To add it to vcpkg of course now requires upgrading other glib components... and if I may rant for a moment, the build chain for GI in vcpkg is [sometimes]:
vcpkg calls cmake
cmake calls meson
meson calls ninja
ninja calls python
python calls C compiler to build extension
extension scans C header files to build XML files

each step making their own unique changes to the build environment, and they may or may not pass error information verbatim upstream... what could go wrong??  Right now I'm stuck with an extraordinarily helpful error "non-zero exit status 3221225781" from someplace in the gir data generation phase.  It's a nightmare :).

BUT... It will eventually be completed one way or another, so wanted the community to know it's not been dropped.

Geof


reply via email to

[Prev in Thread] Current Thread [Next in Thread]