fed92ce0a3010a4df60f1692c33daec522fb749f
[ardour.git] / libs / taglib / SConscript
1 # -*- python -*-
2
3 import os.path
4 import os
5 import glob
6 from shutil import copy
7
8 Import('env install_prefix libraries')
9 taglib = env.Clone()
10
11 taglib_files = glob.glob ('taglib/*.cpp')
12 taglib_files += glob.glob ('taglib/flac/*.cpp')
13 taglib_files += glob.glob ('taglib/mpc/*.cpp')
14 taglib_files += glob.glob ('taglib/mpeg/*.cpp')
15 taglib_files += glob.glob ('taglib/mpeg/id3v1/*.cpp')
16 taglib_files += glob.glob ('taglib/mpeg/id3v2/*.cpp')
17 taglib_files += glob.glob ('taglib/mpeg/id3v2/frames/*.cpp')
18 taglib_files += glob.glob ('taglib/ogg/*.cpp')
19 taglib_files += glob.glob ('taglib/ogg/vorbis/*.cpp')
20 taglib_files += glob.glob ('taglib/ogg/speex/*.cpp')
21 taglib_files += glob.glob ('taglib/ogg/flac/*.cpp')
22 taglib_files += glob.glob ('taglib/trueaudio/*.cpp')
23 taglib_files += glob.glob ('taglib/wavpack/*.cpp')
24 taglib_files += glob.glob ('taglib/ape/*.cpp')
25 taglib_files += glob.glob ('taglib/toolkit/*.cpp')
26
27
28 domain = 'taglib'
29
30 taglib.Append(CCFLAGS = "-DPACKAGE=\\\"" + domain + "\\\"")
31 # mingw may need this
32 #taglib.Append(CCFLAGS="-no-undefined")
33 taglib.Append(PACKAGE = domain)
34 taglib.Append(POTFILE = domain + '.pot')
35 taglib.Append (CPPATH= [ '#libs/taglib/taglib',
36                          '#libs/taglib/taglib/toolkit',
37                          '#libs/taglib/taglib/flac' +
38                          '#libs/taglib/taglib/ape',
39                          '#libs/taglib/taglib/mpc',
40                          '#libs/taglib/taglib/mpeg',
41                          '#libs/taglib/taglib/mpeg/id3v1',
42                          '#libs/taglib/taglib/mpeg/id3v2',
43                          '#libs/taglib/taglib/wavpack',
44                          '#libs/taglib/taglib/trueaudio',
45                          '#libs/taglib/taglib/ogg'
46                          '#libs/taglib/taglib/ogg/vorbis'
47                          '#libs/taglib/taglib/ogg/speex'
48                          '#libs/taglib/taglib/ogg/flac'
49                         ],
50                CXXFLAGS= [ "-Ilibs/taglib/taglib",
51                            "-Ilibs/taglib/taglib/toolkit",
52                            "-Ilibs/taglib/taglib/flac",
53                            "-Ilibs/taglib/taglib/ape",
54                            "-Ilibs/taglib/taglib/mpc",
55                            "-Ilibs/taglib/taglib/mpeg",
56                            "-Ilibs/taglib/taglib/mpeg/id3v1",
57                            "-Ilibs/taglib/taglib/mpeg/id3v2",
58                            "-Ilibs/taglib/taglib/wavpack",
59                            "-Ilibs/taglib/taglib/trueaudio",
60                            "-Ilibs/taglib/taglib/ogg",
61                            "-Ilibs/taglib/taglib/ogg/vorbis",
62                            "-Ilibs/taglib/taglib/ogg/speex",
63                            "-Ilibs/taglib/taglib/ogg/flac"
64                            ]
65                )
66
67
68 #conf = Configure(taglib)
69 #taglib = conf.finish ()
70
71 headers = Split ("""
72 taglib/audioproperties.h
73 taglib/fileref.h
74 taglib/tag.h
75 taglib/taglib_export.h
76 taglib/tagunion.h
77 taglib/ape/apefooter.h
78 taglib/ape/apeitem.h
79 taglib/ape/apetag.h
80 taglib/flac/flacfile.h
81 taglib/flac/flacproperties.h
82 taglib/mpc/mpcfile.h
83 taglib/mpc/mpcproperties.h
84 taglib/mpeg/mpegfile.h
85 taglib/mpeg/mpegheader.h
86 taglib/mpeg/mpegproperties.h
87 taglib/mpeg/xingheader.h
88 taglib/ogg/oggfile.h
89 taglib/ogg/oggpage.h
90 taglib/ogg/oggpageheader.h
91 taglib/ogg/xiphcomment.h
92 taglib/toolkit/taglib.h
93 taglib/toolkit/tbytevector.h
94 taglib/toolkit/tbytevectorlist.h
95 taglib/toolkit/tdebug.h
96 taglib/toolkit/tfile.h
97 taglib/toolkit/tlist.h
98 taglib/toolkit/tlist.tcc
99 taglib/toolkit/tmap.h
100 taglib/toolkit/tmap.tcc
101 taglib/toolkit/tstring.h
102 taglib/toolkit/tstringlist.h
103 taglib/toolkit/unicode.h
104 taglib/trueaudio/trueaudiofile.h
105 taglib/trueaudio/trueaudioproperties.h
106 taglib/wavpack/wavpackfile.h
107 taglib/wavpack/wavpackproperties.h
108 """)
109
110 libtaglib = taglib.SharedLibrary ('taglib', taglib_files)
111  
112 #
113 # the header structure of this library is not very convenient
114 # if you don't want to install the library. headers are distributed
115 # all over the place, making a simple -Ipath flag for the compiler
116 # rather difficult. This hack creates a directory and copies
117 # the headers into it, allowing us to use -I#libs/taglib/headers
118 #
119
120 def headercopy(env, target, source):
121     if os.access (str(target[0]), os.X_OK) != True:
122         os.makedirs (str(target[0]))
123     for file in source : 
124         copy (str(file), str(target[0]))
125         
126 header_dir = taglib.Command ('#libs/taglib/headers/taglib', headers, headercopy)
127
128 config_h = taglib.Command('config.h', ['config.h.in'], 'cd libs/taglib && ./configure && cd -', ENV=os.environ)
129
130 Default([config_h,header_dir,libtaglib])
131
132 env.Alias('install', env.Install(os.path.join(install_prefix, env['LIBDIR'], 'ardour3'), libtaglib))
133
134 env.Alias('tarball', env.Distribute (env['DISTTREE'],
135                                      [ 'AUTHORS',
136                                        'configure',
137                                        'config.h.in',
138                                        'acinclude.m4',
139                                        'Makefile.am',
140                                        'SConscript',
141                                        'taglib.pc.in',
142                                        'admin/config.sub',
143                                        'admin/config.guess',
144                                        'admin/conf.change.pl',
145                                        'admin/install-sh'
146                                      ] +
147                                      taglib_files +
148                                      headers
149                                      ))