Hi, Hello Robert
> > Thanks for the changes. Which version of the OSG are you testing > against? Which version of RVSG are you testing against? > I have RSVG 2.36.1 I tested my changes in OpenSceneGraph-3.2 and master/trunk branches. > > The second #if LIBRSVG_CHECK_VERSION assumes that either rvsg.h > provides this, or the fallback of #include > < librsvg/librsvg-features.h> provide it. Could there be a case where > neither provide it? > This define exists sicnce LIBRSVG_2_26_1 https://github.com/GNOME/librsvg/commit/19b6a9616464a20a6824e255a296c708f882e55b > > So the whole block would look like: > > extern "C" { > #include < librsvg/rsvg.h> > > #ifndef LIBRSVG_CHECK_VERSION > #include < librsvg/librsvg-features.h> > #endif > > #if !defined(LIBRSVG_CHECK_VERSION) || !LIBRSVG_CHECK_VERSION(2, 36, 2) > #include < librsvg/rsvg-cairo.h> > #endif > } > I like your changes, but gcc not accept it if LIBRSVG_CHECK_VERSION is not defined: Code: # cat test.cpp #if !defined(TEST) || TEST(2, 36, 2) #pragma message("true") #else #pragma message("false") #endif int main() { return 0; } # gcc test.cpp test.cpp:1:27: error: missing binary operator before token "(" test.cpp:4:24: note: #pragma message: false I have idea, may be it is a bit hacky. Since commit: https://github.com/GNOME/librsvg/commit/3b8adaa7e780b85695306292dfb23107d219bb34 you have defined LIBRSVG_CHECK_VERSION after include < librsvg/rsvg.h> but before you don't. Code: extern "C" { #include < librsvg/rsvg.h> +#ifndef LIBRSVG_CHECK_VERSION + #include < librsvg/rsvg-cairo.h> +#endif } Thank you for review & tests :)! Cheers, Alexander ------------------ Read this topic online here: http://forum.openscenegraph.org/viewtopic.php?p=60044#60044 _______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

