Merge branch 'master' of https://github.com/worklist/hifi into view_frustum_work

This commit is contained in:
ZappoMan 2013-04-12 13:37:34 -07:00
commit cf6b8fe72f
73 changed files with 158 additions and 168 deletions

View file

@ -2,10 +2,10 @@ cmake_minimum_required(VERSION 2.8)
project(hifi)
add_subdirectory(space)
add_subdirectory(avatar)
add_subdirectory(domain)
add_subdirectory(mixer)
add_subdirectory(voxel)
add_subdirectory(avatar-mixer)
add_subdirectory(audio-mixer)
add_subdirectory(domain-server)
add_subdirectory(interface)
add_subdirectory(injector)
add_subdirectory(space-server)
add_subdirectory(voxel-server)

View file

@ -0,0 +1,15 @@
cmake_minimum_required(VERSION 2.8)
set(MACRO_DIR ../cmake/macros)
set(TARGET_NAME audio-mixer)
include(${MACRO_DIR}/SetupHifiProject.cmake)
setup_hifi_project(${TARGET_NAME})
# link the shared hifi library
include(${MACRO_DIR}/LinkHifiLibrary.cmake)
link_hifi_library(shared ${TARGET_NAME})
# link the threads library
find_package(Threads REQUIRED)
target_link_libraries(${TARGET_NAME} ${CMAKE_THREAD_LIBS_INIT})

View file

@ -0,0 +1,15 @@
cmake_minimum_required(VERSION 2.8)
set(TARGET_NAME "avatar-mixer")
# setup the project
include(../cmake/macros/SetupHifiProject.cmake)
setup_hifi_project(${TARGET_NAME})
# link the shared hifi library
include(../cmake/macros/LinkHifiLibrary.cmake)
link_hifi_library(shared ${TARGET_NAME})
# link the threads library
find_package(Threads REQUIRED)
target_link_libraries(${TARGET_NAME} ${CMAKE_THREAD_LIBS_INIT})

View file

