Blame third_party/waf/waflib/Tools/gdc.py

Packit Service fa3ceb
#!/usr/bin/env python
Packit Service fa3ceb
# encoding: utf-8
Packit Service fa3ceb
# Carlos Rafael Giani, 2007 (dv)
Packit Service fa3ceb
Packit Service fa3ceb
from waflib.Tools import ar, d
Packit Service fa3ceb
from waflib.Configure import conf
Packit Service fa3ceb
Packit Service fa3ceb
@conf
Packit Service fa3ceb
def find_gdc(conf):
Packit Service fa3ceb
	"""
Packit Service fa3ceb
	Finds the program gdc and set the variable *D*
Packit Service fa3ceb
	"""
Packit Service fa3ceb
	conf.find_program('gdc', var='D')
Packit Service fa3ceb
Packit Service fa3ceb
	out = conf.cmd_and_log(conf.env.D + ['--version'])
Packit Service fa3ceb
	if out.find("gdc") == -1:
Packit Service fa3ceb
		conf.fatal("detected compiler is not gdc")
Packit Service fa3ceb
Packit Service fa3ceb
@conf
Packit Service fa3ceb
def common_flags_gdc(conf):
Packit Service fa3ceb
	"""
Packit Service fa3ceb
	Sets the flags required by *gdc*
Packit Service fa3ceb
	"""
Packit Service fa3ceb
	v = conf.env
Packit Service fa3ceb
Packit Service fa3ceb
	v.DFLAGS            = []
Packit Service fa3ceb
Packit Service fa3ceb
	v.D_SRC_F           = ['-c']
Packit Service fa3ceb
	v.D_TGT_F           = '-o%s'
Packit Service fa3ceb
Packit Service fa3ceb
	v.D_LINKER          = v.D
Packit Service fa3ceb
	v.DLNK_SRC_F        = ''
Packit Service fa3ceb
	v.DLNK_TGT_F        = '-o%s'
Packit Service fa3ceb
	v.DINC_ST           = '-I%s'
Packit Service fa3ceb
Packit Service fa3ceb
	v.DSHLIB_MARKER = v.DSTLIB_MARKER = ''
Packit Service fa3ceb
	v.DSTLIB_ST = v.DSHLIB_ST         = '-l%s'
Packit Service fa3ceb
	v.DSTLIBPATH_ST = v.DLIBPATH_ST   = '-L%s'
Packit Service fa3ceb
Packit Service fa3ceb
	v.LINKFLAGS_dshlib  = ['-shared']
Packit Service fa3ceb
Packit Service fa3ceb
	v.DHEADER_ext       = '.di'
Packit Service fa3ceb
	v.DFLAGS_d_with_header = '-fintfc'
Packit Service fa3ceb
	v.D_HDR_F           = '-fintfc-file=%s'
Packit Service fa3ceb
Packit Service fa3ceb
def configure(conf):
Packit Service fa3ceb
	"""
Packit Service fa3ceb
	Configuration for gdc
Packit Service fa3ceb
	"""
Packit Service fa3ceb
	conf.find_gdc()
Packit Service fa3ceb
	conf.load('ar')
Packit Service fa3ceb
	conf.load('d')
Packit Service fa3ceb
	conf.common_flags_gdc()
Packit Service fa3ceb
	conf.d_platform_flags()
Packit Service fa3ceb