Chris@39: import os.path Chris@39: Chris@39: Import("env", "buildDir") Chris@39: env.Append(CPPPATH="include") Chris@39: Chris@39: ApiVer = "0.0.12" Chris@39: Major, Minor, Micro = [int(c) for c in ApiVer.split(".")] Chris@39: Chris@39: sharedLibs = [] Chris@39: staticLibs = [] Chris@39: Import("Platform", "Posix") Chris@39: if Platform in Posix: Chris@39: env["SHLIBSUFFIX"] = ".so.%d.%d.%d" % (Major, Minor, Micro) Chris@39: soFile = "libportaudiocpp.so" Chris@39: if Platform != 'darwin': Chris@39: env.AppendUnique(SHLINKFLAGS="-Wl,-soname=%s.%d" % (soFile, Major)) Chris@39: Chris@39: # Create symlinks Chris@39: def symlink(env, target, source): Chris@39: trgt = str(target[0]) Chris@39: src = str(source[0]) Chris@39: if os.path.islink(trgt) or os.path.exists(trgt): Chris@39: os.remove(trgt) Chris@39: os.symlink(os.path.basename(src), trgt) Chris@39: lnk0 = env.Command(soFile + ".%d" % (Major), soFile + ".%d.%d.%d" % (Major, Minor, Micro), symlink) Chris@39: lnk1 = env.Command(soFile, soFile + ".%d" % (Major), symlink) Chris@39: sharedLibs.append(lnk0) Chris@39: sharedLibs.append(lnk1) Chris@39: Chris@39: src = [os.path.join("source", "portaudiocpp", "%s.cxx" % f) for f in ("BlockingStream", "CallbackInterface", \ Chris@39: "CallbackStream", "CFunCallbackStream","CppFunCallbackStream", "Device", Chris@39: "DirectionSpecificStreamParameters", "Exception", "HostApi", "InterfaceCallbackStream", Chris@39: "MemFunCallbackStream", "Stream", "StreamParameters", "System", "SystemDeviceIterator", Chris@39: "SystemHostApiIterator")] Chris@39: env.Append(LIBS="portaudio", LIBPATH=buildDir) Chris@39: sharedLib = env.SharedLibrary("portaudiocpp", src, LIBS=["portaudio"]) Chris@39: staticLib = env.Library("portaudiocpp", src, LIBS=["portaudio"]) Chris@39: sharedLibs.append(sharedLib) Chris@39: staticLibs.append(staticLib) Chris@39: Chris@39: headers = Split("""AutoSystem.hxx Chris@39: BlockingStream.hxx Chris@39: CallbackInterface.hxx Chris@39: CallbackStream.hxx Chris@39: CFunCallbackStream.hxx Chris@39: CppFunCallbackStream.hxx Chris@39: Device.hxx Chris@39: DirectionSpecificStreamParameters.hxx Chris@39: Exception.hxx Chris@39: HostApi.hxx Chris@39: InterfaceCallbackStream.hxx Chris@39: MemFunCallbackStream.hxx Chris@39: PortAudioCpp.hxx Chris@39: SampleDataFormat.hxx Chris@39: Stream.hxx Chris@39: StreamParameters.hxx Chris@39: SystemDeviceIterator.hxx Chris@39: SystemHostApiIterator.hxx Chris@39: System.hxx Chris@39: """) Chris@39: if env["PLATFORM"] == "win32": Chris@39: headers.append("AsioDeviceAdapter.hxx") Chris@39: headers = [File(os.path.join("include", "portaudiocpp", h)) for h in headers] Chris@39: Chris@39: Return("sharedLibs", "staticLibs", "headers")