USE_TOP_LEVEL = False
-def is_standard_libpath(env, path):
- for _path in env.STANDARD_LIBPATH:
- if _path == os.path.normpath(path):
- return True
- return False
-
def get_cc_version(conf, cc, gcc=False, icc=False):
cmd = cc + ['-dM', '-E', '-']
v.append_value('LINKFLAGS', v['FULLSTATIC_MARKER'])
for i in v['RPATH']:
- if is_standard_libpath(v, i):
- continue
if i and rpath_st:
app('LINKFLAGS', rpath_st % i)
for i in v['LIBPATH']:
- if is_standard_libpath(v, i):
- continue
app('LINKFLAGS', libpath_st % i)
app('LINKFLAGS', staticlibpath_st % i)
import Build, Utils, Configure, Task, Options, Logs, TaskGen
from Constants import *
from Configure import conf, conftest
-import ccroot
cfg_ver = {
'atleast-version': '>=',
app('LIB_' + uselib, ot)
elif st == '-L':
if not ot: ot = lst.pop(0)
- if not ccroot.is_standard_libpath(env, ot):
- app('LIBPATH_' + uselib, ot)
+ app('LIBPATH_' + uselib, ot)
elif x == '-pthread' or x.startswith('+'):
app('CCFLAGS_' + uselib, x)
app('CXXFLAGS_' + uselib, x)
# in too old versions of our internal libs.
#
elif x.startswith('-Wl,-R'):
- if not ccroot.is_standard_libpath(env,x[6:]):
- app('RPATH_' + uselib, x[6:])
+ app('RPATH_' + uselib, x[6:])
elif x.startswith('-Wl,-rpath,'):
- if not ccroot.is_standard_libpath(env, x[11:]):
- app('RPATH_' + uselib, x[11:])
+ app('RPATH_' + uselib, x[11:])
elif x.startswith('-Wl'):
app('LINKFLAGS_' + uselib, x)
elif x.startswith('-m') or x.startswith('-f'):
from TaskGen import extension, before, after, feature
from Configure import conf
from config_c import parse_flags
-import ccroot
EXT_PY = ['.py']
FRAG_2 = '''
result = conf.check(lib=name, uselib='PYEMBED', libpath=path)
if result:
- if not ccroot.is_standard_libpath(env, path[0]):
- env['LIBPATH_PYEMBED'] = path
+ env['LIBPATH_PYEMBED'] = path
env.append_value('LIB_PYEMBED', name)
else:
conf.log.write("\n\n### LIB NOT FOUND\n")
help='tag release in git at the same time',
type='string', action='store', dest='TAG_RELEASE')
-#
-# Determine the standard libpath for the used compiler,
-# so we can later use that to filter out these standard
-# library paths when some tools like cups-config or
-# python-config report standard lib paths with their
-# ldflags (-L...)
-#
-def get_cc_std_libpath(cc):
- # at least gcc and clang support this:
- try:
- cmd = cc + ['-print-search-dirs']
- out = Utils.cmd_output(cmd).split('\n')
- except ValueError:
- # option not supported by compiler - use a standard list of directories
- dirlist = [ '/usr/lib', '/usr/lib64' ]
- except:
- raise Utils.WafError('Unexpected error running "%s"' % (cmd,))
- else:
- dirlist = []
- for line in out:
- line = line.strip()
- if line.startswith("libraries: ="):
- dirliststr = line[len("libraries: ="):]
- dirlist = [ os.path.normpath(x) for x in dirliststr.split(':') ]
- break
-
- return dirlist
@wafsamba.runonce
def configure(conf):
conf.check_tool('compiler_cc')
- conf.env.STANDARD_LIBPATH = get_cc_std_libpath(conf.env.CC)
-
# we need git for 'waf dist'
conf.find_program('git', var='GIT')