Hi Robert,

On 03/06/16 12:43, Robert Osfield wrote:
Hi François,

I have installed Clang 3.8 on my Linux dev machine and got it to
reproduce the same typeid error.  As far as I can tell this warning is
pretty bogus, effectively enforcing a personal preference of the
compiler developers rather than highlighting anything that is
ambiguous or unsupported.  Lots of other projects seem to be affected
by the same error, what the OSG is doing with typeid is pretty
standard.  The workaround seems to be to just create a local variable
which does the dereferences and then passes this on to the typeid,
I've applied this and it fixes the Clang error.  Having to write extra
code to quieten a stupid warning is pretty bad programming practice as
it can risks introducing bugs so I'm not happy doing this type of
stuff.

I agree. But it did silence the warnings on my setup too.

Despite using Clang 3.8 I don't see the second set of warnings:

[ 85%] Building CXX object
applications/osgviewer/CMakeFiles/application_osgviewer.dir/osgviewer.cpp.o
ConfigLexer.cpp:827:2: warning: 'register' storage class specifier is
deprecated [-Wdeprecated-register]
         register yy_state_type yy_current_state;

I can seen anywhere where the OSG Cmake build system is adding
-Wdeprecated-register.  Are you adding this manually?

nope. unzip, cmake, make. This must be a new default on my Clang (Apple LLVM version 7.3.0 (clang-703.0.29))

I silenced the warnings by adding:

        add_compile_options(-Wno-deprecated-register)

...at line 9 of the main CMakeLists.txt file, i.e. within the first IF(APPLE) block.

Doing so, the only warnings that remain are calls to deprecated OSX functions on 2 modules:


