PATCH:bksys - fix some win32 related path delimiter problems

tnagyemail-ml at yahoo.fr tnagyemail-ml at yahoo.fr
Thu Sep 29 00:19:51 BST 2005


While we are at it, lstrip(param) does not work for
python =< 2.2 (Redhat 9).

Thomas

--- Ralf Habacker <ralf.habacker at freenet.de> a écrit :

> Am Mittwoch, 28. September 2005 22:58 schrieb Ralf
> Habacker:
> > Stephan Kulow schrieb:
> > > Am Mittwoch, 28. September 2005 21:38 schrieb
> Jaroslaw Staniek:
> > >> Ralf Habacker said the following, On 2005-09-28
> 19:04:
> > >>> Hi all,
> > >>>
> > >>> here comes another patch for bksys. Any
> objectivities for
> > >>> submitting ?
> 
> Here comes an updated patch
> (win32-fix-path-separator.patch) without the 
> previous site effects. It is tested with mingw
> compile environment. Can 
> anyone check this patch ? 
> 
> BTW: the generic-indention-problem.patch fixes some
> indention problems at the 
> end of generic.py and has to be applied first. 
> 
> changelog: fix some win32 related path delimiter
> problems
> 
> Regards
>  Ralf
> > Index: generic.py
>
===================================================================
> --- generic.py	(revision 464982)
> +++ generic.py	(working copy)
> @@ -763,9 +763,9 @@
>  			lenv.AppendUnique(LIBS = [link])
>  			lenv.PrependUnique(LIBPATH = [dir])
>  
> -        def link_local_staticlib(lenv, str):
> -                """ Links against a shared library
> made in the project """
> -                lst = lenv.make_list(str)
> +	def link_local_staticlib(lenv, str):
> +		""" Links against a shared library made in the
> project """
> +		lst = lenv.make_list(str)
>  		for file in lst:
>  			import re
>  			reg = re.compile("(.*)/(lib.*.a)")
> @@ -797,18 +797,18 @@
>  	if env.has_key('EXTRALIBS'):     env.AppendUnique(
> LINKFLAGS = env['EXTRALIBS'])
>  
>  	if env.has_key('BKS_DEBUG'):
> -                if (env['BKS_DEBUG'] == "full"):
> -                        env.AppendUnique(CXXFLAGS =
> ['-DDEBUG', '-Wall'])
> -                        if env['WINDOWS']:
> -                                pass
> -                        else:
> -                               
> env.AppendUnique(CXXFLAGS = ['-g3'])
> -                elif (env['BKS_DEBUG'] == "trace"):
> # i cannot remember who wanted this (TODO ita)
> -                        env.AppendUnique(
> -                               
> LINKFLAGS=env.Split("-lmrwlog4cxxconfiguration
> -lmrwautofunctiontracelog4cxx
> -finstrument-functions"),
> -                               
> CXXFLAGS=env.Split("-DDEBUG -Wall
> -finstrument-functions -g3 -O0"))
> -                else:
> -                        env.AppendUnique(CXXFLAGS =
> ['-DDEBUG', '-g', '-Wall'])
> +		if (env['BKS_DEBUG'] == "full"):
> +			env.AppendUnique(CXXFLAGS = ['-DDEBUG',
> '-Wall'])
> +			if env['WINDOWS']:
> +				pass
> +			else:
> +				env.AppendUnique(CXXFLAGS = ['-g3'])
> +		elif (env['BKS_DEBUG'] == "trace"): # i cannot
> remember who wanted this (TODO ita)
> +			env.AppendUnique(
> +			       
> LINKFLAGS=env.Split("-lmrwlog4cxxconfiguration
> -lmrwautofunctiontracelog4cxx
> -finstrument-functions"),
> +			        CXXFLAGS=env.Split("-DDEBUG -Wall
> -finstrument-functions -g3 -O0"))
> +		else:
> +			env.AppendUnique(CXXFLAGS = ['-DDEBUG', '-g',
> '-Wall'])
>  
>  	env.Export('env')
>  
> > --- generic.py.orig	2005-09-29 01:04:46.523633600
> +0200
> +++ generic.py	2005-09-29 01:05:56.494246400 +0200
> @@ -185,7 +185,7 @@
>  		def reldir(dir):
>  			ndir    =
> SCons.Node.FS.default_fs.Dir(dir).srcnode().abspath
>  			rootdir =
> SCons.Node.FS.default_fs.Dir('#').abspath
> -			return ndir.replace(rootdir, '').lstrip('/')
> +			return ndir.replace(rootdir, '').lstrip(os.sep)
>  
>  		dir=self.dirprefix
>  		if not len(dir)>2: dir=reldir('.')
> @@ -343,15 +343,22 @@
>  		try: return s.split()
>  		except AttributeError: return s
>  
> +## HELPER - replace current os path separators with
> slashes
> +def slashify(val):
> +	if os.sep == "\\":
> +		return str.replace(val,os.sep,'/')
> +	else:
> +		return val
> +	
>  ## HELPER 
>  def join(lenv, s1, s2, s3=None, s4=None):
>  	if s4 and s3: return lenv.join(s1, s2,
> lenv.join(s3, s4))
>  	if s3 and s2: return lenv.join(s1, lenv.join(s2,
> s3))
>  	elif not s2:  return s1
>  	# having s1, s2
> -	#print "path1 is "+s1+" path2 is "+s2+"
> "+os.path.join(s1,string.lstrip(s2,'/'))
> -	if not s1: s1='/' # TODO on win32 this will not
> work (for js)
> -	return os.path.join(s1,string.lstrip(s2,'/'))
> +	#print "path1 is "+s1+" path2 is "+s2+"
> "+os.path.join(s1,string.lstrip(s2,os.sep))
> +	if not s1: s1=os.sep 
> +	return os.path.join(s1,string.lstrip(s2,os.sep))
>  
>  ## HELPER export the data to xml
>  bks_dump='<?xml version="1.0"
> encoding="UTF-8"?>\n<bksys version="1">\n'
> @@ -368,7 +375,7 @@
>  def getreldir(lenv):
>  	cwd=os.getcwd()
>  	root=SCons.Node.FS.default_fs.Dir('#').abspath
> -	return cwd.replace(root,'').lstrip('/')
> +	return cwd.replace(root,'').lstrip(os.sep)
>  
>  ## HELPER - find programs and headers
>  def find_path(lenv, file, path_list):
> @@ -675,7 +682,7 @@
>  				thisenv['SHLIBSUFFIX']='.so.'+vnum
>  			thisenv.Depends(target, thisenv.Value(vnum))
>  			num=vnum.split('.')[0]
> -			lst=target.split('/')
> +			lst=target.split(os.sep)
>  			tname=lst[len(lst)-1]
>  			libname=tname.split('.')[0]
>  			if sys.platform == 'darwin':
> @@ -738,8 +745,10 @@
>          def link_local_shlib(lenv, str):
>                  """ Links against a shared library
> made in the project """
>                  lst = lenv.make_list(str)
> -		for file in lst:
> +		for afile in lst:
>  			import re
> +			file = slashify(afile)
> +
>  			if sys.platform == 'darwin':
>  				reg=re.compile("(.*)/lib(.*).(la|so|dylib)$")
>  			else:
> @@ -766,8 +775,9 @@
>  	def link_local_staticlib(lenv, str):
>  		""" Links against a shared library made in the
> project """
>  		lst = lenv.make_list(str)
> -		for file in lst:
> +		for afile in lst:
>  			import re
> +			file = slashify(afile)
>  			reg = re.compile("(.*)/(lib.*.a)")
>  			result = reg.match(file)
>  			if not result:
> 


/* Thomas Nagy */


	

	
		
___________________________________________________________________________ 
Appel audio GRATUIT partout dans le monde avec le nouveau Yahoo! Messenger 
Téléchargez cette version sur http://fr.messenger.yahoo.com




More information about the kde-core-devel mailing list