ldc2.snap:1.12

Last commit made on 2019-04-02
Get this branch:
git clone -b 1.12 https://git.launchpad.net/ldc2.snap

Branch merges

Branch information

Name:
1.12
Repository:
lp:ldc2.snap

Recent commits

6b36f7a... by Joseph Wakeling

Update to LDC 1.12.0 stable release and LLVM 7.0.1

https://github.com/ldc-developers/ldc/releases/tag/v1.12.0
https://github.com/ldc-developers/llvm/releases/tag/ldc-v7.0.1

Besides the update, with this release we can drop the custom `DFLAGS` as
these are now automatically generated courtesy of `BUILD_LTO_LIBS=ON`:
https://github.com/ldc-developers/ldc/commit/587e547586c09669c172cf63f6085cfd422de5cc

We also need to switch out the `ldc-bootstrap` D compiler from the deb
package in 16.04 to a more up to date `build-snap`, as the frontend no
longer builds with v0.17.1 (!).

e4a9cac... by Joseph Wakeling

Rework ldc-bootstrap to use the same compiler version as the release

LDC v1.12.0+ supports LLVM 7, but v0.17.6 does not. This means that to
build more recent LDC releases with the latest LLVM we will either need
to build multiple LLVMs (!) or change the bootstrap compiler.

This patch therefore implements a technique already used by upstream LDC
package builds: the bootstrap compiler is the same version as the one to
be released, built with minimal features using the host system's LDC but
the latest LLVM. This means that we can take advantage of the most up
to date compiler features when building the final release.

Note that an alternative would be to use `build-snaps` for the LDC used
to build `ldc-bootstrap`. This is avoided for now since avoiding having
any snap-package dependencies should make it easier to build the package
on a wider variety of systems.

One consequence of this change is that we need to use an override-build
to ensure that we use Ninja as the cmake build backend, as we already do
for the main LDC build.

342314a... by Joseph Wakeling

Update to LDC 1.11.0 stable release

https://github.com/ldc-developers/ldc/releases/tag/v1.11.0

eb83cf0... by Joseph Wakeling

Update license file to match that of LDC 1.10

This adds a missing reference to the `ldc-jit-rt` library.

887b7c0... by Joseph Wakeling

Explicitly manage license file to avoid snapcraft 3 deprecation

Placing `license.txt` in the `snap` folder was always a rather flaky way
to get it in the package, and snapcraft 3 does not like arbitrary files
being placed here. This patch therefore creates a new part which places
the license file in the `$SNAP/doc` directory of the generated package.

490b6ff... by Joseph Wakeling

Add /snap/bin to path in Azure Pipelines build

This is a small tweak that avoids us having to explicitly invoke the
full path to snapcraft, and may help in future if we need or want to
install other snap packages to help the build.

dc32a99... by Joseph Wakeling

Bring LLVM targets up to date with LDC upstream

This patch adds Mips and MSP430 regular LLVM targets together with the
RISCV and WebAssembly experimental targets, matching what is done with
the upstream LDC binary packages.

The targets have also been alphabetized for easy discovery.

13462f5... by Joseph Wakeling

Temporarily switch to using --candidate channel to install snapcraft

This will install snapcraft 3.2, which should solve the repeated build
problems we have been having with this package.

Explanation of the problem here:
https://forum.snapcraft.io/t/psa-classic-confinement-and-core-snapcraft-issue/10149

7f52c51... by Joseph Wakeling

Run apt-get update before attempting to build snap

This was an oversight in the original CI script, and looks like it may
be causing us some issues with packages not being found.

69a93de... by Joseph Wakeling

Add bash autocompletion for ldc2

This patch takes advantage of snapcraft's support for tab completion via
the app `completer:` field. Unfortunately bash-completion settings are
not currently available for the other apps, so cannot be included.