Changeset 10763

Show
Ignore:
Timestamp:
11/17/09 13:55:52 (4 years ago)
Author:
robert
Message:

Added OSG_CPP_EXCEPTIONS_AVAILABLE cmake option to enable optional build of plugins and examples that required C++ exceptions

Location:
OpenSceneGraph/trunk
Files:
5 modified

Legend:

Unmodified
Added
Removed
  • OpenSceneGraph/trunk/CMakeLists.txt

    r10703 r10763  
    301301OPTION(OSG_GL_VERTEX_ARRAY_FUNCS_AVAILABLE "Set to OFF to disable use of OpenGL vertex functions such as glVertex/glColor etc." ${OSG_GL1_AVAILABLE}) 
    302302OPTION(OSG_GL_FIXED_FUNCTION_AVAILABLE "Set to OFF to disable use of OpenGL fixed function pipeline." ${OSG_GL1_AVAILABLE}) 
     303 
     304OPTION(OSG_CPP_EXCEPTIONS_AVAILABLE "Set to OFF to disable compile of OSG components that use C++ exceptions." ON) 
    303305 
    304306################################################################################ 
  • OpenSceneGraph/trunk/examples/CMakeLists.txt

    r10717 r10763  
    5959    ADD_SUBDIRECTORY(osglogo) 
    6060    ADD_SUBDIRECTORY(osgmanipulator) 
    61     ADD_SUBDIRECTORY(osgmemorytest) 
    6261    ADD_SUBDIRECTORY(osgmovie) 
    6362    ADD_SUBDIRECTORY(osgmultiplerendertargets) 
     
    108107    ADD_SUBDIRECTORY(osgtexturecompression) 
    109108    ADD_SUBDIRECTORY(osgthirdpersonview) 
    110     ADD_SUBDIRECTORY(osgunittests) 
    111109    ADD_SUBDIRECTORY(osgvertexprogram) 
    112110    ADD_SUBDIRECTORY(osgvertexattributes) 
     
    138136    ADD_SUBDIRECTORY(osgwidgetwindow) 
    139137 
    140 IF(NOT OSG_GLES1_AVAILABLE AND NOT OSG_GLES2_AVAILABLE AND NOT OSG_GL3_AVAILABLE) 
    141     ADD_SUBDIRECTORY(osgscreencapture) 
    142     ADD_SUBDIRECTORY(osgmotionblur) 
    143     ADD_SUBDIRECTORY(osgteapot) 
    144 ENDIF() 
    145  
    146 IF(OSG_GLU_AVAILABLE) 
    147     ADD_SUBDIRECTORY(osgphotoalbum) 
    148     ADD_SUBDIRECTORY(osgtessellate) 
    149 ENDIF() 
     138    IF(OSG_CPP_EXCEPTIONS_AVAILABLE) 
     139        ADD_SUBDIRECTORY(osgunittests) 
     140        ADD_SUBDIRECTORY(osgmemorytest) 
     141    ENDIF() 
     142 
     143    IF(NOT OSG_GLES1_AVAILABLE AND NOT OSG_GLES2_AVAILABLE AND NOT OSG_GL3_AVAILABLE) 
     144        ADD_SUBDIRECTORY(osgscreencapture) 
     145        ADD_SUBDIRECTORY(osgmotionblur) 
     146        ADD_SUBDIRECTORY(osgteapot) 
     147    ENDIF() 
     148 
     149    IF(OSG_GLU_AVAILABLE) 
     150        ADD_SUBDIRECTORY(osgphotoalbum) 
     151        ADD_SUBDIRECTORY(osgtessellate) 
     152    ENDIF() 
    150153 
    151154    ADD_SUBDIRECTORY(osgpdf) 
  • OpenSceneGraph/trunk/src/osgPlugins/CMakeLists.txt

    r10611 r10763  
    165165ADD_SUBDIRECTORY(bvh) 
    166166ADD_SUBDIRECTORY(x) 
    167 ADD_SUBDIRECTORY(ply) 
    168167ADD_SUBDIRECTORY(dxf) 
    169168ADD_SUBDIRECTORY(OpenFlight) 
     
    187186ADD_SUBDIRECTORY(tgz) 
    188187 
    189 ADD_SUBDIRECTORY(txp) 
    190188ADD_SUBDIRECTORY(shp) 
    191189ADD_SUBDIRECTORY(txf) 
     
    193191ADD_SUBDIRECTORY(bsp) 
    194192ADD_SUBDIRECTORY(mdl) 
     193 
     194IF(OSG_CPP_EXCEPTIONS_AVAILABLE) 
     195    ADD_SUBDIRECTORY(ply) 
     196    ADD_SUBDIRECTORY(txp) 
     197ENDIF() 
    195198 
    196199IF(XINE_FOUND) 
  • OpenSceneGraph/trunk/src/osgPlugins/png/CMakeLists.txt

    r9998 r10763  
    11INCLUDE_DIRECTORIES( ${PNG_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR} ) 
    22 
     3IF(OSG_CPP_EXCEPTIONS_AVAILABLE) 
     4    ADD_DEFINITIONS(-DOSG_CPP_EXCEPTIONS_AVAILABLE) 
     5ENDIF() 
    36 
    47SET(TARGET_SRC ReaderWriterPNG.cpp ) 
    58SET(TARGET_LIBRARIES_VARS PNG_LIBRARY ZLIB_LIBRARY ) 
     9 
     10 
    611#### end var setup  ### 
    712SETUP_PLUGIN(png) 
  • OpenSceneGraph/trunk/src/osgPlugins/png/ReaderWriterPNG.cpp

    r8578 r10763  
    5252void user_error_fn(png_structp png_ptr, png_const_charp error_msg) 
    5353{ 
     54#ifdef OSG_CPP_EXCEPTIONS_AVAILABLE 
    5455    throw PNGError(error_msg); 
     56#else 
     57    osg::notify(osg::WARN) << "PNG lib warning : " << error_msg << std::endl; 
     58#endif 
    5559} 
    5660 
     
    167171            png_set_error_fn(png, png_get_error_ptr(png), user_error_fn, user_warning_fn); 
    168172 
     173            #ifdef OSG_CPP_EXCEPTIONS_AVAILABLE 
    169174            try 
     175            #endif 
    170176            { 
    171  
    172177                info = png_create_info_struct(png); 
    173178                endinfo = png_create_info_struct(png); 
     
    301306 
    302307                return pOsgImage; 
    303             } 
     308 
     309            } 
     310            #ifdef OSG_CPP_EXCEPTIONS_AVAILABLE 
    304311            catch (PNGError& err) 
    305312            { 
     
    308315                return ReadResult::ERROR_IN_READING_FILE; 
    309316            } 
     317            #endif 
    310318        } 
    311319