diff src/portaudio_20161030_catalina_patch/build/scons/SConscript_opts @ 77:4edcd14160a5 pa_catalina

Duplicate for patch testing
author Chris Cannam
date Wed, 30 Oct 2019 11:25:10 +0000
parents src/portaudio_20161030/build/scons/SConscript_opts@284acf908dcd
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/portaudio_20161030_catalina_patch/build/scons/SConscript_opts	Wed Oct 30 11:25:10 2019 +0000
@@ -0,0 +1,91 @@
+import os.path, sys
+
+def _PackageOption(pkgName, default=1):
+    """ Allow user to choose whether a package should be used if available. This results in a commandline option use<Pkgname>,
+    where Pkgname is the name of the package with a capitalized first letter.
+    @param pkgName: Name of package.
+    @param default: The default value for this option ("yes"/"no").
+    """
+    return BoolOption("use%s" % pkgName[0].upper() + pkgName[1:], "use %s if available" % (pkgName), default)
+
+def _BoolOption(opt, explanation, default=1):
+    """ Allow user to enable/disable a certain option. This results in a commandline option enable<Option>, where Option
+    is the name of the option with a capitalized first letter.
+    @param opt: Name of option.
+    @param explanation: Explanation of option.
+    @param default: The default value for this option (1/0).
+    """
+    return BoolOption("enable%s" % opt[0].upper() + opt[1:], explanation, default)
+
+def _EnumOption(opt, explanation, allowedValues, default):
+    """ Allow the user to choose among a set of values for an option. This results in a commandline option with<Option>,
+    where Option is the name of the option with a capitalized first letter.
+    @param opt: The name of the option.
+    @param explanation: Explanation of option.
+    @param allowedValues: The set of values to choose from.
+    @param default: The default value.
+    """
+    assert default in allowedValues
+    return EnumOption("with%s" % opt[0].upper() + opt[1:], explanation, default, allowed_values=allowedValues)
+
+def _DirectoryOption(opt, explanation, default):
+    """ Allow the user to configure the location for a certain directory, for instance the prefix. This results in a
+    commandline option which is simply the name of this option.
+    @param opt: The configurable directory, for instance "prefix".
+    @param explanation: Explanation of option.
+    @param default: The default value for this option.
+    """
+    return PathOption(opt, explanation, default)
+    # Incompatible with the latest stable SCons
+    # return PathOption(path, help, default, PathOption.PathIsDir)
+
+import SCons.Errors
+try:
+    Import("Platform", "Posix")
+except SCons.Errors.UserError:
+    # The common objects must be exported first
+    SConscript("SConscript_common")
+    Import("Platform", "Posix")
+
+# Expose the options as a dictionary of sets of options
+opts = {}
+
+if Platform in Posix:
+    opts["Installation Dirs"] = [_DirectoryOption("prefix", "installation prefix", "/usr/local")]
+elif Platform in Windows:
+    if Platform == "cygwin":
+        opts["Installation Dirs"] = [_DirectoryOption("prefix", "installation prefix", "/usr/local")]
+
+opts["Build Targets"] = [_BoolOption("shared", "create shared library"), _BoolOption("static", "create static library"),
+        _BoolOption("tests", "build test programs")]
+
+apis = []
+if Platform in Posix:
+    apis.append(_PackageOption("OSS"))
+    apis.append(_PackageOption("JACK"))
+    apis.append(_PackageOption("ALSA", Platform == "linux"))
+    apis.append(_PackageOption("ASIHPI", Platform == "linux"))
+    apis.append(_PackageOption("COREAUDIO", Platform == "darwin"))
+elif Platform in Windows:
+    if Platform == "cygwin":
+        apis.append(_EnumOption("winAPI", "Windows API to use", ("wmme", "directx", "asio"), "wmme"))
+
+opts["Host APIs"] = apis
+
+opts["Build Parameters"] = [\
+        _BoolOption("debug", "compile with debug symbols"),
+        _BoolOption("optimize", "compile with optimization", default=0),
+        _BoolOption("asserts", "runtime assertions are helpful for debugging, but can be detrimental to performance",
+                default=1),
+        _BoolOption("debugOutput", "enable debug output", default=0),
+        # _BoolOption("python", "create Python binding"),
+        ("customCFlags", "customize compilation of C code", ""),
+        ("customCxxFlags", "customize compilation of C++ code", ""),
+        ("customLinkFlags", "customize linking", ""),
+        ]
+
+opts["Bindings"] = [\
+        _BoolOption("cxx", "build Merlijn Blaauw's PA C++ wrapper", default=0)
+        ]
+    
+Return("opts")