diff --git a/ground/gcs/copydata.pro b/ground/gcs/copydata.pro index ab43eb464..957b81363 100644 --- a/ground/gcs/copydata.pro +++ b/ground/gcs/copydata.pro @@ -14,7 +14,6 @@ equals(copyqt, 1) { libQt5Svg.so.5 \ libQt5Test.so.5 \ libQt5Xml.so.5 \ - libQt5Declarative.so.5 \ libQt5XmlPatterns.so.5 \ libQt5Script.so.5 \ libQt5Concurrent.so.5 \ @@ -27,10 +26,12 @@ equals(copyqt, 1) { libQt5Qml.so.5 \ libQt5DBus.so.5 \ libQt5QuickParticles.so.5 \ + libQt5XcbQpa.so.5 \ + libQt5X11Extras.so.5 \ libqgsttools_p.so.1 \ - libicui18n.so.53 \ - libicuuc.so.53 \ - libicudata.so.53 + libicui18n.so.54 \ + libicuuc.so.54 \ + libicudata.so.54 for(lib, QT_LIBS) { addCopyFileTarget($${lib},$$[QT_INSTALL_LIBS],$${GCS_QT_LIBRARY_PATH}) } @@ -45,6 +46,7 @@ equals(copyqt, 1) { mediaservice/libgstaudiodecoder.so \ mediaservice/libgstmediaplayer.so \ platforms/libqxcb.so \ + xcbglintegrations/libqxcb-glx-integration.so \ sqldrivers/libqsqlite.so } @@ -62,7 +64,6 @@ equals(copyqt, 1) { Qt5Svg$${DS}.dll \ Qt5Test$${DS}.dll \ Qt5Xml$${DS}.dll \ - Qt5Declarative$${DS}.dll \ Qt5XmlPatterns$${DS}.dll \ Qt5Script$${DS}.dll \ Qt5Concurrent$${DS}.dll \ @@ -73,9 +74,9 @@ equals(copyqt, 1) { Qt5Quick$${DS}.dll \ Qt5QuickWidgets$${DS}.dll \ Qt5Qml$${DS}.dll \ - icuin53.dll \ - icudt53.dll \ - icuuc53.dll + icuin54.dll \ + icudt54.dll \ + icuuc54.dll # it is more robust to take the following DLLs from Qt rather than from MinGW QT_DLLS += libgcc_s_dw2-1.dll \ libstdc++-6.dll \ diff --git a/ground/gcs/src/app/main.cpp b/ground/gcs/src/app/main.cpp index f13bcec76..c8260c953 100644 --- a/ground/gcs/src/app/main.cpp +++ b/ground/gcs/src/app/main.cpp @@ -285,6 +285,11 @@ void mainMessageOutput(QtMsgType type, const QMessageLogContext &context, const case QtDebugMsg: out << "DBG: "; break; +#if (QT_VERSION >= QT_VERSION_CHECK(5, 5, 0)) + case QtInfoMsg: + out << "INF: "; + break; +#endif case QtWarningMsg: out << "WRN: "; break; diff --git a/ground/gcs/src/libs/osgearth/osgearth_dependencies.pri b/ground/gcs/src/libs/osgearth/osgearth_dependencies.pri index df284d3a8..3002dbe9f 100644 --- a/ground/gcs/src/libs/osgearth/osgearth_dependencies.pri +++ b/ground/gcs/src/libs/osgearth/osgearth_dependencies.pri @@ -14,16 +14,18 @@ linux { } LIBS +=-lOpenThreads - LIBS += -losg -losgUtil -losgDB -losgGA -losgFX -losgViewer -losgText -losgQt - LIBS += -losgEarth -losgEarthUtil -losgEarthFeatures -losgEarthSymbology -losgEarthAnnotation -losgEarthQt + LIBS += -losg -losgUtil -losgDB -losgGA -losgFX -losgViewer -losgText + LIBS += -losgEarth -losgEarthUtil -losgEarthFeatures -losgEarthSymbology -losgEarthAnnotation + LIBS += -losgQt -losgEarthQt } macx { LIBS += -L$$OSG_SDK_DIR/lib LIBS += -lOpenThreads - LIBS += -losg -losgUtil -losgDB -losgGA -losgFX -losgViewer -losgText -losgQt - LIBS += -losgEarth -losgEarthUtil -losgEarthFeatures -losgEarthSymbology -losgEarthAnnotation -losgEarthQt + LIBS += -losg -losgUtil -losgDB -losgGA -losgFX -losgViewer -losgText + LIBS += -losgEarth -losgEarthUtil -losgEarthFeatures -losgEarthSymbology -losgEarthAnnotation + LIBS += -losgQt -losgEarthQt } win32 { @@ -31,12 +33,14 @@ win32 { #CONFIG(release, debug|release) { LIBS += -lOpenThreads - LIBS += -losg -losgUtil -losgDB -losgGA -losgFX -losgViewer -losgText -losgQt - LIBS += -losgEarth -losgEarthUtil -losgEarthFeatures -losgEarthSymbology -losgEarthAnnotation -losgEarthQt + LIBS += -losg -losgUtil -losgDB -losgGA -losgFX -losgViewer -losgText + LIBS += -losgEarth -losgEarthUtil -losgEarthFeatures -losgEarthSymbology -losgEarthAnnotation + LIBS += -losgQt -losgEarthQt #} #CONFIG(debug, debug|release) { # LIBS += -lOpenThreadsd - # LIBS += -losgd -losgUtild -losgDBd -losgGAd -losgFXd -losgViewerd -losgTextd -losgQtd - # LIBS += -losgEarthd -losgEarthUtild -losgEarthFeaturesd -losgEarthSymbologyd -losgEarthAnnotationd -losgEarthQtd + # LIBS += -losgd -losgUtild -losgDBd -losgGAd -losgFXd -losgViewerd -losgTextd + # LIBS += -losgEarthd -losgEarthUtild -losgEarthFeaturesd -losgEarthSymbologyd -losgEarthAnnotationd + # LIBS += -losgQtd -losgEarthQtd #} } diff --git a/ground/gcs/src/libs/utils/winutils.cpp b/ground/gcs/src/libs/utils/winutils.cpp index 67dba1bb6..3c5510a97 100644 --- a/ground/gcs/src/libs/utils/winutils.cpp +++ b/ground/gcs/src/libs/utils/winutils.cpp @@ -30,10 +30,6 @@ #include #include -#include -#include -#include -#include namespace Utils { QTCREATOR_UTILS_EXPORT QString winErrorMessage(unsigned long error) @@ -53,60 +49,4 @@ QTCREATOR_UTILS_EXPORT QString winErrorMessage(unsigned long error) } return rc; } - -QTCREATOR_UTILS_EXPORT QString winGetDLLVersion(WinDLLVersionType t, - const QString &name, - QString *errorMessage) -{ - // Resolve required symbols from the version.dll - typedef DWORD (APIENTRY * GetFileVersionInfoSizeProtoType)(LPCTSTR, LPDWORD); - typedef BOOL (APIENTRY * GetFileVersionInfoWProtoType)(LPCWSTR, DWORD, DWORD, LPVOID); - typedef BOOL (APIENTRY * VerQueryValueWProtoType)(const LPVOID, LPWSTR lpSubBlock, LPVOID, PUINT); - - const char *versionDLLC = "version.dll"; - QLibrary versionLib(QLatin1String(versionDLLC), 0); - if (!versionLib.load()) { - *errorMessage = QString::fromLatin1("Unable load %1: %2").arg(QLatin1String(versionDLLC), versionLib.errorString()); - return QString(); - } - // MinGW requires old-style casts - GetFileVersionInfoSizeProtoType getFileVersionInfoSizeW = (GetFileVersionInfoSizeProtoType)(versionLib.resolve("GetFileVersionInfoSizeW")); - GetFileVersionInfoWProtoType getFileVersionInfoW = (GetFileVersionInfoWProtoType)(versionLib.resolve("GetFileVersionInfoW")); - VerQueryValueWProtoType verQueryValueW = (VerQueryValueWProtoType)(versionLib.resolve("VerQueryValueW")); - if (!getFileVersionInfoSizeW || !getFileVersionInfoW || !verQueryValueW) { - *errorMessage = QString::fromLatin1("Unable to resolve all required symbols in %1").arg(QLatin1String(versionDLLC)); - return QString(); - } - - // Now go ahead, read version info resource - DWORD dummy = 0; - const LPCTSTR fileName = reinterpret_cast(name.utf16()); // MinGWsy - const DWORD infoSize = (*getFileVersionInfoSizeW)(fileName, &dummy); - if (infoSize == 0) { - *errorMessage = QString::fromLatin1("Unable to determine the size of the version information of %1: %2").arg(name, winErrorMessage(GetLastError())); - return QString(); - } - QByteArray dataV(infoSize + 1, '\0'); - char *data = dataV.data(); - if (!(*getFileVersionInfoW)(fileName, dummy, infoSize, data)) { - *errorMessage = QString::fromLatin1("Unable to determine the version information of %1: %2").arg(name, winErrorMessage(GetLastError())); - return QString(); - } - VS_FIXEDFILEINFO *versionInfo; - UINT len = 0; - if (!(*verQueryValueW)(data, TEXT("\\"), &versionInfo, &len)) { - *errorMessage = QString::fromLatin1("Unable to determine version string of %1: %2").arg(name, winErrorMessage(GetLastError())); - return QString(); - } - QString rc; - switch (t) { - case WinDLLFileVersion: - QTextStream(&rc) << HIWORD(versionInfo->dwFileVersionMS) << '.' << LOWORD(versionInfo->dwFileVersionMS); - break; - case WinDLLProductVersion: - QTextStream(&rc) << HIWORD(versionInfo->dwProductVersionMS) << '.' << LOWORD(versionInfo->dwProductVersionMS); - break; - } - return rc; -} } // namespace Utils diff --git a/ground/gcs/src/libs/utils/winutils.h b/ground/gcs/src/libs/utils/winutils.h index 7d268e011..f49c044b3 100644 --- a/ground/gcs/src/libs/utils/winutils.h +++ b/ground/gcs/src/libs/utils/winutils.h @@ -39,11 +39,5 @@ namespace Utils { // Helper to format a Windows error message, taking the // code as returned by the GetLastError()-API. QTCREATOR_UTILS_EXPORT QString winErrorMessage(unsigned long error); - -// Determine a DLL version -enum WinDLLVersionType { WinDLLFileVersion, WinDLLProductVersion }; -QTCREATOR_UTILS_EXPORT QString winGetDLLVersion(WinDLLVersionType t, - const QString &name, - QString *errorMessage); } // namespace Utils #endif // WINUTILS_H diff --git a/ground/gcs/src/plugins/debuggadget/debuggadgetwidget.cpp b/ground/gcs/src/plugins/debuggadget/debuggadgetwidget.cpp index 1958f3d0e..11c417d78 100644 --- a/ground/gcs/src/plugins/debuggadget/debuggadgetwidget.cpp +++ b/ground/gcs/src/plugins/debuggadget/debuggadgetwidget.cpp @@ -52,6 +52,12 @@ void DebugGadgetWidget::customMessageHandler(QtMsgType type, const QMessageLogCo txt = QString("Debug: %1").arg(msg); color = Qt::black; break; +#if (QT_VERSION >= QT_VERSION_CHECK(5, 5, 0)) + case QtInfoMsg: + txt = QString("Info: %1").arg(msg); + color = Qt::blue; + break; +#endif case QtWarningMsg: txt = QString("Warning: %1").arg(msg); color = Qt::red; diff --git a/ground/gcs/src/plugins/hitl/aerosimrc/src/qdebughandler.cpp b/ground/gcs/src/plugins/hitl/aerosimrc/src/qdebughandler.cpp index e1c39084b..3c3ad4c67 100644 --- a/ground/gcs/src/plugins/hitl/aerosimrc/src/qdebughandler.cpp +++ b/ground/gcs/src/plugins/hitl/aerosimrc/src/qdebughandler.cpp @@ -29,6 +29,7 @@ void myQDebugHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg) { + Q_UNUSED(context); static bool firstRun = true; QString txt; @@ -36,6 +37,11 @@ void myQDebugHandler(QtMsgType type, const QMessageLogContext &context, const QS case QtDebugMsg: txt = QString("Debug: %1").arg(msg); break; +#if (QT_VERSION >= QT_VERSION_CHECK(5, 5, 0)) + case QtInfoMsg: + txt = QString("Info: %1").arg(msg); + break; +#endif case QtWarningMsg: txt = QString("Warning: %1").arg(msg); break; diff --git a/make/3rdparty/osgearth/osgearth.mk b/make/3rdparty/osgearth/osgearth.mk index b631809ed..664afa602 100644 --- a/make/3rdparty/osgearth/osgearth.mk +++ b/make/3rdparty/osgearth/osgearth.mk @@ -69,7 +69,7 @@ ################################ # TODO should be discovered -QT_VERSION := 5.4.1 +QT_VERSION := 5.5.1 ################################ # diff --git a/make/tool_install/qt-install.qs b/make/tool_install/qt-install.qs new file mode 100644 index 000000000..7987ee533 --- /dev/null +++ b/make/tool_install/qt-install.qs @@ -0,0 +1,253 @@ +/* +silent installer script + +known not work with Qt 5.5.1 and QtIFW 2.0.2 + +known issues: +- silent but not headless (QtIFW 2.0.3 should support installer.setSilent(true)) +- cannot disable forced components (QtCreator, ...) + - cannot disable virtual components (doc, examples, ...) + - cannot disable shortcuts creation + - if user presses the 'Show Details' button then the installer does not end automatically +*/ +function Controller() +{ + console.log("*** Silent Installer ***"); + console.log("Installing on " + installer.value("os")); + //installer.setSilent(true); + + var qtInstallTargetDir = installer.environmentVariable("QT_INSTALL_TARGET_DIR"); + if (qtInstallTargetDir == "") { + qtInstallTargetDir = installer.environmentVariable("PWD") + "/tools/qt-5.5.1"; + console.log("Environment variable QT_INSTALL_TARGET_DIR not set, using default " + qtInstallTargetDir); + } + installer.setValue("TargetDir", qtInstallTargetDir); + console.log("Installing to " + installer.value("TargetDir")); + + installer.autoRejectMessageBoxes(); + installer.setMessageBoxAutomaticAnswer("OverwriteTargetDirectory", QMessageBox.Yes); + installer.setMessageBoxAutomaticAnswer("stopProcessesForUpdates", QMessageBox.Ignore); + + // pages that are not visible are actually removed from the wizard + // some pages must not be removed otherwise the installer starts to mishbehave + installer.setDefaultPageVisible(QInstaller.Welcome, false); + installer.setDefaultPageVisible(QInstaller.Credentials, false); // QInstaller.Credentials is 0... so this is a NOP! + //installer.setDefaultPageVisible(QInstaller.Introduction, false); // Fails to skip Credentials if Introduction is removed? + installer.setDefaultPageVisible(QInstaller.TargetDirectory, false); + //installer.setDefaultPageVisible(QInstaller.ComponentSelection, false); + //installer.setDefaultPageVisible(QInstaller.LicenseAgreementCheck, false); + //installer.setDefaultPageVisible(QInstaller.StartMenuSelection, false); + installer.setDefaultPageVisible(QInstaller.ReadyForInstallation, false); + //installer.setDefaultPageVisible(QInstaller.PerformInstallation, false); + installer.setDefaultPageVisible(QInstaller.FinishedPage, false); + + installer.componentAdded.connect(onComponentAdded); + installer.aboutCalculateComponentsToInstall.connect(onAboutCalculateComponentsToInstall); + installer.finishedCalculateComponentsToInstall.connect(onFinishedCalculateComponentsToInstall); +} + +// installer callbacks + +onComponentAdded = function(component) +{ + console.log("Component added: " + component.name); + dumpComponents(); +} + +onAboutCalculateComponentsToInstall = function() +{ + console.log("onAboutCalculateComponentsToInstall"); + //dumpComponents(); +} + +onFinishedCalculateComponentsToInstall = function() +{ + console.log("onFinishedCalculateComponentsToInstall"); + //dumpComponents(); +} + +// page callbacks +// used to setup wizard pages and move the wizard forward + +Controller.prototype.WelcomePageCallback = function() +{ + logCallback(); + + gui.clickButton(buttons.NextButton); +} + +Controller.prototype.CredentialsPageCallback = function() +{ + logCallback(); + + gui.clickButton(buttons.NextButton); +} + +Controller.prototype.IntroductionPageCallback = function() +{ + logCallback(); + + gui.clickButton(buttons.NextButton); +} + +Controller.prototype.ComponentSelectionPageCallback = function() +{ + logCallback(); + + var page = gui.currentPageWidget(); + page.deselectAll() + if (installer.value("os") == "win") { + selectComponent(page, "qt.55.win32_mingw492"); + selectComponent(page, "qt.tools.win32_mingw492"); + } + else if (installer.value("os") == "x11") { + selectComponent(page, "qt.55.gcc"); + selectComponent(page, "qt.55.gcc_64"); + } + else if (installer.value("os") == "mac") { + selectComponent(page, "qt.55.clang_64"); + } + selectComponent(page, "qt.55.qtquickcontrols"); + selectComponent(page, "qt.55.qtscript"); + + //installer.componentByName("qt.tools.qtcreator").setValue("ForcedInstallation", "false"); + + gui.clickButton(buttons.NextButton); +} + + +function selectComponent(page, name) +{ + component = installer.componentByName(name); + if (component) { + console.log("component " + name + " : " + component); + page.selectComponent(name); + } + else { + console.log("Failed to find component " + name + "!"); + } +} + +Controller.prototype.LicenseAgreementPageCallback = function() +{ + logCallback(); + + setChecked("AcceptLicenseRadioButton", true); + + gui.clickButton(buttons.NextButton); +} + +Controller.prototype.StartMenuDirectoryPageCallback = function() +{ + logCallback(); + + gui.clickButton(buttons.NextButton); +} + +Controller.prototype.PerformInstallationPageCallback = function() +{ + logCallback(); + + // show details and hide button + click("DetailsButton"); + setVisible("DetailsButton", false); + + // showing details will disable automated page switch, so re-enable it + installer.setAutomatedPageSwitchEnabled(true); +} + +Controller.prototype.FinishedPageCallback = function() +{ + logCallback(); + + setChecked("launchQtCreatorCheckBox", false); + + gui.clickButton(buttons.FinishButton); +} + +// utilities + +function logCallback() +{ + var page = gui.currentPageWidget(); + console.log(">>> " + page.objectName + "Callback"); +} + +function dumpComponents() +{ + dumpComponentsArray(installer.components()); +} + +function dumpComponentsArray(components) +{ + var arrayLength = components.length; + for (var i = 0; i < arrayLength; i++) { + dumpComponent(components[i]); + } +} + +function dumpComponent(component) +{ + console.log(component.name + " (" + component.displayName + ")"); + console.log(" Virtual: " + component.value("Virtual", "false")); + console.log(" ForcedInstallation: " + component.value("ForcedInstallation", "false")); + console.log(" Default: " + component.default); + console.log(" Enabled: " + component.enabled); +} + +// UI utilities + +function click(name) +{ + var page = gui.currentPageWidget(); + var button = gui.findChild(page, name); + if (button) { + console.log("button " + name + " : " + button); + button.click(); + } + else { + console.log("Failed to find button " + name + "!"); + } +} + +function setVisible(name, visible) +{ + var page = gui.currentPageWidget(); + var button = gui.findChild(page, name); + if (button) { + console.log("button " + name + " : " + button); + button.visible = visible; + console.log("button " + name + " visible : " + button.visible); + } + else { + console.log("Failed to find button " + name + "!"); + } +} + +function setEnabled(name, enabled) +{ + var page = gui.currentPageWidget(); + var button = gui.findChild(page, name); + if (button) { + console.log("button " + name + " : " + button); + button.enabled = enabled; + console.log("button " + name + " enabled : " + button.enabled); + } + else { + console.log("Failed to find button " + name + "!"); + } +} + +function setChecked(name, checked) +{ + var page = gui.currentPageWidget(); + var button = gui.findChild(page, name); + if (button) { + console.log("button " + name + " : " + button); + button.checked = checked; + console.log("button " + name + " checked : " + button.checked); + } + else { + console.log("Failed to find button " + name + "!"); + } +} diff --git a/make/tools.mk b/make/tools.mk index ea5ee97a9..dfefe7ab5 100644 --- a/make/tools.mk +++ b/make/tools.mk @@ -88,32 +88,31 @@ $(TOOL_REMOVE_TARGETS): ifeq ($(UNAME), Linux) ifeq ($(ARCH), x86_64) - QT_SDK_URL := http://download.qt.io/official_releases/qt/5.4/5.4.1/qt-opensource-linux-x64-5.4.1.run - QT_SDK_MD5_URL := http://download.qt.io/official_releases/qt/5.4/5.4.1/qt-opensource-linux-x64-5.4.1.run.md5 - QT_SDK_ARCH := gcc_64 - OSG_URL := http://librepilot.github.io/tools/osg-3.4-linux-x64-qt-5.4.1.tar.gz + QT_SDK_URL := http://download.qt.io/official_releases/qt/5.5/5.5.1/qt-opensource-linux-x64-5.5.1.run + QT_SDK_MD5_URL := http://download.qt.io/official_releases/qt/5.5/5.5.1/qt-opensource-linux-x64-5.5.1.run.md5 + QT_SDK_ARCH := gcc_64 + OSG_URL := http://librepilot.github.io/tools/osg-3.4-linux-x64-qt-5.5.1.tar.gz else - QT_SDK_URL := http://download.qt.io/official_releases/qt/5.4/5.4.1/qt-opensource-linux-x86-5.4.1.run - QT_SDK_MD5_URL := http://download.qt.io/official_releases/qt/5.4/5.4.1/qt-opensource-linux-x86-5.4.1.run.md5 - QT_SDK_ARCH := gcc - OSG_URL := http://librepilot.github.io/tools/osg-3.4-linux-x86-qt-5.4.1.tar.gz + QT_SDK_URL := http://download.qt.io/official_releases/qt/5.5/5.5.1/qt-opensource-linux-x86-5.5.1.run + QT_SDK_MD5_URL := http://download.qt.io/official_releases/qt/5.5/5.5.1/qt-opensource-linux-x86-5.5.1.run.md5 + QT_SDK_ARCH := gcc + OSG_URL := http://librepilot.github.io/tools/osg-3.4-linux-x86-qt-5.5.1.tar.gz endif UNCRUSTIFY_URL := http://librepilot.github.io/tools/uncrustify-0.60.tar.gz DOXYGEN_URL := http://librepilot.github.io/tools/doxygen-1.8.3.1.src.tar.gz else ifeq ($(UNAME), Darwin) - QT_SDK_URL := http://download.qt.io/official_releases/qt/5.4/5.4.1/qt-opensource-mac-x64-clang-5.4.1.dmg - QT_SDK_MD5_URL := http://download.qt.io/official_releases/qt/5.4/5.4.1/qt-opensource-mac-x64-clang-5.4.1.dmg.md5 - QT_SDK_ARCH := clang_64 - QT_SDK_MAINTENANCE_TOOL := /Volumes/qt-opensource-mac-x64-clang-5.4.1/qt-opensource-mac-x64-clang-5.4.1.app/Contents/MacOS/qt-opensource-mac-x64-clang-5.4.1 - QT_SDK_MOUNT_DIR := /Volumes/qt-opensource-mac-x64-clang-5.4.1 - QT_SDK_INSTALLER_DAT := /Volumes/qt-opensource-mac-x64-clang-5.4.1/qt-opensource-mac-x64-clang-5.4.1.app/Contents/Resources/installer.dat + QT_SDK_URL := http://download.qt.io/official_releases/qt/5.5/5.5.1/qt-opensource-mac-x64-clang-5.5.1.dmg + QT_SDK_MD5_URL := http://download.qt.io/official_releases/qt/5.5/5.5.1/qt-opensource-mac-x64-clang-5.5.1.dmg.md5 + QT_SDK_ARCH := clang_64 + QT_SDK_MOUNT_DIR := /Volumes/qt-opensource-mac-x64-clang-5.5.1 + QT_SDK_MAINTENANCE_TOOL := /Volumes/qt-opensource-mac-x64-clang-5.5.1/qt-opensource-mac-x64-clang-5.5.1.app/Contents/MacOS/qt-opensource-mac-x64-clang-5.5.1 UNCRUSTIFY_URL := http://librepilot.github.io/tools/uncrustify-0.60.tar.gz DOXYGEN_URL := http://librepilot.github.io/tools/doxygen-1.8.3.1.src.tar.gz - OSG_URL := + OSG_URL := http://librepilot.github.io/tools/osg-3.4-clang_64-qt-5.5.1.tar.gz else ifeq ($(UNAME), Windows) - QT_SDK_URL := http://download.qt.io/official_releases/qt/5.4/5.4.1/qt-opensource-windows-x86-mingw491_opengl-5.4.1.exe - QT_SDK_MD5_URL := http://download.qt.io/official_releases/qt/5.4/5.4.1/qt-opensource-windows-x86-mingw491_opengl-5.4.1.exe.md5 - QT_SDK_ARCH := mingw491_32 + QT_SDK_URL := http://download.qt.io/official_releases/qt/5.5/5.5.1/qt-opensource-windows-x86-mingw492-5.5.1.exe + QT_SDK_MD5_URL := http://download.qt.io/official_releases/qt/5.5/5.5.1/qt-opensource-windows-x86-mingw492-5.5.1.exe.md5 + QT_SDK_ARCH := mingw492_32 NSIS_URL := http://librepilot.github.io/tools/nsis-2.46-unicode.tar.bz2 SDL_URL := http://librepilot.github.io/tools/SDL-devel-1.2.15-mingw32.tar.gz OPENSSL_URL := http://librepilot.github.io/tools/openssl-1.0.1e-win32.tar.bz2 @@ -123,14 +122,14 @@ else ifeq ($(UNAME), Windows) CMAKE_URL := http://www.cmake.org/files/v2.8/cmake-2.8.12.2-win32-x86.zip CMAKE_MD5_URL := http://librepilot.github.io/tools/cmake-2.8.12.2-win32-x86.zip.md5 MSYS_URL := http://librepilot.github.io/tools/MSYS-1.0.11.zip - OSG_URL := http://librepilot.github.io/tools/osg-3.4-mingw491_32-qt-5.4.1.tar.gz + OSG_URL := http://librepilot.github.io/tools/osg-3.4-mingw492_32-qt-5.5.1.tar.gz endif GTEST_URL := http://librepilot.github.io/tools/gtest-1.6.0.zip CCACHE_URL := http://samba.org/ftp/ccache/ccache-3.2.2.tar.bz2 CCACHE_MD5_URL := http://librepilot.github.io/tools/ccache-3.2.2.tar.bz2.md5 -QT_SDK_DIR := $(TOOLS_DIR)/qt-5.4.1 +QT_SDK_DIR := $(TOOLS_DIR)/qt-5.5.1 UNCRUSTIFY_DIR := $(TOOLS_DIR)/uncrustify-0.60 DOXYGEN_DIR := $(TOOLS_DIR)/doxygen-1.8.3.1 GTEST_DIR := $(TOOLS_DIR)/gtest-1.6.0 @@ -139,12 +138,12 @@ OSG_TOOLS_DIR := $(TOOLS_DIR) ifeq ($(UNAME), Linux) ifeq ($(ARCH), x86_64) - OSG_SDK_DIR := $(OSG_TOOLS_DIR)/osg-3.4-linux-x64-qt-5.4.1 + OSG_SDK_DIR := $(OSG_TOOLS_DIR)/osg-3.4-linux-x64-qt-5.5.1 else - OSG_SDK_DIR := $(OSG_TOOLS_DIR)/osg-3.4-linux-x86-qt-5.4.1 + OSG_SDK_DIR := $(OSG_TOOLS_DIR)/osg-3.4-linux-x86-qt-5.5.1 endif else ifeq ($(UNAME), Darwin) - OSG_SDK_DIR := $(OSG_TOOLS_DIR)/osg-3.4-clang_64-qt-5.4.1 + OSG_SDK_DIR := $(OSG_TOOLS_DIR)/osg-3.4-clang_64-qt-5.5.1 else ifeq ($(UNAME), Windows) MINGW_DIR := $(QT_SDK_DIR)/Tools/$(QT_SDK_ARCH) # When changing PYTHON_DIR, you must also update it in ground/gcs/src/python.pri @@ -156,7 +155,7 @@ else ifeq ($(UNAME), Windows) MESAWIN_DIR := $(TOOLS_DIR)/mesawin CMAKE_DIR := $(TOOLS_DIR)/cmake-2.8.12.2-win32-x86 MSYS_DIR := $(TOOLS_DIR)/msys - OSG_SDK_DIR := $(OSG_TOOLS_DIR)/osg-3.4-mingw491_32-qt-5.4.1 + OSG_SDK_DIR := $(OSG_TOOLS_DIR)/osg-3.4-mingw492_32-qt-5.5.1 endif QT_SDK_PREFIX := $(QT_SDK_DIR) @@ -395,207 +394,6 @@ $(1)_distclean: endef -############################## -# -# Windows QT install template -# $(1) = tool temp extract/build directory -# $(2) = tool install directory -# $(3) = tool distribution URL -# $(4) = tool distribution .md5 URL -# $(5) = tool distribution file -# $(6) = QT architecture -# $(7) = optional extra build recipes template -# $(8) = optional extra clean recipes template -# -############################## - -define WIN_QT_INSTALL_TEMPLATE - -.PHONY: $(addprefix qt_sdk_, install clean distclean) - -qt_sdk_install: qt_sdk_clean | $(DL_DIR) $(TOOLS_DIR) - $(V1) if ! $(SEVENZIP) >/dev/null 2>&1; then \ - $(ECHO) $(MSG_NOTICE) "Missing 7zip. Run ./make/scripts/win_sdk_install.sh [] to get it." && \ - exit 1; \ - fi - $(call DOWNLOAD_TEMPLATE,$(3),$(5),"$(4)") -# Explode .run file into install packages - @$(ECHO) $(MSG_EXTRACTING) $$(call toprel, $(1)) - $(V1) $(MKDIR) -p $$(call toprel, $(dir $(1))) - $(V1) chmod +x $(DL_DIR)/$(5) - $(V1) $(DL_DIR)/$(5) --dump-binary-data -o $(1) -# Extract packages under tool directory - $(V1) $(MKDIR) -p $$(call toprel, $(dir $(2))) - $(V1) $(SEVENZIP) -y -o$(2) x "$(1)/qt.54.win32_mingw491/5.4.1-0qt5_essentials.7z" | grep -v Extracting - $(V1) $(SEVENZIP) -y -o$(2) x "$(1)/qt.54.win32_mingw491/5.4.1-0i686-4.9.1-release-posix-dwarf-rt_v3-rev2-runtime.7z" | grep -v Extracting - $(V1) $(SEVENZIP) -y -o$(2) x "$(1)/qt.54.win32_mingw491/5.4.1-0icu_53_1_mingw_builds_4_9_1_posix_dwarf_32.7z" | grep -v Extracting - $(V1) $(SEVENZIP) -y -o$(2) x "$(1)/qt.54.win32_mingw491/5.4.1-0qt5_addons.7z" | grep -v Extracting - $(V1) $(SEVENZIP) -y -o$(2) x "$(1)/qt.tools.win32_mingw491/4.9.1-2i686-4.9.1-release-posix-dwarf-rt_v3-rev2.7z" | grep -v Extracting -# Run patcher - @$(ECHO) - @$(ECHO) "Executing QtPatch in" $$(call toprel, $(QT_SDK_PREFIX)) - $(V1) $(CD) $(QT_SDK_PREFIX) - $(V1) $(DL_DIR)/$(5) --runoperation QtPatch windows $(QT_SDK_PREFIX) qt5 - -# Execute post build templates - $(7) - -# Clean up temporary files - @$(ECHO) $(MSG_CLEANING) $$(call toprel, $(1)) - $(V1) [ ! -d "$(1)" ] || $(RM) -rf "$(1)" - -qt_sdk_clean: - @$(ECHO) $(MSG_CLEANING) $$(call toprel, $(1)) - $(V1) [ ! -d "$(1)" ] || $(RM) -rf "$(1)" - @$(ECHO) $(MSG_CLEANING) $$(call toprel, "$(2)") - $(V1) [ ! -d "$(2)" ] || $(RM) -rf "$(2)" - - $(8) - -qt_sdk_distclean: - @$(ECHO) $(MSG_DISTCLEANING) $$(call toprel, $(DL_DIR)/$(5)) - $(V1) [ ! -f "$(DL_DIR)/$(5)" ] || $(RM) "$(DL_DIR)/$(5)" - $(V1) [ ! -f "$(DL_DIR)/$(5).md5" ] || $(RM) "$(DL_DIR)/$(5).md5" - -endef - -############################## -# -# Linux QT install template -# $(1) = tool temp extract/build directory -# $(2) = tool install directory -# $(3) = tool distribution URL -# $(4) = tool distribution .md5 URL -# $(5) = tool distribution file -# $(6) = QT architecture -# $(7) = optional extra build recipes template -# $(8) = optional extra clean recipes template -# -############################## - -define LINUX_QT_INSTALL_TEMPLATE - -.PHONY: $(addprefix qt_sdk_, install clean distclean) - -qt_sdk_install: qt_sdk_clean | $(DL_DIR) $(TOOLS_DIR) - $(V1) if ! $(SEVENZIP) >/dev/null 2>&1; then \ - $(ECHO) $(MSG_NOTICE) "Please install the p7zip for your distribution. i.e.: sudo apt-get install p7zip-full" && \ - exit 1; \ - fi - $(call DOWNLOAD_TEMPLATE,$(3),$(5),"$(4)") -# Explode .run file into install packages - @$(ECHO) $(MSG_EXTRACTING) $$(call toprel, $(1)) - $(V1) $(MKDIR) -p $$(call toprel, $(dir $(1))) - $(V1) chmod +x $(DL_DIR)/$(5) - $(V1) $(DL_DIR)/$(5) --dump-binary-data -o $(1) -# Extract packages under tool directory - $(V1) $(MKDIR) -p $$(call toprel, $(dir $(2))) - $(V1) $(SEVENZIP) -y -o$(2) x "$(1)/qt.54.$(6)/5.4.1-0qt5_essentials.7z" | grep -v Extracting - $(V1) if [ -f "$(1)/qt.54.$(6)/5.4.1-0icu_53_1_ubuntu_11_10_64.7z" ]; then $(SEVENZIP) -y -o$(2) x "$(1)/qt.54.$(6)/5.4.1-0icu_53_1_ubuntu_11_10_64.7z" | grep -v Extracting; fi - $(V1) if [ -f "$(1)/qt.54.$(6)/5.4.1-0icu_53_1_ubuntu_11_10_32.7z" ]; then $(SEVENZIP) -y -o$(2) x "$(1)/qt.54.$(6)/5.4.1-0icu_53_1_ubuntu_11_10_32.7z" | grep -v Extracting; fi - $(V1) $(SEVENZIP) -y -o$(2) x "$(1)/qt.54.$(6)/5.4.1-0qt5_addons.7z" | grep -v Extracting -# Run patcher - @$(ECHO) - @$(ECHO) "Executing QtPatch in" $$(call toprel, $(QT_SDK_PREFIX)) - $(V1) $(CD) $(QT_SDK_PREFIX) - $(V1) $(DL_DIR)/$(5) --runoperation QtPatch linux $(QT_SDK_PREFIX) qt5 - -# Execute post build templates - $(7) - -# Clean up temporary files - @$(ECHO) $(MSG_CLEANING) $$(call toprel, $(1)) - $(V1) [ ! -d "$(1)" ] || $(RM) -rf "$(1)" - -qt_sdk_clean: - @$(ECHO) $(MSG_CLEANING) $$(call toprel, $(1)) - $(V1) [ ! -d "$(1)" ] || $(RM) -rf "$(1)" - @$(ECHO) $(MSG_CLEANING) $$(call toprel, "$(2)") - $(V1) [ ! -d "$(2)" ] || $(RM) -rf "$(2)" - - $(8) - -qt_sdk_distclean: - @$(ECHO) $(MSG_DISTCLEANING) $$(call toprel, $(DL_DIR)/$(5)) - $(V1) [ ! -f "$(DL_DIR)/$(5)" ] || $(RM) "$(DL_DIR)/$(5)" - $(V1) [ ! -f "$(DL_DIR)/$(5).md5" ] || $(RM) "$(DL_DIR)/$(5).md5" - -endef - -############################## -# -# Mac QT install template -# $(1) = tool temp extract/build directory -# $(2) = tool install directory -# $(3) = tool distribution URL -# $(4) = tool distribution .md5 URL -# $(5) = tool distribution file -# $(6) = QT architecture -# $(7) = optional extra build recipes template -# $(8) = optional extra clean recipes template -# -############################## - -define MAC_QT_INSTALL_TEMPLATE - -.PHONY: $(addprefix qt_sdk_, install clean distclean) - -qt_sdk_install: qt_sdk_clean | $(DL_DIR) $(TOOLS_DIR) - $(V1) if ! $(SEVENZIP) >/dev/null 2>&1; then \ - $(ECHO) $(MSG_NOTICE) "Please install the p7zip for your distribution. i.e.: brew install p7zip." && \ - exit 1; \ - fi - $(call DOWNLOAD_TEMPLATE,$(3),$(5),"$(4)") -# Mount .dmg file - $(V1) hdiutil attach -nobrowse $(DL_DIR)/$(5) -# Explode .dmg file into install packages - @$(ECHO) $(MSG_EXTRACTING) $$(call toprel, $(1)) - $(V1) $(MKDIR) -p $$(call toprel, $(dir $(1))) - $(V1) $(QT_SDK_MAINTENANCE_TOOL) --dump-binary-data -i $(QT_SDK_INSTALLER_DAT) -o $(1) -# Extract packages under tool directory - $(V1) $(MKDIR) -p $$(call toprel, $(dir $(2))) - #$(V1) $(SEVENZIP) -y -o$(2) x "$(1)/qt.readme/1.0.0-0qt-project-url.7z" | grep -v Extracting - #$(V1) $(SEVENZIP) -y -o$(2) x "$(1)/qt/5.4.1ThirdPartySoftware_Listing.7z" | grep -v Extracting - #$(V1) $(SEVENZIP) -y -o$(2) x "$(1)/qt.readme/1.0.0-0readme.7z" | grep -v Extracting - $(V1) $(SEVENZIP) -y -o$(2) x "$(1)/qt.54.$(6)/5.4.1-0qt5_essentials.7z" | grep -v Extracting -# $(V1) $(SEVENZIP) -y -o$(2) x "$(1)/qt.54.$(6).essentials/5.4.1icu_path_patcher.sh.7z" | grep -v Extracting - $(V1) $(SEVENZIP) -y -o$(2) x "$(1)/qt.54.$(6)/5.4.1-0qt5_addons.7z" | grep -v Extracting - - -# go to OpenPilot/tools/5.4/gcc_64 and call patcher.sh - @$(ECHO) - @$(ECHO) "Running patcher in" $$(call toprel, $(QT_SDK_PREFIX)) - $(V1) $(CD) $(QT_SDK_PREFIX) -# $(V1) "$(QT_SDK_PREFIX)/patcher.sh" $(QT_SDK_PREFIX) -# call qmake patcher - @$(ECHO) "Executing QtPatch in" $$(call toprel, $(QT_SDK_PREFIX)) - $(V1) $(QT_SDK_MAINTENANCE_TOOL) --runoperation QtPatch mac $(QT_SDK_PREFIX) qt5 - -#Unmount the .dmg file - $(V1) hdiutil detach $(QT_SDK_MOUNT_DIR) - -# Execute post build templates - $(7) - -# Clean up temporary files - @$(ECHO) $(MSG_CLEANING) $$(call toprel, $(1)) - $(V1) [ ! -d "$(1)" ] || $(RM) -rf "$(1)" - -qt_sdk_clean: - @$(ECHO) $(MSG_CLEANING) $$(call toprel, $(1)) - $(V1) [ ! -d "$(1)" ] || $(RM) -rf "$(1)" - @$(ECHO) $(MSG_CLEANING) $$(call toprel, "$(2)") - $(V1) [ ! -d "$(2)" ] || $(RM) -rf "$(2)" - - $(8) - -qt_sdk_distclean: - @$(ECHO) $(MSG_DISTCLEANING) $$(call toprel, $(DL_DIR)/$(5)) - $(V1) [ ! -f "$(DL_DIR)/$(5)" ] || $(RM) "$(DL_DIR)/$(5)" - $(V1) [ ! -f "$(DL_DIR)/$(5).md5" ] || $(RM) "$(DL_DIR)/$(5).md5" - -endef - ############################## # # ARM SDK @@ -623,6 +421,84 @@ define ARM_GCC_VERSION_CHECK_TEMPLATE fi endef +############################## +# +# Qt install template +# $(1) = tool install directory +# $(2) = tool distribution URL +# $(3) = tool distribution .md5 URL +# $(4) = tool distribution file +# $(5) = Qt architecture +# $(6) = optional extra build recipes template +# $(7) = optional extra clean recipes template +# +############################## + +define QT_INSTALL_TEMPLATE + +.PHONY: $(addprefix qt_sdk_, install clean distclean) + +qt_sdk_install: qt_sdk_clean | $(DL_DIR) $(TOOLS_DIR) + $(call DOWNLOAD_TEMPLATE,$(2),$(4),"$(3)") +# Silently install Qt under tools directory + @$(ECHO) $(MSG_EXTRACTING) $(4) to $$(call toprel, $(1)) + $(V1) ( export QT_INSTALL_TARGET_DIR=$(1) && \ + chmod +x $(DL_DIR)/$(4) && \ + $(DL_DIR)/$(4) --script $(ROOT_DIR)/make/tool_install/qt-install.qs ; \ + ) +# Execute post build templates + $(6) + +qt_sdk_clean: + @$(ECHO) $(MSG_CLEANING) $$(call toprel, $(1)) + $(V1) [ ! -d "$(1)" ] || $(RM) -rf "$(1)" + $(7) + +qt_sdk_distclean: + @$(ECHO) $(MSG_DISTCLEANING) $$(call toprel, $(DL_DIR)/$(4)) + $(V1) [ ! -f "$(DL_DIR)/$(4)" ] || $(RM) "$(DL_DIR)/$(4)" + $(V1) [ ! -f "$(DL_DIR)/$(4).md5" ] || $(RM) "$(DL_DIR)/$(4).md5" + +endef + +############################## +# +# Mac QT install template +# $(1) = tool install directory +# $(2) = tool distribution URL +# $(3) = tool distribution .md5 URL +# $(4) = tool distribution file +# $(5) = QT architecture +# $(6) = optional extra build recipes template +# $(7) = optional extra clean recipes template +# +############################## + +define MAC_QT_INSTALL_TEMPLATE + +.PHONY: $(addprefix qt_sdk_, install clean distclean) + +qt_sdk_install: qt_sdk_clean | $(DL_DIR) $(TOOLS_DIR) + $(call DOWNLOAD_TEMPLATE,$(2),$(4),"$(3)") +# Mount .dmg file + $(V1) hdiutil attach -nobrowse $(DL_DIR)/$(4) +# Silently install Qt under tools directory + @$(ECHO) $(MSG_EXTRACTING) $(4) to $$(call toprel, $(1)) + $(V1) ( export QT_INSTALL_TARGET_DIR=$(1) && \ + $(QT_SDK_MAINTENANCE_TOOL) --script $(ROOT_DIR)/make/tool_install/qt-install.qs ; \ + ) +# Unmount the .dmg file + $(V1) hdiutil detach $(QT_SDK_MOUNT_DIR) +# Execute post build templates + $(6) + +qt_sdk_clean: + @$(ECHO) $(MSG_CLEANING) $$(call toprel, $(1)) + $(V1) [ ! -d "$(1)" ] || $(RM) -rf "$(1)" + $(7) + +endef + ############################## # # Qt SDK @@ -631,30 +507,19 @@ endef ifeq ($(UNAME), Windows) -QT_SDK_PREFIX := $(QT_SDK_DIR)/5.4/$(QT_SDK_ARCH) +QT_SDK_PREFIX := $(QT_SDK_DIR)/5.5/$(QT_SDK_ARCH) -# This additional configuration step should not be necessary -# but it is needed as a workaround to https://bugreports.qt-project.org/browse/QTBUG-33254 -define QT_SDK_CONFIGURE_TEMPLATE - @$(ECHO) $(MSG_CONFIGURING) $(call toprel, $(QT_SDK_DIR)) - $(V1) $(ECHO) $(QUOTE)[Paths]$(QUOTE) > $(QT_SDK_PREFIX)/bin/qt.conf - $(V1) $(ECHO) $(QUOTE)Prefix = $(QT_SDK_PREFIX)$(QUOTE) >> $(QT_SDK_PREFIX)/bin/qt.conf -endef - -QT_BUILD_DIR := $(BUILD_DIR)/QT_BUILD - $(eval $(call WIN_QT_INSTALL_TEMPLATE,$(QT_BUILD_DIR),$(QT_SDK_DIR),$(QT_SDK_URL),$(QT_SDK_MD5_URL),$(notdir $(QT_SDK_URL)),$(QT_SDK_ARCH),$(QT_SDK_CONFIGURE_TEMPLATE))) + $(eval $(call QT_INSTALL_TEMPLATE,$(QT_SDK_DIR),$(QT_SDK_URL),$(QT_SDK_MD5_URL),$(notdir $(QT_SDK_URL)),$(QT_SDK_ARCH))) else ifeq ($(UNAME), Linux) -QT_SDK_PREFIX := "$(QT_SDK_DIR)/5.4/$(QT_SDK_ARCH)" -QT_BUILD_DIR := $(BUILD_DIR)/QT_BUILD - $(eval $(call LINUX_QT_INSTALL_TEMPLATE,$(QT_BUILD_DIR),$(QT_SDK_DIR),$(QT_SDK_URL),$(QT_SDK_MD5_URL),$(notdir $(QT_SDK_URL)),$(QT_SDK_ARCH))) +QT_SDK_PREFIX := "$(QT_SDK_DIR)/5.5/$(QT_SDK_ARCH)" + $(eval $(call QT_INSTALL_TEMPLATE,$(QT_SDK_DIR),$(QT_SDK_URL),$(QT_SDK_MD5_URL),$(notdir $(QT_SDK_URL)),$(QT_SDK_ARCH))) else ifeq ($(UNAME), Darwin) -QT_SDK_PREFIX := "$(QT_SDK_DIR)/5.4/$(QT_SDK_ARCH)" -QT_BUILD_DIR := $(BUILD_DIR)/QT_BUILD - $(eval $(call MAC_QT_INSTALL_TEMPLATE,$(QT_BUILD_DIR),$(QT_SDK_DIR),$(QT_SDK_URL),$(QT_SDK_MD5_URL),$(notdir $(QT_SDK_URL)),$(QT_SDK_ARCH))) +QT_SDK_PREFIX := "$(QT_SDK_DIR)/5.5/$(QT_SDK_ARCH)" + $(eval $(call MAC_QT_INSTALL_TEMPLATE,$(QT_SDK_DIR),$(QT_SDK_URL),$(QT_SDK_MD5_URL),$(notdir $(QT_SDK_URL)),$(QT_SDK_ARCH))) else @@ -663,7 +528,7 @@ QT_SDK_PREFIX := $(QT_SDK_DIR) .PHONY: qt_sdk_install qt_sdk_install: @$(ECHO) $(MSG_NOTICE) -------------------------------------------------------- - @$(ECHO) $(MSG_NOTICE) Please install native Qt 5.4.x SDK using package manager + @$(ECHO) $(MSG_NOTICE) Please install native Qt 5.5.x SDK using package manager @$(ECHO) $(MSG_NOTICE) -------------------------------------------------------- .PHONY: qt_sdk_clean