summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Linden <karl.j.linden@gmail.com>2016-03-31 18:25:55 +0200
committerKarl Linden <karl.j.linden@gmail.com>2016-03-31 18:25:55 +0200
commit65e3c278eca0a605f023d992b631025b3f69271b (patch)
treefc10adac649f149cf854bc381e454efc6f62fad5
parent7bdad4966b29f721c384bdfe6921a1e5c1d84561 (diff)
downloadjack2-65e3c278eca0a605f023d992b631025b3f69271b.tar.gz
Make platform detection less hardcoded. Rename --dist-target=mingw option to --platform=win32.
-rw-r--r--wscript46
1 files changed, 24 insertions, 22 deletions
diff --git a/wscript b/wscript
index a78bcd7a..227a32d3 100644
--- a/wscript
+++ b/wscript
@@ -400,7 +400,7 @@ def options(opt):
opt.add_option('--mandir', type='string', help="Manpage directory [Default: <prefix>/share/man/man1]")
# options affecting binaries
- opt.add_option('--dist-target', type='string', default='auto', help='Specify the target for cross-compiling [auto,mingw]')
+ opt.add_option('--platform', type='string', default=sys.platform, help='Target platform for cross-compiling, e.g. cygwin or win32')
opt.add_option('--mixed', action='store_true', default=False, help='Build with 32/64 bits mixed mode')
opt.add_option('--debug', action='store_true', default=False, dest='debug', help='Build debuggable binaries')
@@ -449,31 +449,33 @@ def options(opt):
# this must be called before the configure phase
auto_options_argv_hack()
+def detect_platform(conf):
+ # GNU/kFreeBSD and GNU/Hurd are treated as Linux
+ platforms = [
+ # ('KEY, 'Human readable name', ['strings', 'to', 'check', 'for'])
+ ('IS_LINUX', 'Linux', ['gnu0', 'gnukfreebsd', 'linux', 'posix']),
+ ('IS_MACOSX', 'MacOS X', ['darwin']),
+ ('IS_SUN', 'SunOS', ['sunos']),
+ ('IS_WINDOWS', 'Windows', ['cygwin', 'win32'])
+ ]
+
+ for key,name,strings in platforms:
+ conf.env[key] = False
+
+ conf.start_msg('Checking platform')
+ platform = Options.options.platform
+ for key,name,strings in platforms:
+ for s in strings:
+ if platform.startswith(s):
+ conf.env[key] = True
+ conf.end_msg(name, color='CYAN')
+ break
+
def configure(conf):
conf.load('compiler_cxx')
conf.load('compiler_c')
- if Options.options.dist_target == 'auto':
- platform = sys.platform
- conf.env['IS_MACOSX'] = platform == 'darwin'
- conf.env['IS_LINUX'] = platform == 'linux' or platform == 'linux2' or platform == 'linux3' or platform == 'posix'
- conf.env['IS_SUN'] = platform == 'sunos'
- # GNU/kFreeBSD and GNU/Hurd are treated as Linux
- if platform.startswith('gnu0') or platform.startswith('gnukfreebsd'):
- conf.env['IS_LINUX'] = True
- elif Options.options.dist_target == 'mingw':
- conf.env['IS_WINDOWS'] = True
-
- if conf.env['IS_LINUX']:
- Logs.pprint('CYAN', "Linux detected")
-
- if conf.env['IS_MACOSX']:
- Logs.pprint('CYAN', "MacOS X detected")
-
- if conf.env['IS_SUN']:
- Logs.pprint('CYAN', "SunOS detected")
- if conf.env['IS_WINDOWS']:
- Logs.pprint('CYAN', "Windows detected")
+ detect_platform(conf)
if conf.env['IS_WINDOWS']:
conf.env.append_unique('CCDEFINES', '_POSIX')