rtaglib 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
data/swig/Doxyfile ADDED
@@ -0,0 +1,303 @@
1
+ # Doxyfile 1.5.6
2
+
3
+ #---------------------------------------------------------------------------
4
+ # Project related configuration options
5
+ #---------------------------------------------------------------------------
6
+ DOXYFILE_ENCODING = UTF-8
7
+ PROJECT_NAME = Doxygen_TagLib_Rdoc
8
+ PROJECT_NUMBER =
9
+ OUTPUT_DIRECTORY = doxygen
10
+ CREATE_SUBDIRS = NO
11
+ OUTPUT_LANGUAGE = English
12
+ BRIEF_MEMBER_DESC = YES
13
+ REPEAT_BRIEF = YES
14
+ ABBREVIATE_BRIEF = "The $name class" \
15
+ "The $name widget" \
16
+ "The $name file" \
17
+ is \
18
+ provides \
19
+ specifies \
20
+ contains \
21
+ represents \
22
+ a \
23
+ an \
24
+ the
25
+ ALWAYS_DETAILED_SEC = NO
26
+ INLINE_INHERITED_MEMB = NO
27
+ FULL_PATH_NAMES = YES
28
+ STRIP_FROM_PATH = /home/cdx/dev/rtaglib/trunk/swig/
29
+ STRIP_FROM_INC_PATH =
30
+ SHORT_NAMES = NO
31
+ JAVADOC_AUTOBRIEF = NO
32
+ QT_AUTOBRIEF = NO
33
+ MULTILINE_CPP_IS_BRIEF = NO
34
+ INHERIT_DOCS = YES
35
+ SEPARATE_MEMBER_PAGES = NO
36
+ TAB_SIZE = 8
37
+ ALIASES =
38
+ OPTIMIZE_OUTPUT_FOR_C = NO
39
+ OPTIMIZE_OUTPUT_JAVA = NO
40
+ OPTIMIZE_FOR_FORTRAN = NO
41
+ OPTIMIZE_OUTPUT_VHDL = NO
42
+ BUILTIN_STL_SUPPORT = NO
43
+ CPP_CLI_SUPPORT = NO
44
+ SIP_SUPPORT = NO
45
+ IDL_PROPERTY_SUPPORT = YES
46
+ DISTRIBUTE_GROUP_DOC = NO
47
+ SUBGROUPING = YES
48
+ TYPEDEF_HIDES_STRUCT = NO
49
+ #---------------------------------------------------------------------------
50
+ # Build related configuration options
51
+ #---------------------------------------------------------------------------
52
+ EXTRACT_ALL = NO
53
+ EXTRACT_PRIVATE = NO
54
+ EXTRACT_STATIC = NO
55
+ EXTRACT_LOCAL_CLASSES = YES
56
+ EXTRACT_LOCAL_METHODS = NO
57
+ EXTRACT_ANON_NSPACES = NO
58
+ HIDE_UNDOC_MEMBERS = YES
59
+ HIDE_UNDOC_CLASSES = YES
60
+ HIDE_FRIEND_COMPOUNDS = NO
61
+ HIDE_IN_BODY_DOCS = NO
62
+ INTERNAL_DOCS = NO
63
+ CASE_SENSE_NAMES = YES
64
+ HIDE_SCOPE_NAMES = NO
65
+ SHOW_INCLUDE_FILES = YES
66
+ INLINE_INFO = YES
67
+ SORT_MEMBER_DOCS = YES
68
+ SORT_BRIEF_DOCS = NO
69
+ SORT_GROUP_NAMES = NO
70
+ SORT_BY_SCOPE_NAME = NO
71
+ GENERATE_TODOLIST = YES
72
+ GENERATE_TESTLIST = YES
73
+ GENERATE_BUGLIST = YES
74
+ GENERATE_DEPRECATEDLIST= YES
75
+ ENABLED_SECTIONS =
76
+ MAX_INITIALIZER_LINES = 30
77
+ SHOW_USED_FILES = YES
78
+ SHOW_DIRECTORIES = NO
79
+ SHOW_FILES = YES
80
+ SHOW_NAMESPACES = YES
81
+ FILE_VERSION_FILTER =
82
+ #---------------------------------------------------------------------------
83
+ # configuration options related to warning and progress messages
84
+ #---------------------------------------------------------------------------
85
+ QUIET = NO
86
+ WARNINGS = YES
87
+ WARN_IF_UNDOCUMENTED = YES
88
+ WARN_IF_DOC_ERROR = YES
89
+ WARN_NO_PARAMDOC = NO
90
+ WARN_FORMAT = "$file:$line: $text"
91
+ WARN_LOGFILE =
92
+ #---------------------------------------------------------------------------
93
+ # configuration options related to the input files
94
+ #---------------------------------------------------------------------------
95
+ INPUT = /usr/include/taglib /mingw/include/taglib
96
+ INPUT_ENCODING = UTF-8
97
+ FILE_PATTERNS = *.c \
98
+ *.cc \
99
+ *.cxx \
100
+ *.cpp \
101
+ *.c++ \
102
+ *.d \
103
+ *.java \
104
+ *.ii \
105
+ *.ixx \
106
+ *.ipp \
107
+ *.i++ \
108
+ *.inl \
109
+ *.h \
110
+ *.hh \
111
+ *.hxx \
112
+ *.hpp \
113
+ *.h++ \
114
+ *.idl \
115
+ *.odl \
116
+ *.cs \
117
+ *.php \
118
+ *.php3 \
119
+ *.inc \
120
+ *.m \
121
+ *.mm \
122
+ *.dox \
123
+ *.py \
124
+ *.f90 \
125
+ *.f \
126
+ *.vhd \
127
+ *.vhdl \
128
+ *.C \
129
+ *.CC \
130
+ *.C++ \
131
+ *.II \
132
+ *.I++ \
133
+ *.H \
134
+ *.HH \
135
+ *.H++ \
136
+ *.CS \
137
+ *.PHP \
138
+ *.PHP3 \
139
+ *.M \
140
+ *.MM \
141
+ *.PY \
142
+ *.F90 \
143
+ *.F \
144
+ *.VHD \
145
+ *.VHDL
146
+ RECURSIVE = NO
147
+ EXCLUDE =
148
+ EXCLUDE_SYMLINKS = NO
149
+ EXCLUDE_PATTERNS =
150
+ EXCLUDE_SYMBOLS =
151
+ EXAMPLE_PATH =
152
+ EXAMPLE_PATTERNS = *
153
+ EXAMPLE_RECURSIVE = NO
154
+ IMAGE_PATH =
155
+ INPUT_FILTER =
156
+ FILTER_PATTERNS =
157
+ FILTER_SOURCE_FILES = NO
158
+ #---------------------------------------------------------------------------
159
+ # configuration options related to source browsing
160
+ #---------------------------------------------------------------------------
161
+ SOURCE_BROWSER = NO
162
+ INLINE_SOURCES = NO
163
+ STRIP_CODE_COMMENTS = YES
164
+ REFERENCED_BY_RELATION = NO
165
+ REFERENCES_RELATION = NO
166
+ REFERENCES_LINK_SOURCE = YES
167
+ USE_HTAGS = NO
168
+ VERBATIM_HEADERS = NO
169
+ #---------------------------------------------------------------------------
170
+ # configuration options related to the alphabetical class index
171
+ #---------------------------------------------------------------------------
172
+ ALPHABETICAL_INDEX = NO
173
+ COLS_IN_ALPHA_INDEX = 5
174
+ IGNORE_PREFIX =
175
+ #---------------------------------------------------------------------------
176
+ # configuration options related to the HTML output
177
+ #---------------------------------------------------------------------------
178
+ GENERATE_HTML = NO
179
+ HTML_OUTPUT = html
180
+ HTML_FILE_EXTENSION = .html
181
+ HTML_HEADER =
182
+ HTML_FOOTER =
183
+ HTML_STYLESHEET =
184
+ HTML_ALIGN_MEMBERS = YES
185
+ GENERATE_HTMLHELP = NO
186
+ GENERATE_DOCSET = NO
187
+ DOCSET_FEEDNAME = "Doxygen generated docs"
188
+ DOCSET_BUNDLE_ID = org.doxygen.Project
189
+ HTML_DYNAMIC_SECTIONS = NO
190
+ CHM_FILE =
191
+ HHC_LOCATION =
192
+ GENERATE_CHI = NO
193
+ CHM_INDEX_ENCODING =
194
+ BINARY_TOC = NO
195
+ TOC_EXPAND = NO
196
+ DISABLE_INDEX = NO
197
+ ENUM_VALUES_PER_LINE = 4
198
+ GENERATE_TREEVIEW = NONE
199
+ TREEVIEW_WIDTH = 250
200
+ FORMULA_FONTSIZE = 10
201
+ #---------------------------------------------------------------------------
202
+ # configuration options related to the LaTeX output
203
+ #---------------------------------------------------------------------------
204
+ GENERATE_LATEX = NO
205
+ LATEX_OUTPUT = latex
206
+ LATEX_CMD_NAME = latex
207
+ MAKEINDEX_CMD_NAME = makeindex
208
+ COMPACT_LATEX = NO
209
+ PAPER_TYPE = a4wide
210
+ EXTRA_PACKAGES =
211
+ LATEX_HEADER =
212
+ PDF_HYPERLINKS = YES
213
+ USE_PDFLATEX = YES
214
+ LATEX_BATCHMODE = NO
215
+ LATEX_HIDE_INDICES = NO
216
+ #---------------------------------------------------------------------------
217
+ # configuration options related to the RTF output
218
+ #---------------------------------------------------------------------------
219
+ GENERATE_RTF = NO
220
+ RTF_OUTPUT = rtf
221
+ COMPACT_RTF = NO
222
+ RTF_HYPERLINKS = NO
223
+ RTF_STYLESHEET_FILE =
224
+ RTF_EXTENSIONS_FILE =
225
+ #---------------------------------------------------------------------------
226
+ # configuration options related to the man page output
227
+ #---------------------------------------------------------------------------
228
+ GENERATE_MAN = NO
229
+ MAN_OUTPUT = man
230
+ MAN_EXTENSION = .3
231
+ MAN_LINKS = NO
232
+ #---------------------------------------------------------------------------
233
+ # configuration options related to the XML output
234
+ #---------------------------------------------------------------------------
235
+ GENERATE_XML = YES
236
+ XML_OUTPUT = xml
237
+ XML_SCHEMA =
238
+ XML_DTD =
239
+ XML_PROGRAMLISTING = YES
240
+ #---------------------------------------------------------------------------
241
+ # configuration options for the AutoGen Definitions output
242
+ #---------------------------------------------------------------------------
243
+ GENERATE_AUTOGEN_DEF = NO
244
+ #---------------------------------------------------------------------------
245
+ # configuration options related to the Perl module output
246
+ #---------------------------------------------------------------------------
247
+ GENERATE_PERLMOD = NO
248
+ PERLMOD_LATEX = NO
249
+ PERLMOD_PRETTY = YES
250
+ PERLMOD_MAKEVAR_PREFIX =
251
+ #---------------------------------------------------------------------------
252
+ # Configuration options related to the preprocessor
253
+ #---------------------------------------------------------------------------
254
+ ENABLE_PREPROCESSING = YES
255
+ MACRO_EXPANSION = NO
256
+ EXPAND_ONLY_PREDEF = NO
257
+ SEARCH_INCLUDES = YES
258
+ INCLUDE_PATH =
259
+ INCLUDE_FILE_PATTERNS =
260
+ PREDEFINED =
261
+ EXPAND_AS_DEFINED =
262
+ SKIP_FUNCTION_MACROS = YES
263
+ #---------------------------------------------------------------------------
264
+ # Configuration::additions related to external references
265
+ #---------------------------------------------------------------------------
266
+ TAGFILES =
267
+ GENERATE_TAGFILE =
268
+ ALLEXTERNALS = NO
269
+ EXTERNAL_GROUPS = YES
270
+ PERL_PATH = /usr/bin/perl
271
+ #---------------------------------------------------------------------------
272
+ # Configuration options related to the dot tool
273
+ #---------------------------------------------------------------------------
274
+ CLASS_DIAGRAMS = NO
275
+ MSCGEN_PATH =
276
+ HIDE_UNDOC_RELATIONS = YES
277
+ HAVE_DOT = YES
278
+ DOT_FONTNAME = FreeSans
279
+ DOT_FONTPATH =
280
+ CLASS_GRAPH = YES
281
+ COLLABORATION_GRAPH = YES
282
+ GROUP_GRAPHS = YES
283
+ UML_LOOK = NO
284
+ TEMPLATE_RELATIONS = NO
285
+ INCLUDE_GRAPH = YES
286
+ INCLUDED_BY_GRAPH = YES
287
+ CALL_GRAPH = NO
288
+ CALLER_GRAPH = NO
289
+ GRAPHICAL_HIERARCHY = YES
290
+ DIRECTORY_GRAPH = YES
291
+ DOT_IMAGE_FORMAT = png
292
+ DOT_PATH =
293
+ DOTFILE_DIRS =
294
+ DOT_GRAPH_MAX_NODES = 50
295
+ MAX_DOT_GRAPH_DEPTH = 1000
296
+ DOT_TRANSPARENT = YES
297
+ DOT_MULTI_TARGETS = NO
298
+ GENERATE_LEGEND = YES
299
+ DOT_CLEANUP = YES
300
+ #---------------------------------------------------------------------------
301
+ # Configuration::additions related to the search engine
302
+ #---------------------------------------------------------------------------
303
+ SEARCHENGINE = NO
data/swig/Rakefile CHANGED
@@ -13,10 +13,14 @@ task :docs => ["TagLib_doc.rb"] do |t|
13
13
  system %(rdoc -f html TagLib_doc.rb)
