From 01668a67135d53cf0b9ab2b34c8609e2f2f2d175 Mon Sep 17 00:00:00 2001 From: Alexis Girault <alexis.girault@kitware.com> Date: Mon, 17 Oct 2016 14:23:47 -0400 Subject: [PATCH] COMP: Fix FindVRPN when USE_OMNI FindVRPN: The order in which the libraries were found was creating an compilation error during linking on Linux, as well as windows when being read from an external project. iMSTKConfig.cmake.in: ${PROJECT_NAME} would not be set to "iMSTK" from an external project. External_VRPN: VRPN_BUILD_SERVERS:BOOL was defined twice in imstk_add_external_project(VRPN) --- CMake/External/External_VRPN.cmake | 1 - CMake/FindVRPN.cmake | 58 ++++++++++++++++++------------ iMSTKConfig.cmake.in | 2 +- 3 files changed, 37 insertions(+), 24 deletions(-) diff --git a/CMake/External/External_VRPN.cmake b/CMake/External/External_VRPN.cmake index 8cae55005..f61089d95 100644 --- a/CMake/External/External_VRPN.cmake +++ b/CMake/External/External_VRPN.cmake @@ -37,7 +37,6 @@ imstk_add_external_project( VRPN -DBUILD_TESTING:BOOL=OFF -DVRPN_SUBPROJECT_BUILD:BOOL=ON -DVRPN_BUILD_CLIENTS:BOOL=OFF - -DVRPN_BUILD_SERVERS:BOOL=OFF -DVRPN_BUILD_CLIENT_LIBRARY:BOOL=ON -DVRPN_BUILD_SERVER_LIBRARY:BOOL=ON -DVRPN_INSTALL:BOOL=OFF diff --git a/CMake/FindVRPN.cmake b/CMake/FindVRPN.cmake index 3dcbab621..474ba74b3 100644 --- a/CMake/FindVRPN.cmake +++ b/CMake/FindVRPN.cmake @@ -49,17 +49,51 @@ if(WIN32) list(APPEND VRPN_INCLUDE_DIRS ${LIBFTD2XX_INCLUDE_DIR}) endif() +#----------------------------------------------------------------------------- +# Phantom Omni support +#----------------------------------------------------------------------------- +if(${iMSTK_USE_OMNI}) + + find_library(VRPN_PHANTOM_LIBRARY + NAMES + vrpn_phantom + vrpn_phantomd + ) + mark_as_advanced(VRPN_PHANTOM_LIBRARY) + list(APPEND VRPN_LIBRARIES ${VRPN_PHANTOM_LIBRARY}) + + list(APPEND CMAKE_MODULE_PATH ${VRPN_INCLUDE_DIR}/cmake) + find_package(OpenHaptics) + list(APPEND VRPN_LIBRARIES ${OPENHAPTICS_LIBRARIES}) + list(APPEND VRPN_INCLUDE_DIRS ${OPENHAPTICS_INCLUDE_DIRS}) + list(REMOVE_ITEM CMAKE_MODULE_PATH ${VRPN_INCLUDE_DIR}/cmake) + + find_package(OpenGL) + list(APPEND VRPN_INCLUDE_DIRS ${OPENGL_INCLUDE_DIR}) + list(APPEND VRPN_LIBRARIES ${OPENGL_LIBRARY}) + +endif() + #----------------------------------------------------------------------------- # Find library #----------------------------------------------------------------------------- + find_library(VRPN_LIBRARY NAMES - vrpnserver - vrpnserverd + vrpn + vrpnd ) mark_as_advanced(VRPN_LIBRARY) list(APPEND VRPN_LIBRARIES ${VRPN_LIBRARY}) +find_library(VRPNSERVER_LIBRARY + NAMES + vrpnserver + vrpnserverd + ) +mark_as_advanced(VRPNSERVER_LIBRARY) +list(APPEND VRPN_LIBRARIES ${VRPNSERVER_LIBRARY}) + find_library(QUAT_LIBRARY NAMES quat @@ -109,26 +143,6 @@ endif() list(APPEND VRPN_LIBRARIES ${HIDAPI_LIBRARY}) mark_as_advanced(HIDAPI_LIBRARY) -#----------------------------------------------------------------------------- -# Phantom Omni support -#----------------------------------------------------------------------------- -if(${${PROJECT_NAME}_USE_OMNI}) - list(APPEND CMAKE_MODULE_PATH ${VRPN_INCLUDE_DIR}/cmake) - find_package(OpenHaptics) - list(REMOVE_ITEM CMAKE_MODULE_PATH ${VRPN_INCLUDE_DIR}/cmake) - find_library(VRPN_PHANTOM_LIBRARY - NAMES - vrpn_phantom - vrpn_phantomd - ) - mark_as_advanced(VRPN_PHANTOM_LIBRARY) - list(APPEND VRPN_LIBRARIES ${VRPN_PHANTOM_LIBRARY} ${OPENHAPTICS_LIBRARIES}) - list(APPEND VRPN_INCLUDE_DIRS ${OPENHAPTICS_INCLUDE_DIRS}) -endif() - -message(STATUS "OPENHAPTICS_LIBRARIES : ${OPENHAPTICS_LIBRARIES}") -message(STATUS "OPENHAPTICS_INCLUDE_DIRS : ${OPENHAPTICS_INCLUDE_DIRS}") - #----------------------------------------------------------------------------- # Find package #----------------------------------------------------------------------------- diff --git a/iMSTKConfig.cmake.in b/iMSTKConfig.cmake.in index 334eb3225..672f190cf 100644 --- a/iMSTKConfig.cmake.in +++ b/iMSTKConfig.cmake.in @@ -36,7 +36,7 @@ include( ${VTK_USE_FILE} ) find_package( VRPN REQUIRED ) include_directories( ${VRPN_INCLUDE_DIRS} ) add_definitions( -DVRPN_USE_LIBNIFALCON ) -if(${PROJECT_NAME}_USE_OMNI) +if(iMSTK_USE_OMNI) add_definitions( -DiMSTK_USE_OPENHAPTICS ) add_definitions( -DVRPN_USE_PHANTOM_SERVER ) else() -- GitLab