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