diff --git a/CMakeLists.txt b/CMakeLists.txt index 57fb6959e0..6e227c95f6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,16 +1,8 @@ cmake_minimum_required(VERSION 2.8) -set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules/") project(hifi) -set(GLM_ROOT_DIR ${CMAKE_SOURCE_DIR}/external) -set(LODEPNG_ROOT_DIR ${CMAKE_SOURCE_DIR}/external/LodePNG) -set(PORTAUDIO_DIR ${CMAKE_SOURCE_DIR}/external/portaudio) - -set(HIFI_SHARED_DIR ${CMAKE_SOURCE_DIR}/shared/src) -file(GLOB HIFI_SHARED_SRCS ${HIFI_SHARED_DIR}/*.cpp ${HIFI_SHARED_DIR}/*.h) - -add_subdirectory(interface) +add_subdirectory(space) add_subdirectory(domain) add_subdirectory(mixer) -add_subdirectory(space) +add_subdirectory(interface) \ No newline at end of file diff --git a/LinkHifiShared.cmake b/LinkHifiShared.cmake new file mode 100644 index 0000000000..4866be6ed0 --- /dev/null +++ b/LinkHifiShared.cmake @@ -0,0 +1,9 @@ +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) + target_link_libraries(${TARGET} ${HIFI_SHARED_LIBRARY}) +ENDMACRO(LINK_HIFI_SHARED_LIBRARY _target) \ No newline at end of file diff --git a/interface/CMakeLists.txt b/interface/CMakeLists.txt index 71b234954b..cff3c9df3f 100644 --- a/interface/CMakeLists.txt +++ b/interface/CMakeLists.txt @@ -1,5 +1,10 @@ cmake_minimum_required(VERSION 2.8) +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) + project(interface) if (APPLE) @@ -13,7 +18,9 @@ configure_file(InterfaceConfig.h.in ${PROJECT_BINARY_DIR}/includes/InterfaceConf file(GLOB INTERFACE_SRCS src/*.cpp src/*.h) -add_executable(interface ${INTERFACE_SRCS} ${HIFI_SHARED_SRCS}) +add_executable(interface ${INTERFACE_SRCS}) +include(../LinkHifiShared.cmake) +link_hifi_shared_library(interface) find_package(OpenGL REQUIRED) find_package(GLUT REQUIRED) @@ -22,7 +29,6 @@ find_package(LodePNG REQUIRED) include_directories( ${PROJECT_BINARY_DIR}/includes - ${HIFI_SHARED_DIR} ${OPENGL_INCLUDE_DIRS} ${GLUT_INCLUDE_DIRS} ${GLM_INCLUDE_DIRS} diff --git a/mixer/CMakeLists.txt b/mixer/CMakeLists.txt index 45cf78f66c..00b2032aba 100644 --- a/mixer/CMakeLists.txt +++ b/mixer/CMakeLists.txt @@ -4,11 +4,13 @@ project(mixer) file(GLOB MIXER_SRCS src/*.cpp src/*.h) -add_executable(mixer ${MIXER_SRCS} ${HIFI_SHARED_SRCS}) +add_executable(mixer ${MIXER_SRCS}) -include_directories(${HIFI_SHARED_DIR}) +include(../LinkHifiShared.cmake) +link_hifi_shared_library(mixer) find_package(Threads REQUIRED) target_link_libraries(mixer ${CMAKE_THREAD_LIBS_INIT} + ${HIFI_SHARED_LIBRARY} ) \ No newline at end of file diff --git a/shared/CMakeLists.txt b/shared/CMakeLists.txt new file mode 100644 index 0000000000..3fb85b8495 --- /dev/null +++ b/shared/CMakeLists.txt @@ -0,0 +1,8 @@ +cmake_minimum_required(VERSION 2.8) + +project(shared) + +file(GLOB HIFI_SHARED_SRCS src/*.h src/*.cpp) + +add_library(HifiShared ${HIFI_SHARED_SRCS}) +set(HIFI_SHARED_LIBRARY HifiShared) \ No newline at end of file