rtaglib 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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