~noskcaj/ubuntu/saucy/sflphone/merge-1.2.3-2

« back to all changes in this revision

Viewing changes to daemon/libs/pjproject-2.0.1/third_party/portaudio/build/scons/SConscript_opts

  • Committer: Jackson Doak
  • Date: 2013-07-10 21:04:46 UTC
  • mfrom: (20.1.3 sid)
  • Revision ID: noskcaj@ubuntu.com-20130710210446-y8f587vza807icr9
Properly merged from upstream.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
import os.path, sys
 
2
 
 
3
def _PackageOption(pkgName, default=1):
 
4
    """ Allow user to choose whether a package should be used if available. This results in a commandline option use<Pkgname>,
 
5
    where Pkgname is the name of the package with a capitalized first letter.
 
6
    @param pkgName: Name of package.
 
7
    @param default: The default value for this option ("yes"/"no").
 
8
    """
 
9
    return BoolOption("use%s" % pkgName[0].upper() + pkgName[1:], "use %s if available" % (pkgName), default)
 
10
 
 
11
def _BoolOption(opt, explanation, default=1):
 
12
    """ Allow user to enable/disable a certain option. This results in a commandline option enable<Option>, where Option
 
13
    is the name of the option with a capitalized first letter.
 
14
    @param opt: Name of option.
 
15
    @param explanation: Explanation of option.
 
16
    @param default: The default value for this option (1/0).
 
17
    """
 
18
    return BoolOption("enable%s" % opt[0].upper() + opt[1:], explanation, default)
 
19
 
 
20
def _EnumOption(opt, explanation, allowedValues, default):
 
21
    """ Allow the user to choose among a set of values for an option. This results in a commandline option with<Option>,
 
22
    where Option is the name of the option with a capitalized first letter.
 
23
    @param opt: The name of the option.
 
24
    @param explanation: Explanation of option.
 
25
    @param allowedValues: The set of values to choose from.
 
26
    @param default: The default value.
 
27
    """
 
28
    assert default in allowedValues
 
29
    return EnumOption("with%s" % opt[0].upper() + opt[1:], explanation, default, allowed_values=allowedValues)
 
30
 
 
31
def _DirectoryOption(opt, explanation, default):
 
32
    """ Allow the user to configure the location for a certain directory, for instance the prefix. This results in a
 
33
    commandline option which is simply the name of this option.
 
34
    @param opt: The configurable directory, for instance "prefix".
 
35
    @param explanation: Explanation of option.
 
36
    @param default: The default value for this option.
 
37
    """
 
38
    return PathOption(opt, explanation, default)
 
39
    # Incompatible with the latest stable SCons
 
40
    # return PathOption(path, help, default, PathOption.PathIsDir)
 
41
 
 
42
import SCons.Errors
 
43
try:
 
44
    Import("Platform", "Posix")
 
45
except SCons.Errors.UserError:
 
46
    # The common objects must be exported first
 
47
    SConscript("SConscript_common")
 
48
    Import("Platform", "Posix")
 
49
 
 
50
# Expose the options as a dictionary of sets of options
 
51
opts = {}
 
52
 
 
53
if Platform in Posix:
 
54
    opts["Installation Dirs"] = [_DirectoryOption("prefix", "installation prefix", "/usr/local")]
 
55
elif Platform in Windows:
 
56
    if Platform == "cygwin":
 
57
        opts["Installation Dirs"] = [_DirectoryOption("prefix", "installation prefix", "/usr/local")]
 
58
 
 
59
opts["Build Targets"] = [_BoolOption("shared", "create shared library"), _BoolOption("static", "create static library"),
 
60
        _BoolOption("tests", "build test programs")]
 
61
 
 
62
apis = []
 
63
if Platform in Posix:
 
64
    apis.append(_PackageOption("OSS"))
 
65
    apis.append(_PackageOption("JACK"))
 
66
    apis.append(_PackageOption("ALSA", Platform == "linux"))
 
67
    apis.append(_PackageOption("ASIHPI", Platform == "linux"))
 
68
    apis.append(_PackageOption("COREAUDIO", Platform == "darwin"))
 
69
elif Platform in Windows:
 
70
    if Platform == "cygwin":
 
71
        apis.append(_EnumOption("winAPI", "Windows API to use", ("wmme", "directx", "asio"), "wmme"))
 
72
 
 
73
opts["Host APIs"] = apis
 
74
 
 
75
opts["Build Parameters"] = [\
 
76
        _BoolOption("debug", "compile with debug symbols"),
 
77
        _BoolOption("optimize", "compile with optimization", default=0),
 
78
        _BoolOption("asserts", "runtime assertions are helpful for debugging, but can be detrimental to performance",
 
79
                default=1),
 
80
        _BoolOption("debugOutput", "enable debug output", default=0),
 
81
        # _BoolOption("python", "create Python binding"),
 
82
        ("customCFlags", "customize compilation of C code", ""),
 
83
        ("customCxxFlags", "customize compilation of C++ code", ""),
 
84
        ("customLinkFlags", "customize linking", ""),
 
85
        ]
 
86
 
 
87
opts["Bindings"] = [\
 
88
        _BoolOption("cxx", "build Merlijn Blaauw's PA C++ wrapper", default=0)
 
89
        ]
 
90
 
 
91
Return("opts")