Windows build question: Filesystem layout

Dirk Hohndel dirk at hohndel.org
Fri Jan 27 07:51:14 PST 2017


On Fri, Jan 27, 2017 at 04:22:54PM +0100, Anton Lundin wrote:
> > >
> > Ok, understood.
> > So that means it is also ok to merge everything more flat together to
> > really have only one source for both linux and windows?
> > 
> > Like this:
> > 
> > └── src
> >   ├── grantlee
> >   ├── install-root
> >   ├── libdivecomputer
> >   ├── libgit2
> >   ├── libcurl
> >   ├── libssh2
> >   ├── marble-source
> >   ├── subsurface	<-- source from git
> >   ├── mxe
> >   └── win32   <-- windows build dir

I think that should be ok.
The current scripts are basically me checking in what I use to build the
official binaries. So it's not a "brilliant plan" to allow combined
building, but iterative hacking until I had something that actually worked
(and then trying not to change it too much so it kept working).

> A bit OT, but anyway.
> 
> We could unify the infrastructure a bit between the different build
> environments. 
> 
> There is quite a bit of duplication between those. IE, only one file
> containing versions of our 3pp, and only download one source tar-ball.

I am not opposed to that. I just don't want to get to a point where this
makes it harder for me to do my builds which result in the "official"
binaries.

> It might be a fools eran, but for a autobuilder setup, it would probably
> help.

Sure. Just keep in mind that everything is built on different machines.
There is a Linux server that builds the Windows installer and creates the
source packages that are pushed to OBS and Launchpad and that also has the
Docker mechanism in place to create the AppImage. At least that last part
by its very nature will make it somewhat tricky to have just one set of
sources, but I guess it could be hacked to do the right thing.

Then there is a Mac (which at this point is actually a VM on a different
Mac) on which the Mac DMG is created and (in a completely different
process, even using a different build system - qmake) the iOS packages are
built.

And then there is an Arch Linux VM on that same Mac in which I am writing
this email, in which I host what I personally consider the "master"
repository, where I do most of the work when working on the sources, and
where I also build the Android packages.

Confused, yet?

In summary: it's a mess. Sure, it could be a slightly more streamlined
mess, but let's not kid ourselves, it will remain a mess. In order for me
to be able to test the different builds and be productive, I don't think
I'll be able to really reduce this to fewer systems. Having said that, I
am happy to see reasonable changes that make it easier for people other
than me to build their own binaries.

/D


More information about the subsurface mailing list