From 107cbc3f87205815a6ec97dd035a7538da2d523b Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Fri, 8 Aug 2014 09:22:19 -0700 Subject: [PATCH] more simplification of hifi macros to find libraries --- CMakeLists.txt | 10 ++++++++ assignment-client/CMakeLists.txt | 37 +++++++++++------------------- cmake/macros/IncludeGLM.cmake | 4 ++-- cmake/macros/LinkHifiLibrary.cmake | 10 ++++---- domain-server/CMakeLists.txt | 14 +++-------- 5 files changed, 35 insertions(+), 40 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 578c36841d..9f033e5184 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,6 +44,16 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON) # Instruct CMake to run moc automatically when needed. set(CMAKE_AUTOMOC ON) +set(HIFI_LIBRARY_DIR "${CMAKE_CURRENT_SOURCE_DIR}/libraries") +set(MACRO_DIR "${CMAKE_CURRENT_SOURCE_DIR}/cmake/macros") +# setup for find modules +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/") + +file(GLOB HIFI_CUSTOM_MACROS "cmake/macros/*.cmake") +foreach(CUSTOM_MACRO ${HIFI_CUSTOM_MACROS}) + include(${CUSTOM_MACRO}) +endforeach() + # targets on all platforms add_subdirectory(assignment-client) add_subdirectory(domain-server) diff --git a/assignment-client/CMakeLists.txt b/assignment-client/CMakeLists.txt index 702c4a68ea..2d7d43227a 100644 --- a/assignment-client/CMakeLists.txt +++ b/assignment-client/CMakeLists.txt @@ -1,32 +1,23 @@ set(TARGET_NAME assignment-client) -set(ROOT_DIR ..) -set(MACRO_DIR "${ROOT_DIR}/cmake/macros") - -# setup for find modules -set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../cmake/modules/") - -include("${MACRO_DIR}/SetupHifiProject.cmake") setup_hifi_project(${TARGET_NAME} TRUE) -include(${MACRO_DIR}/IncludeGLM.cmake) -include_glm(${TARGET_NAME} "${ROOT_DIR}") +include_glm(${TARGET_NAME}) # 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(fbx ${TARGET_NAME} "${ROOT_DIR}") -link_hifi_library(particles ${TARGET_NAME} "${ROOT_DIR}") -link_hifi_library(models ${TARGET_NAME} "${ROOT_DIR}") -link_hifi_library(metavoxels ${TARGET_NAME} "${ROOT_DIR}") -link_hifi_library(networking ${TARGET_NAME} "${ROOT_DIR}") -link_hifi_library(animation ${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}) +link_hifi_library(audio ${TARGET_NAME}) +link_hifi_library(avatars ${TARGET_NAME}) +link_hifi_library(octree ${TARGET_NAME}) +link_hifi_library(voxels ${TARGET_NAME}) +link_hifi_library(fbx ${TARGET_NAME}) +link_hifi_library(particles ${TARGET_NAME}) +link_hifi_library(models ${TARGET_NAME}) +link_hifi_library(metavoxels ${TARGET_NAME}) +link_hifi_library(networking ${TARGET_NAME}) +link_hifi_library(animation ${TARGET_NAME}) +link_hifi_library(script-engine ${TARGET_NAME}) +link_hifi_library(embedded-webserver ${TARGET_NAME}) if (UNIX) target_link_libraries(${TARGET_NAME} ${DEPENDENCY_LIBRARIES} ${CMAKE_DL_LIBS}) diff --git a/cmake/macros/IncludeGLM.cmake b/cmake/macros/IncludeGLM.cmake index a31324993e..ec7816770f 100644 --- a/cmake/macros/IncludeGLM.cmake +++ b/cmake/macros/IncludeGLM.cmake @@ -7,7 +7,7 @@ # See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html # -macro(INCLUDE_GLM TARGET ROOT_DIR) +macro(INCLUDE_GLM TARGET) find_package(GLM REQUIRED) include_directories("${GLM_INCLUDE_DIRS}") @@ -16,4 +16,4 @@ macro(INCLUDE_GLM TARGET ROOT_DIR) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -isystem ${GLM_INCLUDE_DIRS}") endif () -endmacro(INCLUDE_GLM _target _root_dir) \ No newline at end of file +endmacro(INCLUDE_GLM _target) \ No newline at end of file diff --git a/cmake/macros/LinkHifiLibrary.cmake b/cmake/macros/LinkHifiLibrary.cmake index 227ddf066a..95af4c6fd0 100644 --- a/cmake/macros/LinkHifiLibrary.cmake +++ b/cmake/macros/LinkHifiLibrary.cmake @@ -7,13 +7,15 @@ # See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html # -macro(LINK_HIFI_LIBRARY LIBRARY TARGET ROOT_DIR) +macro(LINK_HIFI_LIBRARY LIBRARY TARGET) + + file(RELATIVE_PATH RELATIVE_LIBRARY_PATH ${CMAKE_CURRENT_SOURCE_DIR} "${HIFI_LIBRARY_DIR}/${LIBRARY}") if (NOT TARGET ${LIBRARY}) - add_subdirectory("${ROOT_DIR}/libraries/${LIBRARY}" "${ROOT_DIR}/libraries/${LIBRARY}") + add_subdirectory(${RELATIVE_LIBRARY_PATH} ${RELATIVE_LIBRARY_PATH}) endif () - include_directories("${ROOT_DIR}/libraries/${LIBRARY}/src") + include_directories("${HIFI_LIBRARY_DIR}/${LIBRARY}/src") add_dependencies(${TARGET} ${LIBRARY}) @@ -25,4 +27,4 @@ macro(LINK_HIFI_LIBRARY LIBRARY TARGET ROOT_DIR) target_link_libraries(${TARGET} ${LIBRARY}) endif () -endmacro(LINK_HIFI_LIBRARY _library _target _root_dir) \ No newline at end of file +endmacro(LINK_HIFI_LIBRARY _library _target) \ No newline at end of file diff --git a/domain-server/CMakeLists.txt b/domain-server/CMakeLists.txt index 4a030179e1..e98cee7437 100644 --- a/domain-server/CMakeLists.txt +++ b/domain-server/CMakeLists.txt @@ -1,12 +1,5 @@ set(TARGET_NAME domain-server) -set(ROOT_DIR ..) -set(MACRO_DIR "${ROOT_DIR}/cmake/macros") - -# setup for find modules -set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../cmake/modules/") - -include(${MACRO_DIR}/SetupHifiProject.cmake) setup_hifi_project(${TARGET_NAME} TRUE) # remove and then copy the files for the webserver @@ -19,10 +12,9 @@ add_custom_command(TARGET ${TARGET_NAME} POST_BUILD $/resources/web) # link the shared hifi library -include(${MACRO_DIR}/LinkHifiLibrary.cmake) -link_hifi_library(networking ${TARGET_NAME} "${ROOT_DIR}") -link_hifi_library(shared ${TARGET_NAME} "${ROOT_DIR}") -link_hifi_library(embedded-webserver ${TARGET_NAME} "${ROOT_DIR}") +link_hifi_library(networking ${TARGET_NAME}) +link_hifi_library(shared ${TARGET_NAME}) +link_hifi_library(embedded-webserver ${TARGET_NAME}) IF (WIN32) target_link_libraries(${TARGET_NAME} Winmm Ws2_32)