14
14
  end
15
15
 
16
- file "TagLib_doc.rb" => ["make_doc.rb","TagLib.so","xml"] do |t|
16
+ file "Doxyfile" do |t|
17
+ system %("touch Doxyfile")
18
+ end
19
+
20
+ file "TagLib_doc.rb" => ["make_doc.rb","TagLib.so","doxygen"] do |t|
17
21
  system %(ruby make_doc.rb)
18
22
  end
19
- file "xml" => ["Doxyfile"] do |t|
23
+ file "doxygen" => ["Doxyfile"] do |t|
20
24
  system %(doxygen)
21
25
  end
22
26
  task :test => ["TagLib.so"] do |t|
@@ -40,10 +44,17 @@ file "taglib.cxx" => ["taglib.i", "process_cxx.rb"] do |t|
40
44
  if
41
45
  !system %(swig -fvirtual -Wall -c++ -o pre_taglib -ruby taglib.i)
42
46
  system %(rm *.o *.so *.cxx)
47
+ exit 1
43
48
  end
44
49
  system %(ruby process_cxx.rb)
45
50
  end
46
51
 
47
- task :clean =>[] do |t|
52
+ task :clean do |t|
48
53
  system %(rm *.o *.so *.cxx *~ Makefile)
49
54
  end
55
+
56
+ task :test_taglib => ["test_taglib.cxx"] do |t|
57
+ system %(gcc -c test_taglib.cxx)
58
+ system %(gcc -o test_taglib test_taglib.o -ltag)
59
+ system %(./test_taglib)
60
+ end
data/swig/extconf.rb CHANGED
@@ -1,6 +1,15 @@
1
1
  require 'mkmf'
