]> git.mxchange.org Git - simgear.git/commitdiff
Revert "Use simgear internal stuff for the singleton class."
authorMathias Froehlich <Mathias.Froehlich@web.de>
Sat, 3 Mar 2012 17:21:49 +0000 (18:21 +0100)
committerMathias Froehlich <Mathias.Froehlich@web.de>
Sat, 3 Mar 2012 17:21:49 +0000 (18:21 +0100)
This reverts commit 80274596dfb0daf3564581e9e855f3debf483b12.

CMakeLists.txt
simgear/CMakeLists.txt
simgear/simgear_config_cmake.h.in
simgear/structure/Singleton.hxx

index 281b366f5c3a984bfb5c161622cf25d527061566..f1e985adbf15f4850ba2c9830d23cba50f8e2074 100644 (file)
@@ -115,6 +115,7 @@ find_package(Threads REQUIRED)
 
 if(SIMGEAR_HEADLESS)
     message(STATUS "headless mode")
+    set(NO_OPENSCENEGRAPH_INTERFACE 1)
 else()
     find_package(OpenGL REQUIRED)
     find_package(OpenAL REQUIRED)
index 7612bb8da3c69e8e5ae05478205e18ae7d567b34..954ed6f0deba36800338a4d9f37201a36f838bb2 100644 (file)
@@ -46,6 +46,7 @@ if(SIMGEAR_SHARED)
     get_property(publicHeaders GLOBAL PROPERTY PUBLIC_HEADERS)
 
     add_library(SimGearCore SHARED ${coreSources})
+    set_property(TARGET SimGearCore PROPERTY COMPILE_FLAGS "-DNO_OPENSCENEGRAPH_INTERFACE=1")
 
   # set_property(TARGET SimGearCore PROPERTY FRAMEWORK 1)
   #  message(STATUS "public header: ${publicHeaders}")
index 563f9f7355416c0387883bbd6a6a3734a0c55e5b..a1192283281103dd0525e9338a46b9f73aa8181f 100644 (file)
@@ -17,3 +17,6 @@
 #cmakedefine HAVE_LIBSVN_CLIENT_1
 
 #cmakedefine GCC_ATOMIC_BUILTINS_FOUND
+
+// set if building headless (no OSG or OpenGL libs)
+#cmakedefine NO_OPENSCENEGRAPH_INTERFACE
index dda5f78ccb96773db6d38932a49a91e353f90f15..35c712a28f66c0194f4fec8b8f3c9e26bb1001c2 100644 (file)
@@ -3,8 +3,10 @@
 
 #include "singleton.hpp"
 
-#include "SGReferenced.hxx"
-#include "SGSharedPtr.hxx"
+#ifndef NO_OPENSCENEGRAPH_INTERFACE
+#include <osg/Referenced>
+#include <osg/ref_ptr>
+#endif
 
 namespace simgear
 {
@@ -27,6 +29,7 @@ public:
     }
 };
 
+#ifndef NO_OPENSCENEGRAPH_INTERFACE
 template <typename RefClass>
 class SingletonRefPtr
 {
@@ -42,11 +45,11 @@ public:
         return singleton.ptr.get();
     }
 private:
-    SGSharedPtr<RefClass> ptr;
+    osg::ref_ptr<RefClass> ptr;
 };
 
 template <typename RefClass>
-class ReferencedSingleton : public virtual SGReferenced
+class ReferencedSingleton : public virtual osg::Referenced
 {
 public:
     static RefClass* instance()
@@ -54,6 +57,7 @@ public:
         return SingletonRefPtr<RefClass>::instance();
     }
 };
+#endif // of NO_OPENSCENEGRAPH_INTERFACE
 
 }
 #endif