include(openpilotgcs.pri) TEMPLATE = subdirs # Copy Qt runtime libraries into the build directory (to run or package) equals(copydata, 1) { # Windows release only, no debug target DLLs ending with 'd' # It is assumed that SDL.dll can be found in the same directory as mingw32-make.exe win32 { # set debug suffix if needed CONFIG(debug, debug|release):DS = "d" # copy Qt DLLs QT_DLLS = Qt5Core$${DS}.dll \ Qt5Gui$${DS}.dll \ Qt5Widgets$${DS}.dll \ Qt5Network$${DS}.dll \ Qt5OpenGL$${DS}.dll \ Qt5Sql$${DS}.dll \ Qt5Svg$${DS}.dll \ Qt5Test$${DS}.dll \ Qt5Xml$${DS}.dll \ Qt5Declarative$${DS}.dll \ Qt5XmlPatterns$${DS}.dll \ Qt5Script$${DS}.dll \ Qt5Concurrent$${DS}.dll \ Qt5PrintSupport$${DS}.dll \ Qt5OpenGL$${DS}.dll \ Qt5SerialPort$${DS}.dll \ Qt5Multimedia$${DS}.dll \ Qt5MultimediaWidgets$${DS}.dll \ Qt5Quick$${DS}.dll \ Qt5Qml$${DS}.dll \ Qt5V8$${DS}.dll \ icuin51.dll \ icudt51.dll \ icuuc51.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 \ libwinpthread-1.dll for(dll, QT_DLLS) { data_copy.commands += $(COPY_FILE) $$targetPath(\"$$[QT_INSTALL_BINS]/$$dll\") $$targetPath(\"$$GCS_APP_PATH/$$dll\") $$addNewline() } # create Qt plugin directories QT_PLUGIN_DIRS = iconengines \ imageformats \ platforms \ mediaservice \ sqldrivers for(dir, QT_PLUGIN_DIRS) { data_copy.commands += -@$(MKDIR) $$targetPath(\"$$GCS_APP_PATH/$$dir\") $$addNewline() } # copy Qt plugin DLLs QT_PLUGIN_DLLS = iconengines/qsvgicon$${DS}.dll \ imageformats/qgif$${DS}.dll \ imageformats/qico$${DS}.dll \ imageformats/qjpeg$${DS}.dll \ imageformats/qmng$${DS}.dll \ imageformats/qsvg$${DS}.dll \ imageformats/qtiff$${DS}.dll \ platforms/qwindows$${DS}.dll \ mediaservice/dsengine$${DS}.dll \ sqldrivers/qsqlite$${DS}.dll for(dll, QT_PLUGIN_DLLS) { data_copy.commands += $(COPY_FILE) $$targetPath(\"$$[QT_INSTALL_PLUGINS]/$$dll\") $$targetPath(\"$$GCS_APP_PATH/$$dll\") $$addNewline() } # create QtQuick2 plugin directories QT_QUICK2_DIRS = qtquick \ qtquick.2 \ qtquick/layouts \ qtquick/localstorage \ qtquick/particles.2 \ qtquick/privatewidgets \ qtquick/window.2 \ qtquick/xmllistmodel for(dir, QT_QUICK2_DIRS) { data_copy.commands += -@$(MKDIR) $$targetPath(\"$$GCS_APP_PATH/$$dir\") $$addNewline() } # Copy QtQuick2 complete directories # These directories have a lot of files # Easier to copy everything QTQ_WHOLE_DIRS = qtquick/controls \ qtquick/dialogs for(dir, QTQ_WHOLE_DIRS) { data_copy.commands += $(COPY_DIR) $$targetPath(\"$$[QT_INSTALL_QML]/$$dir\") $$targetPath(\"$$GCS_APP_PATH/$$dir\") $$addNewline() } # Remove the few unwanted DDLs after whole dir copy QT_QUICK2_DELS = qtquick/controls/qtquickcontrolsplugin \ qtquick/controls/private/qtquickcontrolsprivateplugin \ qtquick/dialogs/dialogplugin CONFIG(debug, debug|release) { for(delfile, QT_QUICK2_DELS) { data_copy.commands += $(DEL_FILE) $$targetPath(\"$$GCS_APP_PATH/$${delfile}.dll\") $$addNewline() } } CONFIG(release, debug|release) { for(delfile, QT_QUICK2_DELS) { data_copy.commands += $(DEL_FILE) $$targetPath(\"$$GCS_APP_PATH/$${delfile}d.dll\") $$addNewline() } } # Remaining QtQuick plugin DLLs QT_QUICK2_DLLS = QtQuick.2/qtquick2plugin$${DS}.dll \ QtQuick.2/plugins.qmltypes \ QtQuick.2/qmldir \ qtquick/layouts/qquicklayoutsplugin$${DS}.dll \ qtquick/layouts/plugins.qmltypes \ qtquick/layouts/qmldir \ qtquick/localstorage/qmllocalstorageplugin$${DS}.dll \ qtquick/localstorage/plugins.qmltypes \ qtquick/localstorage/qmldir \ qtquick/particles.2/particlesplugin$${DS}.dll \ qtquick/particles.2/plugins.qmltypes \ qtquick/particles.2/qmldir \ qtquick/privatewidgets/widgetsplugin$${DS}.dll \ qtquick/privatewidgets/plugins.qmltypes \ qtquick/privatewidgets/qmldir \ qtquick/window.2/windowplugin$${DS}.dll \ qtquick/window.2/plugins.qmltypes \ qtquick/window.2/qmldir \ qtquick/XmlListModel/qmlxmllistmodelplugin$${DS}.dll \ qtquick/XmlListModel/plugins.qmltypes \ qtquick/XmlListModel/qmldir for(dll, QT_QUICK2_DLLS) { data_copy.commands += $(COPY_FILE) $$targetPath(\"$$[QT_INSTALL_QML]/$$dll\") $$targetPath(\"$$GCS_APP_PATH/$$dll\") $$addNewline() } # copy MinGW DLLs MINGW_DLLS = SDL.dll for(dll, MINGW_DLLS) { data_copy.commands += $(COPY_FILE) $$targetPath(\"$$(QTMINGW)/$$dll\") $$targetPath(\"$$GCS_APP_PATH/$$dll\") $$addNewline() } # copy OpenSSL DLLs OPENSSL_DLLS = \ ssleay32.dll \ libeay32.dll for(dll, OPENSSL_DLLS) { data_copy.commands += $(COPY_FILE) $$targetPath(\"$$(OPENSSL)/$$dll\") $$targetPath(\"$$GCS_APP_PATH/$$dll\") $$addNewline() } data_copy.target = FORCE QMAKE_EXTRA_TARGETS += data_copy } }