diff options
author | Jonas Jensen <jonas@semmle.com> | 2019-03-22 16:34:26 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2019-03-22 10:24:23 -0700 |
commit | 8facd937f86d913d94275abb80bfa4d2b181bbc6 (patch) | |
tree | 9316f38ea733929847901b5efd881f54a3222e60 /.lgtm.yml | |
parent | d104506f982955c7486a1bd931ba4fc98a516b5c (diff) | |
download | subsurface-8facd937f86d913d94275abb80bfa4d2b181bbc6.tar.gz |
Ubuntu 18.10 LGTM build
I'm about to update the build environment on lgtm.com from Ubuntu 18.04 to 18.10, and this breaks your project. It appears that [libgit2 now depends on libmbedtls](https://packages.ubuntu.com/cosmic/libgit2-dev), and it [didn't do this before](https://packages.ubuntu.com/bionic/libgit2-dev). By default, your project links statically with libgit2, but static linking requires specifying all dependencies of the library, and your builds doesn't specify libmbedtls. I'm working around the problem here by passing the `LIBGIT2_DYNAMIC` option to your CMake script, which makes libgit2 dynamically linked, and dynamically linked libraries don't need to have their transitive dependencies specified.
I'm taking this opportunity to make a few more changes to `.lgtm.yml` to prevent problems in the future when we upgrade the build environment.
1. Pass `-DNO_DOCS=ON` to avoid building things we don't need.
2. Pass `DCMAKE_VERBOSE_MAKEFILE=ON` for ease of debugging build problems.
3. Remove the manual list of dependency packages and instead rely on LGTM's automatic dependency detection. The manual dependency list contained version numbers and was therefore not likely to keep working over time. The automatic dependency detection only works in the `configure` and `index` steps, so I moved some lines from `after_prepare` to `configure`.
Signed-off-by: Jonas Jensen <jonas@semmle.com>
Diffstat (limited to '.lgtm.yml')
-rw-r--r-- | .lgtm.yml | 46 |
1 files changed, 8 insertions, 38 deletions
@@ -4,44 +4,14 @@ path_classifiers: extraction: cpp: - prepare: - packages: - - libxml2-dev - - libxslt1-dev - - libzip-dev - - libsqlite3-dev - - libusb-1.0-0-dev - - libssl-dev - - libssh2-1-dev - - libcurl4-gnutls-dev - - libkrb5-dev - - libhttp-parser-dev - - libgit2-dev - - libcrypto++-dev - - libqt5qml5 - - libqt5quick5 - - libqt5svg5-dev - - libqt5webkit5-dev - - libsqlite3-dev - - qml-module-qtlocation - - qml-module-qtpositioning - - qml-module-qtquick2 - - qt5-default - - qt5-qmake - - qtchooser - - qtconnectivity5-dev - - qtdeclarative5-dev - - qtdeclarative5-private-dev - - qtlocation5-dev - - qtpositioning5-dev - - qtscript5-dev - - qttools5-dev - - qttools5-dev-tools - - qtquickcontrols2-5-dev - after_prepare: - - export INSTALL_ROOT=/opt/out - - export PKG_CONFIG_PATH=$INSTALL_ROOT/lib/pkgconfig:$PKG_CONFIG_PATH - - bash -x ./scripts/build-libdivecomputer.sh + configure: + command: + - export INSTALL_ROOT=/opt/out + - export PKG_CONFIG_PATH=$INSTALL_ROOT/lib/pkgconfig:$PKG_CONFIG_PATH + - bash -x ./scripts/build-libdivecomputer.sh + - mkdir _lgtm_build_dir + - cd _lgtm_build_dir + - cmake -DLIBGIT2_DYNAMIC=ON -DNO_DOCS=ON -DCMAKE_VERBOSE_MAKEFILE=ON .. queries: - exclude: "cpp/short-global-name" |