From a85598a0e72c6ff667c5c4126460076754bf3cc4 Mon Sep 17 00:00:00 2001 From: Jonas Jensen Date: Fri, 22 Mar 2019 16:34:26 +0100 Subject: [PATCH] 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 --- .lgtm.yml | 46 ++++++++-------------------------------------- 1 file changed, 8 insertions(+), 38 deletions(-) diff --git a/.lgtm.yml b/.lgtm.yml index ce547bac8..f5dc37d57 100644 --- a/.lgtm.yml +++ b/.lgtm.yml @@ -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"