From 02c4f917259c0a635c319f6ffe9e8489954264ab Mon Sep 17 00:00:00 2001 From: jennerl Date: Thu, 25 Feb 2021 09:13:16 -0600 Subject: [PATCH] moved conditional logic around download/install into make (vs. qmake) --- QGCExternalLibs.pri | 43 +++++++++++++++++++------------------------ 1 file changed, 19 insertions(+), 24 deletions(-) diff --git a/QGCExternalLibs.pri b/QGCExternalLibs.pri index 8ee5734..23702df 100644 --- a/QGCExternalLibs.pri +++ b/QGCExternalLibs.pri @@ -230,32 +230,27 @@ contains (DEFINES, DISABLE_AIRMAP) { DEFINES += QGC_AIRMAP_ENABLED } } else:LinuxBuild { - exists("$${AIRMAP_PLATFORM_SDK_PATH}/linux/$$AIRMAP_QT_PATH") { - #-- We have a cached copy..don't download and install again - LIBS += -L$${AIRMAP_PLATFORM_SDK_PATH}/linux/$$AIRMAP_QT_PATH -lairmap-qt - DEFINES += QGC_AIRMAP_ENABLED - } else { - #-- Download and install platform-sdk libs and headers - AIRMAP_PLATFORM_SDK_URL = "https://github.com/airmap/platform-sdk/releases/download/v1.1/airmap-platform-sdk-1.1.0-Linux.deb" - AIRMAP_PLATFORM_SDK_FILENAME = "airmap-platform-sdk.deb" - AIRMAP_PLATFORM_SDK_INSTALL_PREFIX = "airmap-platform-sdk" + #-- Download and install platform-sdk libs and headers iff they're not already in the build directory + AIRMAP_PLATFORM_SDK_URL = "https://github.com/airmap/platform-sdk/releases/download/v1.1/airmap-platform-sdk-1.1.0-Linux.deb" + AIRMAP_PLATFORM_SDK_FILENAME = "airmap-platform-sdk.deb" + AIRMAP_PLATFORM_SDK_INSTALL_PREFIX = "airmap-platform-sdk" - airmap_platform_sdk_install.target = install_airmap_platform_sdk - airmap_platform_sdk_install.commands = \ - (mkdir -p "$${AIRMAP_PLATFORM_SDK_PATH}/linux/$${AIRMAP_QT_PATH}") && \ - (mkdir -p "$${AIRMAP_PLATFORM_SDK_PATH}/include/airmap") && \ - (wget -q -O "$${OUT_PWD}/$${AIRMAP_PLATFORM_SDK_FILENAME}" "$${AIRMAP_PLATFORM_SDK_URL}" && dpkg -x "$${AIRMAP_PLATFORM_SDK_FILENAME} $${AIRMAP_PLATFORM_SDK_PATH}/") && \ - (mv "$${AIRMAP_PLATFORM_SDK_PATH}/$${AIRMAP_PLATFORM_SDK_INSTALL_PREFIX}/lib/*" "$${AIRMAP_PLATFORM_SDK_PATH}/linux/$${AIRMAP_QT_PATH}/") && \ - (mv "$${AIRMAP_PLATFORM_SDK_PATH}/$${AIRMAP_PLATFORM_SDK_INSTALL_PREFIX}/include/airmap/*" "$${AIRMAP_PLATFORM_SDK_PATH}/include/airmap/") && \ - (rm -rf "$${AIRMAP_PLATFORM_SDK_PATH}/$${AIRMAP_PLATFORM_SDK_INSTALL_PREFIX}") && \ - (rm "$${AIRMAP_PLATFORM_SDK_FILENAME}") - airmap_platform_sdk_install.depends = ${AIRMAP_PLATFORM_SDK_PATH} - QMAKE_EXTRA_TARGETS += airmap_platform_sdk_install - PRE_TARGETDEPS += $$airmap_platform_sdk_install.target + airmap_platform_sdk_install.target = install_airmap_platform_sdk + airmap_platform_sdk_install.commands = \ + test -e "$${AIRMAP_PLATFORM_SDK_PATH}/include/airmap" || \ + (mkdir -p "$${AIRMAP_PLATFORM_SDK_PATH}/linux/$${AIRMAP_QT_PATH}" && \ + mkdir -p "$${AIRMAP_PLATFORM_SDK_PATH}/include/airmap" && \ + wget -q -O "$${OUT_PWD}/$${AIRMAP_PLATFORM_SDK_FILENAME}" "$${AIRMAP_PLATFORM_SDK_URL}" && dpkg -x "$${AIRMAP_PLATFORM_SDK_FILENAME} $${AIRMAP_PLATFORM_SDK_PATH}/" && \ + mv -u "$${AIRMAP_PLATFORM_SDK_PATH}/$${AIRMAP_PLATFORM_SDK_INSTALL_PREFIX}/lib/*" "$${AIRMAP_PLATFORM_SDK_PATH}/linux/$${AIRMAP_QT_PATH}/" && \ + mv -u "$${AIRMAP_PLATFORM_SDK_PATH}/$${AIRMAP_PLATFORM_SDK_INSTALL_PREFIX}/include/airmap/*" "$${AIRMAP_PLATFORM_SDK_PATH}/include/airmap/" && \ + rm -rf "$${AIRMAP_PLATFORM_SDK_PATH}/$${AIRMAP_PLATFORM_SDK_INSTALL_PREFIX}" && \ + rm "$${AIRMAP_PLATFORM_SDK_FILENAME}") + airmap_platform_sdk_install.depends = + QMAKE_EXTRA_TARGETS += airmap_platform_sdk_install + PRE_TARGETDEPS += $$airmap_platform_sdk_install.target - LIBS += -L$${AIRMAP_PLATFORM_SDK_PATH}/linux/$$AIRMAP_QT_PATH -lairmap-qt - DEFINES += QGC_AIRMAP_ENABLED - } + LIBS += -L$${AIRMAP_PLATFORM_SDK_PATH}/linux/$$AIRMAP_QT_PATH -lairmap-qt + DEFINES += QGC_AIRMAP_ENABLED } else { message("Skipping support for Airmap (unsupported platform)") }