[banshee] [build] new more flexible dependency build system
- From: Aaron Bockover <abock src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [banshee] [build] new more flexible dependency build system
- Date: Sun, 20 Dec 2009 15:46:12 +0000 (UTC)
commit 3e240058ff09fd937e3144ee148b0a56eb88f915
Author: Aaron Bockover <abockover novell com>
Date: Sun Dec 20 10:43:29 2009 -0500
[build] new more flexible dependency build system
Implemented a more flexible and simple system for building dependencies
that will be able to more easily build Mono and GTK, which is not as
straight forward as the other dependencies. Also a lot easier to maintain
and update the dep stack.
Should also be possible to extend the OS X profile to build a true bundle
for Linux as well. Would be an interesting hack.
build/bundle/build.py | 242 ++++++++++++++++++++
build/bundle/packages/flac.py | 13 +
build/bundle/packages/gst-plugins-bad.py | 18 ++
build/bundle/packages/gst-plugins-base.py | 17 ++
build/bundle/packages/gst-plugins-good.py | 20 ++
build/bundle/packages/gst-plugins-ugly.py | 18 ++
build/bundle/packages/gstreamer.py | 12 +
build/bundle/packages/ige-mac-integration-sharp.py | 7 +
build/bundle/packages/intltool.py | 7 +
build/bundle/packages/libogg.py | 7 +
build/bundle/packages/liboil.py | 12 +
build/bundle/packages/libproxy.py | 7 +
build/bundle/packages/libsoup.py | 14 ++
build/bundle/packages/libtheora.py | 7 +
build/bundle/packages/libvorbis.py | 7 +
build/bundle/packages/libxml2.py | 7 +
build/bundle/packages/ndesk-dbus-glib.py | 7 +
build/bundle/packages/ndesk-dbus.py | 7 +
build/bundle/packages/speex.py | 7 +
build/bundle/packages/taglib-sharp.py | 12 +
build/bundle/packages/taglib.py | 7 +
build/bundle/packages/wavpack.py | 7 +
build/bundle/profile.osx.py | 75 ++++++
23 files changed, 537 insertions(+), 0 deletions(-)
---
diff --git a/build/bundle/build.py b/build/bundle/build.py
new file mode 100755
index 0000000..f336c0a
--- /dev/null
+++ b/build/bundle/build.py
@@ -0,0 +1,242 @@
+#!/usr/bin/env python
+
+import os
+import sys
+import re
+import glob
+import shutil
+import urllib
+import subprocess
+
+def build_package (package, vars):
+ package_dir = os.path.dirname (package['_path'])
+ package_build_dir = os.path.join (config['build_root'],
+ '%s-%s' % (package['name'], package['version']))
+ build_success_file = os.path.join (config['build_root'],
+ '%s-%s.success' % (package['name'], package['version']))
+
+ if os.path.exists (build_success_file):
+ print 'Skipping %s - already built' % package['name']
+ return
+
+ print 'Building %s on %s (%s CPU)' % (package['name'], get_host (), get_cpu_count ())
+
+ # Set up the directories
+ if not os.path.exists (config['build_root']) or not os.path.isdir (config['build_root']):
+ os.makedirs (config['build_root'], 0755)
+
+ shutil.rmtree (package_build_dir, ignore_errors = True)
+ os.makedirs (package_build_dir)
+
+ # Copy/download sources into the build root, and adjust the
+ # sources list in the package object to be relative local
+ # filenames from the build root directory for later
+ log (0, 'Retrieving sources')
+ local_sources = []
+ for source in package['sources']:
+ source = expand_macros (source, vars)
+ local_source = os.path.join (package_dir, source)
+ local_source_file = os.path.basename (local_source)
+ local_sources.append (local_source_file)
+ local_dest_file = os.path.join (package_build_dir, local_source_file)
+
+ if os.path.isfile (local_source):
+ log (1, 'copying local source: %s' % local_source_file)
+ shutil.copy2 (local_source, local_dest_file)
+ elif source.startswith (('http', 'https', 'ftp')):
+ log (1, 'downloading remote source: %s' % source)
+ urllib.urlretrieve (source, local_dest_file)
+
+ package['sources'] = local_sources
+
+ os.chdir (package_build_dir)
+
+ for phase in ['prep', 'build', 'install']:
+ log (0, '%sing %s' % (phase.capitalize (), package['name']))
+ for step in package[phase]:
+ step = expand_macros (step, package)
+ log (1, step)
+ if step.startswith ('cd '):
+ os.chdir (step[3:])
+ else:
+ run_shell (step)
+
+ open (build_success_file, 'w').close ()
+
+def load_package_defaults (config, package):
+ # path macros
+ package['_build_root'] = os.path.join (config['build_root'], '_install')
+ package['_prefix'] = package['_build_root']
+
+ # tool macros
+ package['__configure'] = './configure --prefix=%{_prefix}'
+ package['__make'] = 'make -j%s' % get_cpu_count ()
+ package['__makeinstall'] = '%{__make} install'
+
+ # install default sections if they are missing
+ if not 'prep' in package:
+ package['prep'] = ['tar xf @{sources:0}', 'cd %{name}-%{version}']
+ if not 'build' in package:
+ package['build'] = ['%{__configure}', '%{__make}']
+ if not 'install' in package:
+ package['install'] = ['%{__makeinstall}']
+
+#--------------------------------------
+# Package file parsing
+#--------------------------------------
+
+def parse_package (package):
+ load_package_defaults (config, package)
+
+ # walk the top level to collect and save variable tree
+ vars = {}
+ for k, v in package.iteritems ():
+ if k in ['prep', 'build', 'install']:
+ continue
+ vars[k] = v
+
+ # now process the package tree and substitute variables
+ package = expand_macros (package, vars, runtime = False)
+
+ for req in ['name', 'version', 'sources', 'prep', 'build', 'install']:
+ if not req in package:
+ sys.exit ('Invalid package %s: missing %s node' % (path, req))
+
+ if not isinstance (package['sources'], (list, tuple)):
+ sys.exit ('Invalid package %s: \'sources\' node must be a list' % path)
+ elif len (package['sources']) <= 0:
+ sys.exit ('Invalid package %s: no sources defined (empty list)' % path)
+
+ return package, vars
+
+def expand_macros (node, vars, runtime = True):
+ macro_type = '%'
+ if runtime:
+ macro_type = '@'
+ def sub_macro (m):
+ macro = m.groups ()[0]
+ map = macro.split (':', 2)
+ if len (map) == 2 and map[0] in vars:
+ if isinstance (vars[map[0]], (list, tuple)):
+ map[1] = int (map[1])
+ if map[1] < len (vars[map[0]]):
+ return vars[map[0]][map[1]]
+ elif map[1] in vars[map[0]]:
+ return vars[map[0]][map[1]]
+ sys.exit ('Macro \'%s\' does not contain a child \'%s\'' % (map[0], map[1]))
+ if macro in vars:
+ return vars[macro]
+ sys.exit ('Macro \'%s\' is undefined' % macro)
+
+ if isinstance (node, dict):
+ for k, v in node.iteritems ():
+ node[k] = expand_macros (v, vars, runtime)
+ elif isinstance (node, (list, tuple)):
+ for i, v in enumerate (node):
+ node[i] = expand_macros (v, vars, runtime)
+ else:
+ orig_node = node
+ iters = 0
+ while True:
+ v = re.sub ('(?<!\\\)' + macro_type + '{([\w\:]+)}', sub_macro, node)
+ if v == node:
+ break
+ iters += 1
+ if iters >= 500:
+ sys.exit ('Too many macro substitutions, possible recursion: \'%s\'' % orig_node)
+ node = v
+
+ return node
+
+#--------------------------------------
+# Utility Functions
+#--------------------------------------
+
+def run_shell (cmd):
+ proc = subprocess.Popen (cmd, shell = True)
+ exit_code = os.waitpid (proc.pid, 0)[1]
+ if not exit_code == 0:
+ print
+ sys.exit ('ERROR: command exited with exit code %s: %s' % (exit_code, cmd))
+
+def backtick (cmd):
+ lines = []
+ for line in os.popen (cmd).readlines ():
+ lines.append (line.rstrip ('\r\n'))
+ return lines
+
+def get_host ():
+ search_paths = ['/usr/share', '/usr/local/share']
+ am_config_guess = []
+ for path in search_paths:
+ am_config_guess.extend (glob.glob (os.path.join (
+ path, os.path.join ('automake*', 'config.guess'))))
+ for config_guess in am_config_guess:
+ config_sub = os.path.join (os.path.dirname (config_guess), 'config.sub')
+ if os.access (config_guess, os.X_OK) and os.access (config_sub, os.X_OK):
+ return backtick ('%s %s' % (config_sub, backtick (config_guess)[0]))[0]
+ return 'python-%s' % os.name
+
+def get_cpu_count ():
+ try:
+ return os.sysconf ('SC_NPROCESSORS_CONF')
+ except:
+ return 1
+
+#--------------------------------------
+# Logging
+#--------------------------------------
+
+def log (level, message):
+ if level == 0:
+ print '--> %s' % message
+ elif level == 1:
+ print ' + %s' % message
+ elif level == 2:
+ print ' - %s' % message
+
+#--------------------------------------
+# Main Program
+#--------------------------------------
+
+__packages = []
+config = {
+ 'build_root': os.path.join (os.getcwd (), 'build-root')
+}
+
+def load_file (path):
+ package = None
+ packages = None
+ build_env = None
+ if not os.path.isfile (path):
+ sys.exit ('Error: %s is not a file' % path)
+ exec open (path).read ()
+ if isinstance (package, dict):
+ package['_path'] = path
+ __packages.append (parse_package (package))
+ elif isinstance (packages, (list, tuple)):
+ pass
+ for package in packages:
+ load_file (package)
+ if isinstance (build_env, dict):
+ print '%s is overriding build_env config' % path
+ globals ()['config'] = build_env
+
+if __name__ == '__main__':
+ for arg in sys.argv[1:]:
+ load_file (arg)
+
+ config_vars = {}
+ for d in [config, config['environ']]:
+ for k, v in d.iteritems ():
+ config_vars[k] = v
+ config = expand_macros (config, config_vars, False)
+
+ if config['environ']:
+ log (0, 'Setting environment variables')
+ for k, v in config['environ'].iteritems ():
+ os.environ[k] = v
+ log (1, '%s = %s' % (k, os.getenv (k)))
+
+ for package, vars in __packages:
+ build_package (package, vars)
diff --git a/build/bundle/packages/flac.py b/build/bundle/packages/flac.py
new file mode 100644
index 0000000..15caf07
--- /dev/null
+++ b/build/bundle/packages/flac.py
@@ -0,0 +1,13 @@
+package = {
+ 'name': 'flac',
+ 'version': '1.2.1',
+ 'sources': [
+ 'http://downloads.xiph.org/releases/%{name}/%{name}-%{version}.tar.gz'
+ ],
+ 'build': [
+ '%{__configure}' \
+ ' --disable-asm-optimizations' \
+ ' --disable-cpplibs',
+ '%{__make}'
+ ]
+}
diff --git a/build/bundle/packages/gst-plugins-bad.py b/build/bundle/packages/gst-plugins-bad.py
new file mode 100644
index 0000000..2720992
--- /dev/null
+++ b/build/bundle/packages/gst-plugins-bad.py
@@ -0,0 +1,18 @@
+package = {
+ 'name': 'gst-plugins-bad',
+ 'version': '0.10.17',
+ 'sources': [
+ 'http://gstreamer.freedesktop.org/src/%{name}/%{name}-%{version}.tar.gz'
+ ],
+ 'build': [
+ '%{__configure}' \
+ ' --disable-gtk-doc' \
+ ' --with-plugins=quicktime' \
+ ' --disable-apexsink' \
+ ' --disable-bz2' \
+ ' --disable-metadata' \
+ ' --disable-oss4' \
+ ' --disable-theoradec',
+ '%{__make}'
+ ]
+}
diff --git a/build/bundle/packages/gst-plugins-base.py b/build/bundle/packages/gst-plugins-base.py
new file mode 100644
index 0000000..acafcc9
--- /dev/null
+++ b/build/bundle/packages/gst-plugins-base.py
@@ -0,0 +1,17 @@
+package = {
+ 'name': 'gst-plugins-base',
+ 'version': '0.10.25',
+ 'sources': [
+ 'http://gstreamer.freedesktop.org/src/%{name}/%{name}-%{version}.tar.gz'
+ ],
+ 'build': [
+ '%{__configure}' \
+ ' --disable-gtk-doc' \
+ ' --disable-x' \
+ ' --disable-xvideo' \
+ ' --disable-xshm' \
+ ' --disable-gio' \
+ ' --disable-gnome_vfs',
+ '%{__make}'
+ ]
+}
diff --git a/build/bundle/packages/gst-plugins-good.py b/build/bundle/packages/gst-plugins-good.py
new file mode 100644
index 0000000..184e2aa
--- /dev/null
+++ b/build/bundle/packages/gst-plugins-good.py
@@ -0,0 +1,20 @@
+package = {
+ 'name': 'gst-plugins-good',
+ 'version': '0.10.17',
+ 'sources': [
+ 'http://gstreamer.freedesktop.org/src/%{name}/%{name}-%{version}.tar.gz'
+ ],
+ 'build': [
+ '%{__configure}' \
+ ' --disable-gtk-doc' \
+ ' --disable-x' \
+ ' --disable-xvideo' \
+ ' --disable-xshm' \
+ ' --disable-gdk_pixbuf' \
+ ' --disable-cairo' \
+ ' --disable-jpeg' \
+ ' --disable-libpng' \
+ ' --disable-annodex',
+ '%{__make}'
+ ]
+}
diff --git a/build/bundle/packages/gst-plugins-ugly.py b/build/bundle/packages/gst-plugins-ugly.py
new file mode 100644
index 0000000..0959cc0
--- /dev/null
+++ b/build/bundle/packages/gst-plugins-ugly.py
@@ -0,0 +1,18 @@
+package = {
+ 'name': 'gst-plugins-ugly',
+ 'version': '0.10.13',
+ 'sources': [
+ 'http://gstreamer.freedesktop.org/src/%{name}/%{name}-%{version}.tar.gz'
+ ],
+ 'build': [
+ '%{__configure}' \
+ ' --disable-gtk-doc' \
+ ' --disable-asfdemux' \
+ ' --disable-dvdsub' \
+ ' --disable-dvdlpcmdec' \
+ ' --disable-iec958' \
+ ' --disable-mpegstream' \
+ ' --disable-realmedia',
+ '%{__make}'
+ ]
+}
diff --git a/build/bundle/packages/gstreamer.py b/build/bundle/packages/gstreamer.py
new file mode 100644
index 0000000..27b740b
--- /dev/null
+++ b/build/bundle/packages/gstreamer.py
@@ -0,0 +1,12 @@
+package = {
+ 'name': 'gstreamer',
+ 'version': '0.10.25',
+ 'sources': [
+ 'http://gstreamer.freedesktop.org/src/%{name}/%{name}-%{version}.tar.gz'
+ ],
+ 'build': [
+ '%{__configure}' \
+ ' --disable-gtk-doc',
+ '%{__make}'
+ ]
+}
diff --git a/build/bundle/packages/ige-mac-integration-sharp.py b/build/bundle/packages/ige-mac-integration-sharp.py
new file mode 100644
index 0000000..4fc7aee
--- /dev/null
+++ b/build/bundle/packages/ige-mac-integration-sharp.py
@@ -0,0 +1,7 @@
+package = {
+ 'name': 'ige-mac-integration-sharp',
+ 'version': '0.8.2',
+ 'sources': [
+ 'http://randomrules.org/files/%{name}-%{version}.tar.gz'
+ ]
+}
diff --git a/build/bundle/packages/intltool.py b/build/bundle/packages/intltool.py
new file mode 100644
index 0000000..e21b173
--- /dev/null
+++ b/build/bundle/packages/intltool.py
@@ -0,0 +1,7 @@
+package = {
+ 'name': 'intltool',
+ 'version': '0.40.6',
+ 'sources': [
+ 'http://ftp.gnome.org/pub/gnome/sources/intltool/0.40/%{name}-%{version}.tar.bz2'
+ ]
+}
diff --git a/build/bundle/packages/libogg.py b/build/bundle/packages/libogg.py
new file mode 100644
index 0000000..c433102
--- /dev/null
+++ b/build/bundle/packages/libogg.py
@@ -0,0 +1,7 @@
+package = {
+ 'name': 'libogg',
+ 'version': '1.1.4',
+ 'sources': [
+ 'http://downloads.xiph.org/releases/ogg/%{name}-%{version}.tar.gz'
+ ]
+}
diff --git a/build/bundle/packages/liboil.py b/build/bundle/packages/liboil.py
new file mode 100644
index 0000000..6243732
--- /dev/null
+++ b/build/bundle/packages/liboil.py
@@ -0,0 +1,12 @@
+package = {
+ 'name': 'liboil',
+ 'version': '0.3.16',
+ 'sources': [
+ 'http://liboil.freedesktop.org/download/%{name}-%{version}.tar.gz'
+ ],
+ 'build': [
+ '%{__configure}' \
+ ' --disable-gtk-doc',
+ '%{__make}'
+ ]
+}
diff --git a/build/bundle/packages/libproxy.py b/build/bundle/packages/libproxy.py
new file mode 100644
index 0000000..770d4f2
--- /dev/null
+++ b/build/bundle/packages/libproxy.py
@@ -0,0 +1,7 @@
+package = {
+ 'name': 'libproxy',
+ 'version': '0.3.1',
+ 'sources': [
+ 'http://libproxy.googlecode.com/files/%{name}-%{version}.tar.bz2'
+ ]
+}
diff --git a/build/bundle/packages/libsoup.py b/build/bundle/packages/libsoup.py
new file mode 100644
index 0000000..8fbd4b7
--- /dev/null
+++ b/build/bundle/packages/libsoup.py
@@ -0,0 +1,14 @@
+package = {
+ 'name': 'libsoup',
+ 'version': '2.28.2',
+ 'sources': [
+ 'http://ftp.gnome.org/pub/gnome/sources/libsoup/2.28/%{name}-%{version}.tar.bz2'
+ ],
+ 'build': [
+ '%{__configure}' \
+ ' --without-gnome' \
+ ' --disable-gtk-doc' \
+ ' --disable-ssl',
+ '%{__make}'
+ ]
+}
diff --git a/build/bundle/packages/libtheora.py b/build/bundle/packages/libtheora.py
new file mode 100644
index 0000000..76260a4
--- /dev/null
+++ b/build/bundle/packages/libtheora.py
@@ -0,0 +1,7 @@
+package = {
+ 'name': 'libtheora',
+ 'version': '1.1beta3',
+ 'sources': [
+ 'http://downloads.xiph.org/releases/theora/%{name}-%{version}.tar.gz'
+ ]
+}
diff --git a/build/bundle/packages/libvorbis.py b/build/bundle/packages/libvorbis.py
new file mode 100644
index 0000000..73a3e41
--- /dev/null
+++ b/build/bundle/packages/libvorbis.py
@@ -0,0 +1,7 @@
+package = {
+ 'name': 'libvorbis',
+ 'version': '1.2.3',
+ 'sources': [
+ 'http://downloads.xiph.org/releases/vorbis/%{name}-%{version}.tar.gz'
+ ]
+}
diff --git a/build/bundle/packages/libxml2.py b/build/bundle/packages/libxml2.py
new file mode 100644
index 0000000..eb3e8df
--- /dev/null
+++ b/build/bundle/packages/libxml2.py
@@ -0,0 +1,7 @@
+package = {
+ 'name': 'libxml2',
+ 'version': '2.6.30',
+ 'sources': [
+ 'http://ftp.gnome.org/pub/gnome/sources/libxml2/2.6/%{name}-%{version}.tar.bz2'
+ ]
+}
diff --git a/build/bundle/packages/ndesk-dbus-glib.py b/build/bundle/packages/ndesk-dbus-glib.py
new file mode 100644
index 0000000..33c8a92
--- /dev/null
+++ b/build/bundle/packages/ndesk-dbus-glib.py
@@ -0,0 +1,7 @@
+package = {
+ 'name': 'ndesk-dbus-glib',
+ 'version': '0.4.1',
+ 'sources': [
+ 'http://www.ndesk.org/archive/dbus-sharp/%{name}-%{version}.tar.gz'
+ ]
+}
diff --git a/build/bundle/packages/ndesk-dbus.py b/build/bundle/packages/ndesk-dbus.py
new file mode 100644
index 0000000..758e850
--- /dev/null
+++ b/build/bundle/packages/ndesk-dbus.py
@@ -0,0 +1,7 @@
+package = {
+ 'name': 'ndesk-dbus',
+ 'version': '0.6.0',
+ 'sources': [
+ 'http://www.ndesk.org/archive/dbus-sharp/%{name}-%{version}.tar.gz'
+ ]
+}
diff --git a/build/bundle/packages/speex.py b/build/bundle/packages/speex.py
new file mode 100644
index 0000000..b0fb308
--- /dev/null
+++ b/build/bundle/packages/speex.py
@@ -0,0 +1,7 @@
+package = {
+ 'name': 'speex',
+ 'version': '1.2rc1',
+ 'sources': [
+ 'http://downloads.xiph.org/releases/%{name}/%{name}-%{version}.tar.gz'
+ ]
+}
diff --git a/build/bundle/packages/taglib-sharp.py b/build/bundle/packages/taglib-sharp.py
new file mode 100644
index 0000000..78d6ce8
--- /dev/null
+++ b/build/bundle/packages/taglib-sharp.py
@@ -0,0 +1,12 @@
+package = {
+ 'name': 'taglib-sharp',
+ 'version': '2.0.3.3',
+ 'sources': [
+ 'http://download.banshee-project.org/taglib-sharp/%{version}/%{name}-%{version}.tar.gz'
+ ],
+ 'build': [
+ '%{__configure}' \
+ ' --disable-docs',
+ '%{__make}'
+ ]
+}
diff --git a/build/bundle/packages/taglib.py b/build/bundle/packages/taglib.py
new file mode 100644
index 0000000..4c15493
--- /dev/null
+++ b/build/bundle/packages/taglib.py
@@ -0,0 +1,7 @@
+package = {
+ 'name': 'taglib',
+ 'version': '1.6',
+ 'sources': [
+ 'http://developer.kde.org/~wheeler/files/src/%{name}-%{version}.tar.gz'
+ ]
+}
diff --git a/build/bundle/packages/wavpack.py b/build/bundle/packages/wavpack.py
new file mode 100644
index 0000000..8535f37
--- /dev/null
+++ b/build/bundle/packages/wavpack.py
@@ -0,0 +1,7 @@
+package = {
+ 'name': 'wavpack',
+ 'version': '4.60.1',
+ 'sources': [
+ 'http://www.wavpack.com/%{name}-%{version}.tar.bz2'
+ ]
+}
diff --git a/build/bundle/profile.osx.py b/build/bundle/profile.osx.py
new file mode 100644
index 0000000..b0b5bd8
--- /dev/null
+++ b/build/bundle/profile.osx.py
@@ -0,0 +1,75 @@
+build_env = {
+ 'build_root': os.path.join (os.getcwd (), 'build-root'),
+ 'prefix': '%{build_root}/_install',
+ 'mac_sdk_path': '/Developer/SDKs/MacOSX10.5.sdk',
+ 'mono_sdk_path': '/Library/Frameworks/Mono.framework/Versions/Current',
+}
+
+search_paths = ['%{prefix}', '%{mono_sdk_path}']
+bin_paths = [os.path.join (p, 'bin') for p in search_paths]
+bin_paths.extend (['/usr/bin', '/bin'])
+lib_paths = [os.path.join (p, 'lib') for p in search_paths]
+aclocal_paths = [os.path.join (p, 'share', 'aclocal') for p in search_paths]
+
+gcc_flags = [
+ '-m32',
+ '-arch i386',
+ '-D_XOPEN_SOURCE',
+ '-isysroot %{mac_sdk_path}',
+ '-mmacosx-version-min=10.5',
+]
+gcc_flags.extend (['-I' + os.path.join (p, 'include') for p in search_paths])
+
+build_env['environ'] = {
+ 'PATH': ':'.join (bin_paths),
+ 'CFLAGS': ' '.join (gcc_flags),
+ 'CXXFLAGS': '%{CFLAGS}',
+ 'LD_LIBRARY_PATH': ':'.join (lib_paths),
+ 'LDFLAGS': ' '.join (['-L' + p for p in lib_paths]),
+ 'ACLOCAL_FLAGS': ' '.join (['-I' + p for p in aclocal_paths]),
+ 'PKG_CONFIG_PATH': ':'.join ([
+ os.path.join (p, d, 'pkgconfig')
+ for p in search_paths
+ for d in ['lib', 'share']
+ ])
+}
+
+packages = [
+ # Base dependencies
+ 'packages/libxml2.py',
+ 'packages/libproxy.py',
+ 'packages/intltool.py',
+ 'packages/libsoup.py',
+
+ # Xiph codecs/formats
+ 'packages/libogg.py',
+ 'packages/libvorbis.py',
+ 'packages/flac.py',
+ 'packages/libtheora.py',
+ 'packages/speex.py',
+
+ # Various formats
+ 'packages/wavpack.py',
+ 'packages/taglib.py',
+
+ # GStreamer
+ 'packages/liboil.py',
+ 'packages/gstreamer.py',
+ 'packages/gst-plugins-base.py',
+ 'packages/gst-plugins-good.py',
+ 'packages/gst-plugins-bad.py',
+ 'packages/gst-plugins-ugly.py',
+
+ # Managed Deps
+ 'packages/ndesk-dbus.py',
+ 'packages/ndesk-dbus-glib.py',
+ 'packages/taglib-sharp.py',
+ 'packages/ige-mac-integration-sharp.py'
+]
+
+if not os.path.isdir (build_env['mac_sdk_path']):
+ sys.exit ('Mac OS X SDK does not exist: %s' % build_env['mac_sdk_path'])
+
+if not os.path.isdir (build_env['mono_sdk_path']):
+ sys.exit ('Mono SDK does not exist: %s' % build_env['mono_sdk_path'])
+
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]