Include stripped down libsmf code internally.
[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 if env['IS_OSX']:
68     taglib.Append (LINKFLAGS= [ "-lz" ] )
69
70 #conf = Configure(taglib)
71 #taglib = conf.finish ()
72
73 headers = Split ("""
74 taglib/audioproperties.h
75 taglib/fileref.h
76 taglib/tag.h
77 taglib/taglib_export.h
78 taglib/tagunion.h
79 taglib/ape/apefooter.h
80 taglib/ape/apeitem.h
81 taglib/ape/apetag.h
82 taglib/flac/flacfile.h
83 taglib/flac/flacproperties.h
84 taglib/mpc/mpcfile.h
85 taglib/mpc/mpcproperties.h
86 taglib/mpeg/mpegfile.h
87 taglib/mpeg/mpegheader.h
88 taglib/mpeg/mpegproperties.h
89 taglib/mpeg/xingheader.h
90 taglib/ogg/oggfile.h
91 taglib/ogg/oggpage.h
92 taglib/ogg/oggpageheader.h
93 taglib/ogg/xiphcomment.h
94 taglib/toolkit/taglib.h
95 taglib/toolkit/tbytevector.h
96 taglib/toolkit/tbytevectorlist.h
97 taglib/toolkit/tdebug.h
98 taglib/toolkit/tfile.h
99 taglib/toolkit/tlist.h
100 taglib/toolkit/tlist.tcc
101 taglib/toolkit/tmap.h
102 taglib/toolkit/tmap.tcc
103 taglib/toolkit/tstring.h
104 taglib/toolkit/tstringlist.h
105 taglib/toolkit/unicode.h
106 taglib/trueaudio/trueaudiofile.h
107 taglib/trueaudio/trueaudioproperties.h
108 taglib/wavpack/wavpackfile.h
109 taglib/wavpack/wavpackproperties.h
110 """)
111
112 libtaglib = taglib.SharedLibrary ('taglib', taglib_files)
113  
114 #
115 # the header structure of this library is not very convenient
116 # if you don't want to install the library. headers are distributed
117 # all over the place, making a simple -Ipath flag for the compiler
118 # rather difficult. This hack creates a directory and copies
119 # the headers into it, allowing us to use -I#libs/taglib/headers
120 #
121
122 def headercopy(env, target, source):
123     if os.access (str(target[0]), os.X_OK) != True:
124         os.makedirs (str(target[0]))
125     for file in source : 
126         copy (str(file), str(target[0]))
127         
128 header_dir = taglib.Command ('#libs/taglib/headers/taglib', headers, headercopy)
129
130 config_h = taglib.Command('config.h', ['config.h.in'], 'cd libs/taglib && ./configure && cd -', ENV=os.environ)
131
132 Default([config_h,header_dir,libtaglib])
133
134 env.Alias('install', env.Install(os.path.join(install_prefix, env['LIBDIR'], 'ardour3'), libtaglib))
135
136 env.Alias('tarball', env.Distribute (env['DISTTREE'],
137                                      [ 'AUTHORS',
138                                        'configure',
139                                        'config.h.in',
140                                        'acinclude.m4',
141                                        'Makefile.am',
142                                        'SConscript',
143                                        'taglib.pc.in',
144                                        'admin/config.sub',
145                                        'admin/config.guess',
146                                        'admin/conf.change.pl',
147                                        'admin/install-sh'
148                                      ] +
149                                      taglib_files +
150                                      headers
151                                      ))