2
- $libs = append_library($libs, "supc++")
3
- $CFLAGS= " -I/usr/include/taglib"
4
- if have_library("tag")
2
+ if(PLATFORM=~/mingw/)
3
+ puts "Building for MinGW"
4
+ $libs = append_library($libs, "stdc++")
5
+ $CFLAGS= " -I/mingw/include/taglib"
6
+
7
+ else
8
+ puts "Building for other architecture"
9
+ $CFLAGS= " -I/usr/include/taglib"
10
+
11
+ end
12
+ $libs = append_library($libs, "supc++")
13
+ if have_header("taglib/taglib_export.h") and have_library("tag")
5
14
  create_makefile("TagLib")
6
15
  end
data/swig/make_doc.rb CHANGED
@@ -1,10 +1,8 @@
1
1
  #!/usr/bin/ruby
2
2
  #### Make docs
3
3
  require 'rexml/document'
4
- df=Object.methods
5
-
6
4
  require 'TagLib'
7
- fo=File.open("TagLib_doc.rb","wb")
5
+ require 'rbconfig'
8
6
 
9
7
  def data_method(fm)
10
8
  if !fm.nil?
@@ -49,7 +47,6 @@ def get_doxygen_description(xml_file)
49
47
  out+="\n # \n"
50
48
  # functions
