From b727c910d11f004391d0184ac0c76b5de0015967 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Tue, 17 Feb 2015 15:19:17 -0800 Subject: [PATCH] handle multiple dll paths, add sixense --- cmake/macros/AddPathToLibPaths.cmake | 10 ++++++---- cmake/modules/FindLeapMotion.cmake | 2 +- cmake/modules/FindSDL2.cmake | 2 +- cmake/modules/FindSixense.cmake | 14 +++++++++++++- cmake/modules/FindSoxr.cmake | 2 +- cmake/modules/FindTBB.cmake | 13 +++++++++++-- 6 files changed, 33 insertions(+), 10 deletions(-) diff --git a/cmake/macros/AddPathToLibPaths.cmake b/cmake/macros/AddPathToLibPaths.cmake index f1f7c46a1c..abdc65c9be 100644 --- a/cmake/macros/AddPathToLibPaths.cmake +++ b/cmake/macros/AddPathToLibPaths.cmake @@ -9,8 +9,10 @@ # See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html # -macro(ADD_PATH_TO_LIB_PATHS _PATH) - set(TEMP_LIB_PATHS ${LIB_PATHS}) - list(APPEND TEMP_LIB_PATHS ${_PATH}) - set(LIB_PATHS ${TEMP_LIB_PATHS} CACHE TYPE LIST FORCE) +macro(ADD_PATHS_TO_LIB_PATHS) + foreach(_PATH in ${ARGN}) + set(TEMP_LIB_PATHS ${LIB_PATHS}) + list(APPEND TEMP_LIB_PATHS ${_PATH}) + set(LIB_PATHS ${TEMP_LIB_PATHS} CACHE TYPE LIST FORCE) + endforeach() endmacro() \ No newline at end of file diff --git a/cmake/modules/FindLeapMotion.cmake b/cmake/modules/FindLeapMotion.cmake index baed00ef50..6ccba0ea66 100644 --- a/cmake/modules/FindLeapMotion.cmake +++ b/cmake/modules/FindLeapMotion.cmake @@ -22,7 +22,7 @@ if (WIN32) find_library(LEAPMOTION_LIBRARY_RELEASE Leap PATH_SUFFIXES lib/x86 HINTS ${LEAPMOTION_SEARCH_DIRS}) get_filename_component(LEAPMOTION_DLL_PATH ${LEAPMOTION_LIBRARY_RELEASE} DIRECTORY CACHE) - add_path_to_lib_paths(${LEAPMOTION_DLL_PATH}) + add_paths_to_lib_paths(${LEAPMOTION_DLL_PATH}) elseif (APPLE) find_library(LEAPMOTION_LIBRARY_RELEASE Leap PATH_SUFFIXES lib HINTS ${LEAPMOTION_SEARCH_DIRS}) endif () diff --git a/cmake/modules/FindSDL2.cmake b/cmake/modules/FindSDL2.cmake index 25d61899a1..d9fa3c3c37 100644 --- a/cmake/modules/FindSDL2.cmake +++ b/cmake/modules/FindSDL2.cmake @@ -257,5 +257,5 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL2 REQUIRED_VARS SDL2_LIBRARY SDL2_INCLUDE_D if (WIN32) get_filename_component(SDL2_DLL_PATH ${SDL2_LIBRARY} DIRECTORY CACHE) - add_path_to_lib_paths(${SDL2_DLL_PATH}) + add_paths_to_lib_paths(${SDL2_DLL_PATH} ${SDL2_RELEASE_PATH}) endif () diff --git a/cmake/modules/FindSixense.cmake b/cmake/modules/FindSixense.cmake index f772c42e41..7e6581ffd0 100644 --- a/cmake/modules/FindSixense.cmake +++ b/cmake/modules/FindSixense.cmake @@ -32,14 +32,26 @@ elseif (UNIX) elseif (WIN32) find_library(SIXENSE_LIBRARY_RELEASE lib/win32/release_dll/sixense.lib HINTS ${SIXENSE_SEARCH_DIRS}) find_library(SIXENSE_LIBRARY_DEBUG lib/win32/debug_dll/sixensed.lib HINTS ${SIXENSE_SEARCH_DIRS}) + + find_path(SIXENSE_DEBUG_DLL_PATH sixensed.dll PATH_SUFFIXES bin/win32/debug_dll HINTS ${SIXENSE_SEARCH_DIRS}) + find_path(SIXENSE_RELEASE_DLL_PATH sixense.dll PATH_SUFFIXES bin/win32/release_dll HINTS ${SIXENSE_SEARCH_DIRS}) endif () include(SelectLibraryConfigurations) select_library_configurations(SIXENSE) +set(SIXENSE_REQUIREMENTS SIXENSE_INCLUDE_DIRS SIXENSE_LIBRARIES) +if (WIN32) + list(APPEND SIXENSE_REQUIREMENTS SIXENSE_DEBUG_DLL_PATH SIXENSE_RELEASE_DLL_PATH) +endif () + set(SIXENSE_LIBRARIES "${SIXENSE_LIBRARY}") include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Sixense DEFAULT_MSG SIXENSE_INCLUDE_DIRS SIXENSE_LIBRARIES) +find_package_handle_standard_args(Sixense DEFAULT_MSG SIXENSE_REQUIREMENTS) + +if (WIN32) + add_paths_to_lib_paths(${SIXSENSE_DEBUG_DLL_PATH}) +endif () mark_as_advanced(SIXENSE_LIBRARIES SIXENSE_INCLUDE_DIRS SIXENSE_SEARCH_DIRS) diff --git a/cmake/modules/FindSoxr.cmake b/cmake/modules/FindSoxr.cmake index b980b4ea1f..fba6158f14 100644 --- a/cmake/modules/FindSoxr.cmake +++ b/cmake/modules/FindSoxr.cmake @@ -26,7 +26,7 @@ find_library(SOXR_LIBRARIES NAMES soxr PATH_SUFFIXES lib HINTS ${SOXR_SEARCH_DIR if (WIN32) find_path(SOXR_DLL_PATH soxr.dll PATH_SUFFIXES bin HINTS ${SOXR_SEARCH_DIRS}) - add_path_to_lib_paths(${SOXR_DLL_PATH}) + add_paths_to_lib_paths(${SOXR_DLL_PATH}) endif() include(FindPackageHandleStandardArgs) diff --git a/cmake/modules/FindTBB.cmake b/cmake/modules/FindTBB.cmake index 596cd3ccca..c18d619612 100644 --- a/cmake/modules/FindTBB.cmake +++ b/cmake/modules/FindTBB.cmake @@ -58,7 +58,7 @@ elseif (WIN32) set(_TBB_LIB_DIR "lib/${_TBB_ARCH_DIR}/vc12") find_path(TBB_DLL_PATH tbb_debug.dll PATH_SUFFIXES "bin/${_TBB_ARCH_DIR}/vc12" HINTS ${TBB_SEARCH_DIRS}) - add_path_to_lib_paths(${TBB_DLL_PATH}) + elseif (ANDROID) set(_TBB_DEFAULT_INSTALL_DIR "/tbb") set(_TBB_LIB_NAME "tbb") @@ -80,6 +80,15 @@ include(FindPackageHandleStandardArgs) select_library_configurations(TBB) select_library_configurations(TBB_MALLOC) -find_package_handle_standard_args(TBB DEFAULT_MSG TBB_LIBRARY TBB_MALLOC_LIBRARY TBB_INCLUDE_DIRS) +set(TBB_REQUIREMENTS TBB_LIBRARY TBB_MALLOC_LIBRARY TBB_INCLUDE_DIRS) +if (WIN32) + list(APPEND TBB_REQUIREMENTS TBB_DLL_PATH) +endif () + +find_package_handle_standard_args(TBB DEFAULT_MSG TBB_REQUIREMENTS) + +if (WIN32) + add_paths_to_lib_paths(${TBB_DLL_PATH}) +endif () set(TBB_LIBRARIES ${TBB_LIBRARY} ${TBB_MALLOC_LIBRARY})