vrpn
07.33
Virtual Reality Peripheral Network
vrpn_Configure.h
Go to the documentation of this file.
1
// -*- c++ -*-
2
3
#ifndef VRPN_USING_CMAKE
4
// Only using this configuration file if not using CMake.
5
// An #else follows at the bottom of the file.
6
7
#ifndef VRPN_CONFIGURE_H
8
9
//--------------------------------------------------------------
10
/* IMPORTANT NOTE: If you are using CMake to build VRPN, this
11
file DOES NOT affect your build. vrpn_Configure.h.cmake_in
12
is processed automatically into a vrpn_Configure.h file
13
placed in your build directory using the choices you make in
14
CMake. Until all modules are fully configured using CMake,
15
you may have to edit the paths that are listed near the
16
bottom of the first section of that file, then re-run CMake
17
to regenerate vrpn_Configure.h. */
18
//--------------------------------------------------------------
19
20
//--------------------------------------------------------------
21
/* This file contains configuration options for VRPN. The first
22
section has definition lines that can be commented in or out
23
at build time. The second session has automaticly-generated
24
directives and should not be edited. */
25
//--------------------------------------------------------------
26
27
//--------------------------------------------------------//
28
// EDIT BELOW THIS LINE FOR NORMAL CONFIGURATION SETTING. //
29
//--------------------------------------------------------//
30
31
//-----------------------
32
// Default port to listen on for a server. It used to be 4500
33
// up through version 6.03, but then all sorts of VPNs started
34
// using this, as did Microsoft. Port 3883 was assigned to VRPN
35
// by the Internet Assigned Numbers Authority (IANA) October, 2003.
36
// Change this to make a location-specific default if you like.
37
// The parentheses are to keep it from being expanded into something
38
// unexpected if the code has a dot after it.
39
#define vrpn_DEFAULT_LISTEN_PORT_NO (3883)
40
41
//-----------------------
42
// Use compile-time static asserts.
43
// Should be reasonably portable, but off by default because they
44
// haven't been tested for extreme portability.
45
//#define VRPN_USE_STATIC_ASSERTIONS
46
47
//-----------------------
48
// Use Winsock2 library rather than Winsock.
49
//#define VRPN_USE_WINSOCK2
50
51
//-----------------------
52
// Instructs VRPN to expose the vrpn_gettimeofday() function also
53
// as gettimeofday() so that external programs can use it. This
54
// has no effect on any system that already has gettimeofday()
55
// defined, and is put here for Windows. This function should
56
// not really be implemented within VRPN, but it was expedient to
57
// include it when porting applications to Windows. Turn this
58
// off if you have another implementation, or if you want to call
59
// vrpn_gettimeofday() directly.
60
#define VRPN_EXPORT_GETTIMEOFDAY
61
62
//-----------------------
63
// Tells VRPN to compile with support for the Message-Passing
64
// Interface (MPI) library. There is a configuration section below
65
// that has a library path for the MPI library to link against.
66
// You will need to add the path to mpi.h and other needed files
67
// into your Visual Studio Tools/Options/Projects and Solutions/
68
// C++ Directories include path. The original implementation is
69
// done with MPICH2, but an attempt has been made to use only
70
// MPI version 1 basic functions.
71
//#define VRPN_USE_MPI
72
73
//-----------------------
74
// Tells VRPN to compile with support for the Modbus
75
// library. There is a configuration section below
76
// that has a library path for the Modbus library to link against.
77
// You will need to add the path to modbus.h and other needed files
78
// into your Visual Studio Tools/Options/Projects and Solutions/
79
// C++ Directories include path.
80
//#define VRPN_USE_MODBUS
81
82
//-----------------------
83
// Instructs VRPN to use phantom library to construct a unified
84
// server, using phantom as a common device, and phantom
85
// configuration in .cfg file. This will not build (at least
86
// on Visual Studio 2008) with the 3.1 version of OpenHaptics.
87
// There will be problems with #include and library directories,
88
// and then a failure to link due to undefined symbol. Use CMAKE
89
// if you want to compile with a Phantom -- that version works
90
// on VS2008 and 3.1 at least.
91
//#define VRPN_USE_PHANTOM_SERVER
92
93
//------------------------
94
// Instructs vrpn to use SensAble's HDAPI rather than GHOST library.
95
// Only used in conjuntion with VRPN_USE_PHANTOM_SERVER.
96
// PLEASE SPECIFY PATH TO HDAPI IN NEXT SECTION IF YOU USE THIS.
97
// Also, you need to go to the vrpn_phantom and vrpn_server projects
98
// and remove the GHOST include directories from the include paths.
99
// Yes, HDAPI fails if it even has them in the path (as so many other
100
// things also fail). At least we're rid of them now. When you
101
// uncomment it (to use GHOST), add the following to the include
102
// directories for the vrpn_phantom project: $(SYSTEMDRIVE)\Program
103
// Files\SensAble\GHOST\v4.0\include,$(SYSTEMDRIVE)\Program
104
// Files\SensAble\GHOST\v4.0\external\stl,
105
// On SGI, you need to uncomment the GHOST lines in the Makefile in
106
// the server_src directory.
107
#define VRPN_USE_HDAPI
108
109
//------------------------
110
// Instructs vrpn to use Ghost 3.1 instead of Ghost 3.4.
111
// Only used in conjuntion with VRPN_USE_PHANTOM_SERVER.
112
// PLEASE SPECIFY PATH TO GHOSTLIB IN NEXT SECTION IF YOU USE THIS
113
// (This is expected to be used on systems where Ghost 4.0 is not
114
// available, such as the SGI platform. If you are using this on
115
// a Windows PC with Visual Studio, you will need to alter
116
// server_src/vrpn_phantom.dsp to reference the Ghost 3.1 include
117
// paths.)
118
//#define VRPN_USE_GHOST_31
119
120
//-----------------------
121
// Instructs VRPN to use the high-performance timer code on
122
// Windows, rather than the default clock which has an infrequent
123
// update. At one point in the past, an implementation of this
124
// would only work correctly on some flavors of Windows and with
125
// some types of CPUs.
126
// There are actually two implementations of the faster windows clock. The
127
// original one, made by Hans Weber, checks the clock rate to see how fast the
128
// performance clock runs (it takes a second to do this when the program first
129
// calls vrpn_gettimeofday()). The second version by Haris Fretzagias relies on
130
// the timing supplied by Windows. To use the second version, also define
131
// VRPN_WINDOWS_CLOCK_V2.
132
#define VRPN_UNSAFE_WINDOWS_CLOCK
133
#define VRPN_WINDOWS_CLOCK_V2
134
135
//-----------------------
136
// Instructs VRPN library and server to include code that uses
137
// the DirectX SDK. If you set this, you may to edit the
138
// system configuration section below to point at the correct version
139
// of DirectX. WARNING: With the August 2006 DirectX SDK, you
140
// cannot link against the debug library in Visual Studio 6.0,
141
// only the release. Hopefully, Visual Studio.NET doesn't have
142
// this problem.
143
// IMPORTANT! If you define this, you need to edit the Tools/Options
144
// menu:
145
// For Visual studio 6, use the Directories tab, and add the
146
// include and lib paths to the TOP of the lists for all configurations.
147
// For Visual studio .NET, add to the top of the Projects and Solutions/
148
// VC++ Directories entry.
149
// This will let the code find the right version when it compiles.
150
//#define VRPN_USE_DIRECTINPUT
151
//#define VRPN_USE_WINDOWS_XINPUT
152
153
// The DirectInput-based zSight tracker requires ATL for smart pointers,
154
// which sadly isn't everywhere (VC Express, MXE cross compiling, ...).
155
//#define VRPN_HAVE_ATLBASE
156
157
//-----------------------
158
// Instructs VRPN library and server to include code that uses
159
// the DirectShow SDK. If you set this, you may to edit the
160
// system configuration section below to point at the correct version
161
// of the Platform SDK. WARNING: With the August 2006 DirectX SDK, you
162
// cannot link against the debug library in Visual Studio 6.0,
163
// only the release. Visual Studio.NET doesn't have this problem.
164
//#define VRPN_USE_DIRECTSHOW
165
166
//-----------------------
167
// Instructs the VRPN server to create an entry for the Adrienne
168
// time-code generator. This is a device that produces time values
169
// from an analog video stream so that events in the virtual world
170
// can be synchronized with events on a movie. The Adrienne folder
171
// should be located at the same level as the VRPN folder for the
172
// code to find it.
173
//#define VRPN_INCLUDE_TIMECODE_SERVER
174
175
//-----------------------
176
// Compiles the InterSense Tracker using the
177
// InterSense Interface Libraries SDK (tested for version
178
// 3.45) on windows. This should work with all Intersense trackers,
179
// both the USB and the serial port versions. The files isense.h,
180
// types.h and isense.c should be put in a directory called 'isense'
181
// at the same level as the vrpn directory. The isense.dll should
182
// be put either in Windows/system32 or in the location where the
183
// executable lives or somewhere on the path.
184
//#define VRPN_INCLUDE_INTERSENSE
185
186
//-----------------------
187
// Instructs VRPN library and server to include code that uses
188
// the National Instruments Nidaq library to control analog outputs.
189
// Later in this file, we also instruct the compiler to link with
190
// the National Instruments libraries if this is defined. Either or
191
// both of these can be defined, depending on which library you
192
// need to use.
193
//#define VRPN_USE_NATIONAL_INSTRUMENTS
194
//#define VRPN_USE_NATIONAL_INSTRUMENTS_MX
195
196
//-----------------------
197
// Instructs VRPN library and server to include code that uses
198
// the US Digital SEI/A2 library to control analog inputs from the
199
// A2 absolute encoder.
200
// Later in this file, we also instruct the compiler to link with
201
// the US Digital library if this is defined. You also need to
202
// define VRPN_USE_NATIONAL_INSTRUMENTS_MX above if you want to
203
// use this.
204
//#define VRPN_USE_USDIGITAL
205
206
//-----------------------
207
// Instructs VRPN to use the default room space transforms for
208
// the Desktop Phantom as used in the nanoManipulator application
209
// rather than the default world-origin with identity rotation.
210
// Please don't anyone new use the room space transforms built
211
// into VRPN -- they are a hack pulled forward from Trackerlib.
212
#define DESKTOP_PHANTOM_DEFAULTS
213
214
//------------------------
215
// Instructs VRPN to use microscribe3D library to construct a unified
216
// server
217
//#define VRPN_USE_MICROSCRIBE
218
219
//------------------------
220
// Compiles the VRPN library with the PhaseSpace Tracker using the
221
// PhaseSpace OWL API on Linux and Windows.
222
//
223
// In Linux:
224
// The PhaseSpace header files (owl.h, etc) and libraries (libowlsock)
225
// should be placed in the phasespace directory at the same level as
226
// the vrpn folder. Also, PHASESPACE needs to be uncommented in the
227
// server_src/Makefile so that the libraries are properly linked.
228
// libowlsock.so will need to be present in the directory of the
229
// final executable or in the default library path such as /usr/lib
230
//
231
// In Windows:
232
// The PhaseSpace header files (owl.h, etc) should be placed in the
233
// phasespace directory at the same level as the vrpn folder.
234
// libowlsock.lib will need to be located there as well.
235
// libowlsock.dll will need to be in the path or with the executable
236
// at run time. Edit the path below to say where the .lib file
237
// can be found.
238
//
239
//#define VRPN_INCLUDE_PHASESPACE
240
241
//-----------------------
242
// Instructs VRPN to use a DLL interface on Windows systems.
243
// When using this, link with VRPNDLL.LIB (and VRPN.DLL) rather
244
// than VRPN.LIB in user code. This is experimental and is
245
// under development to enable C# and other languages to pull in
246
// VRPN. This is only needed when trying to link VRPN with
247
// languages other than C++ (and not even for Java). If you don't
248
// have a good reason to, don't define it.
249
// Not implemented for .so-based Unix systems.
250
//#define VRPN_USE_SHARED_LIBRARY
251
252
//------------------------
253
// Instructs VRPN to use GPM Linux interface mouse interface.
254
// WARNING: If you define this, then you must also edit the server_src
255
// Makefile to include "-lgpm" into the SYSLIBS definition line for the
256
// architecture you use this on. We had to change this because not all
257
// Linux releases included this library.
258
//#define VRPN_USE_GPM_MOUSE
259
260
//------------------------
261
// Instructs VRPN to use the Motion C API library to interface VRPN to
262
// the their MotionNode tracker. Requires the shared library at run-time
263
// to function. No external dependencies to build.
264
//#define VRPN_USE_MOTIONNODE
265
266
//------------------------
267
// Instructs VRPN to compile code for the Nintendo Wii Remote controller,
268
// getting access to it through the Wiiuse library in Windows and Linux.
269
// Note that this requires installing a bunch of other stuff, and that some
270
// bluetooth stacks cause people trouble. See the README file in the WiiUse
271
// library for more info. Also note that the
272
// WiiUse library is GPL, which is more restrictive than the VRPN public-
273
// domain license, so check out its license file before building this driver
274
// into your code. The original WiiUse library was abandoned and a new
275
// fork by Ryan Pavlik is available at https://github.com/rpavlik/wiiuse.
276
// To get the WiiUse library to compile on Visual Studio 2005 (apparently
277
// not for VS 2008), you need to add the include path
278
// to the driver developer kit (C:\WINDDK\3790.1830\inc\wxp) and the
279
// library path to hid.lib (C:\WINDDK\3790.1830\lib\wxp\i386) to the
280
// include and library directories in Visual Studio.
281
// Also, edit the configuration below to point to the WiiUse include
282
// file and library.
283
// Note that the wiiuse.dll needs to be in the path when running a server
284
// that uses WiiUse in Windows.
285
//#define VRPN_USE_WIIUSE
286
287
// Instructs VRPN to compile code to handle Hillcrest Labs' Freespace
288
// devices such as the Loop, and FRCM. You will also need the libfreespace
289
// library which is available at
290
// http://libfreespace.hillcrestlabs.com/content/download.
291
// There are prebuilt binaries for Windows, and source available that should
292
// work on Windows, Linux or OS X. You will need to make sure the header files
293
// and library are accessible to the compiler. libfreespace is released under
294
// the LGPL and we (Hillcrest Labs) view static and dynamic linking as the same.
295
// We (Hillcrest Labs) do not require code linked to libfreespace (statically or
296
// dynamically) to be released under any particular license.
297
//#define VRPN_USE_FREESPACE
298
299
//------------------------
300
// Instructs VRPN to include code for the Novint Falcon haptic device.
301
// Access is provided through the libnifalcon library library on Windows,
302
// MacOSX and Linux. This may require additional libraries for programming
303
// USB devices. Please consult the corresponding homepages.
304
//#define VRPN_USE_LIBNIFALCON
305
306
//------------------------
307
// Instructs VRPN to compile code to use Trivisio's Colibri inertial
308
// tracker. You will also need the SDK, which is available at
309
// http://www.trivisio.com/products/motiontracking/colibri#download
310
// (tested on Windows). VRPN_TRIVISIOCOLIBRI_H and
311
// VRPN_TRIVISIOCOLIBRI_LIB_PATH
312
// below point to the default installation locations on Windows. Edit them
313
// if installed elsewhere. Note that Trivisio.dll and pthreadVC2.dll need to be
314
// in
315
// the path when running the server on Windows
316
//#define VRPN_USE_TRIVISIOCOLIBRI
317
318
//------------------------
319
// Instructs VRPN to attempt to use HID. If you don't have libusb installed
320
// on Linux, you'll want to turn this off so that it doesn't fail to compile.
321
// This should work fine on Windows, so we define it by default there.
322
// For the Mac, let CMake configure this; the built-in Makefile doesn't know
323
// how to compile with local HIDAPI, which we now need.
324
// For Linux, you need to have HIDAPI (either local or otherwise) for this
325
// to work, so this definition is not in by default there.
326
#if defined(_WIN32)
327
#if !defined(__MINGW__)
328
#define VRPN_USE_HID
329
#endif
330
#endif
331
332
//------------------------
333
// Instructs VRPN to link in the source code to a local version of
334
// hidapi to access HID devices. The source code for this project
335
// is included as a git submodule under submodule/hidapi. To pull
336
// this down if it is not present, use the commands:
337
// 'git submodule init; git submodule update' from the vrpn directory.
338
// If you have a system hidapi and you prefer to use it, then do not
339
// define this here. Otherwise, define it so that VRPN will be able
340
// to access HID devices.
341
// Note that on Linux you will also need to have the libusb-1.0-0-dev
342
// package installed so that we can compile the code. You
343
// will also need to uncommment the SYSLIBS line for HID in the
344
// server_src/Makefile for this to link.
345
// On the Mac, this needs to be configured via CMake; the standard
346
// Makefile doesn't know how to handle HIDAPI.
347
#if !defined(__MINGW__) && !defined(__APPLE__)
348
#define VRPN_USE_LOCAL_HIDAPI
349
#endif
350
351
//------------------------
352
// Instructs VRPN to attempt to use LibUSB-1.0. This will compile and
353
// link servers that use USB directly (as opposed to those that use it
354
// through the HID interface).
355
// See http://libusb.sourceforge.net for more on LibUSB-1.0.
356
// Note that on Linux you will also need to have the libusb-1.0-0-dev
357
// package installed so that we can compile the code. You
358
// will also need to uncommment the SYSLIBS line for HID in the
359
// server_src/Makefile for this to link.
360
// Note that to compile on Windows you will need to have downloaded and
361
// installed
362
// the libusb.h file and libusb-1.0.lib files; the default location for
363
// the library is C:Program Files\libusb-1.0 and for the include file
364
// is in C:Program Files\libusb-1.0\libusb. To open a device on Windows, you
365
// will need to have installed a driver that lets LibUSB open the
366
// device. Generic HID devices and devices that use a WinUSB driver
367
// should work without adding a driver. If you need to add a driver,
368
// consider using the libUSB Zadig.exe program; do not do this for a
369
// HID device or a device that has another driver, as it can prevent the
370
// device from operating except through LibUSB.
371
// Note that on Linux you will also need to have the libusb-1.0-0-dev
372
// package installed so that we can compile the code.
373
//#define VRPN_USE_LIBUSB_1_0
374
375
// Instructs VRPN to compile code to handle JSON network messages.
376
// This requires jsoncpp.
377
// JSON Network (UDP) mesages are used by the vrpn widgets for Android,
378
//#define VRPN_USE_JSONNET
379
380
//------------------------
381
// Instructs VRPN to compile code to use the Arrington Research
382
// ViewPoint EyeTracker. You will also need to set VRPN_VIEWPOINT_H
383
// and VRPN_VIEWPOINT_LIB_PATH below to point to the correct location
384
// on your system. Note that the VRPN server and ViewPoint calibration
385
// software must use the same copy of the VPX_InterApp.dll
386
//#define VRPN_USE_VIEWPOINT
387
388
//------------------------
389
// Use DevInput devices.
390
#if defined(linux) && !defined(__APPLE__)
391
#define VRPN_USE_DEV_INPUT
392
#endif
393
394
//-------------------------
395
// Use Linux kernel joystick support:
396
// note that using this kernel header
397
// makes the GPL apply to the server!
398
#if defined(linux)
399
#define VRPN_USE_JOYLIN
400
#endif
401
402
//------------------------
403
// Instructs VRPN to compile code to use the Polhemus Developer
404
// (PDI) library to enable opening several of their trackers using
405
// this interface (the G4 was the original one this was written
406
// for, but new versions are available for the Fastrak and Liberty).
407
//#define VRPN_USE_PDI
408
409
//------------------------------------------------------------------//
410
// SYSTEM CONFIGURATION SECTION //
411
// EDIT THESE DEFINITIONS TO POINT TO OPTIONAL LIBRARIES. THEY ARE //
412
// USED BELOW TO LOCATE LIBRARIES AND INCLUDE FILES. //
413
//------------------------------------------------------------------//
414
415
#define VRPN_SYSTEMDRIVE "C:"
416
417
#define VRPN_PHASESPACE_LIB_PATH "../../phasespace/"
418
419
#define VRPN_WIIUSE_H "E:/borland/lib/wiiuse_v0.12_win/wiiuse.h"
420
#define VRPN_WIIUSE_LIB_PATH "E:/borland/lib/wiiuse_v0.12_win"
421
422
#if defined(VRPNDLL_EXPORTS) && !defined(VRPN_USE_SHARED_LIBRARY)
423
#define VRPN_FREESPACE_LIB_PATH "../libfreespace/lib"
424
#else
425
#define VRPN_FREESPACE_LIB_PATH "../../libfreespace/lib"
426
#endif
427
428
#define VRPN_TRIVISIOCOLIBRI_H \
429
"C:/Program Files/Trivisio/Colibri/include/TrivisioColibri.h"
430
#define VRPN_TRIVISIOCOLIBRI_LIB_PATH "C:/Program Files/Trivisio/Colibri/lib/"
431
432
#define VRPN_VIEWPOINT_H "E:/borland/lib/ViewPoint 2.8.6.21/SDK/vpx.h"
433
#define VRPN_VIEWPOINT_LIB_PATH "E:/borland/lib/ViewPoint 2.8.6.21/SDK/"
434
435
#ifdef linux
436
#define VRPN_HDAPI_PATH "/usr/lib64"
437
#else
438
#define VRPN_HDAPI_PATH VRPN_SYSTEMDRIVE "/Program Files/SensAble/3DTouch/lib/"
439
#endif
440
#define VRPN_HDAPI_UTIL_PATH \
441
VRPN_SYSTEMDRIVE "/Program Files/SensAble/3DTouch/utilities/lib/"
442
#define VRPN_GHOST_31_PATH \
443
VRPN_SYSTEMDRIVE "/Program Files/SensAble/GHOST/v3.1/lib/"
444
#define VRPN_GHOST_40_PATH \
445
VRPN_SYSTEMDRIVE "/Program Files/SensAble/GHOST/v4.0/lib/"
446
447
#define VRPN_NIDAQ_PATH \
448
VRPN_SYSTEMDRIVE "/Program Files/National Instruments/NI-DAQ/Lib/"
449
#define VRPN_NIDAQ_MX_PATH \
450
VRPN_SYSTEMDRIVE "/Program Files/National Instruments/NI-DAQ/DAQmx ANSI " \
451
"C Dev/lib/msvc/"
452
#define VRPN_USDIGITAL_PATH VRPN_SYSTEMDRIVE "/Program Files/SEI Explorer/"
453
454
#ifdef VRPN_USE_MPI
455
#pragma comment(lib, VRPN_SYSTEMDRIVE "/Program Files/MPICH2/lib/mpi.lib")
456
#endif
457
458
#ifdef VRPN_USE_MODBUS
459
#ifdef _DEBUG
460
#pragma comment(lib, VRPN_SYSTEMDRIVE \
461
"/Program Files/usr/local/lib/libmodbusd.lib")
462
#else
463
#pragma comment(lib, \
464
VRPN_SYSTEMDRIVE "/Program Files/usr/local/lib/libmodbus.lib")
465
#endif
466
#endif
467
468
// Load Adrienne libraries if we are using the timecode generator.
469
// If this doesn't match where you have installed these libraries,
470
// edit the following lines to point at the correct libraries. Do
471
// this here rather than in the project settings so that it can be
472
// turned on and off using the definition above.
473
#ifdef VRPN_INCLUDE_TIMECODE_SERVER
474
#pragma comment(lib, "../../Adrienne/AEC_DLL/AEC_NTTC.lib")
475
#endif
476
477
#ifdef VRPN_USE_LIBUSB_1_0
478
#define VRPN_LIBUSB_PATH VRPN_SYSTEMDRIVE "/Program Files/libusb-1.0/"
479
#endif
480
481
//---------------------------------------------------------------//
482
// DO NOT EDIT BELOW THIS LINE FOR NORMAL CONFIGURATION SETTING. //
483
//---------------------------------------------------------------//
484
485
// Use this macro in a file if it might be empty (compiling out completely)
486
// to squash Visual Studio warning LNK4221.
487
// Inspiration from
488
// http://stackoverflow.com/questions/1822887/what-is-the-best-way-to-eliminate-ms-visual-c-linker-warning-warning-lnk422
489
#ifdef _MSC_VER
490
#define VRPN_SUPPRESS_EMPTY_OBJECT_WARNING() \
491
namespace { \
492
char vrpn_SuppressEmptyObjectDummy##__LINE__; \
493
}
494
#else
495
#define VRPN_SUPPRESS_EMPTY_OBJECT_WARNING()
496
#endif
497
498
// DirectInput include file and libraries.
499
// Load DirectX SDK libraries and tell which version we need if we are using it.
500
#ifdef VRPN_USE_DIRECTINPUT
501
#define DIRECTINPUT_VERSION 0x0800
502
#include <dinput.h>
503
#endif
504
505
// autolinking pragma only works/makes sense with MSVC
506
#ifdef _MSC_VER // [
507
508
// Load the library for WiiUse.
509
#ifdef VRPN_USE_WIIUSE
510
#ifdef _DEBUG
511
#pragma comment(lib, VRPN_WIIUSE_LIB_PATH "/msvc/Debug/wiiuse.lib")
512
#else
513
#pragma comment(lib, VRPN_WIIUSE_LIB_PATH "/msvc/Release/wiiuse.lib")
514
#endif
515
#endif
516
517
#ifdef VRPN_USE_FREESPACE
518
#ifdef _DEBUG
519
// #pragma comment(lib, VRPN_FREESPACE_LIB_PATH "/Debug/libfreespaced.lib")
520
#pragma comment(lib, VRPN_FREESPACE_LIB_PATH "/Release/libfreespace.lib")
521
#else
522
#pragma comment(lib, VRPN_FREESPACE_LIB_PATH "/Release/libfreespace.lib")
523
#endif
524
#endif
525
526
// Load VRPN Phantom library if we are using phantom server as unified server
527
// Load SensAble Technologies GHOST library to run the Phantom
528
// NOTE: The paths to these libraries are set in the Settings/Link tab of
529
// the various project files. The paths to the include files are in the
530
// Settings/C++/preprocessor tab.
531
#ifdef VRPN_USE_PHANTOM_SERVER
532
#ifdef VRPN_USE_HDAPI
533
#pragma comment(lib, VRPN_HDAPI_PATH "hd.lib")
534
#ifdef _DEBUG
535
#pragma comment(lib, VRPN_HDAPI_UTIL_PATH "hdud.lib")
536
#else
537
#pragma comment(lib, VRPN_HDAPI_UTIL_PATH "hdu.lib")
538
#endif
539
#pragma comment(lib, VRPN_HDAPI_PATH "hl.lib")
540
#else
541
#ifdef VRPN_USE_GHOST_31
542
#pragma comment(lib, VRPN_GHOST_31_PATH "GHOST31.lib")
543
#else
544
#pragma comment(lib, VRPN_GHOST_40_PATH "GHOST40.lib")
545
#endif
546
#endif
547
#endif
548
549
#ifdef VRPN_USE_DIRECTINPUT
550
#pragma comment(lib, "dxguid.lib")
551
// Newer versions of the SDK have renamed this dxerr.lib;
552
// dxerr9.lib has also been said to work.
553
#pragma comment(lib, "dxerr.lib")
554
#pragma comment(lib, "dinput8.lib")
555
#endif
556
557
// Load National Instruments libraries if we are using them.
558
// If this doesn't match where you have installed these libraries,
559
// edit the following lines to point at the correct libraries. Do
560
// this here rather than in the project settings so that it can be
561
// turned on and off using the definition above.
562
// NOTE: The paths to these libraries are set in the Settings/Link tab of
563
// the various project files. The paths to the include files are in the
564
// Settings/C++/preprocessor tab.
565
#ifdef VRPN_USE_NATIONAL_INSTRUMENTS
566
#pragma comment(lib, VRPN_NIDAQ_PATH "nidaq32.lib")
567
#pragma comment(lib, VRPN_NIDAQ_PATH "nidex32.lib")
568
#endif
569
#ifdef VRPN_USE_NATIONAL_INSTRUMENTS_MX
570
#pragma comment(lib, VRPN_NIDAQ_MX_PATH "NIDAQmx.lib")
571
#endif
572
573
// Load US Digital libraries if we are using them.
574
// If this doesn't match where you have installed these libraries,
575
// edit the following lines to point at the correct libraries. Do
576
// this here rather than in the project settings so that it can be
577
// turned on and off using the definition above.
578
// NOTE: The paths to these libraries are set in the Settings/Link tab of
579
// the various project files. The paths to the include files are in the
580
// Settings/C++/preprocessor tab.
581
#ifdef VRPN_USE_USDIGITAL
582
#pragma comment(lib, VRPN_USDIGITAL_PATH "SEIDrv32.lib")
583
#endif
584
585
// Load Microscribe-3D SDK libraries
586
// If this doesn't match where you have installed these libraries,
587
// edit the following lines to point at the correct libraries. Do
588
// this here rather than in the project settings so that it can be
589
// turned on and off using the definition above.
590
#ifdef VRPN_USE_MICROSCRIBE
591
#pragma comment(lib, "armdll32.lib")
592
#endif
593
594
// Load Trivisio Colibri library
595
#ifdef VRPN_USE_TRIVISIOCOLIBRI
596
#pragma comment(lib, VRPN_TRIVISIOCOLIBRI_LIB_PATH "Trivisio.lib")
597
#endif
598
599
// Load Arrington Research ViewPoint EyeTracker library
600
#ifdef VRPN_USE_VIEWPOINT
601
#pragma comment(lib, VRPN_VIEWPOINT_LIB_PATH "VPX_InterApp.lib")
602
#endif
603
604
#ifdef VRPN_USE_LIBUSB_1_0
605
#pragma comment(lib, VRPN_LIBUSB_PATH "libusb-1.0.lib")
606
#endif
607
608
#endif // ] _MSC_VER
609
610
// This will be defined in the VRPN (non-DLL) project and nothing else
611
// Overrides USE_SHARED_LIBRARY to get rid of "inconsistent DLL linkage"
612
// warnings.
613
#ifdef VRPNDLL_NOEXPORTS
614
#undef VRPN_USE_SHARED_LIBRARY
615
#endif
616
617
// This will be defined in the VRPN (DLL) project and nothing else
618
// Forces "USE_SHARED_LIBRARY independent of definition above so that the
619
// DLL will build
620
#if defined(VRPNDLL_EXPORTS) && !defined(VRPN_USE_SHARED_LIBRARY)
621
#define VRPN_USE_SHARED_LIBRARY
622
#endif
623
624
// For client code, make sure we add the proper library dependency to the linker
625
#ifdef _WIN32 // [
626
#ifdef _MSC_VER // [
627
#ifdef VRPN_USE_WINSOCK2
628
#pragma comment(lib, "ws2_32.lib") // VRPN requires the Windows Sockets library.
629
#else
630
#pragma comment(lib, \
631
"wsock32.lib") // VRPN requires the Windows Sockets library.
632
#endif
633
#endif // ] _MSC_VER
634
#ifdef VRPN_USE_SHARED_LIBRARY
635
#ifdef VRPNDLL_EXPORTS
636
#define VRPN_API __declspec(dllexport)
637
#else
638
#define VRPN_API __declspec(dllimport)
639
#endif
640
#else
641
#define VRPN_API
642
#endif
643
#define VRPN_CALLBACK __stdcall
644
#else // ] WIN32 [
645
// In the future, other architectures may need their own sections
646
#define VRPN_API
647
#define VRPN_CALLBACK
648
#endif // ] not WIN32
649
650
#define VRPN_CONFIGURE_H
651
#endif
652
653
#else // VRPN_USING_CMAKE
654
655
// When using CMake, we need to use the vrpn_Configure.h generated in the
656
// build directory instead.
657
658
//#pragma message "NOTE: File included \"vrpn_Configure.h\" from the source dir
659
// even though this is a CMake build!"
660
#ifndef VRPN_CONFIGURE_FORWARDING
661
#define VRPN_CONFIGURE_FORWARDING
662
#include VRPN_USING_CMAKE
663
#undef VRPN_CONFIGURE_FORWARDING
664
#else
665
#error \
666
"Build system error: non-CMake vrpn_Configure.h being repeatedly/recursively included"
667
#endif
668
#endif
vrpn_Configure.h
Generated by
1.8.18