Hi all, I gave osg android port a try on Windows using cygwin, and it worked like a charm (only a tiny problem with osgViewer, when cross compiling for android using cygwin, the windows path in osgViewer/CMakeLists.txt is used rather than the android one, fix attached). For the moment I only compiled all the osg libs and plugins that don't rely on a 3rdParty lib. I will let you know when I succeed to build an app for my nexus S :) (the test apk Jorge sent, works for me)
Thanks for your efforts. Mourad On Tue, Mar 8, 2011 at 5:37 PM, Robert Osfield <robert.osfi...@gmail.com>wrote: > Hi Rafa, Jorge and all ;-) > > On Mon, Mar 7, 2011 at 11:53 AM, Rafa Gaitan <rafa.gai...@gmail.com> > wrote: > > Finally Jorge and me have finished a first approach to build OSG under > > Android using the android NDK. > > > > Attached you will find all required code and cmake modifications (They > > are based on a previous submissions I sent last week). > > Many thanks for your efforts. I have now merged and checked in > changes to OpenSceneGraph svn/trunk. I haven't tested the Android > build at all yet, only the normal Linux build side. > > Would it be possible for you to put up a documentation page on the > wiki to show how to set up to build the OSG on Android? > > Thanks, > Robert. > _______________________________________________ > osg-submissions mailing list > osg-submissi...@lists.openscenegraph.org > > http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org >
# 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(TARGET_H ${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 AND NOT ANDROID) # # 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(TARGET_H ${TARGET_H} ${HEADER_PATH}/api/Win32/GraphicsHandleWin32 ${HEADER_PATH}/api/Win32/GraphicsWindowWin32 ${HEADER_PATH}/api/Win32/PixelBufferWin32 ) SET(LIB_COMMON_FILES ${LIB_COMMON_FILES} GraphicsWindowWin32.cpp PixelBufferWin32.cpp ) ELSE() IF(APPLE) IF(OSG_BUILD_PLATFORM_IPHONE OR OSG_BUILD_PLATFORM_IPHONE_SIMULATOR) SET(OSG_WINDOWING_SYSTEM "IOS" CACHE STRING "Windowing system type for graphics window creation, options only IOS.") ELSE() SET(OSG_WINDOWING_SYSTEM "Carbon" CACHE STRING "Windowing system type for graphics window creation, options Carbon, Cocoa or X11.") ENDIF() ELSE() IF(ANDROID) SET(OSG_WINDOWING_SYSTEM "None" CACHE STRING "None Windowing system type for graphics window creation.") ELSE() SET(OSG_WINDOWING_SYSTEM "X11" CACHE STRING "Windowing system type for graphics window creation. options only X11") ENDIF() ENDIF() IF(${OSG_WINDOWING_SYSTEM} STREQUAL "Cocoa") ADD_DEFINITIONS(-DUSE_DARWIN_COCOA_IMPLEMENTATION) IF(OSG_COMPILE_FRAMEWORKS) SET(LIB_COMMON_FILES ${LIB_COMMON_FILES} ${HEADER_PATH}/api/Cocoa/GraphicsHandleCocoa ${HEADER_PATH}/api/Cocoa/GraphicsWindowCocoa ${HEADER_PATH}/api/Cocoa/PixelBufferCocoa ) SET_PROPERTY(SOURCE ${HEADER_PATH}/api/Cocoa/GraphicsHandleCocoa PROPERTY MACOSX_PACKAGE_LOCATION Headers/api/Cocoa) SET_PROPERTY(SOURCE ${HEADER_PATH}/api/Cocoa/GraphicsWindowCocoa PROPERTY MACOSX_PACKAGE_LOCATION Headers/api/Cocoa) SET_PROPERTY(SOURCE ${HEADER_PATH}/api/Cocoa/PixelBufferCocoa PROPERTY MACOSX_PACKAGE_LOCATION Headers/api/Cocoa) ELSE() SET(TARGET_H ${TARGET_H} ${HEADER_PATH}/api/Cocoa/GraphicsHandleCocoa ${HEADER_PATH}/api/Cocoa/GraphicsWindowCocoa ${HEADER_PATH}/api/Cocoa/PixelBufferCocoa ) ENDIF() 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) IF(OSG_COMPILE_FRAMEWORKS) SET(LIB_COMMON_FILES ${LIB_COMMON_FILES} ${HEADER_PATH}/api/Carbon/GraphicsHandleCarbon ${HEADER_PATH}/api/Carbon/GraphicsWindowCarbon ${HEADER_PATH}/api/Carbon/PixelBufferCarbon ) SET_PROPERTY(SOURCE ${HEADER_PATH}/api/Carbon/GraphicsHandleCarbon PROPERTY MACOSX_PACKAGE_LOCATION Headers/api/Carbon) SET_PROPERTY(SOURCE ${HEADER_PATH}/api/Carbon/GraphicsWindowCarbon PROPERTY MACOSX_PACKAGE_LOCATION Headers/api/Carbon) SET_PROPERTY(SOURCE ${HEADER_PATH}/api/Carbon/PixelBufferCarbon PROPERTY MACOSX_PACKAGE_LOCATION Headers/api/Carbon) ELSE() SET(TARGET_H ${TARGET_H} ${HEADER_PATH}/api/Carbon/GraphicsHandleCarbon ${HEADER_PATH}/api/Carbon/GraphicsWindowCarbon ${HEADER_PATH}/api/Carbon/PixelBufferCarbon ) ENDIF() SET(LIB_COMMON_FILES ${LIB_COMMON_FILES} GraphicsWindowCarbon.cpp DarwinUtils.h DarwinUtils.mm PixelBufferCarbon.cpp ) SET(LIB_EXTRA_LIBS ${COCOA_LIBRARY} ${LIB_EXTRA_LIBS}) ELSEIF(${OSG_WINDOWING_SYSTEM} STREQUAL "IOS") ADD_DEFINITIONS(-DUSE_IOS_IMPLEMENTATION) IF(OSG_COMPILE_FRAMEWORKS) SET(LIB_COMMON_FILES ${LIB_COMMON_FILES} ${HEADER_PATH}/api/IOS/GraphicsWindowIOS ) SET_PROPERTY(SOURCE ${HEADER_PATH}/api/IOS/GraphicsWindowIOS PROPERTY MACOSX_PACKAGE_LOCATION Headers/api/IOS) ELSE() SET(TARGET_H ${TARGET_H} ${HEADER_PATH}/api/IOS/GraphicsWindowIOS #${HEADER_PATH}/api/IOS/PixelBufferIOS ) ENDIF() SET(LIB_COMMON_FILES ${LIB_COMMON_FILES} GraphicsWindowIOS.mm IOSUtils.h IOSUtils.mm ) SET(LIB_EXTRA_LIBS ${COCOA_LIBRARY} ${LIB_EXTRA_LIBS}) ELSEIF(${OSG_WINDOWING_SYSTEM} STREQUAL "X11") # 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(TARGET_H ${TARGET_H} ${HEADER_PATH}/api/X11/GraphicsHandleX11 ${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) # hack for finding the iphone opengl es lib IF(OSG_BUILD_PLATFORM_IPHONE OR OSG_BUILD_PLATFORM_IPHONE_SIMULATOR) SET(OPENGL_INCLUDE_DIR ${IPHONE_SDKROOT}System/Library/Frameworks) SET(OPENGL_LIBRARIES ${IPHONE_SDKROOT}System/Library/Frameworks/OpenGLES) ELSE() # 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() ELSE(APPLE) SET(LIB_EXTRA_LIBS ${X11_X11_LIB} ${LIB_EXTRA_LIBS}) ENDIF(APPLE) ELSE() MESSAGE(STATUS "Windowing system not supported") ENDIF() ENDIF() SET(TARGET_SRC ${LIB_PRIVATE_HEADERS} ${LIB_COMMON_FILES} ) SET(TARGET_LIBRARIES osgGA osgText osgDB osgUtil osg OpenThreads ) SET(TARGET_EXTERNAL_LIBRARIES ${LIB_EXTRA_LIBS}) IF(MINGW OR CYGWIN) SET(TARGET_EXTERNAL_LIBRARIES ${TARGET_EXTERNAL_LIBRARY} gdi32 ) ENDIF() SETUP_LIBRARY(${LIB_NAME}) FOREACH(INCLUDEFILE ${TARGET_H} ) 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-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org