diff --git a/CMakeLists.txt b/CMakeLists.txt index 22062caa6c..a79476f17f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -138,6 +138,7 @@ if (WIN32) endif () option(GET_SDL2 "Get SDL2 library automatically as external project" 0) +option(GET_QXMPP "GET Qxmpp library automatically as external project" 0) if (WIN32) add_paths_to_lib_paths("${QT_DIR}/bin") diff --git a/cmake/externals/qxmpp/CMakeLists.txt b/cmake/externals/qxmpp/CMakeLists.txt new file mode 100644 index 0000000000..ddac75569b --- /dev/null +++ b/cmake/externals/qxmpp/CMakeLists.txt @@ -0,0 +1,47 @@ +set(EXTERNAL_NAME qxmpp) + +# we need to find qmake inside QT_DIR +find_program(QMAKE_COMMAND NAME qmake PATHS ${QT_DIR}/bin NO_DEFAULT_PATH) + +if (NOT QMAKE_COMMAND) + message(FATAL_ERROR "Could not find qmake. Qxmpp cannot be compiled without qmake.") +endif () + +if (ANDROID) + set(ANDROID_CMAKE_ARGS "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "-DANDROID_NATIVE_API_LEVEL=19") +endif () + +include(ExternalProject) +ExternalProject_Add( + ${EXTERNAL_NAME} + URL http://qxmpp.googlecode.com/files/qxmpp-0.7.6.tar.gz + URL_MD5 ee45a97313306ded2ff0f6618a3ed1e1 + BUILD_IN_SOURCE 1 + PATCH_COMMAND patch -p2 -t -N --verbose < ${CMAKE_CURRENT_SOURCE_DIR}/qxmpp.patch + CONFIGURE_COMMAND ${QMAKE_COMMAND} PREFIX= + LOG_DOWNLOAD 1 + LOG_CONFIGURE 1 + LOG_BUILD 1 +) + +ExternalProject_Get_Property(${EXTERNAL_NAME} INSTALL_DIR) + +string(TOUPPER ${EXTERNAL_NAME} EXTERNAL_NAME_UPPER) +set(${EXTERNAL_NAME_UPPER}_INCLUDE_DIRS ${INSTALL_DIR}/include CACHE FILEPATH "Path to Qxmpp include directory") + +if (WIN32) + set(_LIB_EXT "lib") + + set(${EXTERNAL_NAME_UPPER}_DLL_PATH ${_LIB_DIR} CACHE PATH "Location of QXmpp DLL") +else () + if (APPLE) + set(_LIB_EXT "dylib") + else () + set(_LIB_EXT "so") + endif () + + set(_LIB_PREFIX "lib") +endif () + +set(${EXTERNAL_NAME_UPPER}_LIBRARY_RELEASE ${INSTALL_DIR}/${_LIB_PREFIX}qxmpp.${_LIB_EXT} CACHE FILEPATH "Path to QXmpp release library") +set(${EXTERNAL_NAME_UPPER}_LIBRARY_DEBUG NOTFOUND CACHE FILEPATH "Path to QXmpp debug library") diff --git a/cmake/externals/qxmpp/qxmpp.patch b/cmake/externals/qxmpp/qxmpp.patch new file mode 100644 index 0000000000..ca2f455817 --- /dev/null +++ b/cmake/externals/qxmpp/qxmpp.patch @@ -0,0 +1,13 @@ +diff --git a/qxmpp-0.7.6/src/src.pro b/qxmpp-0.7.6-patch/src/src.pro +index 954738c..8404c8c 100644 +--- a/qxmpp-0.7.6/src/src.pro ++++ b/qxmpp-0.7.6-patch/src/src.pro +@@ -4,7 +4,7 @@ QT -= gui + + TEMPLATE = lib + +-CONFIG += $$QXMPP_LIBRARY_TYPE ++CONFIG += $$QXMPP_LIBRARY_TYPE c++11 + DEFINES += QXMPP_BUILD + DEFINES += $$QXMPP_INTERNAL_DEFINES + INCLUDEPATH += $$QXMPP_INCLUDEPATH $$QXMPP_INTERNAL_INCLUDES diff --git a/interface/CMakeLists.txt b/interface/CMakeLists.txt index 0cff232f26..2e0120dfc8 100644 --- a/interface/CMakeLists.txt +++ b/interface/CMakeLists.txt @@ -119,7 +119,7 @@ link_hifi_libraries(shared octree environment gpu model fbx metavoxels networkin audio audio-client animation script-engine physics render-utils entities-renderer) -add_dependency_external_projects(sdl2) +add_dependency_external_projects(sdl2 qxmpp) # perform standard include and linking for found externals foreach(EXTERNAL ${OPTIONAL_EXTERNALS})