diff --git a/Tools/PyCmt/python/Cmt.py b/Tools/PyCmt/python/Cmt.py index 3d82150066feca4784e21e1abf9d436f671bb42c..25fb6f9f674f3789b66bf33b518d8ca6eccf450a 100755 --- a/Tools/PyCmt/python/Cmt.py +++ b/Tools/PyCmt/python/Cmt.py @@ -15,7 +15,6 @@ import commands import re import sys import subprocess -from string import rstrip ### monkey-patch subprocess (fwd compat w/ py-3.x) ---------------------------- import PyCmt.bwdcompat @@ -504,28 +503,9 @@ class CmtWrapper(object): Return: Tag or None on error """ - ## This is not really CMT related but fits nicely in this module anyways - - svnroot = os.environ.get("SVNROOT") - if svnroot==None: - self.msg.error("SVNROOT is not set.") - return None - - _cmd = "svn ls %s" % os.path.join(svnroot, fullPkgName, "tags") - if fullPkgName.startswith('Gaudi'): - _cmd = "svn ls %s" % os.path.join(svnroot, 'tags', fullPkgName) - self.msg.debug('running [%s]...', _cmd) - p = subprocess.Popen(_cmd, shell = True, - stdout = subprocess.PIPE, stderr = subprocess.PIPE) - tags = p.communicate()[0].splitlines() - if len(tags)==0 or p.returncode!=0: return None - - pkg_name = os.path.basename(fullPkgName) - - # enforce atlas convention of tags (pkgname-xx-yy-zz-aa) - tags = [t for t in tags if t.startswith(pkg_name)] - latest_tag = rstrip(tags[-1],"/\n ") - return latest_tag + from PyUtils.WorkAreaLib import get_latest_pkg_tag + return get_latest_pkg_tag(fullPkgName) + def show_clients(self, pkgName): """return the list of clients of a given `pkgName` CMT package diff --git a/Tools/PyCmt/python/pkgbuild/__init__.py b/Tools/PyCmt/python/pkgbuild/__init__.py index f5845a1a8051d3376be38957bd8b4b33790b8425..c1bfa21d046107d9c577ce14783e954fdeb18860 100644 --- a/Tools/PyCmt/python/pkgbuild/__init__.py +++ b/Tools/PyCmt/python/pkgbuild/__init__.py @@ -151,8 +151,9 @@ def _cmt_to_autoconf(cmt): 'CPPFLAGS': cmt('includes'), } - if ( len(cmt('target-icc')) + len(cmt('target-clang')) != 0 ): - cfg_env['LD']=cmt('cc') + if cfg_env['CC'].find ('clang')>=0 or cfg_env['CC'].find ('icc')>=0: + #cfg_env['LD']='ld' + cfg_env['LDSHARED']=cmt('cc') + ' -shared ' # use_linkopts introduces <package>_linkopts which may confuse 'autoconf' pkg_name = cmt('package').strip() @@ -177,6 +178,7 @@ def _cmt_to_autoconf(cmt): .replace("-Wno-deprecated ", " ")\ .replace("--ccache-skip ", " ")\ .replace("-shared ", " ")\ + .replace("-std=c++11 ", " ")\ .replace("`checker_gccplugins_args`", " ") cfg_env['CXXFLAGS'] = cfg_env['CXXFLAGS']\ @@ -197,8 +199,7 @@ def _cmt_to_autoconf(cmt): cfg_env['CFLAGS'] += " -fno-strict-aliasing" cfg_env['FCFLAGS'] += " -fno-strict-aliasing" cfg_env['CXXFLAGS']+= " -fno-strict-aliasing" - - + host_arch = 'x86_64' if 'x86_64' in os.environ['CMTCONFIG'] else 'i686' host_plat = 'none' if 'linux' in sys.platform: @@ -230,6 +231,18 @@ def _cmt_to_autoconf(cmt): cfg_env['FC'] = cfg_env['FC'].replace('distcc', '').strip() cfg_env['compiler'] = cfg_env['compiler'].replace('distcc', '').strip() + # Move any extra arguments. + def move_args (compiler, flags): + l = cfg_env[compiler].split() + if len(l) > 1: + cfg_env[flags] += ' ' + ' '.join(l[1:]) + cfg_env[compiler] = l[0] + return + move_args ('CC', 'CFLAGS') + move_args ('compiler', 'CFLAGS') + move_args ('CXX', 'CXXFLAGS') + #move_args ('LD', 'LDFLAGS') + cfg_env['F77'] = cfg_env['FC'] cfg_env['FFLAGS'] = cfg_env['FCFLAGS']