#!/usr/bin/python
# SConstruct file for CLAM vmqt
from buildtools import *
from buildtools.include_rename import *
from buildtools.file_retriever import FileRetriever
from buildtools.rulesets import *

from buildtools.custom_builders import *

import os, sys

Import('vmqt_env version top install_dirs header_db')

def define_module_contents(env) :
	'''
	if not os.path.exists('src') :
		os.mkdir('src')
	if not os.path.exists('include' ) :
		os.makedirs('include/CLAM')
	'''
	if not os.path.exists('CLAM') :
		os.makedirs('CLAM')

	folders = [
		'src/Visualization/QTVM/Controllers',
		'src/Visualization/QTVM/Controllers/SegmentEditor',
		'src/Visualization/QTVM/DirectPlots',
		'src/Visualization/QTVM/Network/Controllers',
		'src/Visualization/QTVM/Network/Plots',
		'src/Visualization/QTVM/Network/Processings',
		'src/Visualization/QTVM/Network/Renderers',
		'src/Visualization/QTVM/Network/Surfaces',
		'src/Visualization/QTVM/Network/Utils',
		'src/Visualization/QTVM/Players',
		'src/Visualization/QTVM/Plots',
		'src/Visualization/QTVM/Plots/SMS',
		'src/Visualization/QTVM/Renderers',
		'src/Visualization/QTVM/Surfaces',
		'src/Visualization/QTVM/SysPlot',
		'src/Visualization/QTVM/Utils',
		'src/Visualization/QTVM/Widgets',
		'src/Visualization/QTVM/Widgets/BPFEditor',
		'src/Visualization/QTVM/Widgets/Label',
		'src/Visualization/QTVM/Widgets/Misc',
		'src/Visualization/QTVM/Widgets/Playable',
		'src/Visualization/QTVM/Widgets/Rulers',
		'src/Visualization/QTVM/Widgets/Scroll',
		'src/Visualization/View/FDFilterController.*xx',
		'src/Visualization/View/QTConfigurator.*xx',
		] 

	blacklist = [
		'PortMonitor',
		]

	file_retriever = FileRetriever( top+'/..', folders, blacklist )

	file_retriever.out_src = 'CLAM'
	file_retriever.out_inc = 'CLAM'

	file_retriever.scan_without_copy()

	builderCopy = Builder( action=Action(generate_copy_files,generate_copy_files_message) )
	env.Append( BUILDERS={'CopyFileAndUpdateIncludes' : builderCopy} )	

	realHeaders = []
	for orig,target in file_retriever.origTargetHeaders :
		env.CopyFileAndUpdateIncludes(target, orig)
		realHeaders.append(target)


	realSources = []
	for orig,target in file_retriever.origTargetSources:
		env.CopyFileAndUpdateIncludes(target,orig)
		realSources.append(target)

	return realHeaders, realSources

realHeaders, realSources = define_module_contents(vmqt_env)

vmqt_env.Prepend(CPPPATH=['.'])

moduleDependencies = ['core','processing','audioio']

lib_tgt, install_tgt = lib_rules( 'vmqt', version, realHeaders, realSources, install_dirs, vmqt_env, moduleDependencies )

Return( 'lib_tgt', 'install_tgt' )

