From 5cbd1492f2c48154b90ab8b7a3049220a163fee4 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 24 Jul 2014 15:09:41 -0700 Subject: [PATCH] more Cmake cleanup to grab externals --- cmake/modules/FindGLM.cmake | 2 +- interface/CMakeLists.txt | 128 ++++++++++-------------------------- interface/src/XmppClient.h | 10 +-- 3 files changed, 42 insertions(+), 98 deletions(-) diff --git a/cmake/modules/FindGLM.cmake b/cmake/modules/FindGLM.cmake index ae9a1bc23f..852ebbc15e 100644 --- a/cmake/modules/FindGLM.cmake +++ b/cmake/modules/FindGLM.cmake @@ -18,7 +18,7 @@ include("${MACRO_DIR}/HifiLibrarySearchHints.cmake") hifi_library_search_hints("glm") # locate header -find_path(GLM_INCLUDE_DIR "glm/glm.hpp" HINTS ${GLM_HEADER_SEARCH_HINTS}) +find_path(GLM_INCLUDE_DIR "glm/glm.hpp" HINTS ${GLM_SEARCH_DIRS}) set(GLM_INCLUDE_DIRS "${GLM_INCLUDE_DIR}") include(FindPackageHandleStandardArgs) diff --git a/interface/CMakeLists.txt b/interface/CMakeLists.txt index 706b440b1e..3138a783b3 100644 --- a/interface/CMakeLists.txt +++ b/interface/CMakeLists.txt @@ -14,7 +14,7 @@ project(${TARGET_NAME}) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../cmake/modules/") # set a default root dir for each of our optional externals if it was not passed -set(OPTIONAL_EXTERNALS "faceplus" "faceshift" "oculus" "priovr" "sixense" "visage" "leapmotion" "rtmidi") +set(OPTIONAL_EXTERNALS "faceplus" "faceshift" "oculus" "priovr" "sixense" "visage" "leapmotion" "rtmidi" "qxmpp") foreach(EXTERNAL ${OPTIONAL_EXTERNALS}) string(TOUPPER ${EXTERNAL} UPPER_EXTERNAL) if (NOT ${UPPER_EXTERNAL}_ROOT_DIR) @@ -134,104 +134,48 @@ find_package(Qxmpp) find_package(RtMidi) find_package(OpenSSL REQUIRED) -# include the Sixense library for Razer Hydra if available -if (SIXENSE_FOUND AND NOT DISABLE_SIXENSE) - add_definitions(-DHAVE_SIXENSE) - include_directories(SYSTEM "${SIXENSE_INCLUDE_DIRS}") - if (APPLE OR UNIX) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -isystem ${SIXENSE_INCLUDE_DIRS}") - endif (APPLE OR UNIX) - target_link_libraries(${TARGET_NAME} ${SIXENSE_LIBRARIES}) -endif (SIXENSE_FOUND AND NOT DISABLE_SIXENSE) - -# likewise with Visage library for webcam feature tracking -if (VISAGE_FOUND AND NOT DISABLE_VISAGE) - add_definitions(-DHAVE_VISAGE -DVISAGE_STATIC) - include_directories(SYSTEM "${VISAGE_INCLUDE_DIRS}") - if (APPLE) - add_definitions(-DMAC_OS_X) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-comment") - include_directories(SYSTEM "${VISAGE_INCLUDE_DIRS}") - find_library(AVFoundation AVFoundation) - find_library(CoreMedia CoreMedia) - find_library(NEW_STD_LIBRARY libc++.dylib /usr/lib/) - target_link_libraries(${TARGET_NAME} ${AVFoundation} ${CoreMedia} ${NEW_STD_LIBRARY}) - endif (APPLE) - target_link_libraries(${TARGET_NAME} "${VISAGE_LIBRARIES}") -endif (VISAGE_FOUND AND NOT DISABLE_VISAGE) - -# and with Faceplus library, also for webcam feature tracking -if (FACEPLUS_FOUND AND NOT DISABLE_FACEPLUS) - add_definitions(-DHAVE_FACEPLUS) - include_directories(SYSTEM "${FACEPLUS_INCLUDE_DIRS}") - target_link_libraries(${TARGET_NAME} "${FACEPLUS_LIBRARIES}") -endif (FACEPLUS_FOUND AND NOT DISABLE_FACEPLUS) - -# and with LibOVR for Oculus Rift -if (LIBOVR_FOUND AND NOT DISABLE_LIBOVR) - add_definitions(-DHAVE_LIBOVR) - include_directories(SYSTEM ${LIBOVR_INCLUDE_DIRS}) +# perform standard include and linking for found externals +foreach(EXTERNAL ${OPTIONAL_EXTERNALS}) + string(TOUPPER ${EXTERNAL} UPPER_EXTERNAL) - if (APPLE) - foreach(LIBOVR_DIR ${LIBOVR_INCLUDE_DIRS}) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -isystem ${LIBOVR_DIR}") - endforeach() + if (${UPPER_EXTERNAL} MATCHES "OCULUS") + # the oculus directory is named OCULUS and not LIBOVR so hack to fix that here + set(UPPER_EXTERNAL "LIBOVR") endif () - target_link_libraries(${TARGET_NAME} ${LIBOVR_LIBRARIES}) -endif (LIBOVR_FOUND AND NOT DISABLE_LIBOVR) - -# and with PrioVR library -if (PRIOVR_FOUND AND NOT DISABLE_PRIOVR) - add_definitions(-DHAVE_PRIOVR) - include_directories(SYSTEM "${PRIOVR_INCLUDE_DIRS}") - target_link_libraries(${TARGET_NAME} "${PRIOVR_LIBRARIES}") -endif (PRIOVR_FOUND AND NOT DISABLE_PRIOVR) - -# and with LeapMotion library -if (LEAPMOTION_FOUND AND NOT DISABLE_LEAPMOTION) - add_definitions(-DHAVE_LEAPMOTION) - include_directories(SYSTEM "${LEAPMOTION_INCLUDE_DIRS}") - + if (${UPPER_EXTERNAL}_FOUND AND NOT DISABLE_${UPPER_EXTERNAL}) + add_definitions(-DHAVE_${UPPER_EXTERNAL}) + + # include the library directories (ignoring warnings) + include_directories(SYSTEM ${${UPPER_EXTERNAL}_INCLUDE_DIRS}) + + # perform the system include hack for OS X to ignore warnings if (APPLE) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -isystem ${LEAPMOTION_INCLUDE_DIRS}") + foreach(EXTERNAL_INCLUDE_DIR ${${UPPER_EXTERNAL}_INCLUDE_DIRS}) + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -isystem ${EXTERNAL_INCLUDE_DIR}") + endforeach() endif () - target_link_libraries(${TARGET_NAME} ${LEAPMOTION_LIBRARIES}) -endif (LEAPMOTION_FOUND AND NOT DISABLE_LEAPMOTION) + + target_link_libraries(${TARGET_NAME} ${${UPPER_EXTERNAL}_LIBRARIES}) + + endif () +endforeach() -# and with SDL for joysticks -if (SDL_FOUND AND NOT DISABLE_SDL) - add_definitions(-DHAVE_SDL) - include_directories(SYSTEM "${SDL_INCLUDE_DIR}") - target_link_libraries(${TARGET_NAME} "${SDL_LIBRARY}") -endif (SDL_FOUND AND NOT DISABLE_SDL) +# special APPLE modifications for Visage library +if (VISAGE_FOUND AND NOT DISABLE_VISAGE AND APPLE) + add_definitions(-DMAC_OS_X) + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-comment") + find_library(AVFoundation AVFoundation) + find_library(CoreMedia CoreMedia) + find_library(NEW_STD_LIBRARY libc++.dylib /usr/lib/) + target_link_libraries(${TARGET_NAME} ${AVFoundation} ${CoreMedia} ${NEW_STD_LIBRARY}) +endif () -# and with qxmpp for chat -if (QXMPP_FOUND AND NOT DISABLE_QXMPP) - add_definitions(-DHAVE_QXMPP -DQXMPP_STATIC) - include_directories(SYSTEM "${QXMPP_INCLUDE_DIRS}") - - target_link_libraries(${TARGET_NAME} ${QXMPP_LIBRARIES}) -endif (QXMPP_FOUND AND NOT DISABLE_QXMPP) - -# and with RtMidi for RtMidi control -if (RTMIDI_FOUND AND NOT DISABLE_RTMIDI) - add_definitions(-DHAVE_RTMIDI) - include_directories(SYSTEM "${RTMIDI_INCLUDE_DIRS}") - target_link_libraries(${TARGET_NAME} ${RTMIDI_LIBRARIES}) - - if (APPLE) - find_library(CoreMIDI CoreMIDI) - add_definitions(-D__MACOSX_CORE__) - target_link_libraries(${TARGET_NAME} ${CoreMIDI}) - endif() -endif() - -# and with Faceshift for depth camera face tracking -if (FACESHIFT_FOUND AND NOT DISABLE_FACESHIFT) - add_definitions(-DHAVE_FACESHIFT) - include_directories(SYSTEM "${FACESHIFT_INCLUDE_DIRS}") - target_link_libraries(${TARGET_NAME} ${FACESHIFT_LIBRARIES}) +# special OS X modifications for RtMidi library +if (RTMIDI_FOUND AND NOT DISABLE_RTMIDI AND APPLY) + find_library(CoreMIDI CoreMIDI) + add_definitions(-D__MACOSX_CORE__) + target_link_libraries(${TARGET_NAME} ${CoreMIDI}) endif() # include headers for interface and InterfaceConfig. diff --git a/interface/src/XmppClient.h b/interface/src/XmppClient.h index cbb06cf992..9d848e2727 100644 --- a/interface/src/XmppClient.h +++ b/interface/src/XmppClient.h @@ -9,19 +9,20 @@ // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // -#ifdef HAVE_QXMPP - #ifndef hifi_XmppClient_h #define hifi_XmppClient_h #include + +#ifdef HAVE_QXMPP #include #include +#endif /// Generalized threaded processor for handling received inbound packets. class XmppClient : public QObject { Q_OBJECT - +#ifdef HAVE_QXMPP public: static XmppClient& getInstance(); @@ -46,8 +47,7 @@ private: QXmppClient _xmppClient; QXmppMucManager _xmppMUCManager; QXmppMucRoom* _publicChatRoom; +#endif }; -#endif // __interface__XmppClient__ - #endif // hifi_XmppClient_h