diff options
author | David Robillard <d@drobilla.net> | 2018-09-15 14:51:03 +0200 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2018-09-15 14:51:03 +0200 |
commit | be0edc0483a9b0b16171e0a7624e1cac9750d8e0 (patch) | |
tree | 2f639b07d13e56ce068347304bd6d4bf89c7ed2c /waflib/Tools/d_config.py | |
parent | d3e4e496a19a266ffac7c04fb7d54926e39f55a2 (diff) | |
parent | c2b0355b0de23f6ec83b5fa5be038bcce208e26f (diff) | |
download | serd-be0edc0483a9b0b16171e0a7624e1cac9750d8e0.tar.gz serd-be0edc0483a9b0b16171e0a7624e1cac9750d8e0.tar.bz2 serd-be0edc0483a9b0b16171e0a7624e1cac9750d8e0.zip |
Merge commit 'c2b0355b0de23f6ec83b5fa5be038bcce208e26f' as 'waflib'
Diffstat (limited to 'waflib/Tools/d_config.py')
-rw-r--r-- | waflib/Tools/d_config.py | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/waflib/Tools/d_config.py b/waflib/Tools/d_config.py new file mode 100644 index 00000000..66375565 --- /dev/null +++ b/waflib/Tools/d_config.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python +# encoding: utf-8 +# Thomas Nagy, 2016-2018 (ita) + +from waflib import Utils +from waflib.Configure import conf + +@conf +def d_platform_flags(self): + """ + Sets the extensions dll/so for d programs and libraries + """ + v = self.env + if not v.DEST_OS: + v.DEST_OS = Utils.unversioned_sys_platform() + binfmt = Utils.destos_to_binfmt(self.env.DEST_OS) + if binfmt == 'pe': + v.dprogram_PATTERN = '%s.exe' + v.dshlib_PATTERN = 'lib%s.dll' + v.dstlib_PATTERN = 'lib%s.a' + elif binfmt == 'mac-o': + v.dprogram_PATTERN = '%s' + v.dshlib_PATTERN = 'lib%s.dylib' + v.dstlib_PATTERN = 'lib%s.a' + else: + v.dprogram_PATTERN = '%s' + v.dshlib_PATTERN = 'lib%s.so' + v.dstlib_PATTERN = 'lib%s.a' + +DLIB = ''' +version(D_Version2) { + import std.stdio; + int main() { + writefln("phobos2"); + return 0; + } +} else { + version(Tango) { + import tango.stdc.stdio; + int main() { + printf("tango"); + return 0; + } + } else { + import std.stdio; + int main() { + writefln("phobos1"); + return 0; + } + } +} +''' +"""Detection string for the D standard library""" + +@conf +def check_dlibrary(self, execute=True): + """ + Detects the kind of standard library that comes with the compiler, + and sets conf.env.DLIBRARY to tango, phobos1 or phobos2 + """ + ret = self.check_cc(features='d dprogram', fragment=DLIB, compile_filename='test.d', execute=execute, define_ret=True) + if execute: + self.env.DLIBRARY = ret.strip() + |