1#!/usr/bin/env python
2# encoding: utf-8
3# Alex Rønne Petersen, 2012 (alexrp/Zor)
4
5from waflib.Tools import ar, d
6from waflib.Configure import conf
7
8@conf
9def find_ldc2(conf):
10	"""
11	Finds the program *ldc2* and set the variable *D*
12	"""
13	conf.find_program(['ldc2'], var='D')
14
15	out = conf.cmd_and_log(conf.env.D + ['-version'])
16	if out.find("based on DMD v2.") == -1:
17		conf.fatal("detected compiler is not ldc2")
18
19@conf
20def common_flags_ldc2(conf):
21	"""
22	Sets the D flags required by *ldc2*
23	"""
24	v = conf.env
25
26	v.D_SRC_F           = ['-c']
27	v.D_TGT_F           = '-of%s'
28
29	v.D_LINKER          = v.D
30	v.DLNK_SRC_F        = ''
31	v.DLNK_TGT_F        = '-of%s'
32	v.DINC_ST           = '-I%s'
33
34	v.DSHLIB_MARKER = v.DSTLIB_MARKER = ''
35	v.DSTLIB_ST = v.DSHLIB_ST         = '-L-l%s'
36	v.DSTLIBPATH_ST = v.DLIBPATH_ST   = '-L-L%s'
37
38	v.LINKFLAGS_dshlib  = ['-L-shared']
39
40	v.DHEADER_ext       = '.di'
41	v.DFLAGS_d_with_header = ['-H', '-Hf']
42	v.D_HDR_F           = '%s'
43
44	v.LINKFLAGS     = []
45	v.DFLAGS_dshlib = ['-relocation-model=pic']
46
47def configure(conf):
48	"""
49	Configuration for *ldc2*
50	"""
51	conf.find_ldc2()
52	conf.load('ar')
53	conf.load('d')
54	conf.common_flags_ldc2()
55	conf.d_platform_flags()
56
57