diff --git a/animation-server/CMakeLists.txt b/animation-server/CMakeLists.txt index 77969e06e5..3e33250875 100644 --- a/animation-server/CMakeLists.txt +++ b/animation-server/CMakeLists.txt @@ -3,26 +3,26 @@ cmake_minimum_required(VERSION 2.8) set(TARGET_NAME animation-server) set(ROOT_DIR ..) -set(MACRO_DIR ${ROOT_DIR}/cmake/macros) +set(MACRO_DIR "${ROOT_DIR}/cmake/macros") # setup for find modules set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../cmake/modules/") # set up the external glm library -include(${MACRO_DIR}/IncludeGLM.cmake) -include_glm(${TARGET_NAME} ${ROOT_DIR}) +include("${MACRO_DIR}/IncludeGLM.cmake") +include_glm(${TARGET_NAME} "${ROOT_DIR}") -include(${MACRO_DIR}/SetupHifiProject.cmake) +include("${MACRO_DIR}/SetupHifiProject.cmake") setup_hifi_project(${TARGET_NAME} TRUE) # link in the shared library include(${MACRO_DIR}/LinkHifiLibrary.cmake) -link_hifi_library(shared ${TARGET_NAME} ${ROOT_DIR}) +link_hifi_library(shared ${TARGET_NAME} "${ROOT_DIR}") # link in the hifi octree library -link_hifi_library(octree ${TARGET_NAME} ${ROOT_DIR}) +link_hifi_library(octree ${TARGET_NAME} "${ROOT_DIR}") # link in the hifi voxels library -link_hifi_library(voxels ${TARGET_NAME} ${ROOT_DIR}) +link_hifi_library(voxels ${TARGET_NAME} "${ROOT_DIR}") diff --git a/assignment-client/CMakeLists.txt b/assignment-client/CMakeLists.txt index 60b9d75338..2df3cb1ab9 100644 --- a/assignment-client/CMakeLists.txt +++ b/assignment-client/CMakeLists.txt @@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 2.8) set(TARGET_NAME assignment-client) set(ROOT_DIR ..) -set(MACRO_DIR ${ROOT_DIR}/cmake/macros) +set(MACRO_DIR "${ROOT_DIR}/cmake/macros") # setup for find modules set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../cmake/modules/") @@ -12,26 +12,26 @@ find_package(Qt5Network REQUIRED) find_package(Qt5Script REQUIRED) find_package(Qt5Widgets REQUIRED) -include(${MACRO_DIR}/SetupHifiProject.cmake) +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}) +include("${MACRO_DIR}/IncludeGLM.cmake") +include_glm(${TARGET_NAME} "${ROOT_DIR}") # link in the shared libraries include(${MACRO_DIR}/LinkHifiLibrary.cmake) -link_hifi_library(shared ${TARGET_NAME} ${ROOT_DIR}) -link_hifi_library(audio ${TARGET_NAME} ${ROOT_DIR}) -link_hifi_library(avatars ${TARGET_NAME} ${ROOT_DIR}) -link_hifi_library(octree ${TARGET_NAME} ${ROOT_DIR}) -link_hifi_library(voxels ${TARGET_NAME} ${ROOT_DIR}) -link_hifi_library(particles ${TARGET_NAME} ${ROOT_DIR}) -link_hifi_library(metavoxels ${TARGET_NAME} ${ROOT_DIR}) -link_hifi_library(script-engine ${TARGET_NAME} ${ROOT_DIR}) -link_hifi_library(embedded-webserver ${TARGET_NAME} ${ROOT_DIR}) +link_hifi_library(shared ${TARGET_NAME} "${ROOT_DIR}") +link_hifi_library(audio ${TARGET_NAME} "${ROOT_DIR}") +link_hifi_library(avatars ${TARGET_NAME} "${ROOT_DIR}") +link_hifi_library(octree ${TARGET_NAME} "${ROOT_DIR}") +link_hifi_library(voxels ${TARGET_NAME} "${ROOT_DIR}") +link_hifi_library(particles ${TARGET_NAME} "${ROOT_DIR}") +link_hifi_library(metavoxels ${TARGET_NAME} "${ROOT_DIR}") +link_hifi_library(script-engine ${TARGET_NAME} "${ROOT_DIR}") +link_hifi_library(embedded-webserver ${TARGET_NAME} "${ROOT_DIR}") if (UNIX) target_link_libraries(${TARGET_NAME} ${CMAKE_DL_LIBS}) diff --git a/cmake/macros/AutoMTC.cmake b/cmake/macros/AutoMTC.cmake index f29c3400bb..1c818d9548 100644 --- a/cmake/macros/AutoMTC.cmake +++ b/cmake/macros/AutoMTC.cmake @@ -1,6 +1,6 @@ macro(AUTO_MTC TARGET ROOT_DIR) if (NOT TARGET mtc) - add_subdirectory(${ROOT_DIR}/tools/mtc ${ROOT_DIR}/tools/mtc) + add_subdirectory("${ROOT_DIR}/tools/mtc" "${ROOT_DIR}/tools/mtc") endif (NOT TARGET mtc) set(AUTOMTC_SRC ${TARGET}_automtc.cpp) diff --git a/cmake/macros/IncludeGLM.cmake b/cmake/macros/IncludeGLM.cmake index f20f3ef8a8..02116f2d0f 100644 --- a/cmake/macros/IncludeGLM.cmake +++ b/cmake/macros/IncludeGLM.cmake @@ -1,7 +1,7 @@ MACRO(INCLUDE_GLM TARGET ROOT_DIR) - set(GLM_ROOT_DIR ${ROOT_DIR}/externals) + set(GLM_ROOT_DIR "${ROOT_DIR}/externals") find_package(GLM REQUIRED) - include_directories(${GLM_INCLUDE_DIRS}) + include_directories("${GLM_INCLUDE_DIRS}") IF(APPLE OR UNIX) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -isystem ${GLM_INCLUDE_DIRS}") ENDIF(APPLE OR UNIX) diff --git a/cmake/macros/LinkHifiLibrary.cmake b/cmake/macros/LinkHifiLibrary.cmake index 6a4122d583..925953efcf 100644 --- a/cmake/macros/LinkHifiLibrary.cmake +++ b/cmake/macros/LinkHifiLibrary.cmake @@ -1,9 +1,9 @@ MACRO(LINK_HIFI_LIBRARY LIBRARY TARGET ROOT_DIR) if (NOT TARGET ${LIBRARY}) - add_subdirectory(${ROOT_DIR}/libraries/${LIBRARY} ${ROOT_DIR}/libraries/${LIBRARY}) + add_subdirectory("${ROOT_DIR}/libraries/${LIBRARY}" "${ROOT_DIR}/libraries/${LIBRARY}") endif (NOT TARGET ${LIBRARY}) - include_directories(${ROOT_DIR}/libraries/${LIBRARY}/src) + include_directories("${ROOT_DIR}/libraries/${LIBRARY}/src") add_dependencies(${TARGET} ${LIBRARY}) target_link_libraries(${TARGET} ${LIBRARY}) diff --git a/cmake/macros/SetupHifiProject.cmake b/cmake/macros/SetupHifiProject.cmake index be77d7e244..3b187e6be4 100644 --- a/cmake/macros/SetupHifiProject.cmake +++ b/cmake/macros/SetupHifiProject.cmake @@ -6,9 +6,9 @@ macro(SETUP_HIFI_PROJECT TARGET INCLUDE_QT) file(GLOB SRC_SUBDIRS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_SOURCE_DIR}/src/*) foreach(DIR ${SRC_SUBDIRS}) - if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/src/${DIR}) - FILE(GLOB DIR_CONTENTS src/${DIR}/*) - SET(TARGET_SRCS ${TARGET_SRCS} ${DIR_CONTENTS}) + if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/src/${DIR}") + FILE(GLOB DIR_CONTENTS "src/${DIR}/*") + SET(TARGET_SRCS ${TARGET_SRCS} "${DIR_CONTENTS}") endif() endforeach() diff --git a/domain-server/CMakeLists.txt b/domain-server/CMakeLists.txt index db6048c48f..a4624dbbf7 100644 --- a/domain-server/CMakeLists.txt +++ b/domain-server/CMakeLists.txt @@ -3,14 +3,14 @@ cmake_minimum_required(VERSION 2.8) set(TARGET_NAME domain-server) set(ROOT_DIR ..) -set(MACRO_DIR ${ROOT_DIR}/cmake/macros) +set(MACRO_DIR "${ROOT_DIR}/cmake/macros") # setup for find modules set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../cmake/modules/") # set up the external glm library include(${MACRO_DIR}/IncludeGLM.cmake) -include_glm(${TARGET_NAME} ${ROOT_DIR}) +include_glm(${TARGET_NAME} "${ROOT_DIR}") find_package(Qt5Network REQUIRED) @@ -22,17 +22,17 @@ 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 + COMMAND "${CMAKE_COMMAND}" -E remove_directory $/resources/web) add_custom_command(TARGET ${TARGET_NAME} POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_directory + COMMAND "${CMAKE_COMMAND}" -E copy_directory "${PROJECT_SOURCE_DIR}/resources/web" $/resources/web) # link the shared hifi library include(${MACRO_DIR}/LinkHifiLibrary.cmake) -link_hifi_library(shared ${TARGET_NAME} ${ROOT_DIR}) -link_hifi_library(embedded-webserver ${TARGET_NAME} ${ROOT_DIR}) +link_hifi_library(shared ${TARGET_NAME} "${ROOT_DIR}") +link_hifi_library(embedded-webserver ${TARGET_NAME} "${ROOT_DIR}") IF (WIN32) target_link_libraries(${TARGET_NAME} Winmm Ws2_32) diff --git a/examples/gun.js b/examples/gun.js index e7cd2973e2..17587e3810 100644 --- a/examples/gun.js +++ b/examples/gun.js @@ -3,16 +3,30 @@ // hifi // // Created by Brad Hefta-Gaub on 12/31/13. +// Modified by Philip on 3/3/14 // Copyright (c) 2013 HighFidelity, Inc. All rights reserved. // -// This is an example script that turns the hydra controllers into a particle gun. +// This is an example script that turns the hydra controllers and mouse into a particle gun. // It reads the controller, watches for trigger pulls, and launches particles. -// The particles it creates have a script that when they collide with Voxels, the -// particle will change it's color to match the voxel it hits, and then delete the -// voxel. +// When particles collide with voxels they blow little holes out of the voxels. // // +var lastX = 0; +var lastY = 0; +var yawFromMouse = 0; +var pitchFromMouse = 0; +var isMouseDown = false; + +var BULLET_VELOCITY = 5.0; + +// Load some sound to use for loading and firing +var fireSound = new Sound("https://s3-us-west-1.amazonaws.com/highfidelity-public/sounds/Guns/GUN-SHOT2.raw"); +var loadSound = new Sound("https://s3-us-west-1.amazonaws.com/highfidelity-public/sounds/Guns/Gun_Reload_Weapon22.raw"); +var impactSound = new Sound("https://s3-us-west-1.amazonaws.com/highfidelity-public/sounds/Guns/BulletImpact2.raw"); +var audioOptions = new AudioInjectionOptions(); +audioOptions.volume = 0.9; + // initialize our triggers var triggerPulled = new Array(); var numberOfTriggers = Controller.getNumberOfTriggers(); @@ -20,7 +34,60 @@ for (t = 0; t < numberOfTriggers; t++) { triggerPulled[t] = false; } -function checkController() { +// Create a reticle image in center of screen +var screenSize = Controller.getViewportDimensions(); +var reticle = Overlays.addOverlay("image", { + x: screenSize.x / 2 - 16, + y: screenSize.y / 2 - 16, + width: 32, + height: 32, + imageURL: "https://s3-us-west-1.amazonaws.com/highfidelity-public/images/reticle.png", + color: { red: 255, green: 255, blue: 255}, + alpha: 1 + }); + +function shootBullet(position, velocity) { + var BULLET_SIZE = 0.02; + Particles.addParticle( + { position: position, + radius: BULLET_SIZE, + color: { red: 200, green: 0, blue: 0 }, + velocity: velocity, + gravity: { x: 0, y: -0.1, z: 0 }, + damping: 0 }); + + // Play firing sounds + audioOptions.position = position; + Audio.playSound(fireSound, audioOptions); +} + +function particleCollisionWithVoxel(particle, voxel) { + var HOLE_SIZE = 0.25; + var particleProperties = Particles.getParticleProperties(particle); + var position = particleProperties.position; + Particles.deleteParticle(particle); + // Make a hole in this voxel + Voxels.eraseVoxel(position.x, position.y, position.z, HOLE_SIZE); + //audioOptions.position = position; + audioOptions.position = Vec3.sum(Camera.getPosition(), Quat.getFront(Camera.getOrientation())); + Audio.playSound(impactSound, audioOptions); +} + +function update() { + + // Check for mouseLook movement, update rotation + // rotate body yaw for yaw received from mouse + var newOrientation = Quat.multiply(MyAvatar.orientation, Quat.fromVec3( { x: 0, y: yawFromMouse, z: 0 } )); + MyAvatar.orientation = newOrientation; + yawFromMouse = 0; + + // apply pitch from mouse + var newPitch = MyAvatar.headPitch + pitchFromMouse; + MyAvatar.headPitch = newPitch; + pitchFromMouse = 0; + + // Check hydra controller for trigger press + var numberOfTriggers = Controller.getNumberOfTriggers(); var numberOfSpatialControls = Controller.getNumberOfSpatialControls(); var controllersPerTrigger = numberOfSpatialControls / numberOfTriggers; @@ -45,6 +112,7 @@ function checkController() { } if (shootABullet) { + var palmController = t * controllersPerTrigger; var palmPosition = Controller.getSpatialControlPosition(palmController); @@ -67,36 +135,53 @@ function checkController() { y: palmToFingerTipVector.y * linearVelocity, z: palmToFingerTipVector.z * linearVelocity }; - // This is the script for the particles that this gun shoots. - var script = - " function collisionWithVoxel(voxel) { " + - " print('collisionWithVoxel(voxel)... '); " + - " print('myID=' + Particle.getID() + '\\n'); " + - " var voxelColor = { red: voxel.red, green: voxel.green, blue: voxel.blue };" + - " var voxelAt = { x: voxel.x, y: voxel.y, z: voxel.z };" + - " var voxelScale = voxel.s;" + - " print('voxelColor=' + voxel.red + ', ' + voxel.green + ', ' + voxel.blue + '\\n'); " + - " var myColor = Particle.getColor();" + - " print('myColor=' + myColor.red + ', ' + myColor.green + ', ' + myColor.blue + '\\n'); " + - " Particle.setColor(voxelColor); " + - " Voxels.eraseVoxel(voxelAt.x, voxelAt.y, voxelAt.z, voxelScale); " + - " print('Voxels.eraseVoxel(' + voxelAt.x + ', ' + voxelAt.y + ', ' + voxelAt.z + ', ' + voxelScale + ')... \\n'); " + - " } " + - " Particle.collisionWithVoxel.connect(collisionWithVoxel); "; - - Particles.addParticle( - { position: position, - radius: 0.05, - color: { red: 128, green: 128, blue: 128 }, - velocity: velocity, - gravity: { x: 0, y: -0.1, z: 0 }, - damping: 0, - script: script }); + shootBullet(position, velocity); } } } } +function mousePressEvent(event) { + isMouseDown = true; + lastX = event.x; + lastY = event.y; + audioOptions.position = Vec3.sum(Camera.getPosition(), Quat.getFront(Camera.getOrientation())); + Audio.playSound(loadSound, audioOptions); +} + +function mouseReleaseEvent(event) { + // position + var DISTANCE_FROM_CAMERA = 2.0; + var camera = Camera.getPosition(); + var forwardVector = Quat.getFront(Camera.getOrientation()); + var newPosition = Vec3.sum(camera, Vec3.multiply(forwardVector, DISTANCE_FROM_CAMERA)); + var velocity = Vec3.multiply(forwardVector, BULLET_VELOCITY); + shootBullet(newPosition, velocity); + isMouseDown = false; +} + +function mouseMoveEvent(event) { + if (isMouseDown) { + var MOUSE_YAW_SCALE = -0.25; + var MOUSE_PITCH_SCALE = -12.5; + var FIXED_MOUSE_TIMESTEP = 0.016; + yawFromMouse += ((event.x - lastX) * MOUSE_YAW_SCALE * FIXED_MOUSE_TIMESTEP); + pitchFromMouse += ((event.y - lastY) * MOUSE_PITCH_SCALE * FIXED_MOUSE_TIMESTEP); + lastX = event.x; + lastY = event.y; + } +} + +function scriptEnding() { + Overlays.deleteOverlay(reticle); +} + +Particles.particleCollisionWithVoxel.connect(particleCollisionWithVoxel); +Script.scriptEnding.connect(scriptEnding); +Script.willSendVisualDataCallback.connect(update); +Controller.mousePressEvent.connect(mousePressEvent); +Controller.mouseReleaseEvent.connect(mouseReleaseEvent); +Controller.mouseMoveEvent.connect(mouseMoveEvent); + + -// register the call back so it fires before each data send -Script.willSendVisualDataCallback.connect(checkController); diff --git a/interface/CMakeLists.txt b/interface/CMakeLists.txt index d516a70820..646ad3c167 100644 --- a/interface/CMakeLists.txt +++ b/interface/CMakeLists.txt @@ -1,17 +1,17 @@ cmake_minimum_required(VERSION 2.8) set(ROOT_DIR ..) -set(MACRO_DIR ${ROOT_DIR}/cmake/macros) +set(MACRO_DIR "${ROOT_DIR}/cmake/macros") set(TARGET_NAME interface) project(${TARGET_NAME}) # setup for find modules set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../cmake/modules/") -set(FACESHIFT_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/faceshift) -set(LIBOVR_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/LibOVR) -set(SIXENSE_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/Sixense) -set(VISAGE_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/visage) +set(FACESHIFT_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/external/faceshift") +set(LIBOVR_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/external/LibOVR") +set(SIXENSE_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/external/Sixense") +set(VISAGE_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/external/visage") if (DEFINED ENV{JOB_ID}) set(BUILD_SEQ $ENV{JOB_ID}) @@ -34,14 +34,14 @@ if (WIN32) add_definitions( -DWINDOWS_LEAN_AND_MEAN ) # needed to make sure windows doesn't go to crazy with its defines # windows build needs an external glut, we're using freeglut - set(GLUT_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/external/freeglut) - set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${GLUT_ROOT_PATH}) + set(GLUT_ROOT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/external/freeglut") + set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} "${GLUT_ROOT_PATH}") # windows build needs glew (opengl extention wrangler) this will handle providing access to OpenGL methods after 1.1 # which are not accessible on windows without glew or some other dynamic linking mechanism - set(GLEW_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/external/glew) - set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${GLEW_ROOT_PATH}) - include_directories(SYSTEM ${GLEW_ROOT_PATH}/include ${GLUT_ROOT_PATH}/include) + set(GLEW_ROOT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/external/glew") + set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} "${GLEW_ROOT_PATH}") + include_directories(SYSTEM "${GLEW_ROOT_PATH}/include" "${GLUT_ROOT_PATH}/include") #set(GL_HEADERS "#define GLEW_STATIC\n#define FREEGLUT_STATIC\n#define FREEGLUT_LIB_PRAGMAS 0\n#include \n#include \n#include \n#include ") set(GL_HEADERS "#define GLEW_STATIC\n#include \n#include \n#include ") @@ -49,18 +49,18 @@ if (WIN32) endif (WIN32) # set up the external glm library -include(${MACRO_DIR}/IncludeGLM.cmake) -include_glm(${TARGET_NAME} ${ROOT_DIR}) +include("${MACRO_DIR}/IncludeGLM.cmake") +include_glm(${TARGET_NAME} "${ROOT_DIR}") # create the InterfaceConfig.h file based on GL_HEADERS above -configure_file(InterfaceConfig.h.in ${PROJECT_BINARY_DIR}/includes/InterfaceConfig.h) -configure_file(InterfaceVersion.h.in ${PROJECT_BINARY_DIR}/includes/InterfaceVersion.h) +configure_file(InterfaceConfig.h.in "${PROJECT_BINARY_DIR}/includes/InterfaceConfig.h") +configure_file(InterfaceVersion.h.in "${PROJECT_BINARY_DIR}/includes/InterfaceVersion.h") # grab the implementation and header files from src dirs file(GLOB INTERFACE_SRCS src/*.cpp src/*.h) foreach(SUBDIR avatar devices renderer ui starfield) file(GLOB_RECURSE SUBDIR_SRCS src/${SUBDIR}/*.cpp src/${SUBDIR}/*.h) - set(INTERFACE_SRCS ${INTERFACE_SRCS} ${SUBDIR_SRCS}) + set(INTERFACE_SRCS ${INTERFACE_SRCS} "${SUBDIR_SRCS}") endforeach(SUBDIR) #windows also includes the faceshift externals, because using a lib doesn't work due to debug/release mismatch @@ -68,8 +68,11 @@ if (WIN32) set(EXTERNAL_SOURCE_SUBDIRS "faceshift") endif (WIN32) foreach(EXTERNAL_SOURCE_SUBDIR ${EXTERNAL_SOURCE_SUBDIRS}) - file(GLOB_RECURSE SUBDIR_SRCS external/${EXTERNAL_SOURCE_SUBDIR}/src/*.cpp external/${EXTERNAL_SOURCE_SUBDIR}/src/*.c external/${EXTERNAL_SOURCE_SUBDIR}/src/*.h) - set(INTERFACE_SRCS ${INTERFACE_SRCS} ${SUBDIR_SRCS}) + file(GLOB_RECURSE SUBDIR_SRCS + "external/${EXTERNAL_SOURCE_SUBDIR}/src/*.cpp" + "external/${EXTERNAL_SOURCE_SUBDIR}/src/*.c" + "external/${EXTERNAL_SOURCE_SUBDIR}/src/*.h") + set(INTERFACE_SRCS ${INTERFACE_SRCS} "${SUBDIR_SRCS}") endforeach(EXTERNAL_SOURCE_SUBDIR) find_package(Qt5Core REQUIRED) @@ -85,10 +88,10 @@ find_package(Qt5Xml REQUIRED) # grab the ui files in resources/ui file (GLOB_RECURSE QT_UI_FILES ui/*.ui) # have qt5 wrap them and generate the appropriate header files -qt5_wrap_ui(QT_UI_HEADERS ${QT_UI_FILES}) +qt5_wrap_ui(QT_UI_HEADERS "${QT_UI_FILES}") # add them to the interface source files -set(INTERFACE_SRCS ${INTERFACE_SRCS} ${QT_UI_HEADERS}) +set(INTERFACE_SRCS ${INTERFACE_SRCS} "${QT_UI_HEADERS}") if (APPLE) @@ -104,16 +107,16 @@ if (APPLE) # set where in the bundle to put the resources file SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_SOURCE_DIR}/interface.icns PROPERTIES MACOSX_PACKAGE_LOCATION Resources) - SET(INTERFACE_SRCS ${INTERFACE_SRCS} ${CMAKE_CURRENT_SOURCE_DIR}/interface.icns) + SET(INTERFACE_SRCS ${INTERFACE_SRCS} "${CMAKE_CURRENT_SOURCE_DIR}/interface.icns") # grab the directories in resources and put them in the right spot in Resources - file(GLOB RESOURCE_SUBDIRS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/resources ${CMAKE_CURRENT_SOURCE_DIR}/resources/*) + file(GLOB RESOURCE_SUBDIRS RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/resources" "${CMAKE_CURRENT_SOURCE_DIR}/resources/*") foreach(DIR ${RESOURCE_SUBDIRS}) - if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/resources/${DIR}) - FILE(GLOB DIR_CONTENTS resources/${DIR}/*) - SET_SOURCE_FILES_PROPERTIES(${DIR_CONTENTS} PROPERTIES MACOSX_PACKAGE_LOCATION Resources/${DIR}) + if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/resources/${DIR}") + FILE(GLOB DIR_CONTENTS "resources/${DIR}/*") + SET_SOURCE_FILES_PROPERTIES(${DIR_CONTENTS} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources/${DIR}") - SET(INTERFACE_SRCS ${INTERFACE_SRCS} ${DIR_CONTENTS}) + SET(INTERFACE_SRCS ${INTERFACE_SRCS} "${DIR_CONTENTS}") endif() endforeach() endif (APPLE) @@ -125,14 +128,14 @@ add_executable(${TARGET_NAME} MACOSX_BUNDLE ${INTERFACE_SRCS}) include(${MACRO_DIR}/LinkHifiLibrary.cmake) # link required hifi libraries -link_hifi_library(shared ${TARGET_NAME} ${ROOT_DIR}) -link_hifi_library(octree ${TARGET_NAME} ${ROOT_DIR}) -link_hifi_library(voxels ${TARGET_NAME} ${ROOT_DIR}) -link_hifi_library(metavoxels ${TARGET_NAME} ${ROOT_DIR}) -link_hifi_library(particles ${TARGET_NAME} ${ROOT_DIR}) -link_hifi_library(avatars ${TARGET_NAME} ${ROOT_DIR}) -link_hifi_library(audio ${TARGET_NAME} ${ROOT_DIR}) -link_hifi_library(script-engine ${TARGET_NAME} ${ROOT_DIR}) +link_hifi_library(shared ${TARGET_NAME} "${ROOT_DIR}") +link_hifi_library(octree ${TARGET_NAME} "${ROOT_DIR}") +link_hifi_library(voxels ${TARGET_NAME} "${ROOT_DIR}") +link_hifi_library(metavoxels ${TARGET_NAME} "${ROOT_DIR}") +link_hifi_library(particles ${TARGET_NAME} "${ROOT_DIR}") +link_hifi_library(avatars ${TARGET_NAME} "${ROOT_DIR}") +link_hifi_library(audio ${TARGET_NAME} "${ROOT_DIR}") +link_hifi_library(script-engine ${TARGET_NAME} "${ROOT_DIR}") # find required libraries find_package(Faceshift) @@ -145,17 +148,17 @@ find_package(ZLIB) # 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}) + 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}) + 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}) + include_directories(SYSTEM "${VISAGE_INCLUDE_DIRS}") if (APPLE) add_definitions(-DMAC_OS_X) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-comment -isystem ${VISAGE_INCLUDE_DIRS}") @@ -164,39 +167,39 @@ if (VISAGE_FOUND AND NOT DISABLE_VISAGE) 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}) + target_link_libraries(${TARGET_NAME} "${VISAGE_LIBRARIES}") endif (VISAGE_FOUND AND NOT DISABLE_VISAGE) # and with LibOVR for Oculus Rift if (LIBOVR_FOUND AND NOT DISABLE_LIBOVR) add_definitions(-DHAVE_LIBOVR) - include_directories(SYSTEM ${LIBOVR_INCLUDE_DIRS}) + include_directories(SYSTEM "${LIBOVR_INCLUDE_DIRS}") if (APPLE OR UNIX) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -isystem ${LIBOVR_INCLUDE_DIRS}") endif (APPLE OR UNIX) - target_link_libraries(${TARGET_NAME} ${LIBOVR_LIBRARIES}) + 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 - ${PROJECT_BINARY_DIR}/includes + "${PROJECT_SOURCE_DIR}/src" + "${PROJECT_BINARY_DIR}/includes" ) # include external library headers # use system flag so warnings are supressed include_directories( SYSTEM - ${FACESHIFT_INCLUDE_DIRS} - ${GLM_INCLUDE_DIRS} + "${FACESHIFT_INCLUDE_DIRS}" + "${GLM_INCLUDE_DIRS}" ) target_link_libraries( ${TARGET_NAME} - ${FACESHIFT_LIBRARIES} - ${ZLIB_LIBRARIES} + "${FACESHIFT_LIBRARIES}" + "${ZLIB_LIBRARIES}" ) if (APPLE) @@ -228,8 +231,12 @@ if (APPLE) else (APPLE) find_package(OpenGL REQUIRED) find_package(GLUT REQUIRED) - include_directories(${GLUT_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR}) - target_link_libraries(${TARGET_NAME} ${OPENGL_LIBRARY}) + + if (OPENGL_INCLUDE_DIR) + include_directories("${GLUT_INCLUDE_DIR}" "${OPENGL_INCLUDE_DIR}") + endif (OPENGL_INCLUDE_DIR) + + target_link_libraries(${TARGET_NAME} "${OPENGL_LIBRARY}") endif (APPLE) # link target to external libraries @@ -237,8 +244,8 @@ if (WIN32) target_link_libraries( ${TARGET_NAME} - ${CMAKE_CURRENT_SOURCE_DIR}/external/glew/lib/Release/Win32/glew32s.lib - ${GLUT_ROOT_PATH}/lib/freeglut.lib + "${CMAKE_CURRENT_SOURCE_DIR}/external/glew/lib/Release/Win32/glew32s.lib" + "${GLUT_ROOT_PATH}/lib/freeglut.lib" wsock32.lib opengl32.lib @@ -250,15 +257,15 @@ else (WIN32) target_link_libraries( ${TARGET_NAME} - ${CMAKE_THREAD_LIBS_INIT} - ${GLUT_LIBRARY} + "${CMAKE_THREAD_LIBS_INIT}" + "${GLUT_LIBRARY}" ) endif (UNIX AND NOT APPLE) endif (WIN32) # install command for OS X bundle INSTALL(TARGETS ${TARGET_NAME} - BUNDLE DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/install COMPONENT Runtime - RUNTIME DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/install COMPONENT Runtime + BUNDLE DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/install" COMPONENT Runtime + RUNTIME DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/install" COMPONENT Runtime ) diff --git a/interface/external/faceshift/CMakeLists.txt b/interface/external/faceshift/CMakeLists.txt index d6c44c5cd8..be1c320c29 100644 --- a/interface/external/faceshift/CMakeLists.txt +++ b/interface/external/faceshift/CMakeLists.txt @@ -8,4 +8,4 @@ file(GLOB FACESHIFT_SRCS include/*.h src/*.cpp) include_directories(include) -add_library(${TARGET_NAME} ${FACESHIFT_SRCS}) +add_library(${TARGET_NAME} "${FACESHIFT_SRCS}") diff --git a/libraries/audio/CMakeLists.txt b/libraries/audio/CMakeLists.txt index 2d82fff1e1..30ce287bc3 100644 --- a/libraries/audio/CMakeLists.txt +++ b/libraries/audio/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 2.8) set(ROOT_DIR ../..) -set(MACRO_DIR ${ROOT_DIR}/cmake/macros) +set(MACRO_DIR "${ROOT_DIR}/cmake/macros") # setup for find modules set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/modules/") @@ -13,7 +13,7 @@ include(${MACRO_DIR}/SetupHifiLibrary.cmake) setup_hifi_library(${TARGET_NAME}) include(${MACRO_DIR}/IncludeGLM.cmake) -include_glm(${TARGET_NAME} ${ROOT_DIR}) +include_glm(${TARGET_NAME} "${ROOT_DIR}") include(${MACRO_DIR}/LinkHifiLibrary.cmake) -link_hifi_library(shared ${TARGET_NAME} ${ROOT_DIR}) \ No newline at end of file +link_hifi_library(shared ${TARGET_NAME} "${ROOT_DIR}") \ No newline at end of file diff --git a/libraries/avatars/CMakeLists.txt b/libraries/avatars/CMakeLists.txt index d7dedf5381..bcafb32dc6 100644 --- a/libraries/avatars/CMakeLists.txt +++ b/libraries/avatars/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 2.8) set(ROOT_DIR ../..) -set(MACRO_DIR ${ROOT_DIR}/cmake/macros) +set(MACRO_DIR "${ROOT_DIR}/cmake/macros") # setup for find modules set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/modules/") @@ -16,11 +16,11 @@ setup_hifi_library(${TARGET_NAME}) qt5_use_modules(${TARGET_NAME} Script) include(${MACRO_DIR}/IncludeGLM.cmake) -include_glm(${TARGET_NAME} ${ROOT_DIR}) +include_glm(${TARGET_NAME} "${ROOT_DIR}") include(${MACRO_DIR}/LinkHifiLibrary.cmake) -link_hifi_library(shared ${TARGET_NAME} ${ROOT_DIR}) +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}) +link_hifi_library(octree ${TARGET_NAME} "${ROOT_DIR}") +link_hifi_library(voxels ${TARGET_NAME} "${ROOT_DIR}") diff --git a/libraries/embedded-webserver/CMakeLists.txt b/libraries/embedded-webserver/CMakeLists.txt index d826349cff..1ab454bf0a 100644 --- a/libraries/embedded-webserver/CMakeLists.txt +++ b/libraries/embedded-webserver/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 2.8) set(ROOT_DIR ../..) -set(MACRO_DIR ${ROOT_DIR}/cmake/macros) +set(MACRO_DIR "${ROOT_DIR}/cmake/macros") # setup for find modules set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/modules/") diff --git a/libraries/metavoxels/CMakeLists.txt b/libraries/metavoxels/CMakeLists.txt index 491d537b1a..617609f1fa 100644 --- a/libraries/metavoxels/CMakeLists.txt +++ b/libraries/metavoxels/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 2.8) set(ROOT_DIR ../..) -set(MACRO_DIR ${ROOT_DIR}/cmake/macros) +set(MACRO_DIR "${ROOT_DIR}/cmake/macros") # setup for find modules set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/modules/") @@ -12,13 +12,13 @@ find_package(Qt5Network REQUIRED) find_package(Qt5Widgets REQUIRED) include(${MACRO_DIR}/AutoMTC.cmake) -auto_mtc(${TARGET_NAME} ${ROOT_DIR}) +auto_mtc(${TARGET_NAME} "${ROOT_DIR}") include(${MACRO_DIR}/SetupHifiLibrary.cmake) -setup_hifi_library(${TARGET_NAME} ${AUTOMTC_SRC}) +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}) +include_glm(${TARGET_NAME} "${ROOT_DIR}") diff --git a/libraries/metavoxels/src/Bitstream.h b/libraries/metavoxels/src/Bitstream.h index c06c4c3b5f..b5db4782b7 100644 --- a/libraries/metavoxels/src/Bitstream.h +++ b/libraries/metavoxels/src/Bitstream.h @@ -450,6 +450,13 @@ public: bool operator==(const X& first, const X& second); \ bool operator!=(const X& first, const X& second); \ static const int* _TypePtr##X = &X::Type; +#elif __GNUC__ +#define DECLARE_STREAMABLE_METATYPE(X) Q_DECLARE_METATYPE(X) \ + Bitstream& operator<<(Bitstream& out, const X& obj); \ + Bitstream& operator>>(Bitstream& in, X& obj); \ + bool operator==(const X& first, const X& second); \ + bool operator!=(const X& first, const X& second); \ + __attribute__((unused)) static const int* _TypePtr##X = &X::Type; #else #define STRINGIFY(x) #x #define DECLARE_STREAMABLE_METATYPE(X) Q_DECLARE_METATYPE(X) \ diff --git a/libraries/octree/CMakeLists.txt b/libraries/octree/CMakeLists.txt index 37016966dc..ac59ca454e 100644 --- a/libraries/octree/CMakeLists.txt +++ b/libraries/octree/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 2.8) set(ROOT_DIR ../..) -set(MACRO_DIR ${ROOT_DIR}/cmake/macros) +set(MACRO_DIR "${ROOT_DIR}/cmake/macros") # setup for find modules set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/modules/") @@ -16,12 +16,12 @@ setup_hifi_library(${TARGET_NAME}) qt5_use_modules(${TARGET_NAME} Widgets) include(${MACRO_DIR}/IncludeGLM.cmake) -include_glm(${TARGET_NAME} ${ROOT_DIR}) +include_glm(${TARGET_NAME} "${ROOT_DIR}") include(${MACRO_DIR}/LinkHifiLibrary.cmake) -link_hifi_library(shared ${TARGET_NAME} ${ROOT_DIR}) +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}) +include_directories("${ZLIB_INCLUDE_DIRS}") +target_link_libraries(${TARGET_NAME} "${ZLIB_LIBRARIES}") diff --git a/libraries/particles/CMakeLists.txt b/libraries/particles/CMakeLists.txt index 3bbff3b433..f7d0088c1b 100644 --- a/libraries/particles/CMakeLists.txt +++ b/libraries/particles/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 2.8) set(ROOT_DIR ../..) -set(MACRO_DIR ${ROOT_DIR}/cmake/macros) +set(MACRO_DIR "${ROOT_DIR}/cmake/macros") # setup for find modules set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/modules/") @@ -16,13 +16,13 @@ setup_hifi_library(${TARGET_NAME}) qt5_use_modules(${TARGET_NAME} Widgets) include(${MACRO_DIR}/IncludeGLM.cmake) -include_glm(${TARGET_NAME} ${ROOT_DIR}) +include_glm(${TARGET_NAME} "${ROOT_DIR}") include(${MACRO_DIR}/LinkHifiLibrary.cmake) -link_hifi_library(shared ${TARGET_NAME} ${ROOT_DIR}) -link_hifi_library(octree ${TARGET_NAME} ${ROOT_DIR}) +link_hifi_library(shared ${TARGET_NAME} "${ROOT_DIR}") +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}) +include_directories("${ZLIB_INCLUDE_DIRS}") +target_link_libraries(${TARGET_NAME} "${ZLIB_LIBRARIES}") diff --git a/libraries/script-engine/CMakeLists.txt b/libraries/script-engine/CMakeLists.txt index 59f41b8cbe..d2a838e543 100644 --- a/libraries/script-engine/CMakeLists.txt +++ b/libraries/script-engine/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 2.8) set(ROOT_DIR ../..) -set(MACRO_DIR ${ROOT_DIR}/cmake/macros) +set(MACRO_DIR "${ROOT_DIR}/cmake/macros") # setup for find modules set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/modules/") @@ -16,15 +16,15 @@ setup_hifi_library(${TARGET_NAME}) qt5_use_modules(${TARGET_NAME} Widgets) include(${MACRO_DIR}/IncludeGLM.cmake) -include_glm(${TARGET_NAME} ${ROOT_DIR}) +include_glm(${TARGET_NAME} "${ROOT_DIR}") include(${MACRO_DIR}/LinkHifiLibrary.cmake) -link_hifi_library(shared ${TARGET_NAME} ${ROOT_DIR}) -link_hifi_library(octree ${TARGET_NAME} ${ROOT_DIR}) -link_hifi_library(voxels ${TARGET_NAME} ${ROOT_DIR}) -link_hifi_library(particles ${TARGET_NAME} ${ROOT_DIR}) +link_hifi_library(shared ${TARGET_NAME} "${ROOT_DIR}") +link_hifi_library(octree ${TARGET_NAME} "${ROOT_DIR}") +link_hifi_library(voxels ${TARGET_NAME} "${ROOT_DIR}") +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}) +include_directories("${ZLIB_INCLUDE_DIRS}") +target_link_libraries(${TARGET_NAME} "${ZLIB_LIBRARIES}") diff --git a/libraries/shared/CMakeLists.txt b/libraries/shared/CMakeLists.txt index c1fcf2e553..1f23dca926 100644 --- a/libraries/shared/CMakeLists.txt +++ b/libraries/shared/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 2.8) set(ROOT_DIR ../..) -set(MACRO_DIR ${ROOT_DIR}/cmake/macros) +set(MACRO_DIR "${ROOT_DIR}/cmake/macros") set(TARGET_NAME shared) project(${TARGET_NAME}) @@ -16,18 +16,18 @@ qt5_use_modules(${TARGET_NAME} Network Widgets) # include GLM include(${MACRO_DIR}/IncludeGLM.cmake) -include_glm(${TARGET_NAME} ${ROOT_DIR}) +include_glm(${TARGET_NAME} "${ROOT_DIR}") -set(EXTERNAL_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external) +set(EXTERNAL_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/external") if (WIN32) # include headers for external libraries and InterfaceConfig. - include_directories(${EXTERNAL_ROOT_DIR}) + include_directories("${EXTERNAL_ROOT_DIR}") endif (WIN32) # link required libraries on UNIX if (UNIX AND NOT APPLE) find_package(Threads REQUIRED) - target_link_libraries(${TARGET_NAME} ${CMAKE_THREAD_LIBS_INIT}) + target_link_libraries(${TARGET_NAME} "${CMAKE_THREAD_LIBS_INIT}") endif (UNIX AND NOT APPLE) diff --git a/libraries/voxels/CMakeLists.txt b/libraries/voxels/CMakeLists.txt index 8a3b0d7325..279168ded8 100644 --- a/libraries/voxels/CMakeLists.txt +++ b/libraries/voxels/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 2.8) set(ROOT_DIR ../..) -set(MACRO_DIR ${ROOT_DIR}/cmake/macros) +set(MACRO_DIR "${ROOT_DIR}/cmake/macros") # setup for find modules set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/modules/") @@ -17,13 +17,13 @@ setup_hifi_library(${TARGET_NAME}) qt5_use_modules(${TARGET_NAME} Widgets Script) include(${MACRO_DIR}/IncludeGLM.cmake) -include_glm(${TARGET_NAME} ${ROOT_DIR}) +include_glm(${TARGET_NAME} "${ROOT_DIR}") include(${MACRO_DIR}/LinkHifiLibrary.cmake) -link_hifi_library(shared ${TARGET_NAME} ${ROOT_DIR}) -link_hifi_library(octree ${TARGET_NAME} ${ROOT_DIR}) +link_hifi_library(shared ${TARGET_NAME} "${ROOT_DIR}") +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}) +include_directories("${ZLIB_INCLUDE_DIRS}") +target_link_libraries(${TARGET_NAME} "${ZLIB_LIBRARIES}") diff --git a/svo-viewer/CMakeLists.txt b/svo-viewer/CMakeLists.txt index 24f07c5a6d..c76cc4209b 100644 --- a/svo-viewer/CMakeLists.txt +++ b/svo-viewer/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 2.8) set(ROOT_DIR ..) -set(MACRO_DIR ${ROOT_DIR}/cmake/macros) +set(MACRO_DIR "${ROOT_DIR}/cmake/macros") set(TARGET_NAME svo-viewer) project(${TARGET_NAME}) @@ -24,14 +24,14 @@ if (WIN32) add_definitions( -DWINDOWS_LEAN_AND_MEAN ) # needed to make sure windows doesn't go to crazy with its defines # windows build needs an external glut, we're using freeglut - set(GLUT_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/external/freeglut) - set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${GLUT_ROOT_PATH}) + set(GLUT_ROOT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/external/freeglut") + set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} "${GLUT_ROOT_PATH}") # windows build needs glew (opengl extention wrangler) this will handle providing access to OpenGL methods after 1.1 # which are not accessible on windows without glew or some other dynamic linking mechanism - set(GLEW_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/external/glew) - set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${GLEW_ROOT_PATH}) - include_directories(SYSTEM ${GLEW_ROOT_PATH}/include ${GLUT_ROOT_PATH}/include) + set(GLEW_ROOT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/external/glew") + set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} "${GLEW_ROOT_PATH}") + include_directories(SYSTEM "${GLEW_ROOT_PATH}/include" "${GLUT_ROOT_PATH}/include") #set(GL_HEADERS "#define GLEW_STATIC\n#define FREEGLUT_STATIC\n#define FREEGLUT_LIB_PRAGMAS 0\n#include \n#include \n#include \n#include ") set(GL_HEADERS "#define GLEW_STATIC\n#include \n#include \n#include ") @@ -40,22 +40,25 @@ endif (WIN32) # set up the external glm library include(${MACRO_DIR}/IncludeGLM.cmake) -include_glm(${TARGET_NAME} ${ROOT_DIR}) +include_glm(${TARGET_NAME} "${ROOT_DIR}") # create the ${TARGET_NAME}-config.h file based on GL_HEADERS above -configure_file(${TARGET_NAME}-config.h.in ${PROJECT_BINARY_DIR}/includes/${TARGET_NAME}-config.h) -configure_file(${TARGET_NAME}-version.h.in ${PROJECT_BINARY_DIR}/includes/${TARGET_NAME}-version.h) +configure_file(${TARGET_NAME}-config.h.in "${PROJECT_BINARY_DIR}/includes/${TARGET_NAME}-config.h") +configure_file(${TARGET_NAME}-version.h.in "${PROJECT_BINARY_DIR}/includes/${TARGET_NAME}-version.h") # grab the implementation and header files from src dirs file(GLOB APPLICATION_SRCS src/*.c src/*.cpp src/*.h) foreach(SUBDIR avatar devices renderer ui starfield) - file(GLOB_RECURSE SUBDIR_SRCS src/${SUBDIR}/*.cpp src/${SUBDIR}/*.c src/${SUBDIR}/*.h) - set(APPLICATION_SRCS ${APPLICATION_SRCS} ${SUBDIR_SRCS}) + file(GLOB_RECURSE SUBDIR_SRCS "src/${SUBDIR}/*.cpp" "src/${SUBDIR}/*.c" "src/${SUBDIR}/*.h") + set(APPLICATION_SRCS ${APPLICATION_SRCS} "${SUBDIR_SRCS}") endforeach(SUBDIR) foreach(EXTERNAL_SOURCE_SUBDIR ${EXTERNAL_SOURCE_SUBDIRS}) - file(GLOB_RECURSE SUBDIR_SRCS external/${EXTERNAL_SOURCE_SUBDIR}/src/*.cpp external/${EXTERNAL_SOURCE_SUBDIR}/src/*.c external/${EXTERNAL_SOURCE_SUBDIR}/src/*.h) - set(APPLICATION_SRCS ${APPLICATION_SRCS} ${SUBDIR_SRCS}) + file(GLOB_RECURSE SUBDIR_SRCS + "external/${EXTERNAL_SOURCE_SUBDIR}/src/*.cpp" + "external/${EXTERNAL_SOURCE_SUBDIR}/src/*.c" + "external/${EXTERNAL_SOURCE_SUBDIR}/src/*.h") + set(APPLICATION_SRCS ${APPLICATION_SRCS} "${SUBDIR_SRCS}") endforeach(EXTERNAL_SOURCE_SUBDIR) find_package(Qt5Core REQUIRED) @@ -71,10 +74,10 @@ find_package(Qt5Xml REQUIRED) # grab the ui files in resources/ui file (GLOB_RECURSE QT_UI_FILES ui/*.ui) # have qt5 wrap them and generate the appropriate header files -qt5_wrap_ui(QT_UI_HEADERS ${QT_UI_FILES}) +qt5_wrap_ui(QT_UI_HEADERS "${QT_UI_FILES}") # add them to the application source files -set(APPLICATION_SRCS ${APPLICATION_SRCS} ${QT_UI_HEADERS}) +set(APPLICATION_SRCS ${APPLICATION_SRCS} "${QT_UI_HEADERS}") if (APPLE) @@ -88,18 +91,18 @@ if (APPLE) SET(MACOSX_BUNDLE_ICON_FILE ${TARGET_NAME}.icns) # set where in the bundle to put the resources file - SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_SOURCE_DIR}/${TARGET_NAME}.icns PROPERTIES MACOSX_PACKAGE_LOCATION Resources) + SET_SOURCE_FILES_PROPERTIES("${CMAKE_CURRENT_SOURCE_DIR}/${TARGET_NAME}.icns" PROPERTIES MACOSX_PACKAGE_LOCATION Resources) - SET(APPLICATION_SRCS ${APPLICATION_SRCS} ${CMAKE_CURRENT_SOURCE_DIR}/${TARGET_NAME}.icns) + SET(APPLICATION_SRCS ${APPLICATION_SRCS} "${CMAKE_CURRENT_SOURCE_DIR}/${TARGET_NAME}.icns") # grab the directories in resources and put them in the right spot in Resources - file(GLOB RESOURCE_SUBDIRS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/resources ${CMAKE_CURRENT_SOURCE_DIR}/resources/*) + file(GLOB RESOURCE_SUBDIRS RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/resources" "${CMAKE_CURRENT_SOURCE_DIR}/resources/*") foreach(DIR ${RESOURCE_SUBDIRS}) - if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/resources/${DIR}) - FILE(GLOB DIR_CONTENTS resources/${DIR}/*) - SET_SOURCE_FILES_PROPERTIES(${DIR_CONTENTS} PROPERTIES MACOSX_PACKAGE_LOCATION Resources/${DIR}) + if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/resources/${DIR}") + FILE(GLOB DIR_CONTENTS "resources/${DIR}/*") + SET_SOURCE_FILES_PROPERTIES(${DIR_CONTENTS} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources/${DIR}") - SET(APPLICATION_SRCS ${APPLICATION_SRCS} ${DIR_CONTENTS}) + SET(APPLICATION_SRCS ${APPLICATION_SRCS} "${DIR_CONTENTS}") endif() endforeach() endif (APPLE) @@ -111,9 +114,9 @@ add_executable(${TARGET_NAME} MACOSX_BUNDLE ${APPLICATION_SRCS}) include(${MACRO_DIR}/LinkHifiLibrary.cmake) # link required hifi libraries -link_hifi_library(shared ${TARGET_NAME} ${ROOT_DIR}) -link_hifi_library(octree ${TARGET_NAME} ${ROOT_DIR}) -link_hifi_library(voxels ${TARGET_NAME} ${ROOT_DIR}) +link_hifi_library(shared ${TARGET_NAME} "${ROOT_DIR}") +link_hifi_library(octree ${TARGET_NAME} "${ROOT_DIR}") +link_hifi_library(voxels ${TARGET_NAME} "${ROOT_DIR}") # find required libraries find_package(GLM REQUIRED) @@ -122,22 +125,13 @@ 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 -) +include_directories("${PROJECT_SOURCE_DIR}/src" "${PROJECT_BINARY_DIR}/includes") # include external library headers # use system flag so warnings are supressed -include_directories( - SYSTEM - ${GLM_INCLUDE_DIRS} -) +include_directories(SYSTEM "${GLM_INCLUDE_DIRS}") -target_link_libraries( - ${TARGET_NAME} - ${ZLIB_LIBRARIES} -) +target_link_libraries(${TARGET_NAME} "${ZLIB_LIBRARIES}") if (APPLE) # link in required OS X frameworks and include the right GL headers @@ -168,8 +162,12 @@ if (APPLE) else (APPLE) find_package(OpenGL REQUIRED) find_package(GLUT REQUIRED) - include_directories(${GLUT_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR}) - target_link_libraries(${TARGET_NAME} ${OPENGL_LIBRARY}) + + if (OPENGL_INCLUDE_DIR) + include_directories("${GLUT_INCLUDE_DIR}" "${OPENGL_INCLUDE_DIR}") + endif (OPENGL_INCLUDE_DIR) + + target_link_libraries(${TARGET_NAME} "${OPENGL_LIBRARY}") endif (APPLE) # link target to external libraries @@ -177,8 +175,8 @@ if (WIN32) target_link_libraries( ${TARGET_NAME} - ${CMAKE_CURRENT_SOURCE_DIR}/external/glew/lib/Release/Win32/glew32s.lib - ${GLUT_ROOT_PATH}/lib/freeglut.lib + "${CMAKE_CURRENT_SOURCE_DIR}/external/glew/lib/Release/Win32/glew32s.lib" + "${GLUT_ROOT_PATH}/lib/freeglut.lib" wsock32.lib opengl32.lib @@ -190,15 +188,15 @@ else (WIN32) target_link_libraries( ${TARGET_NAME} - ${CMAKE_THREAD_LIBS_INIT} - ${GLUT_LIBRARY} + "${CMAKE_THREAD_LIBS_INIT}" + "${GLUT_LIBRARY}" ) endif (UNIX AND NOT APPLE) endif (WIN32) # install command for OS X bundle INSTALL(TARGETS ${TARGET_NAME} - BUNDLE DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/install COMPONENT Runtime - RUNTIME DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/install COMPONENT Runtime + BUNDLE DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/install" COMPONENT Runtime + RUNTIME DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/install" COMPONENT Runtime ) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index e817ffe506..2f56d337fa 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,9 +1,9 @@ cmake_minimum_required(VERSION 2.8) # add the test directories -file(GLOB TEST_SUBDIRS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/*) +file(GLOB TEST_SUBDIRS RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/*") foreach(DIR ${TEST_SUBDIRS}) - if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${DIR}) + if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${DIR}") add_subdirectory(${DIR}) endif() endforeach() diff --git a/tests/metavoxels/CMakeLists.txt b/tests/metavoxels/CMakeLists.txt index 9d21dd2a44..39730ab015 100644 --- a/tests/metavoxels/CMakeLists.txt +++ b/tests/metavoxels/CMakeLists.txt @@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 2.8) set(TARGET_NAME metavoxel-tests) set(ROOT_DIR ../..) -set(MACRO_DIR ${ROOT_DIR}/cmake/macros) +set(MACRO_DIR "${ROOT_DIR}/cmake/macros") # setup for find modules set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/modules/") @@ -13,21 +13,21 @@ find_package(Qt5Script REQUIRED) find_package(Qt5Widgets REQUIRED) include(${MACRO_DIR}/AutoMTC.cmake) -auto_mtc(${TARGET_NAME} ${ROOT_DIR}) +auto_mtc(${TARGET_NAME} "${ROOT_DIR}") include(${MACRO_DIR}/SetupHifiProject.cmake) -setup_hifi_project(${TARGET_NAME} TRUE ${AUTOMTC_SRC}) +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}) +include_glm(${TARGET_NAME} "${ROOT_DIR}") # link in the shared libraries include(${MACRO_DIR}/LinkHifiLibrary.cmake) -link_hifi_library(metavoxels ${TARGET_NAME} ${ROOT_DIR}) -link_hifi_library(shared ${TARGET_NAME} ${ROOT_DIR}) +link_hifi_library(metavoxels ${TARGET_NAME} "${ROOT_DIR}") +link_hifi_library(shared ${TARGET_NAME} "${ROOT_DIR}") IF (WIN32) target_link_libraries(${TARGET_NAME} Winmm Ws2_32) diff --git a/tools/mtc/CMakeLists.txt b/tools/mtc/CMakeLists.txt index 95cb95d573..a9588fd30d 100644 --- a/tools/mtc/CMakeLists.txt +++ b/tools/mtc/CMakeLists.txt @@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 2.8) set(TARGET_NAME mtc) set(ROOT_DIR ../..) -set(MACRO_DIR ${ROOT_DIR}/cmake/macros) +set(MACRO_DIR "${ROOT_DIR}/cmake/macros") include(${MACRO_DIR}/SetupHifiProject.cmake) setup_hifi_project(${TARGET_NAME} TRUE) diff --git a/voxel-edit/CMakeLists.txt b/voxel-edit/CMakeLists.txt index e0aa0750d2..d394cea518 100644 --- a/voxel-edit/CMakeLists.txt +++ b/voxel-edit/CMakeLists.txt @@ -3,14 +3,14 @@ cmake_minimum_required(VERSION 2.8) set(TARGET_NAME voxel-edit) set(ROOT_DIR ..) -set(MACRO_DIR ${ROOT_DIR}/cmake/macros) +set(MACRO_DIR "${ROOT_DIR}/cmake/macros") # setup for find modules set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../cmake/modules/") # set up the external glm library include(${MACRO_DIR}/IncludeGLM.cmake) -include_glm(${TARGET_NAME} ${ROOT_DIR}) +include_glm(${TARGET_NAME} "${ROOT_DIR}") include(${MACRO_DIR}/SetupHifiProject.cmake) setup_hifi_project(${TARGET_NAME} TRUE) @@ -20,13 +20,13 @@ qt5_use_modules(${TARGET_NAME} Script) # link in the shared library include(${MACRO_DIR}/LinkHifiLibrary.cmake) -link_hifi_library(shared ${TARGET_NAME} ${ROOT_DIR}) +link_hifi_library(shared ${TARGET_NAME} "${ROOT_DIR}") # link in the hifi octree library -link_hifi_library(octree ${TARGET_NAME} ${ROOT_DIR}) +link_hifi_library(octree ${TARGET_NAME} "${ROOT_DIR}") # link in the hifi voxels library -link_hifi_library(voxels ${TARGET_NAME} ${ROOT_DIR}) +link_hifi_library(voxels ${TARGET_NAME} "${ROOT_DIR}") IF (WIN32) target_link_libraries(${TARGET_NAME} Winmm Ws2_32)