Check for soundtouch library when using SYSLIBS
[ardour.git] / libs / glibmm2 / tools / m4 / gerror.m4
1 dnl $Id: gerror.m4,v 1.2 2006/05/12 08:08:45 murrayc Exp $
2
3 dnl
4 dnl  _GERROR(PixbufError,GdkPixbufError,GDK_PIXBUF_ERROR,`<enum_value_list>',[NO_GTYPE])
5 dnl
6
7 m4_define(`_GERROR',`dnl
8 _PUSH()
9 dnl
10 dnl  Define the args for later macros
11 m4_define(`__CPPNAME__',`$1')
12 m4_define(`__CNAME__',`$2')
13 m4_define(`__CQUARK__',`$3')
14 m4_define(`__VALUE_BASE__',`Glib::Value_Enum<__NAMESPACE__::__CPPNAME__::Code>')
15 _POP()
16 class __CPPNAME__ : public Glib::Error
17 {
18 public:
19   enum Code
20   {
21 $4
22   };
23
24   __CPPNAME__`'(Code error_code, const Glib::ustring& error_message);
25   explicit __CPPNAME__`'(GError* gobject);
26   Code code() const;
27
28 #ifndef DOXYGEN_SHOULD_SKIP_THIS
29 private:
30
31 #ifdef GLIBMM_EXCEPTIONS_ENABLED
32   static void throw_func(GError* gobject);
33 #else
34   //When not using exceptions, we just pass the Exception object around without throwing it:
35   static std::auto_ptr<Glib::Error> throw_func(GError* gobject);
36 #endif //GLIBMM_EXCEPTIONS_ENABLED
37
38   friend void wrap_init(); // uses throw_func()
39 #endif
40 };
41
42 m4_ifelse($5,`NO_GTYPE',,`dnl else
43 __NAMESPACE_END__
44
45 #ifndef DOXYGEN_SHOULD_SKIP_THIS
46 namespace Glib
47 {
48
49 template <>
50 class Value<__NAMESPACE__::__CPPNAME__::Code> : public __VALUE_BASE__
51 {
52 public:
53   static GType value_type() G_GNUC_CONST;
54 };
55
56 } // namespace Glib
57 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
58
59
60 __NAMESPACE_BEGIN__
61 ')dnl endif !NO_GTYPE
62 _PUSH(SECTION_SRC_GENERATED)
63
64 __NAMESPACE__::__CPPNAME__::__CPPNAME__`'(__NAMESPACE__::__CPPNAME__::Code error_code, const Glib::ustring& error_message)
65 :
66   Glib::Error (__CQUARK__, error_code, error_message)
67 {}
68
69 __NAMESPACE__::__CPPNAME__::__CPPNAME__`'(GError* gobject)
70 :
71   Glib::Error (gobject)
72 {}
73
74 __NAMESPACE__::__CPPNAME__::Code __NAMESPACE__::__CPPNAME__::code() const
75 {
76   return static_cast<Code>(Glib::Error::code());
77 }
78
79 #ifdef GLIBMM_EXCEPTIONS_ENABLED
80 void __NAMESPACE__::__CPPNAME__::throw_func(GError* gobject)
81 {
82   throw __NAMESPACE__::__CPPNAME__`'(gobject);
83 }
84 #else
85 //When not using exceptions, we just pass the Exception object around without throwing it:
86 std::auto_ptr<Glib::Error> __NAMESPACE__::__CPPNAME__::throw_func(GError* gobject)
87 {
88   return std::auto_ptr<Glib::Error>(new __NAMESPACE__::__CPPNAME__`'(gobject));
89 }
90 #endif //GLIBMM_EXCEPTIONS_ENABLED
91
92 m4_ifelse($5,`NO_GTYPE',,`dnl else
93 // static
94 GType Glib::Value<__NAMESPACE__::__CPPNAME__::Code>::value_type()
95 {
96   return _GET_TYPE_FUNC(__CNAME__);
97 }
98
99 ')dnl endif !NO_GTYPE
100 _POP()
101 ') dnl enddef _GERROR
102