import time
import platform
import string
+import commands
from sets import Set
import SCons.Node.FS
SConsignFile()
EnsureSConsVersion(0, 96)
-version = '2.0beta4'
+version = '2.0beta6.1'
subst_dict = { }
opts = Options('scache.conf')
opts.AddOptions(
- ('ARCH', 'Set architecture-specific compilation flags by hand (all flags as 1 argument)',''),
+ ('ARCH', 'Set architecture-specific compilation flags by hand (all flags as 1 argument)',''),
BoolOption('AUDIOUNITS', 'Compile with Apple\'s AudioUnit library. (experimental)', 0),
BoolOption('COREAUDIO', 'Compile with Apple\'s CoreAudio library', 0),
BoolOption('DEBUG', 'Set to build with debugging information and no optimizations', 0),
# note: requires that DOMAIN, MAJOR, MINOR, MICRO are set in the construction environment
# note: assumes one source files, the header that declares the version variables
#
+
def version_builder (target, source, env):
- text = "int " + env['DOMAIN'] + "_major_version = " + str (env['MAJOR']) + ";\n"
- text += "int " + env['DOMAIN'] + "_minor_version = " + str (env['MINOR']) + ";\n"
- text += "int " + env['DOMAIN'] + "_micro_version = " + str (env['MICRO']) + ";\n"
-
- try:
- o = file (target[0].get_path(), 'w')
- o.write (text)
- o.close ()
- except IOError:
- print "Could not open", target[0].get_path(), " for writing\n"
- sys.exit (-1)
-
- text = "#ifndef __" + env['DOMAIN'] + "_version_h__\n"
- text += "#define __" + env['DOMAIN'] + "_version_h__\n"
- text += "extern int " + env['DOMAIN'] + "_major_version;\n"
- text += "extern int " + env['DOMAIN'] + "_minor_version;\n"
- text += "extern int " + env['DOMAIN'] + "_micro_version;\n"
- text += "#endif /* __" + env['DOMAIN'] + "_version_h__ */\n"
-
- try:
- o = file (target[1].get_path(), 'w')
- o.write (text)
- o.close ();
- except IOError:
- print "Could not open", target[1].get_path(), " for writing\n"
- sys.exit (-1)
-
- return None
+ cmd = "svn info "
+ cmd += source[0].get_path()
+ cmd += " | awk '/^Revision:/ { print $2}'"
+
+ rev = commands.getoutput (cmd)
+
+ text = "const char* " + env['DOMAIN'] + "_revision = \"" + rev + "\";\n"
+ text += "int " + env['DOMAIN'] + "_major_version = " + str (env['MAJOR']) + ";\n"
+ text += "int " + env['DOMAIN'] + "_minor_version = " + str (env['MINOR']) + ";\n"
+ text += "int " + env['DOMAIN'] + "_micro_version = " + str (env['MICRO']) + ";\n"
+
+ try:
+ o = file (target[0].get_path(), 'w')
+ o.write (text)
+ o.close ()
+ except IOError:
+ print "Could not open", target[0].get_path(), " for writing\n"
+ sys.exit (-1)
+
+ text = "#ifndef __" + env['DOMAIN'] + "_version_h__\n"
+ text += "#define __" + env['DOMAIN'] + "_version_h__\n"
+ text += "extern const char* " + env['DOMAIN'] + "_revision;\n"
+ text += "extern int " + env['DOMAIN'] + "_major_version;\n"
+ text += "extern int " + env['DOMAIN'] + "_minor_version;\n"
+ text += "extern int " + env['DOMAIN'] + "_micro_version;\n"
+ text += "#endif /* __" + env['DOMAIN'] + "_version_h__ */\n"
+
+ try:
+ o = file (target[1].get_path(), 'w')
+ o.write (text)
+ o.close ();
+ except IOError:
+ print "Could not open", target[1].get_path(), " for writing\n"
+ sys.exit (-1)
+
+ return None
version_bld = Builder (action = version_builder)
env.Append (BUILDERS = {'VersionBuild' : version_bld})
subst_dict['%MIDITAG%'] = "ardour"
subst_dict['%MIDITYPE%'] = "coremidi"
else:
- print "It appears you don't have the required MIDI libraries installed."
+ print "It appears you don't have the required MIDI libraries installed. For Linux this means you are missing the development package for ALSA libraries."
sys.exit (1)
env = conf.Finish()
# cannot use system one for the time being
#
- libraries['sndfile'] = LibraryInfo(LIBS='libsndfile',
+ libraries['sndfile-ardour'] = LibraryInfo(LIBS='libsndfile-ardour',
LIBPATH='#libs/libsndfile',
CPPPATH=['#libs/libsndfile', '#libs/libsndfile/src'])
'libs/libsndfile',
'libs/pbd',
'libs/midi++2',
- 'libs/ardour'
+ 'libs/ardour',
+ # these are unconditionally included but have
+ # tests internally to avoid compilation etc
+ # if VST is not set
+ 'libs/fst',
+ 'vst',
+ # this is unconditionally included but has
+ # tests internally to avoid compilation etc
+ # if COREAUDIO is not set
+ 'libs/appleutility'
]
- if env['VST']:
- subdirs = ['libs/fst'] + subdirs + ['vst']
-
- if env['COREAUDIO']:
- subdirs = subdirs + ['libs/appleutility']
-
gtk_subdirs = [
# 'libs/flowcanvas',
'libs/gtkmm2ext',
libraries['soundtouch'] = LibraryInfo(LIBS='soundtouch',
LIBPATH='#libs/soundtouch',
CPPPATH=['#libs', '#libs/soundtouch'])
- libraries['sndfile'] = LibraryInfo(LIBS='libsndfile',
+ libraries['sndfile-ardour'] = LibraryInfo(LIBS='libsndfile-ardour',
LIBPATH='#libs/libsndfile',
CPPPATH=['#libs/libsndfile', '#libs/libsndfile/src'])
# libraries['libglademm'] = LibraryInfo(LIBS='libglademm',
'libs/libsndfile',
'libs/pbd',
'libs/midi++2',
- 'libs/ardour'
+ 'libs/ardour',
+ # these are unconditionally included but have
+ # tests internally to avoid compilation etc
+ # if VST is not set
+ 'libs/fst',
+ 'vst',
+ # this is unconditionally included but has
+ # tests internally to avoid compilation etc
+ # if COREAUDIO is not set
+ 'libs/appleutility'
]
- if env['VST']:
- subdirs = ['libs/fst'] + subdirs + ['vst']
-
- if env['COREAUDIO']:
- subdirs = subdirs + ['libs/appleutility']
-
gtk_subdirs = [
'libs/glibmm2',
'libs/gtkmm2/pango',
srcdist = env.Tarball(env['TARBALL'], env['DISTTREE'])
env.Alias ('srctar', srcdist)
+
#
# don't leave the distree around
#