--- vrpn-07.34/CMakeLists.txt.orig	2018-08-08 21:24:13.993245200 +0300
+++ vrpn-07.34/CMakeLists.txt	2018-08-08 21:28:26.415682900 +0300
@@ -1276,9 +1276,12 @@
 set(VRPN_CLIENT_LIBRARY)
 
 if(VRPN_BUILD_SERVER_LIBRARY)
-	add_library(vrpnserver
-		${VRPN_SERVER_SOURCES}
-		${VRPN_SERVER_PUBLIC_HEADERS})
+	if(VRPN_USE_SHARED_LIBRARY)
+		add_library(vrpnserver SHARED ${VRPN_SERVER_SOURCES} ${VRPN_SERVER_PUBLIC_HEADERS})
+		set_target_properties(vrpnserver PROPERTIES COMPILE_DEFINITIONS VRPNDLL_EXPORTS=1)
+	else()
+		add_library(vrpnserver STATIC ${VRPN_SERVER_SOURCES} ${VRPN_SERVER_PUBLIC_HEADERS})
+	endif()
 	target_link_libraries(vrpnserver ${EXTRA_LIBS} ${SERVER_EXTRA_LIBS})
 	set(VRPN_CLIENT_LIBRARY vrpnserver)
 	set(VRPN_SERVER_LIBRARY vrpnserver)
@@ -1329,7 +1329,12 @@
 
 
 if(VRPN_BUILD_CLIENT_LIBRARY)
-	add_library(vrpn ${VRPN_CLIENT_SOURCES} ${VRPN_CLIENT_PUBLIC_HEADERS})
+	if(VRPN_USE_SHARED_LIBRARY)
+		add_library(vrpn SHARED ${VRPN_CLIENT_SOURCES} ${VRPN_CLIENT_PUBLIC_HEADERS})
+		set_target_properties(vrpn PROPERTIES COMPILE_DEFINITIONS VRPNDLL_EXPORTS=1)
+	else()
+		add_library(vrpn STATIC ${VRPN_CLIENT_SOURCES} ${VRPN_CLIENT_PUBLIC_HEADERS})
+	endif()
 	target_link_libraries(vrpn ${EXTRA_LIBS})
 	set(VRPN_CLIENT_LIBRARY vrpn)
 
@@ -1355,7 +1355,7 @@
 	if(NOT VRPN_CLIENT_ONLY)
 		set_property(TARGET
 			vrpn
-			PROPERTY
+			APPEND PROPERTY
 			COMPILE_DEFINITIONS
 			"VRPN_CLIENT_ONLY")
 	endif()
--- vrpn-07.34/server_src/vrpn_Generic_server_object.h.orig	2018-08-08 22:17:32.507189700 +0300
+++ vrpn-07.34/server_src/vrpn_Generic_server_object.h	2018-08-08 22:17:41.111681900 +0300
@@ -15,7 +15,7 @@
 class VRPN_API vrpn_IMU_Axis_Params;
 class VRPN_API vrpn_PA_axis;
 
-class vrpn_Generic_Server_Object {
+class VRPN_API vrpn_Generic_Server_Object {
 public:
     vrpn_Generic_Server_Object(vrpn_Connection *connection_to_use,
                                const char *config_file_name = "vrpn.cfg",
--- vrpn-07.34/vrpn_Shared.h.orig	2018-08-08 22:19:46.728866800 +0300
+++ vrpn-07.34/vrpn_Shared.h	2018-08-08 22:20:14.867476200 +0300
@@ -499,5 +499,5 @@
 }
 
 // Returns true if tests work and false if they do not.
-extern bool vrpn_test_pack_unpack(void);
+VRPN_API bool vrpn_test_pack_unpack(void);
 
--- vrpn-07.34/vrpn_Thread.h.orig	2018-08-08 22:14:22.346313100 +0300
+++ vrpn-07.34/vrpn_Thread.h	2018-08-08 22:14:31.190819000 +0300
@@ -237,7 +237,7 @@
 };
 
 // Returns true if they work and false if they do not.
-extern bool vrpn_test_threads_and_semaphores(void);
+VRPN_API bool vrpn_test_threads_and_semaphores(void);
 
 
 
