diff --git a/INSTALL.md b/INSTALL.md index 46947be46c..628d56b268 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -41,7 +41,6 @@ UNIX In general, as long as external dependencies are placed in OS standard locations, CMake will successfully find them during its run. When possible, you may choose to install depencies from your package manager of choice, or from source. - OS X --- diff --git a/assignment-client/CMakeLists.txt b/assignment-client/CMakeLists.txt index 2df3cb1ab9..fe035e3c51 100644 --- a/assignment-client/CMakeLists.txt +++ b/assignment-client/CMakeLists.txt @@ -8,15 +8,11 @@ set(MACRO_DIR "${ROOT_DIR}/cmake/macros") # setup for find modules set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../cmake/modules/") -find_package(Qt5Network REQUIRED) -find_package(Qt5Script REQUIRED) -find_package(Qt5Widgets REQUIRED) +find_package(Qt5 COMPONENTS Network Script Widgets) include("${MACRO_DIR}/SetupHifiProject.cmake") setup_hifi_project(${TARGET_NAME} TRUE) -qt5_use_modules(${TARGET_NAME} Network Script Widgets) - # include glm include("${MACRO_DIR}/IncludeGLM.cmake") include_glm(${TARGET_NAME} "${ROOT_DIR}") @@ -40,3 +36,5 @@ endif (UNIX) IF (WIN32) target_link_libraries(${TARGET_NAME} Winmm Ws2_32) ENDIF(WIN32) + +target_link_libraries(${TARGET_NAME} Qt5::Network Qt5::Widgets Qt5::Script) diff --git a/domain-server/CMakeLists.txt b/domain-server/CMakeLists.txt index a4624dbbf7..eeaa4dc150 100644 --- a/domain-server/CMakeLists.txt +++ b/domain-server/CMakeLists.txt @@ -18,8 +18,6 @@ include(${MACRO_DIR}/SetupHifiProject.cmake) setup_hifi_project(${TARGET_NAME} TRUE) -qt5_use_modules(${TARGET_NAME} Network) - # remove and then copy the files for the webserver add_custom_command(TARGET ${TARGET_NAME} POST_BUILD COMMAND "${CMAKE_COMMAND}" -E remove_directory @@ -36,4 +34,6 @@ link_hifi_library(embedded-webserver ${TARGET_NAME} "${ROOT_DIR}") IF (WIN32) target_link_libraries(${TARGET_NAME} Winmm Ws2_32) -ENDIF(WIN32) \ No newline at end of file +ENDIF(WIN32) + +target_link_libraries(${TARGET_NAME} Qt5::Network) \ No newline at end of file diff --git a/examples/bot.js b/examples/bot.js index a3ae7f3263..162dde9dae 100644 --- a/examples/bot.js +++ b/examples/bot.js @@ -18,6 +18,10 @@ function getRandomInt (min, max) { return Math.floor(Math.random() * (max - min + 1)) + min; } +function printVector(string, vector) { + print(string + " " + vector.x + ", " + vector.y + ", " + vector.z); +} + var CHANCE_OF_MOVING = 0.005; var CHANCE_OF_SOUND = 0.005; var CHANCE_OF_HEAD_TURNING = 0.05; @@ -31,6 +35,7 @@ var X_MIN = 0.0; var X_MAX = 5.0; var Z_MIN = 0.0; var Z_MAX = 5.0; +var Y_PELVIS = 2.5; var MOVE_RANGE_SMALL = 0.5; var MOVE_RANGE_BIG = Math.max(X_MAX - X_MIN, Z_MAX - Z_MIN) / 2.0; @@ -41,7 +46,7 @@ var TURN_RATE = 0.15; var PITCH_RATE = 0.20; var PITCH_RANGE = 30.0; -var firstPosition = { x: getRandomFloat(X_MIN, X_MAX), y: 0, z: getRandomFloat(Z_MIN, Z_MAX) }; +var firstPosition = { x: getRandomFloat(X_MIN, X_MAX), y: Y_PELVIS, z: getRandomFloat(Z_MIN, Z_MAX) }; var targetPosition = { x: 0, y: 0, z: 0 }; var targetDirection = { x: 0, y: 0, z: 0, w: 0 }; var currentDirection = { x: 0, y: 0, z: 0, w: 0 }; @@ -72,9 +77,6 @@ function playRandomSound(position) { } } -// change the avatar's position to the random one -Avatar.position = firstPosition; - // pick an integer between 1 and 20 for the face model for this bot botNumber = getRandomInt(1, 100); @@ -103,6 +105,10 @@ Avatar.billboardURL = "https://s3-us-west-1.amazonaws.com/highfidelity-public/me Agent.isAvatar = true; +// change the avatar's position to the random one +Avatar.position = firstPosition; +printVector("New bot, position = ", Avatar.position); + function updateBehavior() { if (Math.random() < CHANCE_OF_SOUND) { playRandomSound(Avatar.position); @@ -132,6 +138,7 @@ function updateBehavior() { } targetPosition.x = clamp(targetPosition.x, X_MIN, X_MAX); targetPosition.z = clamp(targetPosition.z, Z_MIN, Z_MAX); + targetPosition.y = Y_PELVIS; isMoving = true; } else { diff --git a/examples/editVoxels.js b/examples/editVoxels.js index f3e3fcf46e..9a014639f0 100644 --- a/examples/editVoxels.js +++ b/examples/editVoxels.js @@ -920,7 +920,7 @@ function keyPressEvent(event) { red: colors[color].red, green: colors[color].green, blue: colors[color].blue }; - Voxels.eraseVoxel(voxelDetails.x, voxelDetails.y, voxelDetails.z, voxelDetails.s); + Voxels.eraseVoxel(newVoxel.x, newVoxel.y, newVoxel.z, newVoxel.s); Voxels.setVoxel(newVoxel.x, newVoxel.y, newVoxel.z, newVoxel.s, newVoxel.red, newVoxel.green, newVoxel.blue); setAudioPosition(); playRandomAddSound(audioOptions); diff --git a/examples/gun.js b/examples/gun.js index 17587e3810..b50a8f64d8 100644 --- a/examples/gun.js +++ b/examples/gun.js @@ -57,12 +57,12 @@ function shootBullet(position, velocity) { damping: 0 }); // Play firing sounds - audioOptions.position = position; + audioOptions.position = position; Audio.playSound(fireSound, audioOptions); } function particleCollisionWithVoxel(particle, voxel) { - var HOLE_SIZE = 0.25; + var HOLE_SIZE = 0.125; var particleProperties = Particles.getParticleProperties(particle); var position = particleProperties.position; Particles.deleteParticle(particle); diff --git a/interface/CMakeLists.txt b/interface/CMakeLists.txt index 0910696534..3033eda69e 100644 --- a/interface/CMakeLists.txt +++ b/interface/CMakeLists.txt @@ -75,15 +75,7 @@ foreach(EXTERNAL_SOURCE_SUBDIR ${EXTERNAL_SOURCE_SUBDIRS}) set(INTERFACE_SRCS ${INTERFACE_SRCS} "${SUBDIR_SRCS}") endforeach(EXTERNAL_SOURCE_SUBDIR) -find_package(Qt5Core REQUIRED) -find_package(Qt5Gui REQUIRED) -find_package(Qt5Multimedia REQUIRED) -find_package(Qt5Network REQUIRED) -find_package(Qt5OpenGL REQUIRED) -find_package(Qt5Svg REQUIRED) -find_package(Qt5WebKit REQUIRED) -find_package(Qt5WebKitWidgets REQUIRED) -find_package(Qt5Xml REQUIRED) +find_package(Qt5 COMPONENTS Core Gui Multimedia Network OpenGL Script Svg WebKit WebKitWidgets Xml UiTools) # grab the ui files in resources/ui file (GLOB_RECURSE QT_UI_FILES ui/*.ui) @@ -180,8 +172,6 @@ if (LIBOVR_FOUND AND NOT DISABLE_LIBOVR) target_link_libraries(${TARGET_NAME} "${LIBOVR_LIBRARIES}") endif (LIBOVR_FOUND AND NOT DISABLE_LIBOVR) -qt5_use_modules(${TARGET_NAME} Core Gui Multimedia Network OpenGL Script Svg WebKit WebKitWidgets Xml UiTools) - # include headers for interface and InterfaceConfig. include_directories( "${PROJECT_SOURCE_DIR}/src" @@ -192,7 +182,13 @@ include_directories( # use system flag so warnings are supressed include_directories(SYSTEM "${FACESHIFT_INCLUDE_DIRS}") -target_link_libraries(${TARGET_NAME} "${FACESHIFT_LIBRARIES}" "${ZLIB_LIBRARIES}") +target_link_libraries( + ${TARGET_NAME} + "${FACESHIFT_LIBRARIES}" + "${ZLIB_LIBRARIES}" + Qt5::Core Qt5::Gui Qt5::Multimedia Qt5::Network Qt5::OpenGL + Qt5::Script Qt5::Svg Qt5::WebKit Qt5::WebKitWidgets Qt5::Xml Qt5::UiTools +) if (APPLE) # link in required OS X frameworks and include the right GL headers diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 4da812b445..54baeb250d 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -110,9 +110,11 @@ const QString CUSTOM_URL_SCHEME = "hifi:"; void messageHandler(QtMsgType type, const QMessageLogContext& context, const QString& message) { if (message.size() > 0) { - QString messageWithNewLine = message + "\n"; - fprintf(stdout, "%s", messageWithNewLine.toLocal8Bit().constData()); - Application::getInstance()->getLogger()->addMessage(messageWithNewLine.toLocal8Bit().constData()); + QString dateString = QDateTime::currentDateTime().toTimeSpec(Qt::LocalTime).toString(Qt::ISODate); + QString formattedMessage = QString("[%1] %2\n").arg(dateString).arg(message); + + fprintf(stdout, "%s", qPrintable(formattedMessage)); + Application::getInstance()->getLogger()->addMessage(qPrintable(formattedMessage)); } } @@ -3479,7 +3481,6 @@ void Application::cleanupScriptMenuItem(const QString& scriptMenuName) { } void Application::loadScript(const QString& fileNameString) { - _activeScripts.append(fileNameString); QByteArray fileNameAscii = fileNameString.toLocal8Bit(); const char* fileName = fileNameAscii.data(); @@ -3489,6 +3490,7 @@ void Application::loadScript(const QString& fileNameString) { return; } qDebug("Loading file %s...", fileName); + _activeScripts.append(fileNameString); // get file length.... unsigned long fileLength = file.tellg(); diff --git a/libraries/avatars/CMakeLists.txt b/libraries/avatars/CMakeLists.txt index bcafb32dc6..316f1dca58 100644 --- a/libraries/avatars/CMakeLists.txt +++ b/libraries/avatars/CMakeLists.txt @@ -13,8 +13,6 @@ find_package(Qt5Script REQUIRED) include(${MACRO_DIR}/SetupHifiLibrary.cmake) setup_hifi_library(${TARGET_NAME}) -qt5_use_modules(${TARGET_NAME} Script) - include(${MACRO_DIR}/IncludeGLM.cmake) include_glm(${TARGET_NAME} "${ROOT_DIR}") @@ -24,3 +22,5 @@ link_hifi_library(shared ${TARGET_NAME} "${ROOT_DIR}") # link in the hifi voxels library link_hifi_library(octree ${TARGET_NAME} "${ROOT_DIR}") link_hifi_library(voxels ${TARGET_NAME} "${ROOT_DIR}") + +target_link_libraries(${TARGET_NAME} Qt5::Script) \ No newline at end of file diff --git a/libraries/embedded-webserver/CMakeLists.txt b/libraries/embedded-webserver/CMakeLists.txt index 1ab454bf0a..06dd2d750d 100644 --- a/libraries/embedded-webserver/CMakeLists.txt +++ b/libraries/embedded-webserver/CMakeLists.txt @@ -13,4 +13,4 @@ find_package(Qt5Network REQUIRED) include(${MACRO_DIR}/SetupHifiLibrary.cmake) setup_hifi_library(${TARGET_NAME}) -qt5_use_modules(${TARGET_NAME} Network) \ No newline at end of file +target_link_libraries(${TARGET_NAME} Qt5::Network) \ No newline at end of file diff --git a/libraries/metavoxels/CMakeLists.txt b/libraries/metavoxels/CMakeLists.txt index 617609f1fa..bab03058a0 100644 --- a/libraries/metavoxels/CMakeLists.txt +++ b/libraries/metavoxels/CMakeLists.txt @@ -8,8 +8,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../../cm set(TARGET_NAME metavoxels) -find_package(Qt5Network REQUIRED) -find_package(Qt5Widgets REQUIRED) +find_package(Qt5 COMPONENTS Network Script Widgets) include(${MACRO_DIR}/AutoMTC.cmake) auto_mtc(${TARGET_NAME} "${ROOT_DIR}") @@ -17,8 +16,8 @@ auto_mtc(${TARGET_NAME} "${ROOT_DIR}") include(${MACRO_DIR}/SetupHifiLibrary.cmake) setup_hifi_library(${TARGET_NAME} "${AUTOMTC_SRC}") -qt5_use_modules(${TARGET_NAME} Network Script Widgets) - include(${MACRO_DIR}/IncludeGLM.cmake) include_glm(${TARGET_NAME} "${ROOT_DIR}") +target_link_libraries(${TARGET_NAME} Qt5::Network Qt5::Widgets Qt5::Script) + diff --git a/libraries/octree/CMakeLists.txt b/libraries/octree/CMakeLists.txt index ac59ca454e..8b8f37bae7 100644 --- a/libraries/octree/CMakeLists.txt +++ b/libraries/octree/CMakeLists.txt @@ -13,8 +13,6 @@ find_package(Qt5Widgets REQUIRED) include(${MACRO_DIR}/SetupHifiLibrary.cmake) setup_hifi_library(${TARGET_NAME}) -qt5_use_modules(${TARGET_NAME} Widgets) - include(${MACRO_DIR}/IncludeGLM.cmake) include_glm(${TARGET_NAME} "${ROOT_DIR}") @@ -24,4 +22,5 @@ link_hifi_library(shared ${TARGET_NAME} "${ROOT_DIR}") # link ZLIB find_package(ZLIB) include_directories("${ZLIB_INCLUDE_DIRS}") -target_link_libraries(${TARGET_NAME} "${ZLIB_LIBRARIES}") + +target_link_libraries(${TARGET_NAME} "${ZLIB_LIBRARIES}" Qt5::Widgets) diff --git a/libraries/octree/src/Octree.cpp b/libraries/octree/src/Octree.cpp index 05760ef675..4515deb6b5 100644 --- a/libraries/octree/src/Octree.cpp +++ b/libraries/octree/src/Octree.cpp @@ -590,16 +590,26 @@ bool findRayIntersectionOp(OctreeElement* node, void* extraData) { } bool Octree::findRayIntersection(const glm::vec3& origin, const glm::vec3& direction, - OctreeElement*& node, float& distance, BoxFace& face, bool tryLock) { + OctreeElement*& node, float& distance, BoxFace& face, Octree::lockType lockType) { RayArgs args = { origin / (float)(TREE_SCALE), direction, node, distance, face }; - if (!tryLock) { + bool gotLock = false; + if (lockType == Octree::Lock) { lockForRead(); + gotLock = true; + } else if (lockType == Octree::TryLock) { + gotLock = tryLockForRead(); + if (!gotLock) { + return args.found; // if we wanted to tryLock, and we couldn't then just bail... + } } - if (tryLock && tryLockForRead()) { - recurseTreeWithOperation(findRayIntersectionOp, &args); + + recurseTreeWithOperation(findRayIntersectionOp, &args); + + if (gotLock) { unlock(); } + return args.found; } @@ -635,7 +645,7 @@ bool findSpherePenetrationOp(OctreeElement* element, void* extraData) { } bool Octree::findSpherePenetration(const glm::vec3& center, float radius, glm::vec3& penetration, - void** penetratedObject, bool tryLock) { + void** penetratedObject, Octree::lockType lockType) { SphereArgs args = { center / (float)(TREE_SCALE), @@ -644,17 +654,27 @@ bool Octree::findSpherePenetration(const glm::vec3& center, float radius, glm::v false, NULL }; penetration = glm::vec3(0.0f, 0.0f, 0.0f); - - if (!tryLock) { + + bool gotLock = false; + if (lockType == Octree::Lock) { lockForRead(); - } - if (tryLock && tryLockForRead()) { - recurseTreeWithOperation(findSpherePenetrationOp, &args); - if (penetratedObject) { - *penetratedObject = args.penetratedObject; + gotLock = true; + } else if (lockType == Octree::TryLock) { + gotLock = tryLockForRead(); + if (!gotLock) { + return args.found; // if we wanted to tryLock, and we couldn't then just bail... } + } + + recurseTreeWithOperation(findSpherePenetrationOp, &args); + if (penetratedObject) { + *penetratedObject = args.penetratedObject; + } + + if (gotLock) { unlock(); } + return args.found; } @@ -689,7 +709,7 @@ bool findCapsulePenetrationOp(OctreeElement* node, void* extraData) { } bool Octree::findCapsulePenetration(const glm::vec3& start, const glm::vec3& end, float radius, - glm::vec3& penetration, bool tryLock) { + glm::vec3& penetration, Octree::lockType lockType) { CapsuleArgs args = { start / (float)(TREE_SCALE), @@ -699,11 +719,20 @@ bool Octree::findCapsulePenetration(const glm::vec3& start, const glm::vec3& end false }; penetration = glm::vec3(0.0f, 0.0f, 0.0f); - if (!tryLock) { + bool gotLock = false; + if (lockType == Octree::Lock) { lockForRead(); + gotLock = true; + } else if (lockType == Octree::TryLock) { + gotLock = tryLockForRead(); + if (!gotLock) { + return args.found; // if we wanted to tryLock, and we couldn't then just bail... + } } - if (tryLock && tryLockForRead()) { - recurseTreeWithOperation(findCapsulePenetrationOp, &args); + + recurseTreeWithOperation(findCapsulePenetrationOp, &args); + + if (gotLock) { unlock(); } return args.found; @@ -732,18 +761,28 @@ bool getElementEnclosingOperation(OctreeElement* element, void* extraData) { return true; // keep looking } -OctreeElement* Octree::getElementEnclosingPoint(const glm::vec3& point, bool tryLock) { +OctreeElement* Octree::getElementEnclosingPoint(const glm::vec3& point, Octree::lockType lockType) { GetElementEnclosingArgs args; args.point = point; args.element = NULL; - if (!tryLock) { + bool gotLock = false; + if (lockType == Octree::Lock) { lockForRead(); + gotLock = true; + } else if (lockType == Octree::TryLock) { + gotLock = tryLockForRead(); + if (!gotLock) { + return args.element; // if we wanted to tryLock, and we couldn't then just bail... + } } - if (tryLock && tryLockForRead()) { - recurseTreeWithOperation(getElementEnclosingOperation, (void*)&args); + + recurseTreeWithOperation(getElementEnclosingOperation, (void*)&args); + + if (gotLock) { unlock(); } + return args.element; } diff --git a/libraries/octree/src/Octree.h b/libraries/octree/src/Octree.h index 21a6929034..4c237b5f56 100644 --- a/libraries/octree/src/Octree.h +++ b/libraries/octree/src/Octree.h @@ -221,16 +221,29 @@ public: void clearDirtyBit() { _isDirty = false; } void setDirtyBit() { _isDirty = true; } + // Octree does not currently handle its own locking, caller must use these to lock/unlock + void lockForRead() { _lock.lockForRead(); } + bool tryLockForRead() { return _lock.tryLockForRead(); } + void lockForWrite() { _lock.lockForWrite(); } + bool tryLockForWrite() { return _lock.tryLockForWrite(); } + void unlock() { _lock.unlock(); } + // output hints from the encode process + typedef enum { + Lock, + TryLock, + NoLock + } lockType; + bool findRayIntersection(const glm::vec3& origin, const glm::vec3& direction, - OctreeElement*& node, float& distance, BoxFace& face, bool tryLock = true); + OctreeElement*& node, float& distance, BoxFace& face, Octree::lockType lockType = Octree::TryLock); bool findSpherePenetration(const glm::vec3& center, float radius, glm::vec3& penetration, - void** penetratedObject = NULL, bool tryLock = true); + void** penetratedObject = NULL, Octree::lockType lockType = Octree::TryLock); bool findCapsulePenetration(const glm::vec3& start, const glm::vec3& end, float radius, - glm::vec3& penetration, bool tryLock = true); + glm::vec3& penetration, Octree::lockType lockType = Octree::TryLock); - OctreeElement* getElementEnclosingPoint(const glm::vec3& point, bool tryLock = true); + OctreeElement* getElementEnclosingPoint(const glm::vec3& point, Octree::lockType lockType = Octree::TryLock); // Note: this assumes the fileFormat is the HIO individual voxels code files void loadOctreeFile(const char* fileName, bool wantColorRandomizer); @@ -238,13 +251,7 @@ public: // these will read/write files that match the wireformat, excluding the 'V' leading void writeToSVOFile(const char* filename, OctreeElement* node = NULL); bool readFromSVOFile(const char* filename); - - // Octree does not currently handle its own locking, caller must use these to lock/unlock - void lockForRead() { _lock.lockForRead(); } - bool tryLockForRead() { return _lock.tryLockForRead(); } - void lockForWrite() { _lock.lockForWrite(); } - bool tryLockForWrite() { return _lock.tryLockForWrite(); } - void unlock() { _lock.unlock(); } + unsigned long getOctreeElementsCount(); diff --git a/libraries/particles/CMakeLists.txt b/libraries/particles/CMakeLists.txt index f7d0088c1b..8f475647bd 100644 --- a/libraries/particles/CMakeLists.txt +++ b/libraries/particles/CMakeLists.txt @@ -13,8 +13,6 @@ find_package(Qt5Widgets REQUIRED) include(${MACRO_DIR}/SetupHifiLibrary.cmake) setup_hifi_library(${TARGET_NAME}) -qt5_use_modules(${TARGET_NAME} Widgets) - include(${MACRO_DIR}/IncludeGLM.cmake) include_glm(${TARGET_NAME} "${ROOT_DIR}") @@ -25,4 +23,5 @@ link_hifi_library(octree ${TARGET_NAME} "${ROOT_DIR}") # link ZLIB find_package(ZLIB) include_directories("${ZLIB_INCLUDE_DIRS}") -target_link_libraries(${TARGET_NAME} "${ZLIB_LIBRARIES}") + +target_link_libraries(${TARGET_NAME} "${ZLIB_LIBRARIES}" Qt5::Widgets) diff --git a/libraries/particles/src/ParticleCollisionSystem.cpp b/libraries/particles/src/ParticleCollisionSystem.cpp index 2d272a8f1f..b36b6a3a04 100644 --- a/libraries/particles/src/ParticleCollisionSystem.cpp +++ b/libraries/particles/src/ParticleCollisionSystem.cpp @@ -58,7 +58,7 @@ bool ParticleCollisionSystem::updateOperation(OctreeElement* element, void* extr void ParticleCollisionSystem::update() { // update all particles - if (_particles->tryLockForWrite()) { + if (_particles->tryLockForRead()) { _particles->recurseTreeWithOperation(updateOperation, this); _particles->unlock(); } @@ -117,7 +117,7 @@ void ParticleCollisionSystem::updateCollisionWithParticles(Particle* particleA) const float COLLISION_FREQUENCY = 0.5f; glm::vec3 penetration; Particle* particleB; - if (_particles->findSpherePenetration(center, radius, penetration, (void**)&particleB)) { + if (_particles->findSpherePenetration(center, radius, penetration, (void**)&particleB, Octree::NoLock)) { // NOTE: 'penetration' is the depth that 'particleA' overlaps 'particleB'. // That is, it points from A into B. diff --git a/libraries/script-engine/CMakeLists.txt b/libraries/script-engine/CMakeLists.txt index d2a838e543..d91814bcec 100644 --- a/libraries/script-engine/CMakeLists.txt +++ b/libraries/script-engine/CMakeLists.txt @@ -13,8 +13,6 @@ find_package(Qt5Widgets REQUIRED) include(${MACRO_DIR}/SetupHifiLibrary.cmake) setup_hifi_library(${TARGET_NAME}) -qt5_use_modules(${TARGET_NAME} Widgets) - include(${MACRO_DIR}/IncludeGLM.cmake) include_glm(${TARGET_NAME} "${ROOT_DIR}") @@ -27,4 +25,5 @@ link_hifi_library(particles ${TARGET_NAME} "${ROOT_DIR}") # link ZLIB find_package(ZLIB) include_directories("${ZLIB_INCLUDE_DIRS}") -target_link_libraries(${TARGET_NAME} "${ZLIB_LIBRARIES}") + +target_link_libraries(${TARGET_NAME} "${ZLIB_LIBRARIES}" Qt5::Widgets) diff --git a/libraries/shared/CMakeLists.txt b/libraries/shared/CMakeLists.txt index 1f23dca926..021d8b33bf 100644 --- a/libraries/shared/CMakeLists.txt +++ b/libraries/shared/CMakeLists.txt @@ -6,14 +6,11 @@ set(MACRO_DIR "${ROOT_DIR}/cmake/macros") set(TARGET_NAME shared) project(${TARGET_NAME}) -find_package(Qt5Network REQUIRED) -find_package(Qt5Widgets REQUIRED) +find_package(Qt5 COMPONENTS Network Widgets) include(${MACRO_DIR}/SetupHifiLibrary.cmake) setup_hifi_library(${TARGET_NAME}) -qt5_use_modules(${TARGET_NAME} Network Widgets) - # include GLM include(${MACRO_DIR}/IncludeGLM.cmake) include_glm(${TARGET_NAME} "${ROOT_DIR}") @@ -31,3 +28,5 @@ if (UNIX AND NOT APPLE) find_package(Threads REQUIRED) target_link_libraries(${TARGET_NAME} "${CMAKE_THREAD_LIBS_INIT}") endif (UNIX AND NOT APPLE) + +target_link_libraries(${TARGET_NAME} Qt5::Network Qt5::Widgets) \ No newline at end of file diff --git a/libraries/voxels/CMakeLists.txt b/libraries/voxels/CMakeLists.txt index 279168ded8..515c6b6f94 100644 --- a/libraries/voxels/CMakeLists.txt +++ b/libraries/voxels/CMakeLists.txt @@ -8,14 +8,11 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../../cm set(TARGET_NAME voxels) -find_package(Qt5Widgets REQUIRED) -find_package(Qt5Script REQUIRED) +find_package(Qt5 COMPONENTS Widgets Script) include(${MACRO_DIR}/SetupHifiLibrary.cmake) setup_hifi_library(${TARGET_NAME}) -qt5_use_modules(${TARGET_NAME} Widgets Script) - include(${MACRO_DIR}/IncludeGLM.cmake) include_glm(${TARGET_NAME} "${ROOT_DIR}") @@ -26,4 +23,5 @@ link_hifi_library(octree ${TARGET_NAME} "${ROOT_DIR}") # link ZLIB find_package(ZLIB) include_directories("${ZLIB_INCLUDE_DIRS}") -target_link_libraries(${TARGET_NAME} "${ZLIB_LIBRARIES}") + +target_link_libraries(${TARGET_NAME} "${ZLIB_LIBRARIES}" Qt5::Widgets Qt5::Script) diff --git a/svo-viewer/CMakeLists.txt b/svo-viewer/CMakeLists.txt index c76cc4209b..8eceb0ea43 100644 --- a/svo-viewer/CMakeLists.txt +++ b/svo-viewer/CMakeLists.txt @@ -61,15 +61,7 @@ foreach(EXTERNAL_SOURCE_SUBDIR ${EXTERNAL_SOURCE_SUBDIRS}) set(APPLICATION_SRCS ${APPLICATION_SRCS} "${SUBDIR_SRCS}") endforeach(EXTERNAL_SOURCE_SUBDIR) -find_package(Qt5Core REQUIRED) -find_package(Qt5Gui REQUIRED) -find_package(Qt5Multimedia REQUIRED) -find_package(Qt5Network REQUIRED) -find_package(Qt5OpenGL REQUIRED) -find_package(Qt5Svg REQUIRED) -find_package(Qt5WebKit REQUIRED) -find_package(Qt5WebKitWidgets REQUIRED) -find_package(Qt5Xml REQUIRED) +find_package(Qt5 COMPONENTS Core Gui Multimedia Network OpenGL Script Svg WebKit WebKitWidgets Xml UiTools) # grab the ui files in resources/ui file (GLOB_RECURSE QT_UI_FILES ui/*.ui) @@ -122,8 +114,6 @@ link_hifi_library(voxels ${TARGET_NAME} "${ROOT_DIR}") find_package(GLM REQUIRED) find_package(ZLIB) -qt5_use_modules(${TARGET_NAME} Core Gui Multimedia Network OpenGL Script Svg WebKit WebKitWidgets Xml UiTools) - # include headers for interface include_directories("${PROJECT_SOURCE_DIR}/src" "${PROJECT_BINARY_DIR}/includes") @@ -131,7 +121,9 @@ include_directories("${PROJECT_SOURCE_DIR}/src" "${PROJECT_BINARY_DIR}/includes" # use system flag so warnings are supressed include_directories(SYSTEM "${GLM_INCLUDE_DIRS}") -target_link_libraries(${TARGET_NAME} "${ZLIB_LIBRARIES}") +target_link_libraries(${TARGET_NAME} "${ZLIB_LIBRARIES}" + Qt5::Core Qt5::Gui Qt5::Multimedia Qt5::Network Qt5::OpenGL + Qt5::Script Qt5::Svg Qt5::WebKit Qt5::WebKitWidgets Qt5::Xml Qt5::UiTools) if (APPLE) # link in required OS X frameworks and include the right GL headers diff --git a/tests/metavoxels/CMakeLists.txt b/tests/metavoxels/CMakeLists.txt index 39730ab015..4654d8c353 100644 --- a/tests/metavoxels/CMakeLists.txt +++ b/tests/metavoxels/CMakeLists.txt @@ -8,9 +8,7 @@ set(MACRO_DIR "${ROOT_DIR}/cmake/macros") # setup for find modules set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/modules/") -find_package(Qt5Network REQUIRED) -find_package(Qt5Script REQUIRED) -find_package(Qt5Widgets REQUIRED) +find_package(Qt5 COMPONENTS Network Script Widgets) include(${MACRO_DIR}/AutoMTC.cmake) auto_mtc(${TARGET_NAME} "${ROOT_DIR}") @@ -18,8 +16,6 @@ auto_mtc(${TARGET_NAME} "${ROOT_DIR}") include(${MACRO_DIR}/SetupHifiProject.cmake) setup_hifi_project(${TARGET_NAME} TRUE "${AUTOMTC_SRC}") -qt5_use_modules(${TARGET_NAME} Network Script Widgets) - #include glm include(${MACRO_DIR}/IncludeGLM.cmake) include_glm(${TARGET_NAME} "${ROOT_DIR}") @@ -33,3 +29,5 @@ IF (WIN32) target_link_libraries(${TARGET_NAME} Winmm Ws2_32) ENDIF(WIN32) +target_link_libraries(${TARGET_NAME} Qt5::Network Qt5::Widgets Qt5::Script) + diff --git a/voxel-edit/CMakeLists.txt b/voxel-edit/CMakeLists.txt index d394cea518..126775b152 100644 --- a/voxel-edit/CMakeLists.txt +++ b/voxel-edit/CMakeLists.txt @@ -12,12 +12,11 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../cmake include(${MACRO_DIR}/IncludeGLM.cmake) include_glm(${TARGET_NAME} "${ROOT_DIR}") +find_package(Qt5Script REQUIRED) + include(${MACRO_DIR}/SetupHifiProject.cmake) setup_hifi_project(${TARGET_NAME} TRUE) -find_package(Qt5Script REQUIRED) -qt5_use_modules(${TARGET_NAME} Script) - # link in the shared library include(${MACRO_DIR}/LinkHifiLibrary.cmake) link_hifi_library(shared ${TARGET_NAME} "${ROOT_DIR}") @@ -31,3 +30,5 @@ link_hifi_library(voxels ${TARGET_NAME} "${ROOT_DIR}") IF (WIN32) target_link_libraries(${TARGET_NAME} Winmm Ws2_32) ENDIF(WIN32) + +target_link_libraries(${TARGET_NAME} Qt5::Script) \ No newline at end of file