On 27.08.2016 22:45, Joseph Rushton Wakeling wrote:
I thought I'd have a go at making a snap of LDC, the LLVM-based compiler for the
D programming language.  I recognize that snapping a compiler might be jumping
ahead of the current intended use-case(s), but it's fun to see what could be
possible -- and besides, D's compilers are updated fairly often, so it would be
great to be able to package them easily in a truly cross-distro form.

OK, a certain amount of wailing and gnashing of teeth later (and following some great help here and from the LDC devs -- big thanks to all!), I have a provisional first working setup (as in, at least, "Works For Me").

First, here's my snapcraft.yaml:
https://gist.github.com/WebDrake/6ad7e5fe48abc999460cb67a31972afe

So, put this in a working directory, and run `snapcraft stage`.

Now edit stage/etc/ldc2.conf and replace it with this:
https://gist.github.com/WebDrake/65cb3aaa355ea325af98d58f8ca52e3f

... and run `snapcraft prime`.

Now create a file `prime/bin/gcc.wrapper` with the following contents:
https://gist.github.com/WebDrake/0081628d70b61e271006c9b8fa3454ef

(This is basically the command-gcc.wrapper that would be generated if I were exposing the gcc command outside the snap, but minus the path-related stuff that I presume is the objectionable part of using that wrapper.)

Now run `snapcraft snap` to finish things up, install, and ... voilĂ , a working LDC snap.

So, with something provisionally working, questions:

  * anything obvious that I could do better in the general setup?

  * is there any way to automate some of the stages of the above,
    e.g. the editing of stage/etc/ldc2.conf or the generation of
    prime/bin/gcc.wrapper ... ?

For the second point, obviously I could create a makefile or other script to run things, but I wondered if there was any support in snapcraft itself for running simple post-stage or post-prime hooks ... ?

Thanks again and best wishes,

    -- Joe

--
Snapcraft mailing list
[email protected]
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/snapcraft

Reply via email to