From 3ab63ba613302ccb73a6e14b2993418f9819fe92 Mon Sep 17 00:00:00 2001 From: MarcelEdward Date: Sat, 22 Aug 2015 22:48:51 +0200 Subject: [PATCH 1/8] Update Find3DConnexionClient.cmake The space navigator stopped working, this hopefully will fix it. The framework is 3DconnexionClient.framework for osx, not sure why connexion named it that way. It is a library in /Library/Frameworks, the library name is in stone. for apple, this works in cmake/modules/Find3DConnexionClient.cmake find_library(3DConnexionClient 3DconnexionClient) And for windows it has to find the I3dMouseParams.h file in interface/external/3dconnexionclient/includes. So for windows the line in Find3DConnexionClient.cmake has to be: hifi_library_search_hints("3dconnexionclient") --- cmake/modules/Find3DConnexionClient.cmake | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cmake/modules/Find3DConnexionClient.cmake b/cmake/modules/Find3DConnexionClient.cmake index e927ad1954..0352bc0f84 100644 --- a/cmake/modules/Find3DConnexionClient.cmake +++ b/cmake/modules/Find3DConnexionClient.cmake @@ -15,10 +15,10 @@ # include("${MACRO_DIR}/HifiLibrarySearchHints.cmake") -hifi_library_search_hints("connexionclient") +hifi_library_search_hints("3dconnexionclient") if (APPLE) - find_library(3DCONNEXIONCLIENT_LIBRARIES NAMES 3DConnexionClient HINTS 3DCONNEXIONCLIENT_SEARCH_DIRS) + find_library(3DConnexionClient 3DconnexionClient) if(EXISTS ${3DConnexionClient}) set(3DCONNEXIONCLIENT_FOUND true) set(3DCONNEXIONCLIENT_INCLUDE_DIRS ${3DConnexionClient}) @@ -35,4 +35,4 @@ elseif (WIN32) find_package_handle_standard_args(3DConnexionClient DEFAULT_MSG 3DCONNEXIONCLIENT_INCLUDE_DIRS) mark_as_advanced(3DCONNEXIONCLIENT_INCLUDE_DIRS 3DCONNEXIONCLIENT_SEARCH_DIRS) -endif() \ No newline at end of file +endif() From 96f20957c38d9bc3dbae6521fa32fb92dd6aa6e8 Mon Sep 17 00:00:00 2001 From: MarcelEdward Date: Tue, 15 Sep 2015 00:27:45 +0200 Subject: [PATCH 2/8] Create ConnexionClient.h --- .../include/ConnexionClient.h | 237 ++++++++++++++++++ 1 file changed, 237 insertions(+) create mode 100644 interface/external/3dconnexionclient/include/ConnexionClient.h diff --git a/interface/external/3dconnexionclient/include/ConnexionClient.h b/interface/external/3dconnexionclient/include/ConnexionClient.h new file mode 100644 index 0000000000..b66aed60d2 --- /dev/null +++ b/interface/external/3dconnexionclient/include/ConnexionClient.h @@ -0,0 +1,237 @@ +//============================================================================== + +#ifndef _H_connexionclient +#define _H_connexionclient + +#include + +//============================================================================== +#ifdef __cplusplus +extern "C" { +#endif +//============================================================================== +#pragma pack(push,2) +//============================================================================== +// Client registration modes + +// Use kConnexionClientWildcard ('****') as the application signature in the +// RegisterConnexionClient API to take over the device system-wide in all +// applications: + +#define kConnexionClientWildcard 0x2A2A2A2A + +// There are two plugin operating modes: one takes over the device +// and disables all built-in driver assignments, the other complements +// the driver by only executing commands that are meant for plugins: + +enum { + kConnexionClientModeTakeOver = 1, // take over device completely, driver no longer executes assignments + kConnexionClientModePlugin = 2 // receive plugin assignments only, let driver take care of its own +}; + +//============================================================================== +// Client commands + +// The following assignments must be executed by the client: + +enum { + kConnexionCmdNone = 0, + kConnexionCmdHandleRawData = 1, + kConnexionCmdHandleButtons = 2, + kConnexionCmdHandleAxis = 3, + + kConnexionCmdAppSpecific = 10 +}; + +//============================================================================== +// Messages + +// The following messages are forwarded to user space clients: + +#define kConnexionMsgDeviceState '3dSR' // forwarded device state data +#define kConnexionMsgPrefsChanged '3dPC' // notify clients that the current app prefs have changed +#define kConnexionMsgCalibrateDevice '3dSC' // device state data to be used for calibration + +// Control messages for the driver sent via the ConnexionControl API: + +#define kConnexionCtlSetLEDState '3dsl' // set the LED state, param = (uint8_t)ledState +#define kConnexionCtlGetDeviceID '3did' // get vendorID and productID in the high and low words of the result +#define kConnexionCtlCalibrate '3dca' // calibrate the device with the current axes values (same as executing the calibrate assignment) +#define kConnexionCtlUncalibrate '3dde' // uncalibrate the device (i.e. reset calibration to 0,0,0,0,0,0) +#define kConnexionCtlOpenPrefPane '3dop' // open the 3dconnexion preference pane in System Preferences +#define kConnexionCtlSetSwitches '3dss' // set the current state of the client-controlled feature switches (bitmap, see masks below) + +// Client capability mask constants (this mask defines which buttons and controls should be sent to clients, the others are handled by the driver) + +#define kConnexionMaskButton1 0x0001 +#define kConnexionMaskButton2 0x0002 +#define kConnexionMaskButton3 0x0004 +#define kConnexionMaskButton4 0x0008 +#define kConnexionMaskButton5 0x0010 +#define kConnexionMaskButton6 0x0020 +#define kConnexionMaskButton7 0x0040 +#define kConnexionMaskButton8 0x0080 + +#define kConnexionMaskAxis1 0x0100 +#define kConnexionMaskAxis2 0x0200 +#define kConnexionMaskAxis3 0x0400 +#define kConnexionMaskAxis4 0x0800 +#define kConnexionMaskAxis5 0x1000 +#define kConnexionMaskAxis6 0x2000 + +#define kConnexionMaskButtons 0x00FF // note: this only specifies the first 8 buttons, kept for backwards compatibility +#define kConnexionMaskAxisTrans 0x0700 +#define kConnexionMaskAxisRot 0x3800 +#define kConnexionMaskAxis 0x3F00 +#define kConnexionMaskAll 0x3FFF + +// Added in version 10:0 to support all 32 buttons on the SpacePilot Pro, use with the new SetConnexionClientButtonMask API + +#define kConnexionMaskButton9 0x00000100 +#define kConnexionMaskButton10 0x00000200 +#define kConnexionMaskButton11 0x00000400 +#define kConnexionMaskButton12 0x00000800 +#define kConnexionMaskButton13 0x00001000 +#define kConnexionMaskButton14 0x00002000 +#define kConnexionMaskButton15 0x00004000 +#define kConnexionMaskButton16 0x00008000 + +#define kConnexionMaskButton17 0x00010000 +#define kConnexionMaskButton18 0x00020000 +#define kConnexionMaskButton19 0x00040000 +#define kConnexionMaskButton20 0x00080000 +#define kConnexionMaskButton21 0x00100000 +#define kConnexionMaskButton22 0x00200000 +#define kConnexionMaskButton23 0x00400000 +#define kConnexionMaskButton24 0x00800000 + +#define kConnexionMaskButton25 0x01000000 +#define kConnexionMaskButton26 0x02000000 +#define kConnexionMaskButton27 0x04000000 +#define kConnexionMaskButton28 0x08000000 +#define kConnexionMaskButton29 0x10000000 +#define kConnexionMaskButton30 0x20000000 +#define kConnexionMaskButton31 0x40000000 +#define kConnexionMaskButton32 0x80000000 + +#define kConnexionMaskAllButtons 0xFFFFFFFF + +// Masks for client-controlled feature switches + +#define kConnexionSwitchDominant 0x0002 +#define kConnexionSwitchEnableAxis1 0x0004 +#define kConnexionSwitchEnableAxis2 0x0008 +#define kConnexionSwitchEnableAxis3 0x0010 +#define kConnexionSwitchEnableAxis4 0x0020 +#define kConnexionSwitchEnableAxis5 0x0040 +#define kConnexionSwitchEnableAxis6 0x0080 + +#define kConnexionSwitchEnableTrans 0x001C +#define kConnexionSwitchEnableRot 0x00E0 +#define kConnexionSwitchEnableAll 0x00FC + +#define kConnexionSwitchZoomOnY 0x0001 // no longer applies, no effect on new driver +#define kConnexionSwitchReverseAxis1 0x0100 // no longer applies, no effect on new driver +#define kConnexionSwitchReverseAxis2 0x0200 // no longer applies, no effect on new driver +#define kConnexionSwitchReverseAxis3 0x0400 // no longer applies, no effect on new driver +#define kConnexionSwitchReverseAxis4 0x0800 // no longer applies, no effect on new driver +#define kConnexionSwitchReverseAxis5 0x1000 // no longer applies, no effect on new driver +#define kConnexionSwitchReverseAxis6 0x2000 // no longer applies, no effect on new driver +#define kConnexionSwitchReverseTrans 0x0700 // no longer applies, no effect on new driver +#define kConnexionSwitchReverseRot 0x3800 // no longer applies, no effect on new driver +#define kConnexionSwitchReverseAll 0x3F00 // no longer applies, no effect on new driver + +#define kConnexionSwitchesDisabled 0x80000000 // use driver defaults instead of client-controlled switches + +//============================================================================== +// Device state record + +// Structure type and current version: + +#define kConnexionDeviceStateType 0x4D53 // 'MS' (Connexion State) +#define kConnexionDeviceStateVers 0x6D33 // 'm3' (version 3 includes 32-bit button data in previously unused field, binary compatible with version 2) + +// This structure is used to forward device data and commands from the kext to the client: + +typedef struct { +// header + uint16_t version; // kConnexionDeviceStateVers + uint16_t client; // identifier of the target client when sending a state message to all user clients +// command + uint16_t command; // command for the user-space client + int16_t param; // optional parameter for the specified command + int32_t value; // optional value for the specified command + uint64_t time; // timestamp for this message (clock_get_uptime) +// raw report + uint8_t report[8]; // raw USB report from the device +// processed data + uint16_t buttons8; // buttons (first 8 buttons only, for backwards binary compatibility- use "buttons" field instead) + int16_t axis[6]; // x, y, z, rx, ry, rz + uint16_t address; // USB device address, used to tell one device from the other + uint32_t buttons; // buttons +} ConnexionDeviceState, *ConnexionDeviceStatePtr; + +// Size of the above structure: + +#define kConnexionDeviceStateSize (sizeof(ConnexionDeviceState)) + +//============================================================================== +// Device IDs for 3Dconnexion devices with separate and different preferences. +// NOTE: These IDs are no longer internally used by the driver, and the +// ConnexionGetCurrentDevicePrefs API always returns kDevID_AnyDevice in the +// deviceID field. The definitions are kept here for backwards compatibility only. + +#define kDevID_AnyDevice 0x7FFF // wildcard used to specify any available device + +//============================================================================== +// Device prefs record + +// Structure type and current version: + +#define kConnexionDevicePrefsType 0x4D50 // 'MP' (Connexion Prefs) +#define kConnexionDevicePrefsVers 0x7031 // 'p1' (version 1) + +// This structure is used to retrieve the current device prefs from the helper: + +typedef struct { +// header + uint16_t type; // kConnexionDevicePrefsType + uint16_t version; // kConnexionDevicePrefsVers + uint16_t deviceID; // device ID (SpaceNavigator, SpaceNavigatorNB, SpaceExplorer...) + uint16_t reserved1; // set to 0 +// target application + uint32_t appSignature; // target application signature + uint32_t reserved2; // set to 0 + uint8_t appName[64]; // target application name (Pascal string with length byte at the beginning) +// device preferences + uint8_t mainSpeed; // overall speed + uint8_t zoomOnY; // use Y axis for zoom, Z axis for un/down pan + uint8_t dominant; // only respond to the largest one of all 6 axes values at any given time + uint8_t reserved3; // set to 0 + int8_t mapV[6]; // axes mapping when Zoom direction is on vertical axis (zoomOnY = 0) + int8_t mapH[6]; // axes mapping when Zoom direction is on horizontal axis (zoomOnY != 0) + uint8_t enabled[6]; // enable or disable individual axes + uint8_t reversed[6]; // reverse individual axes + uint8_t speed[6]; // speed for individual axes (min 0, max 200, reserved 201-255) + uint8_t sensitivity[6]; // sensitivity for individual axes (min 0, max 200, reserved 201-255) + int32_t scale[6]; // 10000 * scale and "natural" reverse state for individual axes +// added in version 10.0 (build 136) + uint32_t gamma; // 1000 * gamma value used to compute nonlinear axis response, use 1000 (1.0) for linear response + uint32_t intersect; // intersect value used for gamma computations +} ConnexionDevicePrefs, *ConnexionDevicePrefsPtr; + +// Size of the above structure: + +#define kConnexionDevicePrefsSize (sizeof(ConnexionDevicePrefs)) + +//============================================================================== +#pragma pack(pop) +//============================================================================== +#ifdef __cplusplus +} +#endif +//============================================================================== + +#endif // _H_connexionclient + +//============================================================================== From a53d244d333672664f560abd065e5448f6d057d6 Mon Sep 17 00:00:00 2001 From: MarcelEdward Date: Tue, 15 Sep 2015 00:28:17 +0200 Subject: [PATCH 3/8] Create ConnexionClientAPI.h --- .../include/ConnexionClientAPI.h | 88 +++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 interface/external/3dconnexionclient/include/ConnexionClientAPI.h diff --git a/interface/external/3dconnexionclient/include/ConnexionClientAPI.h b/interface/external/3dconnexionclient/include/ConnexionClientAPI.h new file mode 100644 index 0000000000..198b552f9a --- /dev/null +++ b/interface/external/3dconnexionclient/include/ConnexionClientAPI.h @@ -0,0 +1,88 @@ +//============================================================================== + +#ifndef _H_connexionclientapi +#define _H_connexionclientapi + +#include +#include "ConnexionClient.h" + +//============================================================================== +#ifdef __cplusplus +extern "C" { +#endif +//============================================================================== +// Callback procedure types + +typedef void (*ConnexionAddedHandlerProc) (unsigned int productID); +typedef void (*ConnexionRemovedHandlerProc) (unsigned int productID); +typedef void (*ConnexionMessageHandlerProc) (unsigned int productID, unsigned int messageType, void *messageArgument); + +// NOTE for ConnexionMessageHandlerProc: +// when messageType == kConnexionMsgDeviceState, messageArgument points to ConnexionDeviceState with size kConnexionDeviceStateSize +// when messageType == kConnexionMsgPrefsChanged, messageArgument points to the target application signature with size sizeof(uint32_t) + +//============================================================================== +// Public APIs to be called once when the application starts up or shuts down + +int16_t SetConnexionHandlers (ConnexionMessageHandlerProc messageHandler, ConnexionAddedHandlerProc addedHandler, ConnexionRemovedHandlerProc removedHandler, bool useSeparateThread); +void CleanupConnexionHandlers (void); + +// Obsolete API replaced by SetConnexionHandlers, will be removed in the future + +int16_t InstallConnexionHandlers (ConnexionMessageHandlerProc messageHandler, ConnexionAddedHandlerProc addedHandler, ConnexionRemovedHandlerProc removedHandler); + +//============================================================================== +// Public APIs to be called whenever the app wants to start/stop receiving data +// the mask parameter (client capabilities mask) specifies which controls must be forwarded to the client +// buttonMask (previously part of the client capabilities mask) specifies which buttons must be forwarded to the client + +uint16_t RegisterConnexionClient (uint32_t signature, uint8_t *name, uint16_t mode, uint32_t mask); +void SetConnexionClientMask (uint16_t clientID, uint32_t mask); +void SetConnexionClientButtonMask (uint16_t clientID, uint32_t buttonMask); +void UnregisterConnexionClient (uint16_t clientID); + +//============================================================================== +// Public API to send control commands to the driver and retrieve a result value +// Note: the new ConnexionClientControl variant is strictly required for +// kConnexionCtlSetSwitches and kConnexionCtlClearSwitches but also works for +// all other Control calls. The old variant remains for backwards compatibility. + +int16_t ConnexionControl (uint32_t message, int32_t param, int32_t *result); +int16_t ConnexionClientControl (uint16_t clientID, uint32_t message, int32_t param, int32_t *result); + +//============================================================================== +// Public API to fetch the current device preferences for either the first connected device or a specific device type (kDevID_Xxx) + +int16_t ConnexionGetCurrentDevicePrefs (uint32_t deviceID, ConnexionDevicePrefs *prefs); + +//============================================================================== +// Public API to set all button labels in the iOS/Android "virtual device" apps + +int16_t ConnexionSetButtonLabels (uint8_t *labels, uint16_t size); + +// Labels data is a series of 32 variable-length null-terminated UTF8-encoded strings. +// The sequence of strings follows the SpacePilot Pro button numbering. +// Empty strings revert the button label to its default value. +// As an example, this data would set the label for button Top to "Top" and +// revert all other button labels to their default values: +// +// 0x00, // empty string for Menu +// 0x00, // empty string for Fit +// 0x54, 0x6F, 0x70, 0x00, // utf-8 encoded "Top" string for Top +// 0x00, // empty string for Left +// 0x00, 0x00, 0x00, 0x00, // empty strings for Right, Front, etc... +// 0x00, 0x00, 0x00, 0x00, +// 0x00, 0x00, 0x00, 0x00, +// 0x00, 0x00, 0x00, 0x00, +// 0x00, 0x00, 0x00, 0x00, +// 0x00, 0x00, 0x00, 0x00, +// 0x00, 0x00, 0x00, 0x00 +//============================================================================== +#ifdef __cplusplus +} +#endif +//============================================================================== + +#endif // _H_connexionclientapi + +//============================================================================== From 9b70605381e4f8f97f018aa69582a88c6cb7c609 Mon Sep 17 00:00:00 2001 From: MarcelEdward Date: Tue, 15 Sep 2015 00:29:12 +0200 Subject: [PATCH 4/8] Update readme.txt --- interface/external/3dconnexionclient/readme.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/interface/external/3dconnexionclient/readme.txt b/interface/external/3dconnexionclient/readme.txt index a8014b386d..1a0201d795 100644 --- a/interface/external/3dconnexionclient/readme.txt +++ b/interface/external/3dconnexionclient/readme.txt @@ -1,3 +1,4 @@ The Mac version does not require any files. The 3D Connexion driver should be installed from http://www.3dconnexion.eu/service/drivers.html +You can copy the header files to the include dir, so that they get compiled in by xcode -For Windows the provided header file is required: include/I3dMouseParams.h \ No newline at end of file +For Windows the provided header file is required: include/I3dMouseParams.h From 64a8f7ebb4045ee5328a602fe9fc1326aee7f2a0 Mon Sep 17 00:00:00 2001 From: MarcelEdward Date: Tue, 15 Sep 2015 00:30:11 +0200 Subject: [PATCH 5/8] Update 3DConnexionClient.h --- interface/src/devices/3DConnexionClient.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/src/devices/3DConnexionClient.h b/interface/src/devices/3DConnexionClient.h index 01e7883f47..dd5dc7cb08 100755 --- a/interface/src/devices/3DConnexionClient.h +++ b/interface/src/devices/3DConnexionClient.h @@ -158,7 +158,7 @@ private: #else #include -#include "3DconnexionClient/ConnexionClientAPI.h" +#include "ConnexionClientAPI.h" class ConnexionClient : public QObject { Q_OBJECT @@ -239,4 +239,4 @@ protected: AxisStateMap _axisStateMap; }; -#endif // defined(hifi_3DConnexionClient_h) \ No newline at end of file +#endif // defined(hifi_3DConnexionClient_h) From c3ecbd15f84e68e83bbbdc144d801f90b67c7f7f Mon Sep 17 00:00:00 2001 From: MarcelEdward Date: Tue, 15 Sep 2015 00:30:49 +0200 Subject: [PATCH 6/8] Update Find3DConnexionClient.cmake --- cmake/modules/Find3DConnexionClient.cmake | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/cmake/modules/Find3DConnexionClient.cmake b/cmake/modules/Find3DConnexionClient.cmake index 0352bc0f84..5c45d8e581 100644 --- a/cmake/modules/Find3DConnexionClient.cmake +++ b/cmake/modules/Find3DConnexionClient.cmake @@ -18,13 +18,19 @@ include("${MACRO_DIR}/HifiLibrarySearchHints.cmake") hifi_library_search_hints("3dconnexionclient") if (APPLE) - find_library(3DConnexionClient 3DconnexionClient) - if(EXISTS ${3DConnexionClient}) - set(3DCONNEXIONCLIENT_FOUND true) - set(3DCONNEXIONCLIENT_INCLUDE_DIRS ${3DConnexionClient}) - set(3DCONNEXIONCLIENT_LIBRARY ${3DConnexionClient}) - message(STATUS "Found 3DConnexion at " ${3DConnexionClient}) - mark_as_advanced(3DCONNEXIONCLIENT_INCLUDE_DIR 3DCONNEXIONCLIENT_LIBRARY) + find_library(3DCONNEXIONCLIENT 3DconnexionClient) + if(EXISTS ${3DCONNEXIONCLIENT}) + find_path(3DCONNEXIONCLIENT_INCLUDE_DIR2 3DconnexionClient PATH_SUFFIXES include HINTS ${3DCONNEXIONCLIENT_SEARCH_DIRS}) + include_directories(${3DCONNEXIONCLIENT_INCLUDE_DIR2}) + + get_filename_component( 3DCONNEXIONCLIENT_FRAMEWORK_DIR ${3DCONNEXIONCLIENT} PATH ) + set_target_properties(${TARGET_NAME} PROPERTIES LINK_FLAGS "-weak_framework 3DconnexionClient") + set_target_properties(${TARGET_NAME} PROPERTIES FRAMEWORK_SEARCH_PATHS 3DCONNEXIONCLIENT_FRAMEWORK_DIR) + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(3DCONNEXIONCLIENT DEFAULT_MSG 3DCONNEXIONCLIENT_INCLUDE_DIR2) + mark_as_advanced(CONNEXIONCLIENT_INCLUDE_DIR2) + message(STATUS "Found 3DConnexion") else () message(STATUS "Could NOT find 3DConnexionClient") endif() @@ -32,7 +38,7 @@ elseif (WIN32) find_path(3DCONNEXIONCLIENT_INCLUDE_DIRS I3dMouseParams.h PATH_SUFFIXES include HINTS ${3DCONNEXIONCLIENT_SEARCH_DIRS}) include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(3DConnexionClient DEFAULT_MSG 3DCONNEXIONCLIENT_INCLUDE_DIRS) + find_package_handle_standard_args(3DCONNEXIONCLIENT DEFAULT_MSG 3DCONNEXIONCLIENT_INCLUDE_DIRS) mark_as_advanced(3DCONNEXIONCLIENT_INCLUDE_DIRS 3DCONNEXIONCLIENT_SEARCH_DIRS) endif() From 8a71b31af03f813f6b7bf2af9f3b2de21f425833 Mon Sep 17 00:00:00 2001 From: MarcelEdward Date: Tue, 15 Sep 2015 03:06:07 +0200 Subject: [PATCH 7/8] Update Find3DConnexionClient.cmake --- cmake/modules/Find3DConnexionClient.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/modules/Find3DConnexionClient.cmake b/cmake/modules/Find3DConnexionClient.cmake index 5c45d8e581..128d66b570 100644 --- a/cmake/modules/Find3DConnexionClient.cmake +++ b/cmake/modules/Find3DConnexionClient.cmake @@ -29,7 +29,7 @@ if (APPLE) include(FindPackageHandleStandardArgs) find_package_handle_standard_args(3DCONNEXIONCLIENT DEFAULT_MSG 3DCONNEXIONCLIENT_INCLUDE_DIR2) - mark_as_advanced(CONNEXIONCLIENT_INCLUDE_DIR2) + mark_as_advanced(3DCONNEXIONCLIENT_INCLUDE_DIR2) message(STATUS "Found 3DConnexion") else () message(STATUS "Could NOT find 3DConnexionClient") From c1ddf5fc322574d73a700678b116f27a663be52a Mon Sep 17 00:00:00 2001 From: MarcelEdward Date: Tue, 15 Sep 2015 03:22:44 +0200 Subject: [PATCH 8/8] Update Find3DConnexionClient.cmake --- cmake/modules/Find3DConnexionClient.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/modules/Find3DConnexionClient.cmake b/cmake/modules/Find3DConnexionClient.cmake index 128d66b570..681ac1250b 100644 --- a/cmake/modules/Find3DConnexionClient.cmake +++ b/cmake/modules/Find3DConnexionClient.cmake @@ -20,7 +20,7 @@ hifi_library_search_hints("3dconnexionclient") if (APPLE) find_library(3DCONNEXIONCLIENT 3DconnexionClient) if(EXISTS ${3DCONNEXIONCLIENT}) - find_path(3DCONNEXIONCLIENT_INCLUDE_DIR2 3DconnexionClient PATH_SUFFIXES include HINTS ${3DCONNEXIONCLIENT_SEARCH_DIRS}) + find_path(3DCONNEXIONCLIENT_INCLUDE_DIR2 ConnexionClient.h PATH_SUFFIXES include HINTS ${3DCONNEXIONCLIENT_SEARCH_DIRS}) include_directories(${3DCONNEXIONCLIENT_INCLUDE_DIR2}) get_filename_component( 3DCONNEXIONCLIENT_FRAMEWORK_DIR ${3DCONNEXIONCLIENT} PATH )