move shared to libraries, DRY library macro, rename libs

This commit is contained in:
Stephen Birarda 2013-04-12 12:38:34 -07:00
parent 0ff32a72ef
commit 67efc12e59
53 changed files with 69 additions and 88 deletions

View file

@ -8,4 +8,4 @@ add_subdirectory(domain)
add_subdirectory(mixer)
add_subdirectory(voxel)
add_subdirectory(interface)
add_subdirectory(injector)
add_subdirectory(injector)

View file

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

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

@ -9,5 +9,5 @@ file(GLOB DOMAIN_SRCS src/*.cpp src/*.h)
add_executable(domain ${DOMAIN_SRCS})
# link the shared hifi library
include(../cmake/macros/LinkHifiShared.cmake)
link_hifi_shared_library(domain)
include(../cmake/macros/LinkHifiLibrary.cmake)
link_hifi_library(shared 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

@ -10,10 +10,8 @@ set(PORTAUDIO_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/portaudio)
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)
@ -53,12 +51,11 @@ endif (APPLE)
add_executable(interface MACOSX_BUNDLE ${INTERFACE_SRCS})
# link in the hifi shared library
include(../cmake/macros/LinkHifiShared.cmake)
link_hifi_shared_library(interface)
include(../cmake/macros/LinkHifiLibrary.cmake)
link_hifi_library(shared interface)
# 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 interface)
# find required libraries
find_package(GLM REQUIRED)

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,19 @@
cmake_minimum_required(VERSION 2.8)
set(TARGET_NAME voxels)
project(${TARGET_NAME})
# 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(${TARGET_NAME})
# 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

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

View file

@ -6,5 +6,5 @@ file(GLOB SPACE_SRCS src/*.cpp src/*.h)
add_executable(space ${SPACE_SRCS})
include(../cmake/macros/LinkHifiShared.cmake)
link_hifi_shared_library(space)
include(../cmake/macros/LinkHifiLibrary.cmake)
link_hifi_library(shared space)

View file

@ -6,9 +6,9 @@ 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 shared library
include(../cmake/macros/LinkHifiLibrary.cmake)
link_hifi_library(shared voxel)
# link in the hifi voxellib library
include(../cmake/macros/LinkHifiVoxelLib.cmake)
link_hifi_voxellib_library(voxel)
# link in the hifi voxels library
link_hifi_library(voxels 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)