#!/usr/bin/env python from waflib.extras import autowaf as autowaf def build(bld): # Headers bld.install_files('${INCLUDEDIR}/ingen/server', bld.path.ant_glob('*.hpp')) core_source = ''' AudioBuffer.cpp BufferFactory.cpp ClientBroadcaster.cpp ConnectionImpl.cpp ControlBindings.cpp DuplexPort.cpp Engine.cpp EngineStore.cpp Event.cpp EventBuffer.cpp EventSink.cpp EventSource.cpp GraphObjectImpl.cpp InputPort.cpp InternalPlugin.cpp MessageContext.cpp NodeFactory.cpp NodeImpl.cpp ObjectBuffer.cpp ObjectSender.cpp OutputPort.cpp PatchImpl.cpp PluginImpl.cpp PortImpl.cpp PostProcessor.cpp ProcessContext.cpp ProcessSlave.cpp QueuedEngineInterface.cpp QueuedEvent.cpp events/Connect.cpp events/CreateNode.cpp events/CreatePatch.cpp events/CreatePort.cpp events/Delete.cpp events/Disconnect.cpp events/DisconnectAll.cpp events/Get.cpp events/Move.cpp events/RegisterClient.cpp events/RequestMetadata.cpp events/SendBinding.cpp events/SendPortActivity.cpp events/SendPortValue.cpp events/SetMetadata.cpp events/SetPortValue.cpp events/UnregisterClient.cpp ingen_engine.cpp internals/Controller.cpp internals/Delay.cpp internals/Note.cpp internals/Trigger.cpp ''' if bld.is_defined('HAVE_LILV'): core_source += ' LV2Info.cpp LV2Plugin.cpp LV2Node.cpp ' obj = bld(features = 'cxx cxxshlib') obj.source = core_source obj.export_includes = ['.'] obj.includes = ['.', '..', '../..', '../../include'] obj.name = 'libingen_server' obj.target = 'ingen_server' obj.install_path = '${LIBDIR}' obj.use = 'libingen_shared' core_libs = 'GLIBMM GTHREAD LV2CORE LILV RAUL SORD' autowaf.use_lib(bld, obj, core_libs) if bld.is_defined('HAVE_SOUP'): obj = bld(features = 'cxx cxxshlib') obj.source = ''' EventSource.cpp QueuedEngineInterface.cpp HTTPClientSender.cpp HTTPEngineReceiver.cpp ingen_http.cpp ''' obj.includes = ['.', '..', '../..', '../../include', '../server'] obj.name = 'libingen_http' obj.target = 'ingen_http' obj.install_path = '${LIBDIR}' autowaf.use_lib(bld, obj, core_libs + ' SOUP') if bld.is_defined('HAVE_LIBLO'): obj = bld(features = 'cxx cxxshlib') obj.source = ''' EventSource.cpp QueuedEngineInterface.cpp OSCClientSender.cpp OSCEngineReceiver.cpp ingen_osc.cpp ''' obj.export_includes = ['.'] obj.includes = ['.', '..', '../..', '../../include', '../server'] obj.name = 'libingen_osc' obj.target = 'ingen_osc' obj.install_path = '${LIBDIR}' autowaf.use_lib(bld, obj, core_libs + ' LIBLO') if bld.is_defined('HAVE_JACK'): obj = bld(features = 'cxx cxxshlib') obj.source = 'JackDriver.cpp ingen_jack.cpp' obj.export_includes = ['.'] obj.includes = ['.', '..', '../..', '../../include', '../server'] obj.name = 'libingen_jack' obj.target = 'ingen_jack' obj.install_path = '${LIBDIR}' obj.use = 'libingen_server' autowaf.use_lib(bld, obj, core_libs + ' JACK') # Ingen LV2 wrapper obj = bld(features = 'cxx cxxshlib') obj.source = ' ingen_lv2.cpp ' obj.export_includes = ['.'] obj.includes = ['.', '..', '../..', '../../include'] obj.name = 'libingen_lv2' obj.target = 'ingen_lv2' obj.install_path = '${LIBDIR}' obj.use = 'libingen_shared' obj.add_objects = 'libingen_server' autowaf.use_lib(bld, obj, core_libs)