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