51
49
  xml.elements.each("/doxygen/compounddef/sectiondef[@kind='public-func']/memberdef[@kind='function']") {|func|
52
-
53
50
  name=func.elements["name"].text
54
51
  brief=func.elements["briefdescription"].to_s.gsub(/<.+?>/,"")
55
52
  long=func.elements["detaileddescription"].to_s.gsub(/<.+?>/,"")
@@ -65,12 +62,21 @@ def get_doxygen_description(xml_file)
65
62
  }
66
63
  funcs[name]={:param=>param,:brief_desc=>brief,:long_desc=>long}
67
64
  }
65
+ else
66
+ puts "Can't find #{xml_file}"
68
67
  end
69
68
  {:object=>out,:functions=>funcs}
70
69
  end
70
+ def name_xml_file(klass)
71
+ klass_name=klass.to_s.gsub(":","_1")
72
+ if(Config::CONFIG['host']=~/mingw/i)
73
+ # klass_name.gsub!(/[A-Z]/) {|t| "_"+t.downcase}
74
+ end
75
+ klass_name
76
+ end
71
77
  def print_class(klass,indent)
72
78
  out=""
73
- xml_file="xml/xml/class"+klass.to_s.gsub(":","_1")+".xml"
79
+ xml_file=BASE_DOCS+"/xml/class"+name_xml_file(klass)+".xml"
74
80
  dd=get_doxygen_description(xml_file)