[ 62%] Building CXX object src/osgViewer/CMakeFiles/osgViewer.dir/PixelBufferCocoa.mm.o /Users/fberard/Downloads/osg_git/distrib/src/osgViewer/GraphicsWindowCocoa.mm:1715:14: warning: 'GetCurrentProcess' is deprecated: first deprecated in OS X 10.9 [-Wdeprecated-declarations]
        if (!GetCurrentProcess(&psn)) {
             ^
/System/Library/Frameworks/ApplicationServices.framework/Frameworks/HIServices.framework/Headers/Processes.h:415:1: note: 'GetCurrentProcess' has been explicitly marked deprecated here MacGetCurrentProcess(ProcessSerialNumber * PSN) AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9;
^
/System/Library/Frameworks/ApplicationServices.framework/Frameworks/HIServices.framework/Headers/Processes.h:412:34: note: expanded from macro 'MacGetCurrentProcess'
    #define MacGetCurrentProcess GetCurrentProcess
                                 ^
/Users/fberard/Downloads/osg_git/distrib/src/osgViewer/GraphicsWindowCocoa.mm:1717:13: warning: 'SetFrontProcess' is deprecated: first deprecated in OS X 10.9 [-Wdeprecated-declarations]
            SetFrontProcess(&psn);
            ^
/System/Library/Frameworks/ApplicationServices.framework/Frameworks/HIServices.framework/Headers/Processes.h:603:1: note: 'SetFrontProcess' has been explicitly marked deprecated here SetFrontProcess(const ProcessSerialNumber * PSN) AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9;
^
/Users/fberard/Downloads/osg_git/distrib/src/osgViewer/GraphicsWindowCocoa.mm:1726:29: warning: incompatible pointer types sending 'CocoaAppDelegate *' to parameter of type 'id<NSFileManagerDelegate> _Nullable'
      [-Wincompatible-pointer-types]
        [NSApp setDelegate: [[CocoaAppDelegate alloc] init] ];
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/objc/NSObject.h:60:1: note: instance method 'init' is assumed to return an instance of its receiver type ('CocoaAppDelegate *')
- (instancetype)init
^
/Users/fberard/Downloads/osg_git/distrib/src/osgViewer/DarwinUtils.mm:111:26: warning: 'CGDisplayModeCopyPixelEncoding' is deprecated: first deprecated in OS X 10.11 [-Wdeprecated-declarations]
    CFStringRef pixEnc = CGDisplayModeCopyPixelEncoding(mode);
                         ^
/System/Library/Frameworks/CoreGraphics.framework/Headers/CGDirectDisplay.h:174:34: note: 'CGDisplayModeCopyPixelEncoding' has been explicitly marked deprecated here
CG_EXTERN CFStringRef __nullable CGDisplayModeCopyPixelEncoding(
                                 ^
/Users/fberard/Downloads/osg_git/distrib/src/osgViewer/DarwinUtils.mm:421:5: warning: 'SetFrontProcess' is deprecated: first deprecated in OS X 10.9 [-Wdeprecated-declarations]
    SetFrontProcess(&sn);
    ^
/System/Library/Frameworks/ApplicationServices.framework/Frameworks/HIServices.framework/Headers/Processes.h:603:1: note: 'SetFrontProcess' has been explicitly marked deprecated here SetFrontProcess(const ProcessSerialNumber * PSN) AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9;
^




[ 62%] Building CXX object src/osgWrappers/deprecated-dotosg/osgParticle/CMakeFiles/osgdb_deprecated_osgparticle.dir/IO_DomainOperator.cpp.o /Users/fberard/Downloads/osg_git/distrib/src/osgViewer/PixelBufferCocoa.mm:59:17: warning: 'NSOpenGLPFAPixelBuffer' is deprecated: first deprecated in OS X 10.7 [-Wdeprecated-declarations]
    attr[i++] = NSOpenGLPFAPixelBuffer; // for pbuffer usage
                ^
/System/Library/Frameworks/AppKit.framework/Headers/NSOpenGL.h:88:2: note: 'NSOpenGLPFAPixelBuffer' has been explicitly marked deprecated here NSOpenGLPFAPixelBuffer NS_ENUM_DEPRECATED_MAC(10_3, 10_7) = 90,
        ^
/Users/fberard/Downloads/osg_git/distrib/src/osgViewer/PixelBufferCocoa.mm:75:5: warning: 'NSOpenGLPixelBuffer' is deprecated: first deprecated in OS X 10.7 - Use GL_EXT_framebuffer_object instead [-Wdeprecated-declarations] NSOpenGLPixelBuffer* pbuffer = [[NSOpenGLPixelBuffer alloc] initWithTextureTarget: _traits->target textureInternalFormat: _traits->format textureMaxMipMapLevel: _traits->level pixelsWide: _traits->width pixelsHigh: _trai...
    ^
/System/Library/Frameworks/AppKit.framework/Headers/NSOpenGL.h:139:12: note: 'NSOpenGLPixelBuffer' has been explicitly marked deprecated here
@interface NSOpenGLPixelBuffer : NSObject
           ^
/Users/fberard/Downloads/osg_git/distrib/src/osgViewer/PixelBufferCocoa.mm:75:38: warning: 'NSOpenGLPixelBuffer' is deprecated: first deprecated in OS X 10.7 - Use GL_EXT_framebuffer_object instead [-Wdeprecated-declarations] NSOpenGLPixelBuffer* pbuffer = [[NSOpenGLPixelBuffer alloc] initWithTextureTarget: _traits->target textureInternalFormat: _traits->format textureMaxMipMapLevel: _traits->level pixelsWide: _traits->width pixelsHigh: _trai...
                                     ^
/System/Library/Frameworks/AppKit.framework/Headers/NSOpenGL.h:139:12: note: 'NSOpenGLPixelBuffer' has been explicitly marked deprecated here
@interface NSOpenGLPixelBuffer : NSObject
           ^
/Users/fberard/Downloads/osg_git/distrib/src/osgViewer/PixelBufferCocoa.mm:75:65: warning: 'initWithTextureTarget:textureInternalFormat:textureMaxMipMapLevel:pixelsWide:pixelsHigh:' is deprecated: first deprecated in OS X 10.7
      [-Wdeprecated-declarations]
NSOpenGLPixelBuffer* pbuffer = [[NSOpenGLPixelBuffer alloc] initWithTextureTarget: _traits->target textureInternalFormat: _traits->format textureMaxMipMapLevel: _traits->level pixelsWide: _traits->width pixelsHigh: _trai...
                                                                ^
/System/Library/Frameworks/AppKit.framework/Headers/NSOpenGL.h:155:1: note: 'initWithTextureTarget:textureInternalFormat:textureMaxMipMapLevel:pixelsWide:pixelsHigh:' has been explicitly marked deprecated here - (nullable instancetype)initWithTextureTarget:(GLenum)target textureInternalFormat:(GLenum)format textureMaxMipMapLevel:(GLint)maxLevel pixelsWide:(GLsizei)pixelsWide pixelsHigh:(GLsizei)pixelsHigh NS_DEPRECATED_MAC(10_2, 1...
^
/Users/fberard/Downloads/osg_git/distrib/src/osgViewer/PixelBufferCocoa.mm:77:15: warning: 'setPixelBuffer:cubeMapFace:mipMapLevel:currentVirtualScreen:' is deprecated: first deprecated in OS X 10.7 [-Wdeprecated-declarations] [_context setPixelBuffer: pbuffer cubeMapFace: _traits->face mipMapLevel:_traits->level currentVirtualScreen: 0];
              ^
/System/Library/Frameworks/AppKit.framework/Headers/NSOpenGL.h:259:1: note: 'setPixelBuffer:cubeMapFace:mipMapLevel:currentVirtualScreen:' has been explicitly marked deprecated here - (void)setPixelBuffer:(NSOpenGLPixelBuffer *)pixelBuffer cubeMapFace:(GLenum)face mipMapLevel:(GLint)level currentVirtualScreen:(GLint)screen NS_DEPRECATED_MAC(10_3, 10_7); /* Use IOSurface instead of NSOpenGLPixelBuffer o...
^







Robert.


On 3 June 2016 at 06:01, François Bérard<francois.ber...@imag.fr>  wrote:
Yup, compiles and executes fine now. But:

There are tons of warnings such as:

In file included from
/Users/fberard/Downloads/osg_git/OpenSceneGraph-master/include/osg/NodeVisitor:21:
/Users/fberard/Downloads/osg_git/OpenSceneGraph-master/include/osg/ValueMap:53:51:
warning: expression with side effects will be evaluated despite being used
as an operand to 'typeid'
       [-Wpotentially-evaluated-expression]
             if (itr!=_keyValueMap.end()&&
typeid(*(itr->second))==typeid(UserValueObject))
                                                   ^
(I guess this is due to NodeVisitor being used everywhere).

And also a bit of:

[ 85%] Building CXX object
applications/osgviewer/CMakeFiles/application_osgviewer.dir/osgviewer.cpp.o
ConfigLexer.cpp:827:2: warning: 'register' storage class specifier is
deprecated [-Wdeprecated-register]
         register yy_state_type yy_current_state;
         ^~~~~~~~~

Also, I did a build in a temporary location (CMAKE_INSTALL_PREFIX to some
place), but the build did not put the path or some relative paths in the
binaries:

[Downloads/osg_git] % otool -L ./bin/osgviewer
./bin/osgviewer:
         libosgViewer.144.dylib (compatibility version 144.0.0, current
version 3.5.3)
         libosgText.144.dylib (compatibility version 144.0.0, current version
3.5.3)
         libosgGA.144.dylib (compatibility version 144.0.0, current version
3.5.3)
         libosgDB.144.dylib (compatibility version 144.0.0, current version
3.5.3)
         /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon
(compatibility version 2.0.0, current version 157.0.0)
         /opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current
version 1.2.8)
         libosgUtil.144.dylib (compatibility version 144.0.0, current version
3.5.3)
         libosg.144.dylib (compatibility version 144.0.0, current version
3.5.3)
         libOpenThreads.20.dylib (compatibility version 20.0.0, current
version 3.3.0)
         /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 1226.10.1)
         /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa
(compatibility version 1.0.0, current version 22.0.0)
         /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL
(compatibility version 1.0.0, current version 1.0.0)
         /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current
version 120.1.0)

So, "./osgviewer" did not work out of the box, I had to set
DYLD_LIBRARY_PATH to point to the libraries.

ccmake did warn about something that is probably related:

CMake Warning (dev):
    Policy CMP0042 is not set: MACOSX_RPATH is enabled by default.  Run
"cmake
    --help-policy CMP0042" for policy details.  Use the cmake_policy command
to
    set the policy and suppress this warning.

    MACOSX_RPATH is not specified for the following targets:

     OpenThreads
     osg
     osgAnimation
     osgDB
     osgFX
     osgGA
     osgManipulator
     osgParticle
     osgPresentation
     osgShadow
     osgSim
     osgTerrain
     osgText
     osgUI
     osgUtil
     osgViewer
     osgVolume
     osgWidget

  This warning is for project developers.  Use -Wno-dev to suppress it.





On 2/6/16 18:53, Robert Osfield wrote:
Hi François,

I suspect the build error is down to the osgViewer:: in the
REGISTER_WINDOWINGSYSTEMINTERFACE line that is affecting the macro
expansion.  I have just checked in removal of the osgViewer:: so the
line now looks like:

REGISTER_WINDOWINGSYSTEMINTERFACE(IOS,
ConcreteIOSWindowingSystemInterface)

This is now checked into git master. Could you try this out?

Robert.


On 2 June 2016 at 17:11, François Bérard<francois.ber...@imag.fr>   wrote:
Hello,

    I just downloaded a zip from the git web site, expanded, cmake, make,
and
stopped on an error (see below).

    This is on OSX 10.11.5, using XCode command line tools v7.3 (Apple
LLVM
version 7.3.0 (clang-703.0.29))

    Hope this helps.

[ 19%] Building CXX object
src/osgViewer/CMakeFiles/osgViewer.dir/GraphicsWindowCocoa.mm.o
In file included from

/Users/fberard/Downloads/OpenSceneGraph-master/src/osgViewer/GraphicsWindowCocoa.mm:16:
In file included from

/Users/fberard/Downloads/OpenSceneGraph-master/include/osgViewer/api/Cocoa/GraphicsWindowCocoa:40:
In file included from

/Users/fberard/Downloads/OpenSceneGraph-master/include/osgViewer/GraphicsWindow:21:
In file included from

/Users/fberard/Downloads/OpenSceneGraph-master/include/osgGA/GUIActionAdapter:18:
In file included from
/Users/fberard/Downloads/OpenSceneGraph-master/include/osg/View:17:
In file included from
/Users/fberard/Downloads/OpenSceneGraph-master/include/osg/Camera:17:
In file included from
/Users/fberard/Downloads/OpenSceneGraph-master/include/osg/Transform:17:
In file included from
/Users/fberard/Downloads/OpenSceneGraph-master/include/osg/Group:18:
In file included from

/Users/fberard/Downloads/OpenSceneGraph-master/include/osg/NodeVisitor:21:
Downloads/OpenSceneGraph-master/include/osg/ValueMap:53:51: warning:
expression with side effects will be evaluated despite being used as an
operand to 'typeid'
        [-Wpotentially-evaluated-expression]
              if (itr!=_keyValueMap.end()&&
typeid(*(itr->second))==typeid(UserValueObject))
                                                    ^

Downloads/OpenSceneGraph-master/src/osgViewer/GraphicsWindowCocoa.mm:1715:14:
warning: 'GetCurrentProcess' is deprecated: first deprecated in OS X 10.9
        [-Wdeprecated-declarations]
          if (!GetCurrentProcess(&psn)) {
               ^

/System/Library/Frameworks/ApplicationServices.framework/Frameworks/HIServices.framework/Headers/Processes.h:415:1:
note: 'GetCurrentProcess' has been explicitly marked deprecated here
MacGetCurrentProcess(ProcessSerialNumber * PSN)

AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9;
^

/System/Library/Frameworks/ApplicationServices.framework/Frameworks/HIServices.framework/Headers/Processes.h:412:34:
note: expanded from macro 'MacGetCurrentProcess'
      #define MacGetCurrentProcess GetCurrentProcess
                                   ^

Downloads/OpenSceneGraph-master/src/osgViewer/GraphicsWindowCocoa.mm:1717:13:
warning: 'SetFrontProcess' is deprecated: first deprecated in OS X 10.9
[-Wdeprecated-declarations]
              SetFrontProcess(&psn);
              ^

/System/Library/Frameworks/ApplicationServices.framework/Frameworks/HIServices.framework/Headers/Processes.h:603:1:
note: 'SetFrontProcess' has been explicitly marked deprecated here
SetFrontProcess(const ProcessSerialNumber * PSN)

AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9;
^

Downloads/OpenSceneGraph-master/src/osgViewer/GraphicsWindowCocoa.mm:1726:29:
warning: incompatible pointer types sending 'CocoaAppDelegate *' to
parameter of type
        'id<NSFileManagerDelegate>   _Nullable'
[-Wincompatible-pointer-types]
          [NSApp setDelegate: [[CocoaAppDelegate alloc] init] ];
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/objc/NSObject.h:60:1: note: instance method 'init' is
assumed
to return an instance of its receiver type ('CocoaAppDelegate *')
- (instancetype)init
^

Downloads/OpenSceneGraph-master/src/osgViewer/GraphicsWindowCocoa.mm:1833:1:
error: use of undeclared identifier 's_proxy_osgViewer'
REGISTER_WINDOWINGSYSTEMINTERFACE(Cocoa,
osgViewer::CocoaWindowingSystemInterface)
^
Downloads/OpenSceneGraph-master/include/osg/GraphicsContext:599:58: note:
expanded from macro 'REGISTER_WINDOWINGSYSTEMINTERFACE'
      static osg::WindowingSystemInterfaceProxy<classname>
s_proxy_##classname(#ext);
                                                           ^
<scratch space>:80:1: note: expanded from here
s_proxy_osgViewer
^
4 warnings and 1 error generated.
make[2]: ***
[src/osgViewer/CMakeFiles/osgViewer.dir/GraphicsWindowCocoa.mm.o] Error 1
make[1]: *** [src/osgViewer/CMakeFiles/osgViewer.dir/all] Error 2
make: *** [all] Error 2



On 02/06/16 17:10, Robert Osfield wrote:
Hi All,

I spent the majority of May catching up with submissions and bug fixes
and now in June I'd like to start moving towards getting a stable
release out the door - this will 3.6.0.

The first step along this way is the 3.5.3 dev release which wraps up
all the recent work that been checked into git master.  Before I tag
this I would appreciate build and runtime testing by members of the
community on as wide range of platforms as you can lay your hands on
so I we resolve these issues prior to tagging the 3.5.3 release.

If things work or fail please report here on this thread so I know how
things are converging.

Thanks for your help,
Robert.
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org

http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to