#! /usr/bin/env python
# encoding: utf-8
# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file

import sys,re
from waflib.Configure import conf
from waflib.Tools.compiler_c import c_compiler
c_compiler['linux'].append('pgicc')
@conf
def find_pgi_compiler(conf,var,name):
	if sys.platform=='cygwin':
		conf.fatal('The PGI compiler does not work on Cygwin')
	v=conf.env
	cc=None
	if v[var]:cc=v[var]
	elif var in conf.environ:cc=conf.environ[var]
	if not cc:cc=conf.find_program(name,var=var)
	if not cc:conf.fatal('PGI Compiler (%s) was not found'%name)
	cc=conf.cmd_to_list(cc)
	v[var+'_VERSION']=conf.get_pgi_version(cc)
	v[var]=cc
	v[var+'_NAME']='pgi'
@conf
def get_pgi_version(conf,cc):
	version_re=re.compile(r"The Portland Group",re.I).search
	cmd=cc+['-V','-E']
	try:
		out,err=conf.cmd_and_log(cmd,output=0)
	except Exception:
		conf.fatal('Could not find pgi compiler %r'%cmd)
	if out:match=version_re(out)
	else:match=version_re(err)
	if not match:
		conf.fatal('Could not verify PGI signature')
	cmd=cc+['-help=variable']
	try:
		out,err=conf.cmd_and_log(cmd,output=0)
	except Exception:
		conf.fatal('Could not find pgi compiler %r'%cmd)
	version=re.findall('^COMPVER\s*=(.*)',out,re.M)
	if len(version)!=1:
		conf.fatal('Could not determine the compiler version')
	return version[0]
def configure(conf):
	conf.find_pgi_compiler('CC','pgcc')
	conf.find_ar()
	conf.gcc_common_flags()
	conf.cc_load_tools()
	conf.cc_add_flags()
	conf.link_add_flags()
