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