Thanks Eric, changed merged and submitted to svn/trunk.
On Thu, Mar 26, 2009 at 3:50 PM, Eric Sokolowsky <[email protected]> wrote:
> libosgViewerd.so was not being built properly because it was being
> linked with system libraries using LINK_INTERNAL instead of
> LINK_EXTERNAL. This caused it to try to link with libXrandrd instead of
> libXrandr, which failed. Attached is the fixed CMakeLists.txt.
>
> -Eric
>
>
> # FIXME: For OS X, need flag for Framework or dylib
> IF(DYNAMIC_OPENSCENEGRAPH)
> ADD_DEFINITIONS(-DOSGVIEWER_LIBRARY)
> ELSE()
> ADD_DEFINITIONS(-DOSG_LIBRARY_STATIC)
> ENDIF()
>
> SET(LIB_NAME osgViewer)
>
> SET(HEADER_PATH ${OpenSceneGraph_SOURCE_DIR}/include/${LIB_NAME})
> SET(LIB_PUBLIC_HEADERS
> ${HEADER_PATH}/CompositeViewer
> ${HEADER_PATH}/Export
> ${HEADER_PATH}/GraphicsWindow
> ${HEADER_PATH}/Renderer
> ${HEADER_PATH}/Scene
> ${HEADER_PATH}/Version
> ${HEADER_PATH}/View
> ${HEADER_PATH}/Viewer
> ${HEADER_PATH}/ViewerBase
> ${HEADER_PATH}/ViewerEventHandlers
> )
>
> SET(LIB_COMMON_FILES
> CompositeViewer.cpp
> HelpHandler.cpp
> Renderer.cpp
> Scene.cpp
> ScreenCaptureHandler.cpp
> StatsHandler.cpp
> Version.cpp
> View.cpp
> Viewer.cpp
> ViewerBase.cpp
> ViewerEventHandlers.cpp
> ${OPENSCENEGRAPH_VERSIONINFO_RC}
> )
>
> SET(LIB_EXTRA_LIBS)
>
> IF(WIN32)
> #
> # Enable workaround for OpenGL driver issues when used in
> multithreaded/multiscreen with NVidia drivers on Windows XP
> # For example: osgviewer dumptruck.osg was showing total garbage (screen
> looked like shattered, splashed hedgehog)
> # There were also serious issues with render to texture cameras.
> # Workaround repeats makeCurrentContext call as it was found that this
> causes the problems to dissapear.
> #
> OPTION(OSG_MULTIMONITOR_MULTITHREAD_WIN32_NVIDIA_WORKAROUND "Set to ON
> if you have NVidia board and drivers earlier than 177.92 ver" OFF)
> MARK_AS_ADVANCED(OSG_MULTIMONITOR_MULTITHREAD_WIN32_NVIDIA_WORKAROUND)
> IF(OSG_MULTIMONITOR_MULTITHREAD_WIN32_NVIDIA_WORKAROUND)
>
> ADD_DEFINITIONS(-DOSG_MULTIMONITOR_MULTITHREAD_WIN32_NVIDIA_WORKAROUND)
> ENDIF()
>
> SET(LIB_PUBLIC_HEADERS ${LIB_PUBLIC_HEADERS}
> ${HEADER_PATH}/api/Win32/GraphicsWindowWin32
> ${HEADER_PATH}/api/Win32/PixelBufferWin32
> )
>
> SET(LIB_COMMON_FILES ${LIB_COMMON_FILES}
> GraphicsWindowWin32.cpp
> PixelBufferWin32.cpp
> )
> ELSE()
> IF(APPLE)
> SET(OSG_WINDOWING_SYSTEM "Carbon" CACHE STRING "Windowing system
> type for graphics window creation, options Carbon, Cocoa or X11.")
> ELSE()
> SET(OSG_WINDOWING_SYSTEM "X11" CACHE STRING "Windowing system type
> for graphics window creation. options only X11")
> ENDIF()
>
> IF(${OSG_WINDOWING_SYSTEM} STREQUAL "Cocoa")
> ADD_DEFINITIONS(-DUSE_DARWIN_COCOA_IMPLEMENTATION)
> SET(LIB_PUBLIC_HEADERS ${LIB_PUBLIC_HEADERS}
> ${HEADER_PATH}/api/Cocoa/GraphicsWindowCocoa
> ${HEADER_PATH}/api/Cocoa/PixelBufferCocoa
> )
> SET(LIB_COMMON_FILES ${LIB_COMMON_FILES}
> GraphicsWindowCocoa.mm
> DarwinUtils.h
> DarwinUtils.mm
> PixelBufferCocoa.mm
> )
> SET(LIB_EXTRA_LIBS ${COCOA_LIBRARY} ${LIB_EXTRA_LIBS})
> ELSEIF(${OSG_WINDOWING_SYSTEM} STREQUAL "Carbon")
> ADD_DEFINITIONS(-DUSE_DARWIN_CARBON_IMPLEMENTATION)
> SET(LIB_PUBLIC_HEADERS ${LIB_PUBLIC_HEADERS}
> ${HEADER_PATH}/api/Carbon/GraphicsWindowCarbon
> ${HEADER_PATH}/api/Carbon/PixelBufferCarbon
> )
> SET(LIB_COMMON_FILES ${LIB_COMMON_FILES}
> GraphicsWindowCarbon.cpp
> DarwinUtils.h
> DarwinUtils.mm
> PixelBufferCarbon.cpp
> )
> SET(LIB_EXTRA_LIBS ${COCOA_LIBRARY} ${LIB_EXTRA_LIBS})
> ELSE()
> # X11 for everybody else
> INCLUDE(FindPkgConfig OPTIONAL)
> IF(PKG_CONFIG_FOUND)
> PKG_CHECK_MODULES(XRANDR xrandr)
> IF(XRANDR_FOUND)
> OPTION(OSGVIEWER_USE_XRANDR "Set to ON to enable Xrandr
> support for GraphicsWindowX11." ON)
> ELSE()
> SET(OSGVIEWER_USE_XRANDR OFF)
> ENDIF()
> ELSE()
> SET(OSGVIEWER_USE_XRANDR OFF)
> ENDIF()
>
> SET(LIB_PUBLIC_HEADERS ${LIB_PUBLIC_HEADERS}
> ${HEADER_PATH}/api/X11/GraphicsWindowX11
> ${HEADER_PATH}/api/X11/PixelBufferX11
> )
>
> SET(LIB_COMMON_FILES ${LIB_COMMON_FILES}
> GraphicsWindowX11.cpp
> PixelBufferX11.cpp
> )
>
> IF(OSGVIEWER_USE_XRANDR)
> ADD_DEFINITIONS(-DOSGVIEWER_USE_XRANDR)
> SET(LIB_PRIVATE_HEADERS ${LIB_PRIVATE_HEADERS}
> ${XRANDR_INCLUDE_DIRS} )
>
> IF(X11_Xrandr_LIB)
> SET(LIB_EXTRA_LIBS ${X11_Xrandr_LIB} ${LIB_EXTRA_LIBS})
> ELSE()
> SET(LIB_EXTRA_LIBS ${XRANDR_LIBRARIES} ${LIB_EXTRA_LIBS})
> ENDIF()
> ENDIF()
>
> # 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()
> 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()
> ENDIF()
>
>
> ADD_LIBRARY(${LIB_NAME}
> ${OPENSCENEGRAPH_USER_DEFINED_DYNAMIC_OR_STATIC}
> ${LIB_PUBLIC_HEADERS}
> ${LIB_PRIVATE_HEADERS}
> ${LIB_COMMON_FILES}
> )
>
>
> LINK_INTERNAL(${LIB_NAME}
> osgGA
> osgText
> osgDB
> osgUtil
> osg
> OpenThreads
> )
>
> LINK_EXTERNAL(${LIB_NAME} ${LIB_EXTRA_LIBS})
>
> LINK_CORELIB_DEFAULT(${LIB_NAME})
>
> IF(MINGW OR CYGWIN)
> LINK_EXTERNAL(${LIB_NAME} gdi32 )
> ENDIF()
>
> INCLUDE(ModuleInstall OPTIONAL)
>
> FOREACH(INCLUDEFILE ${LIB_PUBLIC_HEADERS} )
> FILE(RELATIVE_PATH REL_INCLUDEFILE ${HEADER_PATH} ${INCLUDEFILE})
> GET_FILENAME_COMPONENT(REL_INCLUDE_PATH ${REL_INCLUDEFILE} PATH)
> INSTALL(
> FILES ${INCLUDEFILE}
> DESTINATION ${INSTALL_INCDIR}/${LIB_NAME}/${REL_INCLUDE_PATH}
> COMPONENT libopenscenegraph-dev
> )
> ENDFOREACH()
>
> _______________________________________________
> osg-submissions mailing list
> [email protected]
>
> http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
>
>
_______________________________________________
osg-submissions mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org