summaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/sensors/ios/ios.pro56
-rw-r--r--src/plugins/sensors/ios/iosaccelerometer.h4
-rw-r--r--src/plugins/sensors/ios/iosaccelerometer.mm4
-rw-r--r--src/plugins/sensors/ios/iosgyroscope.h4
-rw-r--r--src/plugins/sensors/ios/iosgyroscope.mm2
-rw-r--r--src/plugins/sensors/ios/iosmagnetometer.h4
-rw-r--r--src/plugins/sensors/ios/iosmagnetometer.mm2
-rw-r--r--src/plugins/sensors/ios/iosmotionmanager.h5
-rw-r--r--src/plugins/sensors/ios/iosmotionmanager.mm2
-rw-r--r--src/plugins/sensors/ios/iosproximitysensor.h4
-rw-r--r--src/plugins/sensors/ios/main.mm18
-rw-r--r--src/plugins/sensors/sensors.pro4
12 files changed, 78 insertions, 31 deletions
diff --git a/src/plugins/sensors/ios/ios.pro b/src/plugins/sensors/ios/ios.pro
index 17ff0095..91ec3ae0 100644
--- a/src/plugins/sensors/ios/ios.pro
+++ b/src/plugins/sensors/ios/ios.pro
@@ -3,22 +3,46 @@ QT = core sensors
OTHER_FILES = plugin.json
-HEADERS += iosaccelerometer.h \
- iosmotionmanager.h \
- iosgyroscope.h \
- iosmagnetometer.h \
- ioscompass.h \
- iosproximitysensor.h
-
-OBJECTIVE_SOURCES += main.mm \
- iosaccelerometer.mm \
- iosmotionmanager.mm \
- iosgyroscope.mm \
- iosmagnetometer.mm \
- ioscompass.mm \
- iosproximitysensor.mm
-
-LIBS += -framework UIKit -framework CoreMotion -framework CoreLocation
+OBJECTIVE_SOURCES += main.mm
+LIBS += -framework Foundation
+
+uikit {
+ ios {
+ HEADERS += \
+ ioscompass.h
+ OBJECTIVE_SOURCES += \
+ ioscompass.mm
+
+ DEFINES += HAVE_COMPASS
+ LIBS += -framework CoreLocation
+ }
+
+ !tvos {
+ HEADERS += \
+ iosaccelerometer.h \
+ iosgyroscope.h \
+ iosmagnetometer.h \
+ iosmotionmanager.h
+ OBJECTIVE_SOURCES += \
+ iosaccelerometer.mm \
+ iosgyroscope.mm \
+ iosmagnetometer.mm \
+ iosmotionmanager.mm
+
+ DEFINES += HAVE_COREMOTION
+ LIBS += -framework CoreMotion
+ }
+
+ !watchos {
+ HEADERS += \
+ iosproximitysensor.h
+ OBJECTIVE_SOURCES += \
+ iosproximitysensor.mm
+
+ DEFINES += HAVE_UIDEVICE
+ LIBS += -framework UIKit
+ }
+}
PLUGIN_TYPE = sensors
PLUGIN_CLASS_NAME = IOSSensorPlugin
diff --git a/src/plugins/sensors/ios/iosaccelerometer.h b/src/plugins/sensors/ios/iosaccelerometer.h
index 620015f2..14b6cc03 100644
--- a/src/plugins/sensors/ios/iosaccelerometer.h
+++ b/src/plugins/sensors/ios/iosaccelerometer.h
@@ -40,11 +40,11 @@
#ifndef IOSACCELEROMETER_H
#define IOSACCELEROMETER_H
-#include <CoreMotion/CMMotionManager.h>
-
#include <qsensorbackend.h>
#include <qaccelerometer.h>
+@class CMMotionManager;
+
QT_BEGIN_NAMESPACE
class IOSAccelerometer : public QSensorBackend
diff --git a/src/plugins/sensors/ios/iosaccelerometer.mm b/src/plugins/sensors/ios/iosaccelerometer.mm
index 2d2e27ae..d2d6e9fb 100644
--- a/src/plugins/sensors/ios/iosaccelerometer.mm
+++ b/src/plugins/sensors/ios/iosaccelerometer.mm
@@ -37,11 +37,11 @@
**
****************************************************************************/
-#include <UIKit/UIAccelerometer.h>
-
#include "iosaccelerometer.h"
#include "iosmotionmanager.h"
+#import <CoreMotion/CoreMotion.h>
+
char const * const IOSAccelerometer::id("ios.accelerometer");
QT_BEGIN_NAMESPACE
diff --git a/src/plugins/sensors/ios/iosgyroscope.h b/src/plugins/sensors/ios/iosgyroscope.h
index d8ff04a1..3969bb1a 100644
--- a/src/plugins/sensors/ios/iosgyroscope.h
+++ b/src/plugins/sensors/ios/iosgyroscope.h
@@ -40,11 +40,11 @@
#ifndef IOSGYROSCOPE_H
#define IOSGYROSCOPE_H
-#include <CoreMotion/CMMotionManager.h>
-
#include <qsensorbackend.h>
#include <qgyroscope.h>
+@class CMMotionManager;
+
QT_BEGIN_NAMESPACE
class IOSGyroscope : public QSensorBackend
diff --git a/src/plugins/sensors/ios/iosgyroscope.mm b/src/plugins/sensors/ios/iosgyroscope.mm
index 19e65e57..0cd37aea 100644
--- a/src/plugins/sensors/ios/iosgyroscope.mm
+++ b/src/plugins/sensors/ios/iosgyroscope.mm
@@ -40,6 +40,8 @@
#include "iosmotionmanager.h"
#include "iosgyroscope.h"
+#import <CoreMotion/CoreMotion.h>
+
char const * const IOSGyroscope::id("ios.gyroscope");
QT_BEGIN_NAMESPACE
diff --git a/src/plugins/sensors/ios/iosmagnetometer.h b/src/plugins/sensors/ios/iosmagnetometer.h
index 00d921e8..f4ab34a5 100644
--- a/src/plugins/sensors/ios/iosmagnetometer.h
+++ b/src/plugins/sensors/ios/iosmagnetometer.h
@@ -40,11 +40,11 @@
#ifndef IOSMAGNETOMETER_H
#define IOSMAGNETOMETER_H
-#include <CoreMotion/CMMotionManager.h>
-
#include <qsensorbackend.h>
#include <qmagnetometer.h>
+@class CMMotionManager;
+
QT_BEGIN_NAMESPACE
class IOSMagnetometer : public QSensorBackend
diff --git a/src/plugins/sensors/ios/iosmagnetometer.mm b/src/plugins/sensors/ios/iosmagnetometer.mm
index 98bef2dd..bfbe6e6d 100644
--- a/src/plugins/sensors/ios/iosmagnetometer.mm
+++ b/src/plugins/sensors/ios/iosmagnetometer.mm
@@ -40,6 +40,8 @@
#include "iosmotionmanager.h"
#include "iosmagnetometer.h"
+#import <CoreMotion/CoreMotion.h>
+
QT_BEGIN_NAMESPACE
char const * const IOSMagnetometer::id("ios.magnetometer");
diff --git a/src/plugins/sensors/ios/iosmotionmanager.h b/src/plugins/sensors/ios/iosmotionmanager.h
index 6e0cbd62..7c2a1b27 100644
--- a/src/plugins/sensors/ios/iosmotionmanager.h
+++ b/src/plugins/sensors/ios/iosmotionmanager.h
@@ -40,8 +40,9 @@
#ifndef IOSMOTIONMANAGER_H
#define IOSMOTIONMANAGER_H
-#import <UIKit/UIKit.h>
-#import <CoreMotion/CoreMotion.h>
+#import <Foundation/Foundation.h>
+
+@class CMMotionManager;
@interface QIOSMotionManager : NSObject {
}
diff --git a/src/plugins/sensors/ios/iosmotionmanager.mm b/src/plugins/sensors/ios/iosmotionmanager.mm
index 7db56a21..90741089 100644
--- a/src/plugins/sensors/ios/iosmotionmanager.mm
+++ b/src/plugins/sensors/ios/iosmotionmanager.mm
@@ -39,6 +39,8 @@
#include "iosmotionmanager.h"
+#import <CoreMotion/CoreMotion.h>
+
static CMMotionManager *sharedManager = nil;
@implementation QIOSMotionManager
diff --git a/src/plugins/sensors/ios/iosproximitysensor.h b/src/plugins/sensors/ios/iosproximitysensor.h
index 99f9564e..4cff4fce 100644
--- a/src/plugins/sensors/ios/iosproximitysensor.h
+++ b/src/plugins/sensors/ios/iosproximitysensor.h
@@ -43,10 +43,10 @@
#include <qsensorbackend.h>
#include <qproximitysensor.h>
-QT_BEGIN_NAMESPACE
-
@class ProximitySensorCallback;
+QT_BEGIN_NAMESPACE
+
class IOSProximitySensor : public QSensorBackend
{
public:
diff --git a/src/plugins/sensors/ios/main.mm b/src/plugins/sensors/ios/main.mm
index 40f84e9a..a4766c37 100644
--- a/src/plugins/sensors/ios/main.mm
+++ b/src/plugins/sensors/ios/main.mm
@@ -48,6 +48,11 @@
#include "ioscompass.h"
#include "iosproximitysensor.h"
+#import <CoreLocation/CoreLocation.h>
+#ifdef HAVE_COREMOTION
+#import <CoreMotion/CoreMotion.h>
+#endif
+
class IOSSensorPlugin : public QObject, public QSensorPluginInterface, public QSensorBackendFactory
{
Q_OBJECT
@@ -56,30 +61,41 @@ class IOSSensorPlugin : public QObject, public QSensorPluginInterface, public QS
public:
void registerSensors()
{
+#ifdef HAVE_COREMOTION
QSensorManager::registerBackend(QAccelerometer::type, IOSAccelerometer::id, this);
if ([QIOSMotionManager sharedManager].gyroAvailable)
QSensorManager::registerBackend(QGyroscope::type, IOSGyroscope::id, this);
if ([QIOSMotionManager sharedManager].magnetometerAvailable)
QSensorManager::registerBackend(QMagnetometer::type, IOSMagnetometer::id, this);
+#endif
+#ifdef HAVE_COMPASS
if ([CLLocationManager headingAvailable])
QSensorManager::registerBackend(QCompass::type, IOSCompass::id, this);
+#endif
+#ifdef HAVE_UIDEVICE
if (IOSProximitySensor::available())
QSensorManager::registerBackend(QProximitySensor::type, IOSProximitySensor::id, this);
+#endif
}
QSensorBackend *createBackend(QSensor *sensor)
{
+#ifdef HAVE_COREMOTION
if (sensor->identifier() == IOSAccelerometer::id)
return new IOSAccelerometer(sensor);
if (sensor->identifier() == IOSGyroscope::id)
return new IOSGyroscope(sensor);
if (sensor->identifier() == IOSMagnetometer::id)
return new IOSMagnetometer(sensor);
+#endif
+#ifdef HAVE_COMPASS
if (sensor->identifier() == IOSCompass::id)
return new IOSCompass(sensor);
+#endif
+#ifdef HAVE_UIDEVICE
if (sensor->identifier() == IOSProximitySensor::id)
return new IOSProximitySensor(sensor);
-
+#endif
return 0;
}
};
diff --git a/src/plugins/sensors/sensors.pro b/src/plugins/sensors/sensors.pro
index 5a860fdc..af2fae10 100644
--- a/src/plugins/sensors/sensors.pro
+++ b/src/plugins/sensors/sensors.pro
@@ -8,7 +8,7 @@ sensorfw {
isEmpty(SENSORS_PLUGINS): SENSORS_PLUGINS = sensorfw generic
}
-ios {
+darwin {
isEmpty(SENSORS_PLUGINS): SENSORS_PLUGINS = ios generic
}
@@ -31,5 +31,5 @@ isEmpty(SENSORS_PLUGINS)|contains(SENSORS_PLUGINS, linux):linux:SUBDIRS += linux
isEmpty(SENSORS_PLUGINS)|contains(SENSORS_PLUGINS, iio-sensor-proxy):linux:qtHaveModule(dbus):SUBDIRS += iio-sensor-proxy
isEmpty(SENSORS_PLUGINS)|contains(SENSORS_PLUGINS, android):android:SUBDIRS += android
isEmpty(SENSORS_PLUGINS)|contains(SENSORS_PLUGINS, sensorfw):sensorfw:SUBDIRS += sensorfw
-isEmpty(SENSORS_PLUGINS)|contains(SENSORS_PLUGINS, ios):ios:SUBDIRS += ios
+isEmpty(SENSORS_PLUGINS)|contains(SENSORS_PLUGINS, ios):darwin:SUBDIRS += ios
isEmpty(SENSORS_PLUGINS)|contains(SENSORS_PLUGINS, winrt):winrt:SUBDIRS += winrt