diff --git a/src/osg/Notify.cpp b/src/osg/Notify.cpp index 7351f7527..522b3db53 100644 --- a/src/osg/Notify.cpp +++ b/src/osg/Notify.cpp @@ -93,10 +93,22 @@ class NullStreamBuffer : public std::streambuf } }; +struct NullStream : public std::ostream +{ + NullStream(): + std::ostream(new NullStreamBuffer) {} + + virtual ~NullStream() + { + delete rdbuf(); + rdbuf(0); + } +}; + std::ostream& osg::notify(const osg::NotifySeverity severity) { // set up global notify null stream for inline notify - static std::ostream s_NotifyNulStream(new NullStreamBuffer()); + static NullStream s_NotifyNulStream; static bool initialized = false; if (!initialized) diff --git a/src/osgViewer/CMakeLists.txt b/src/osgViewer/CMakeLists.txt index 14dda55b3..ef82fdc04 100644 --- a/src/osgViewer/CMakeLists.txt +++ b/src/osgViewer/CMakeLists.txt @@ -35,6 +35,7 @@ SET(LIB_COMMON_FILES ViewerEventHandlers.cpp ) +SET(LIB_EXTRA_LIBS) IF(WIN32) @@ -89,9 +90,26 @@ ELSE(WIN32) PKG_CHECK_MODULES(XRANDR REQUIRED xrandr) ADD_DEFINITIONS(-DOSGVIEWER_USE_XRANDR) SET(LIB_PUBLIC_HEADERS ${LIB_PUBLIC_HEADERS} ${XRANDR_INCLUDE_DIRS}) - LINK_LIBRARIES(Xrandr) + LINK_LIBRARIES(Xrandr) ENDIF(OSGVIEWER_USE_XRANDR) + # X11 on Apple requires X11 library plus OpenGL linking hack on Leopard + IF(APPLE) + # Find GL/glx.h + IF(EXISTS ${CMAKE_OSX_SYSROOT}/usr/X11/include/GL/glx.h) + SET(OPENGL_INCLUDE_DIR /usr/X11/include) + SET(OPENGL_LIBRARIES /usr/X11/lib/libGL.dylib) + ELSEIF(EXISTS ${CMAKE_OSX_SYSROOT}/usr/X11R6/include/GL/glx.h) + SET(OPENGL_INCLUDE_DIR /usr/X11R6/include) + SET(OPENGL_LIBRARIES /usr/X11R6/lib/libGL.dylib) + ENDIF(EXISTS ${CMAKE_OSX_SYSROOT}/usr/X11/include/GL/glx.h) + INCLUDE_DIRECTORIES(BEFORE SYSTEM ${OPENGL_INCLUDE_DIR}) + + SET(LIB_EXTRA_LIBS ${X11_X11_LIB} ${OPENGL_LIBRARIES} ${LIB_EXTRA_LIBS}) + SET(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,-dylib_file,/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:${CMAKE_OSX_SYSROOT}/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib") + ENDIF(APPLE) + + ENDIF(${OSG_WINDOWING_SYSTEM} STREQUAL "Carbon") ENDIF(WIN32) @@ -112,6 +130,7 @@ LINK_INTERNAL(${LIB_NAME} osgUtil osg OpenThreads + ${LIB_EXTRA_LIBS} ) LINK_CORELIB_DEFAULT(${LIB_NAME})