75
81
  out+=dd[:object]
76
82
  #p dd[:functions]
@@ -84,7 +90,7 @@ def print_class(klass,indent)
84
90
  end
85
91
  def print_module(mod,indent)
86
92
  out=""
87
- xml_file="xml/xml/namespace"+mod.to_s.gsub(":","_1")+".xml"
93
+ xml_file=BASE_DOCS+"/xml/namespace"+name_xml_file(mod)+".xml"
88
94
  dd=get_doxygen_description(xml_file)
89
95
  out+=dd[:object]
90
96
  out+=indent+"module #{mod}\n"
@@ -114,7 +120,11 @@ def print_constant(obj,con,indent)
114
120
  end
115
121
  out
116
122
  end
117
- out=""
118
- out=print_constant(ObjectSpace,"TagLib","")
119
- fo.puts out
120
- fo.close
123
+
124
+ BASE_DOCS="doxygen"
125
+ File.open("TagLib_doc.rb","wb") {|fo|
126
+ df=Object.methods
127
+ out=""
128
+ out=print_constant(ObjectSpace,"TagLib","")
129
+ fo.puts out
130
+ }
data/swig/process_cxx.rb CHANGED
@@ -15,18 +15,29 @@ File.open(file,"r") {|f| f.each_line {|l|
15
15
  clase_padre=$4
16
16
  ruta=$2.split("_")
17
17
  if(ruta.size>1)
18
- mod="mTagLib"+ruta[0,ruta.size-1].join
19
- clas=ruta[ruta.size-1]
20
- if clase_padre.nil?
21
- linea=sprintf("%s = rb_define_class_under(%s, \"%s\", rb_cObject);",clase,mod,clas)
22
- else
23
- linea=<<HERE
18
+ mod="mTagLib"+ruta[0,ruta.size-1].join
19
+ clas=ruta[ruta.size-1]
20
+ if clase_padre.nil?
21
+ linea=sprintf("%s = rb_define_class_under(%s, \"%s\", rb_cObject);",clase,mod,clas)
22
+ else
23
+ linea=<<HERE
24
24
  #{clase} = rb_define_class_under(#{mod}, "#{clas}", ((swig_class *) #{clase_padre}->clientdata)->klass);
25
25
  HERE
26
-
26
+ end
27
+ #p linea
28
+ fo.puts(linea)
29
+ else
30
+ fo.puts l
27
31
  end
28
- #p linea
29
- fo.puts(linea)
32
+ elsif l=~/\s+rb_define_module_function\((.+?), "(.+?)", VALUEFUNC\((.+)\), -1\);/
33
+ bass_mod=$1
34
+ method=$2
35
+ c_func=$3
36
+ path=method.split("_")
37
+ if(path.size>1)
38
+ mod="mTagLib"+path[0,path.size-1].join
39
+ new_method=path[path.size-1]
40
+ fo.puts("rb_define_module_function(#{mod},\"#{new_method}\", VALUEFUNC(#{c_func}),-1);\n");
30
41
  else
31
42
  fo.puts l
32
43
  end