@ -1,17 +0,0 @@
cmake_minimum_required(VERSION 2.8)
project(avatar)
# grab the implemenation and header files
file(GLOB AVATAR_SRCS src/*.cpp src/*.h)
# add the executable
add_executable(avatar ${AVATAR_SRCS})
# link the shared hifi library
include(../cmake/macros/LinkHifiShared.cmake)
link_hifi_shared_library(avatar)
# link the threads library
find_package(Threads REQUIRED)
target_link_libraries(avatar ${CMAKE_THREAD_LIBS_INIT})

View file

@ -1,5 +1,5 @@
MACRO(INCLUDE_GLM TARGET)
set(GLM_ROOT_DIR ../externals)
MACRO(INCLUDE_GLM TARGET MACRO_DIR)
set(GLM_ROOT_DIR ${MACRO_DIR}/../../externals)
find_package(GLM REQUIRED)
include_directories(${GLM_INCLUDE_DIRS})
ENDMACRO(INCLUDE_GLM _target)
ENDMACRO(INCLUDE_GLM _target _macro_dir)

View file

@ -0,0 +1,22 @@
MACRO(LINK_HIFI_LIBRARY LIBRARY TARGET)
if (NOT TARGET ${LIBRARY})
add_subdirectory(../libraries/${LIBRARY} ../libraries/${LIBRARY})
endif (NOT TARGET ${LIBRARY})
string(TOUPPER ${LIBRARY} UPPERCASED_LIBRARY_NAME)
set(HIFI_LIBRARY_PROPERTY "HIFI_${UPPERCASED_LIBRARY_NAME}_LIBRARY")
get_directory_property(HIFI_LIBRARY
DIRECTORY ../libraries/${LIBRARY}
DEFINITION ${HIFI_LIBRARY_PROPERTY})
include_directories(../libraries/${LIBRARY}/src)
add_dependencies(${TARGET} ${LIBRARY})
target_link_libraries(${TARGET} ${LIBRARY})
if (APPLE)
# currently the "shared" library requires CoreServices
# link in required OS X framework
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework CoreServices")
endif (APPLE)
ENDMACRO(LINK_HIFI_LIBRARY _library _target)

View file

@ -1,15 +0,0 @@
MACRO(LINK_HIFI_SHARED_LIBRARY TARGET)
if (NOT TARGET HifiShared)
add_subdirectory(../shared ../shared)
endif (NOT TARGET HifiShared)
include_directories(../shared/src)
get_directory_property(HIFI_SHARED_LIBRARY DIRECTORY ../shared DEFINITION HIFI_SHARED_LIBRARY)
add_dependencies(${TARGET} ${HIFI_SHARED_LIBRARY})
target_link_libraries(${TARGET} ${HIFI_SHARED_LIBRARY})
if (APPLE)
# link in required OS X framework
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework CoreServices")
endif (APPLE)
ENDMACRO(LINK_HIFI_SHARED_LIBRARY _target)

View file

@ -1,16 +0,0 @@
MACRO(LINK_HIFI_VOXELLIB_LIBRARY TARGET)
if (NOT TARGET HifiVoxelLib)
add_subdirectory(../voxellib ../voxellib)
endif (NOT TARGET HifiVoxelLib)
include_directories(../voxellib/src)
get_directory_property(HIFI_VOXELLIB_LIBRARY DIRECTORY ../voxellib DEFINITION HIFI_VOXELLIB_LIBRARY)
add_dependencies(${TARGET} ${HIFI_VOXELLIB_LIBRARY})
target_link_libraries(${TARGET} ${HIFI_VOXELLIB_LIBRARY})
if (APPLE)
# link in required OS X framework
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework CoreServices")
endif (APPLE)
ENDMACRO(LINK_HIFI_VOXELLIB_LIBRARY _target)

View file

@ -0,0 +1,9 @@
MACRO(SETUP_HIFI_PROJECT TARGET)
project(${TARGET})
# grab the implemenation and header files
file(GLOB TARGET_SRCS src/*.cpp src/*.h)
# add the executable
add_executable(${TARGET} ${TARGET_SRCS})
ENDMACRO(SETUP_HIFI_PROJECT _target)

View file

@ -0,0 +1,11 @@
cmake_minimum_required(VERSION 2.8)
set(MACRO_DIR ../cmake/macros)
set(TARGET_NAME domain-server)
include(${MACRO_DIR}/SetupHifiProject.cmake)
setup_hifi_project(${TARGET_NAME})
# link the shared hifi library
include(${MACRO_DIR}/LinkHifiLibrary.cmake)
link_hifi_library(shared ${TARGET_NAME})

View file

@ -1,13 +0,0 @@
cmake_minimum_required(VERSION 2.8)
project(domain)
# grab the implementation / header files
file(GLOB DOMAIN_SRCS src/*.cpp src/*.h)
# add an executable with the source files
add_executable(domain ${DOMAIN_SRCS})
# link the shared hifi library
include(../cmake/macros/LinkHifiShared.cmake)
link_hifi_shared_library(domain)

View file

@ -9,8 +9,8 @@ file(GLOB INJECTOR_SRCS src/*.cpp src/*.h)
add_executable(injector ${INJECTOR_SRCS})
# link the shared hifi library
include(../cmake/macros/LinkHifiShared.cmake)
link_hifi_shared_library(injector)
include(../cmake/macros/LinkHifiLibrary.cmake)
link_hifi_library(shared injector)
# link the threads library
find_package(Threads REQUIRED)

View file

@ -1,19 +1,14 @@
cmake_minimum_required(VERSION 2.8)
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(GLM_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external)
set(LODEPNG_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/LodePNG)
set(PORTAUDIO_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/portaudio)
# set up the external glm library
include(../cmake/macros/IncludeGLM.cmake)
INCLUDE_GLM(interface)
project(interface)
if (APPLE)
set(GL_HEADERS "#include <GLUT/glut.h>\n#include <OpenGL/glext.h>")
else (APPLE)
@ -26,6 +21,11 @@ if (WIN32)
set(GL_HEADERS "#define GLEW_STATIC\n#define FREEGLUT_STATIC\n#define FREEGLUT_LIB_PRAGMAS 0\n#include <GL/glew.h>\n#include <GL/wglew.h>\n#include <GL/freeglut_std.h>\n#include <GL/freeglut_ext.h>")
endif (WIN32)
# set up the external glm library
set(MACRO_DIR ../cmake/macros)
include(${MACRO_DIR}/IncludeGLM.cmake)
include_glm(${TARGET_NAME} ${MACRO_DIR})
# create the InterfaceConfig.h file based on GL_HEADERS above
configure_file(InterfaceConfig.h.in ${PROJECT_BINARY_DIR}/includes/InterfaceConfig.h)
@ -50,15 +50,14 @@ if (APPLE)
endif (APPLE)
# create the executable, make it a bundle on OS X
add_executable(interface MACOSX_BUNDLE ${INTERFACE_SRCS})
add_executable(${TARGET_NAME} MACOSX_BUNDLE ${INTERFACE_SRCS})
# link in the hifi shared library
include(../cmake/macros/LinkHifiShared.cmake)
link_hifi_shared_library(interface)
include(${MACRO_DIR}/LinkHifiLibrary.cmake)
link_hifi_library(shared ${TARGET_NAME})
# link in the hifi voxellib library
include(../cmake/macros/LinkHifiVoxelLib.cmake)
link_hifi_voxellib_library(interface)
# link in the hifi voxels library
link_hifi_library(voxels ${TARGET_NAME})
# find required libraries
find_package(GLM REQUIRED)
@ -76,7 +75,7 @@ if (NOT APPLE)
find_package(OpenGL REQUIRED)
find_package(GLUT REQUIRED)
include_directories(${GLUT_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR})
target_link_libraries(interface ${OPENGL_LIBRARY})
target_link_libraries(${TARGET_NAME} ${OPENGL_LIBRARY})
else (NOT APPLE)
# link in required OS X frameworks and include the right GL headers
find_library(AudioToolbox AudioToolbox)
@ -86,13 +85,13 @@ else (NOT APPLE)
find_library(Carbon Carbon)
find_library(GLUT GLUT)
find_library(OpenGL OpenGL)
target_link_libraries(interface ${AudioToolbox} ${AudioUnit} ${CoreAudio}
target_link_libraries(${TARGET_NAME} ${AudioToolbox} ${AudioUnit} ${CoreAudio}
${CoreServices} ${Carbon} ${GLUT} ${OpenGL})
endif (NOT APPLE)
# link target to external libraries
if (WIN32)
target_link_libraries(interface
target_link_libraries(${TARGET_NAME}
${CMAKE_CURRENT_SOURCE_DIR}/external/glut/Release/glew32.lib
${CMAKE_CURRENT_SOURCE_DIR}/external/glut/Release/freeglut.lib
${CMAKE_CURRENT_SOURCE_DIR}/external/glut/Release/pthread_lib.lib
@ -100,7 +99,7 @@ if (WIN32)
wsock32.lib
)
else (WIN32)
target_link_libraries(interface ${LODEPNG_LIBRARY})
target_link_libraries(${TARGET_NAME} ${LODEPNG_LIBRARY})
# include PortAudio as external project
include(ExternalProject)
@ -115,7 +114,7 @@ else (WIN32)
)
# make PortAudio a dependency of the interface executable
add_dependencies(interface portaudio)
add_dependencies(${TARGET_NAME} portaudio)
# include the PortAudio headers
ExternalProject_Get_Property(portaudio source_dir)
@ -123,7 +122,7 @@ else (WIN32)
# link the PortAudio library
ExternalProject_Get_Property(portaudio binary_dir)
target_link_libraries(interface ${binary_dir}/lib/.libs/libportaudio.a)
target_link_libraries(${TARGET_NAME} ${binary_dir}/lib/.libs/libportaudio.a)
# link required libraries on UNIX
if (UNIX AND NOT APPLE)
@ -132,7 +131,7 @@ else (WIN32)
find_package(ALSA)
find_package(Jack)
target_link_libraries(interface
target_link_libraries(${TARGET_NAME}
${CMAKE_THREAD_LIBS_INIT}
${LIBRT_LIBRARIES}
${JACK_LIBRARIES}
@ -143,7 +142,7 @@ else (WIN32)
endif (WIN32)
# install command for OS X bundle
INSTALL(TARGETS interface
INSTALL(TARGETS ${TARGET_NAME}
BUNDLE DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/install COMPONENT Runtime
RUNTIME DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/install COMPONENT Runtime
)

View file

@ -1,31 +1,28 @@
cmake_minimum_required(VERSION 2.8)
project(shared)
set(TARGET_NAME shared)
project(${TARGET_NAME})
# grab the implemenation and header files
file(GLOB HIFI_SHARED_SRCS src/*.h src/*.cpp)
# create a library and set the property so it can be referenced later
add_library(HifiShared ${HIFI_SHARED_SRCS})
set(HIFI_SHARED_LIBRARY HifiShared)
add_library(${TARGET_NAME} ${HIFI_SHARED_SRCS})
set(HIFI_SHARED_LIBRARY ${TARGET_NAME})
set(EXTERNAL_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external)
if (WIN32)
# include headers for external libraries and InterfaceConfig.
include_directories(${EXTERNAL_ROOT_DIR})
endif (WIN32)
if (NOT WIN32)
else (WIN32)
find_package(CURL REQUIRED)
include_directories(${CURL_INCLUDE_DIRS})
# link target to common, external libraries
target_link_libraries(HifiShared ${CURL_LIBRARY})
endif (NOT WIN32)
target_link_libraries(${TARGET_NAME} ${CURL_LIBRARY})
endif (WIN32)
# link required libraries on UNIX
if (UNIX AND NOT APPLE)
find_package(Threads REQUIRED)
target_link_libraries(HifiShared ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries(${TARGET_NAME} ${CMAKE_THREAD_LIBS_INIT})
endif (UNIX AND NOT APPLE)

View file

@ -0,0 +1,21 @@
cmake_minimum_required(VERSION 2.8)
set(MACRO_DIR ../../cmake/macros)
# setup for find modules
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/modules/")
set(TARGET_NAME voxels)
project(${TARGET_NAME})
# set up the external glm library
include(${MACRO_DIR}/IncludeGLM.cmake)
include_glm(${TARGET_NAME} ${MACRO_DIR})
# grab the implemenation and header files
file(GLOB HIFI_VOXELS_SRCS src/*.h src/*.cpp)
# create a library and set the property so it can be referenced later
add_library(${TARGET_NAME} ${HIFI_VOXELS_SRCS})
set(HIFI_VOXELS_LIBRARY ${TARGET_NAME})

View file

@ -1,17 +0,0 @@
cmake_minimum_required(VERSION 2.8)
project(mixer)
# grab the implemenation and header files
file(GLOB MIXER_SRCS src/*.cpp src/*.h)
# add the mixer executable
add_executable(mixer ${MIXER_SRCS})
# link the shared hifi library
include(../cmake/macros/LinkHifiShared.cmake)
link_hifi_shared_library(mixer)
# link the threads library
find_package(Threads REQUIRED)
target_link_libraries(mixer ${CMAKE_THREAD_LIBS_INIT})

View file

@ -0,0 +1,11 @@
cmake_minimum_required(VERSION 2.8)
set(TARGET_NAME space-server)
set(MACRO_DIR ../cmake/macros)
include(${MACRO_DIR}/SetupHifiProject.cmake)
setup_hifi_project(${TARGET_NAME})
include(${MACRO_DIR}/LinkHifiLibrary.cmake)
link_hifi_library(shared ${TARGET_NAME})

View file

@ -1,10 +0,0 @@
cmake_minimum_required(VERSION 2.8)
project(space)
file(GLOB SPACE_SRCS src/*.cpp src/*.h)
add_executable(space ${SPACE_SRCS})
include(../cmake/macros/LinkHifiShared.cmake)
link_hifi_shared_library(space)

View file

@ -0,0 +1,15 @@
cmake_minimum_required(VERSION 2.8)
set(TARGET_NAME voxel-server)
set(MACRO_DIR ../cmake/macros)
include(${MACRO_DIR}/SetupHifiProject.cmake)
setup_hifi_project(${TARGET_NAME})
# link in the shared library
include(${MACRO_DIR}/LinkHifiLibrary.cmake)
link_hifi_library(shared ${TARGET_NAME})
# link in the hifi voxels library
link_hifi_library(voxels ${TARGET_NAME})

View file

@ -1,14 +0,0 @@
cmake_minimum_required(VERSION 2.8)
project(voxel)
file(GLOB VOXEL_SRCS src/*.cpp src/*.h)
add_executable(voxel ${VOXEL_SRCS})
include(../cmake/macros/LinkHifiShared.cmake)
link_hifi_shared_library(voxel)
# link in the hifi voxellib library
include(../cmake/macros/LinkHifiVoxelLib.cmake)
link_hifi_voxellib_library(voxel)

View file

@ -1,23 +0,0 @@
cmake_minimum_required(VERSION 2.8)
project(voxellib)
# setup for find modules
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../cmake/modules/")
# set up the external glm library
include(../cmake/macros/IncludeGLM.cmake)
include_glm(voxellib)
# grab the implemenation and header files
file(GLOB HIFI_VOXELLIB_SRCS src/*.h src/*.cpp)
# create a library and set the property so it can be referenced later
add_library(HifiVoxelLib ${HIFI_VOXELLIB_SRCS})
set(HIFI_VOXELLIB_LIBRARY HifiVoxelLib)
# this is needed on mac? not sure about others
if (NOT WIN32)
# link target to common, external libraries
target_link_libraries(HifiVoxelLib)
endif (NOT WIN32)