2023-12-06 14:21:56 -04:00
|
|
|
QT += androidextras
|
2023-12-06 13:51:14 -04:00
|
|
|
|
2023-12-08 12:08:42 -04:00
|
|
|
include($$PWD/libs/qtandroidserialport/src/qtandroidserialport.pri)
|
|
|
|
|
|
|
|
ANDROID_PACKAGE_SOURCE_DIR = $$OUT_PWD/ANDROID_PACKAGE_SOURCE_DIR # Tells Qt location of package files for build
|
|
|
|
ANDROID_PACKAGE_QGC_SOURCE_DIR = $$PWD/android # Original location of QGC package files
|
|
|
|
ANDROID_PACKAGE_CUSTOM_SOURCE_DIR = $$PWD/custom/android # Original location for custom build override package files
|
|
|
|
|
|
|
|
# We always move the package files to the ANDROID_PACKAGE_SOURCE_DIR build dir so we can modify the manifest as needed
|
|
|
|
|
|
|
|
android_source_dir_target.target = $$ANDROID_PACKAGE_SOURCE_DIR/AndroidManifest.xml
|
|
|
|
android_source_dir_target.commands = \
|
|
|
|
$$QMAKE_MKDIR $$ANDROID_PACKAGE_SOURCE_DIR && \
|
|
|
|
$$QMAKE_COPY_DIR $$ANDROID_PACKAGE_QGC_SOURCE_DIR/* $$ANDROID_PACKAGE_SOURCE_DIR
|
|
|
|
PRE_TARGETDEPS += $$android_source_dir_target.target
|
|
|
|
QMAKE_EXTRA_TARGETS += android_source_dir_target
|
|
|
|
exists($$ANDROID_PACKAGE_CUSTOM_SOURCE_DIR/AndroidManifest.xml) {
|
|
|
|
android_source_dir_target.depends = $$ANDROID_PACKAGE_CUSTOM_SOURCE_DIR/AndroidManifest.xml
|
|
|
|
} else {
|
|
|
|
android_source_dir_target.depends = $$ANDROID_PACKAGE_QGC_SOURCE_DIR/AndroidManifest.xml
|
|
|
|
}
|
2023-12-06 13:51:14 -04:00
|
|
|
|
2023-12-08 12:08:42 -04:00
|
|
|
# Custom builds can override android package file
|
2023-12-06 13:51:14 -04:00
|
|
|
|
2023-12-08 12:08:42 -04:00
|
|
|
exists($$ANDROID_PACKAGE_CUSTOM_SOURCE_DIR) {
|
|
|
|
message("Merging$$ $$ANDROID_PACKAGE_QGC_SOURCE_DIR and $$ANDROID_PACKAGE_CUSTOM_SOURCE_DIR to $$ANDROID_PACKAGE_SOURCE_DIR")
|
2023-12-06 13:51:14 -04:00
|
|
|
|
2023-12-08 12:08:42 -04:00
|
|
|
android_source_dir_target.commands = $$android_source_dir_target.commands && \
|
|
|
|
$$QMAKE_COPY_DIR $$ANDROID_PACKAGE_CUSTOM_SOURCE_DIR/* $$ANDROID_PACKAGE_SOURCE_DIR && \
|
2023-12-07 10:21:32 -04:00
|
|
|
$$QMAKE_STREAM_EDITOR -i \"s/package=\\\"org.mavlink.qgroundcontrol\\\"/package=\\\"$$QGC_ANDROID_PACKAGE\\\"/\" $$ANDROID_PACKAGE_SOURCE_DIR/AndroidManifest.xml
|
2023-12-06 13:51:14 -04:00
|
|
|
}
|
|
|
|
|
2023-12-08 12:08:42 -04:00
|
|
|
# Insert package name into manifest file
|
|
|
|
|
|
|
|
android_source_dir_target.commands = $$android_source_dir_target.commands && \
|
|
|
|
$$QMAKE_STREAM_EDITOR -i \"s/%%QGC_INSERT_PACKAGE_NAME%%/$$QGC_ANDROID_PACKAGE/\" $$ANDROID_PACKAGE_SOURCE_DIR/AndroidManifest.xml
|
|
|
|
|
|
|
|
# Update manifest activity intent filter as needed
|
|
|
|
|
|
|
|
QGC_INSERT_ACTIVITY_INTENT_FILTER = ""
|
|
|
|
AndroidHomeApp {
|
|
|
|
# QGC is the android home application
|
|
|
|
QGC_INSERT_ACTIVITY_INTENT_FILTER = $$QGC_INSERT_ACTIVITY_INTENT_FILTER "\r\n<category android:name=\\\"android.intent.category.HOME\\\"\\\/>\r\n<category android:name=\\\"android.intent.category.DEFAULT\\\"\\\/>"
|
|
|
|
}
|
|
|
|
!contains(DEFINES, NO_SERIAL_LINK) {
|
|
|
|
# Add usb device support
|
|
|
|
QGC_INSERT_ACTIVITY_INTENT_FILTER = $$QGC_INSERT_ACTIVITY_INTENT_FILTER "\r\n<action android:name=\\\"android.hardware.usb.action.USB_DEVICE_ATTACHED\\\"\\\/>\r\n<action android:name=\\\"android.hardware.usb.action.USB_DEVICE_DETACHED\\\"\\\/>\r\n<action android:name=\\\"android.hardware.usb.action.USB_ACCESSORY_ATTACHED\\\"\\\/>"
|
|
|
|
}
|
|
|
|
contains(DEFINES, QGC_ENABLE_BLUETOOTH) {
|
|
|
|
QGC_INSERT_ACTIVITY_INTENT_FILTER = $$QGC_INSERT_ACTIVITY_INTENT_FILTER "\r\n<action android:name=\\\"android.bluetooth.device.action.ACL_CONNECTED\\\"\\\/>\r\n<action android:name=\\\"android.bluetooth.device.action.ACL_DISCONNECTED\\\"\\\/>"
|
|
|
|
}
|
|
|
|
android_source_dir_target.commands = $$android_source_dir_target.commands && \
|
|
|
|
$$QMAKE_STREAM_EDITOR -i \"s/<!-- %%QGC_INSERT_ACTIVITY_INTENT_FILTER -->/$$QGC_INSERT_ACTIVITY_INTENT_FILTER/\" $$ANDROID_PACKAGE_SOURCE_DIR/AndroidManifest.xml
|
|
|
|
|
|
|
|
# Update manifest activity meta data as needed
|
|
|
|
|
|
|
|
contains(DEFINES, NO_SERIAL_LINK) {
|
|
|
|
# No need to add anything to manifest
|
|
|
|
android_source_dir_target.commands = $$android_source_dir_target.commands && \
|
|
|
|
$$QMAKE_STREAM_EDITOR -i \"s/<!-- %%QGC_INSERT_ACTIVITY_META_DATA -->//\" $$ANDROID_PACKAGE_SOURCE_DIR/AndroidManifest.xml
|
|
|
|
} else {
|
|
|
|
# Updates the manifest for usb device support
|
|
|
|
android_source_dir_target.commands = $$android_source_dir_target.commands && \
|
|
|
|
$$QMAKE_STREAM_EDITOR -i \"s/<!-- %%QGC_INSERT_ACTIVITY_META_DATA -->/<meta-data android:resource=\\\"@xml\\\/device_filter\\\" android:name=\\\"android.hardware.usb.action.USB_DEVICE_ATTACHED\\\"\\\/>\r\n<meta-data android:resource=\\\"@xml\\\/device_filter\\\" android:name=\\\"android.hardware.usb.action.USB_DEVICE_DETACHED\\\"\\\/>\r\n<meta-data android:resource=\\\"@xml\\\/device_filter\\\" android:name=\\\"android.hardware.usb.action.USB_ACCESSORY_ATTACHED\\\"\\\/>/\" $$ANDROID_PACKAGE_SOURCE_DIR/AndroidManifest.xml
|
|
|
|
}
|
|
|
|
|
|
|
|
# OTHER_FILES makes the specified files be visible in Qt Creator for editing
|
|
|
|
|
2023-12-06 13:51:14 -04:00
|
|
|
exists($$PWD/custom/android/AndroidManifest.xml) {
|
|
|
|
OTHER_FILES += \
|
|
|
|
$$PWD/custom/android/AndroidManifest.xml
|
|
|
|
} else {
|
|
|
|
OTHER_FILES += \
|
|
|
|
$$PWD/android/AndroidManifest.xml
|
|
|
|
}
|
|
|
|
|
|
|
|
OTHER_FILES += \
|
|
|
|
$$PWD/android/res/xml/device_filter.xml \
|
|
|
|
$$PWD/android/src/com/hoho/android/usbserial/driver/CdcAcmSerialDriver.java \
|
|
|
|
$$PWD/android/src/com/hoho/android/usbserial/driver/CommonUsbSerialDriver.java \
|
|
|
|
$$PWD/android/src/com/hoho/android/usbserial/driver/Cp2102SerialDriver.java \
|
|
|
|
$$PWD/android/src/com/hoho/android/usbserial/driver/FtdiSerialDriver.java \
|
|
|
|
$$PWD/android/src/com/hoho/android/usbserial/driver/ProlificSerialDriver.java \
|
|
|
|
$$PWD/android/src/com/hoho/android/usbserial/driver/UsbId.java \
|
|
|
|
$$PWD/android/src/com/hoho/android/usbserial/driver/UsbSerialDriver.java \
|
|
|
|
$$PWD/android/src/com/hoho/android/usbserial/driver/UsbSerialProber.java \
|
|
|
|
$$PWD/android/src/com/hoho/android/usbserial/driver/UsbSerialRuntimeException.java \
|
|
|
|
$$PWD/android/src/org/mavlink/qgroundcontrol/QGCActivity.java \
|
|
|
|
$$PWD/android/src/org/mavlink/qgroundcontrol/UsbIoManager.java \
|
|
|
|
$$PWD/android/src/org/mavlink/qgroundcontrol/TaiSync.java \
|
|
|
|
$$PWD/android/src/org/freedesktop/gstreamer/androidmedia/GstAhcCallback.java \
|
|
|
|
$$PWD/android/src/org/freedesktop/gstreamer/androidmedia/GstAhsCallback.java \
|
|
|
|
$$PWD/android/src/org/freedesktop/gstreamer/androidmedia/GstAmcOnFrameAvailableListener.java
|
|
|
|
|
|
|
|
DISTFILES += \
|
|
|
|
$$PWD/android/gradle/wrapper/gradle-wrapper.jar \
|
|
|
|
$$PWD/android/gradlew \
|
|
|
|
$$PWD/android/res/values/libs.xml \
|
|
|
|
$$PWD/android/build.gradle \
|
|
|
|
$$PWD/android/gradle/wrapper/gradle-wrapper.properties \
|
|
|
|
$$PWD/android/gradlew.bat
|
2023-12-08 12:08:42 -04:00
|
|
|
|
|
|
|
SOURCES += \
|
|
|
|
$$PWD/android/src/AndroidInterface.cc
|
|
|
|
|
|
|
|
HEADERS += \
|
|
|
|
$$PWD/android/src/AndroidInterface.h
|
|
|
|
|
|
|
|
INCLUDEPATH += \
|
|
|
|
$$PWD/android/src
|