
EnsureSConsVersion(0,14);
#EnsurePythonVersion(2,1); this is buggy in scons, so i commented this out

import os;
import string;
import sys

import detect;

moc_binary = "moc"

################# QT FILES PARSER ##############

def process_moc_list(moc_list):
	for moc_file in moc_list:
		must_create=0;

		moc_source = moc_file;
		moc_dest = 'moc__' + moc_file[:-2] + '.cpp';
                if (not os.path.exists(moc_dest)):
			must_create=1;
		else:
			date_src = os.path.getmtime(moc_source);
			date_dst = os.path.getmtime(moc_dest);
			if (date_src > date_dst):
				must_create=1;

		if (must_create==0):
			continue;
		moc_command = moc_binary + ' ' + moc_source + ' > ' + moc_dest;

		print("MOC check: " +moc_source);
		print("moc command:" + moc_command);
		os.system(moc_command);


########################

env = Environment(CPPPATH = ['#/common','#.','#/common/defines']);


if (detect.check_dependences(env)):
	sys.exit(1);

moc_binary=env.moc_bin;
print "detected " + env.moc_bin;

#env.sigc_flags=sigc_flags;
#env.sigc_libs=sigc_libs;
#env.gtkmm_flags=gtkmm_flags;
#env.gtkmm_libs=gtkmm_libs;

env.Append(CXXFLAGS=env.sigc_flags);
env.Append(CXXFLAGS=env.dl_flags);

#detect OSS

env.Append(CXXFLAGS=['-DPOSIX_ENABLED']);

debug=0;
if (debug):
	env.Append(CXXFLAGS=['-g','-O2']);


env.optimize_resampler_hack=1

optimize=1;

if (optimize):
	env.Append(CXXFLAGS=['-O3','-ffast-math']);
	env.optimize_resampler_hack=0

profile=0;

if (profile):
	env.Append(CXXFLAGS=['-pg']);
	env.Append(LINKFLAGS=['-pg']);

if (env.os_is_cygwin):
	env.Append(CXXFLAGS=['-DCYGWIN_ENABLED']);
	env.Append(LIBS=['winmm']);
else:
	env.Append(CXXFLAGS=['-DLADSPA_ENABLED']);

if (env.os_is_macosx):
	env.Append(CXXFLAGS=['-DMACOSX_ENABLED']);
	env.Append(LINKFLAGS=['-framework','CoreAudio'])
	env.Append(CPPFLAGS=['-I/sw/include']);

if (env.is_oss_installed):
	env.Append(CXXFLAGS=['-DOSS_ENABLED']);

if (env.has_jack):
	env.Append(CXXFLAGS=['-DJACK_ENABLED']);
	env.Append(CXXFLAGS=env.jack_flags);

env.Append(LIBS=['z','m','pthread']);

env.common_libs=[];
env.process_moc_list=process_moc_list;

Export('env');

SConscript('common/SCsub');
SConscript('trackercore/SCsub');
SConscript('loaders/SCsub');
SConscript('savers/SCsub');
SConscript('interface_binds/SCsub');
SConscript('interface__QT/SCsub');
SConscript('program__QT/SCsub');
#SConscript('player/SCsub');



