mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-04-07 10:02:24 +02:00
move shared to libraries, DRY library macro, rename libs
This commit is contained in:
parent
0ff32a72ef
commit
67efc12e59
53 changed files with 69 additions and 88 deletions
|
@ -8,4 +8,4 @@ add_subdirectory(domain)
|
|||
add_subdirectory(mixer)
|
||||
add_subdirectory(voxel)
|
||||
add_subdirectory(interface)
|
||||
add_subdirectory(injector)
|
||||
add_subdirectory(injector)
|
|
@ -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)
|
||||
|
|
22
cmake/macros/LinkHifiLibrary.cmake
Normal file
22
cmake/macros/LinkHifiLibrary.cmake
Normal 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)
|
|
@ -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)
|
|
@ -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)
|
|
@ -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)
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
19
libraries/voxels/CMakeLists.txt
Normal file
19
libraries/voxels/CMakeLists.txt
Normal 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})
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
|
@ -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)
|
|
@ -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)
|
Loading…
Reference in a new issue