Gtkmm, Glibmm, Cairomm and libsigc++ for Indiana [LSARC/2008/074 FastTrack timeout 02/13/2008]
Irene Huang
Irene.Huang at sun.com
Fri Feb 1 18:46:50 PST 2008
Including lsarc-ext since this case is open.
Thanks
--Irene
Shi-Ying Irene Huang wrote:
> Template Version: @(#)sac_nextcase 1.64 07/13/07 SMI
> This information is Copyright 2008 Sun Microsystems
>
> 1. Introduction
> 1.1. Project/Component Working Name: sigcpp, glibmm, cairomm, and gtkmm
>
> 1.2. Name of Document Author/Supplier: Ghee Teo, Chris Wang, Elaine Xiong, Simon Zheng
>
> 1.3. Date of This Document: 01/30/08
>
> 1.5. Email Aliases:
> 1.5.1. Responsible Manager: leo.binchy at sun.com
> 1.5.2. Responsible Engineer:ghee.teo at sun.com,
> chris.wang at sun.com,
> elaine.xiong at sun.com,
> simon.zheng at sun.com
>
> 2. Project Summary
> 2.1. Project Description:
> libsigc++ implements a typesafe callback system for use in widget libraries,
> abstract interfaces, and general programming. It allows users to define
> signals and to connect those signals to any callback function, either global
> or a member function, regardless of whether it is static or virtual.
> It contains adaptor classes for connecting dissimilar callbacks and has an ease
> of use unmatched by other C++ callback libraries.
>
> cairomm is a C++ wrapper for the cairo graphics library. It offers all the power
> of cairo with an interface familiar to C++ developers, including use of the
> Standard Template Library where it makes sense. Even though cairomm can be used
> on its own, it is often used together with the higher level toolkit C++ wrapper, gtkmm.
>
> glibmm is a set of C++ bindings for Glib2 Library, including cross-platform
> APIs such as a std::string-like UTF8 string class, string utility
> methods, such as a text encoding converter API, file access, and
> threads.
>
> gtkmm is the official C++ interface for the popular GUI library GTK+.
> Highlights include typesafe callbacks, and a comprehensive set of widgets
> that are easily extensible via inheritance. You can create user interfaces either in
> code or with the Glade User Interface designer, using libglademm. There's
> extensive documentation, including API reference and a tutorial.
>
>
>
> 2.2. Risks and Assumptions:
> gtkmm and glibmm follow the official GNOME Platform Bindings release schedule. This guarantees
> API/ABI-stability and new releases on a predictable schedule, delivering C++ API for
> the underlying GTK+ and GNOME APIs as soon as possible.
>
> The problem we need deal with is that of the different C++ ABIs of Sun Studio CC and
> GNU g++. Now that Sun Studio is available as a free download it's not such a big problem,
> but there are modules that won't build with Sun Studio. However Sun Studio C++ has maintained
> a stable C++ ABI for over a decade. Considering the g++ compiler in Solaris can't build
> any 64-bit binaries that are actually usable, we only deliver these packages build with
> Sun Studio. For those modules that won't build with Sun Studio, It is maintainer's
> responsibility to fix the build problems.
>
> 4. Technical Description:
> 4.1. Details:
> libsigc++ provides the following Features:
>
> - Compile time typesafe callbacks (faster than run time checks)
> - Typesafety violations report line number correctly with template names
> (no tracing template failures into headers)
> - No compiler extensions or meta compilers required
> - Proper handling of dynamic objects and signals (deleted objects will not cause seg faults)
> - Extendable API at any level: signal, slot, connection and trackable
> - Extensions do not require alteration of basic components
> - User definable accumulators
> - A variety of adaptors to change the callback signature: bind, hide, retype,
> compose and lambda call groups
> - Various compilers and platforms are supported: gcc, cygwin, mingw32, MS .NET 2003,
> Sun Forte C++, Compaq C++, Intel C++, IBM AIX, Tru64, IRIX MipsPro.
>
> cairomm is part of the gtkmm (gtk--) framework to allow developers to make full use
> of the capabilities of Object Oriented Programming language features as in C++.
>
> Cairo is a graphics description and rendering library. Cairomm provides classes
> that allow the cairo API to be accessed in an Object Oriented constructs. Cairo allow graphics
> to be created programmatical in its own language and the be rendered onto surfaces of specific
> target file formats, such as PostScript,PDF and so on.
> Current supported rendering surfaces are:
> - Image Surface (memory buffers)
> - PDF Surface
> - PostScript Surface
> - SVG Surface
> - Xlib Surface (X11 based systems)
> - Win32 Surface (Windows)
> - Quartz Surface (MacOS)
> - Glitz (OpenGL-accelerated, experimental not fully supported)
>
> These surfaces can then be augmented with the upper layer of libraries like that of gtkmm
> to create GUI application.
>
> glibmm develivers a tool called gmmproc that can create gtkmm-style wrapper of
> glib/GObject-based libraries. For example, gtkmm uses this to generate most of
> its source code, using .defs files that describe the API of C libraries in a lisp format
>
> gtkmm provides the following Features:
> - Use inheritance to derive custom widgets.
> - Type-safe signal handlers, in standard C++.
> - Polymorphism.
> - Use of Standard C++ Library, including strings, containers, and iterators.
> - Full internationalisation with UTF8.
> - Complete C++ memory management
> - Object composition
> - Automatic deallocation of dynamically allocated widgets.
> - Full use of C++ namespaces.
> - No macros.
> - Cross-platform: Linux (gcc), FreeBSD (gcc), NetBSD (gcc), Solaris (gcc, Forte),
> Win32 (gcc, MSVC++ .Net 2003), MacOS X (gcc), others
> Free software and free of cost for both Open Source and proprietary development.
> - Discussed, designed and implemented in public.
>
>
> 4.5. Interfaces:
>
> Exported Interfaces
> Interface Stability Comments
> --------------------- ---------------- ----------------------
> SUNWsigcpp Uncommitted Package names
> SUNWsigcpp-devel Uncommitted
> SUNWcairomm Uncommitted
> SUNWcairomm-devel Uncommitted
> SUNWglibmm Uncommitted
> SUNWglibmm-devel Uncommitted
> SUNWgtkmm Uncommitted
> SUNWgtkmm-devel Uncommitted
>
> /usr/lib/libsigc-2.0.so Volatile
> /usr/lib/libcairomm-1.0.so Volatile
> /usr/lib/libglibmm-2.4.so Volatile
> /usr/lib/libglibmm_generate_extra_defs-2.4.so Volatile
> /usr/lib/glibmm-2.4/proc/gmmproc Volatile
> /usr/liblibatkmm-1.6.so Volatile
> /usr/lib/libgtkmm-2.4.so Volatile
> /usr/lib/libgdkmm-2.4.so Volatile
> /usr/lib/libpangomm-1.4.so Volatile
> /usr/lib/glibmm-2.4/include/glibmmconfig.h Volatile
> /usr/lib/sigc++-2.0/include/sigc++config.h Volatile
>
> /usr/include/sigc++-2.0 Volatile Directory for hearder files
> /usr/include/cairomm-1.0 Volatile Directory for header files
> /usr/include/glibmm-2.4/glibmm Volatile Header files directory
> /usr/include/glibmm-2.4/glibmm_generate_extra_defs Volatile Header files directory
> /usr/include/atkmm-1.6 Volatile Directory for atkmm headfiles
> /usr/include/gtkmm-2.4 Volatile Directory for pangomm headfiles
> /usr/include/pangomm-1.4 Volatile Directory for gdkmm headfiles
> /usr/demo/jds/bin/gtkmm-demo Volatile
>
> /usr/lib/pkgconfig/atkmm-1.6.pc Volatile
> /usr/lib/pkgconfig/gtkmm-2.4.pc Volatile
> /usr/lib/pkgconfig/pangomm-1.4.pc Volatile
> /usr/lib/pkgconfig/cairomm-1.0.pc Volatile
> /usr/lib/pkgconfig/sigc++-2.0.pc Volatile
> /usr/lib/pkgconfig/glibmm-2.4.pc Volatile
>
> Imported Interfaces
> Interface Stability Comments
> --------------------- ---------------- ----------------------
>
> GNOME Committed Platform Libraries Committed LSARC/2007/520
> GNOME 2.20
> GTK+ library
>
> 4.9. I18N/L10N Impact:
> The JDS team and the G11N are working together to evaluation and
> provide I18N/L10N support
>
> 4.10. Packaging & Delivery:
> The project will be delivering the following packages:
> SUNWgtkmm
> SUNWgtkmm-devel
> SUNWglibmm
> SUNWglibmm-devel
> SUNWcairomm
> SUNWcairomm-devel
> SUNWsigcpp
> SUNWsigcpp-devel
>
>
> 5. Reference Documents:
> gtkmm glibmm homepage http://www.gtkmm.org/
> cairomm homepage - http://cairographics.org/cairomm
> cairomm download: http://cairographics.org/releases/
> libsigc++ Homepage - http://libsigc.sourceforge.net
> libsigc++ Tutorial - http://libsigc.sourceforge.net/libsigc2/docs/manual/html/
> libsigc++ API Reference - http://libsigc.sourceforge.net/libsigc2/docs/
>
>
> 6. Resources and Schedule
> 6.4. Steering Committee requested information
> 6.4.1. Consolidation C-team Name:
> JDS
> 6.5. ARC review type: FastTrack
> 6.6. ARC Exposure: open
>
>
More information about the opensolaris-arc
mailing list