From 1c3512121357c37cf6a7b8b22e627a77c8cf02e5 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Mon, 5 Jul 2010 07:06:19 +0000 Subject: == SCons == Updated to comply with datafiles filepath patch. I've tried to do some changes for OSX too, but I'm not sure if they're correct, so OSX people, please test and report. --- SConstruct | 16 +++++++++------- tools/Blender.py | 40 +++++++++++++++++++++------------------- tools/btools.py | 3 ++- 3 files changed, 32 insertions(+), 27 deletions(-) diff --git a/SConstruct b/SConstruct index 0b985f3321a..26fa5b47198 100644 --- a/SConstruct +++ b/SConstruct @@ -56,6 +56,8 @@ BlenderEnvironment = tools.Blender.BlenderEnvironment btools = tools.btools B = tools.Blender +VERSION = tools.btools.VERSION # This is used in creating the local config directories + ### globals ### platform = sys.platform quickie = None @@ -193,7 +195,7 @@ if not env['BF_FANCY']: # NOTE: only do the scripts directory for now, otherwise is too disruptive for developers # TODO: perhaps we need an option (off by default) to not do this altogether... if not env['WITHOUT_BF_INSTALL'] and not env['WITHOUT_BF_OVERWRITE_INSTALL']: - scriptsDir = env['BF_INSTALLDIR'] + os.sep + '.blender' + os.sep + 'scripts' + scriptsDir = os.path.join(env['BF_INSTALLDIR'], VERSION, 'scripts') if os.path.isdir(scriptsDir): print B.bc.OKGREEN + "Clearing installation directory%s: %s" % (B.bc.ENDC, os.path.abspath(scriptsDir)) shutil.rmtree(scriptsDir) @@ -434,8 +436,8 @@ else: blenderinstall = env.Install(dir=dir, source=B.program_list) -#-- .blender -#- dont do .blender and scripts for darwin, it is already in the bundle +#-- local path = config files in install dir: installdir\VERSION +#- dont do config and scripts for darwin, it is already in the bundle dotblendlist = [] datafileslist = [] datafilestargetlist = [] @@ -460,13 +462,13 @@ if env['OURPLATFORM']!='darwin': if 'locale' in dp: datafileslist.append(os.path.join(dp,f)) if env['WITH_BF_FHS']: dir= os.path.join(*([BLENDERPATH] + ['datafiles'] + dp.split(os.sep)[2:])) # skip bin/.blender - else: dir= os.path.join(*([BLENDERPATH] + ['.blender'] + ['datafiles'] + dp.split(os.sep)[1:])) # skip bin + else: dir= os.path.join(*([BLENDERPATH] + [VERSION] + ['datafiles'] + dp.split(os.sep)[1:])) # skip bin datafilestargetlist.append(dir + os.sep + f) else: dotblendlist.append(os.path.join(dp, f)) if env['WITH_BF_FHS']: dir= os.path.join(*([BLENDERPATH] + ['config'] + dp.split(os.sep)[2:])) # skip bin/.blender - else: dir= os.path.join(*([BLENDERPATH] + ['.blender'] + ['config'] + dp.split(os.sep)[1:])) # skip bin + else: dir= os.path.join(*([BLENDERPATH] + [VERSION] + ['config'] + dp.split(os.sep)[1:])) # skip bin dottargetlist.append(dir + os.sep + f) @@ -479,7 +481,7 @@ if env['OURPLATFORM']!='darwin': dotblenderinstall.append(env.Install(dir=td, source=srcfile)) if env['WITH_BF_PYTHON']: - #-- .blender/scripts + #-- local/VERSION/scripts scriptpaths=['release/scripts'] for scriptpath in scriptpaths: for dp, dn, df in os.walk(scriptpath): @@ -487,7 +489,7 @@ if env['OURPLATFORM']!='darwin': dn.remove('.svn') if env['WITH_BF_FHS']: dir = BLENDERPATH - else: dir = os.path.join(env['BF_INSTALLDIR'], '.blender') + else: dir = os.path.join(env['BF_INSTALLDIR'], VERSION) dir += os.sep + os.path.basename(scriptpath) + dp[len(scriptpath):] source=[os.path.join(dp, f) for f in df if f[-3:]!='pyc'] diff --git a/tools/Blender.py b/tools/Blender.py index cd6e4652754..9d4dab65770 100644 --- a/tools/Blender.py +++ b/tools/Blender.py @@ -31,6 +31,8 @@ import SCons.Builder import SCons.Tool import bcolors bc = bcolors.bcolors() +import btools +VERSION = btools.VERSION Split = SCons.Util.Split Action = SCons.Action.Action @@ -466,7 +468,7 @@ def WinPyBundle(target=None, source=None, env=None): py_target = env.subst( env['BF_INSTALLDIR'] ) if py_target[0]=='#': py_target=py_target[1:] - py_target+= '/.blender/python/lib/' + py_target = os.path.join(py_target, VERSION, 'python', 'lib') def printexception(func,path,ex): if os.path.exists(path): #do not report if path does not exist. eg on a fresh build. print str(func) + ' failed on ' + str(path) @@ -521,27 +523,27 @@ def AppIt(target=None, source=None, env=None): commands.getoutput(cmd) cmd = 'cp %s/%s %s/%s.app/Contents/MacOS/%s'%(builddir, binary,builddir, binary, binary) commands.getoutput(cmd) - cmd = 'mkdir %s/%s.app/Contents/MacOS/.blender/'%(builddir, binary) + cmd = 'mkdir %s/%s.app/Contents/MacOS/%s/'%(builddir, binary, VERSION) # print cmd commands.getoutput(cmd) - cmd = builddir + '/%s.app/Contents/MacOS/.blender'%binary - shutil.copy(bldroot + '/bin/.blender/.bfont.ttf', cmd) - shutil.copy(bldroot + '/bin/.blender/.Blanguages', cmd) - cmd = 'cp -R %s/bin/.blender/locale %s/%s.app/Contents/Resources/'%(bldroot,builddir,binary) - commands.getoutput(cmd) - cmd = 'cp -R %s/bin/.blender/locale %s/%s.app/Contents/MacOS/.blender/'%(bldroot,builddir,binary) - commands.getoutput(cmd) - cmd = 'cp %s/bin/.blender/.Blanguages %s/%s.app/Contents/Resources/'%(bldroot,builddir,binary) - commands.getoutput(cmd) - cmd = 'mkdir %s/%s.app/Contents/MacOS/.blender/python/'%(builddir,binary) - commands.getoutput(cmd) - cmd = 'unzip -q %s/release/%s -d %s/%s.app/Contents/MacOS/.blender/python/'%(libdir,python_zip,builddir,binary) + cmd = builddir + '/%s.app/Contents/MacOS/VERSION'%(binary,VERSION) + shutil.copy(bldroot + '/bin/'+VERSION+'/.bfont.ttf', cmd) + shutil.copy(bldroot + '/bin/'+VERSION+'/.Blanguages', cmd) + cmd = 'cp -R %s/bin/%s/locale %s/%s.app/Contents/Resources/'%(bldroot,VERSION,builddir,binary) + commands.getoutput(cmd) + cmd = 'cp -R %s/bin/%s/locale %s/%s.app/Contents/MacOS/%s/'%(bldroot,VERSION,builddir,binary,VERSION) + commands.getoutput(cmd) + cmd = 'cp %s/bin/%s/.Blanguages %s/%s.app/Contents/Resources/'%(bldroot,VERSION,builddir,binary) + commands.getoutput(cmd) + cmd = 'mkdir %s/%s.app/Contents/MacOS/%s/python/'%(builddir,binary, VERSION) + commands.getoutput(cmd) + cmd = 'unzip -q %s/release/%s -d %s/%s.app/Contents/MacOS/%s/python/'%(libdir,python_zip,builddir,binary,VERSION) commands.getoutput(cmd) - cmd = 'cp -R %s/release/scripts %s/%s.app/Contents/MacOS/.blender/'%(bldroot,builddir,binary) + cmd = 'cp -R %s/release/scripts %s/%s.app/Contents/MacOS/%s/'%(bldroot,builddir,binary,VERSION) commands.getoutput(cmd) - cmd = 'cp -R %s/release/ui %s/%s.app/Contents/MacOS/.blender/'%(bldroot,builddir,binary) + cmd = 'cp -R %s/release/ui %s/%s.app/Contents/MacOS/%s/'%(bldroot,builddir,binary,VERSION) commands.getoutput(cmd) - cmd = 'cp -R %s/release/io %s/%s.app/Contents/MacOS/.blender/'%(bldroot,builddir,binary) + cmd = 'cp -R %s/release/io %s/%s.app/Contents/MacOS/%s/'%(bldroot,builddir,binary,VERSION) commands.getoutput(cmd) cmd = 'chmod +x %s/%s.app/Contents/MacOS/%s'%(builddir,binary, binary) commands.getoutput(cmd) @@ -559,7 +561,7 @@ def my_unixpybundle_print(target, source, env): def UnixPyBundle(target=None, source=None, env=None): # Any Unix except osx - #-- .blender/python/lib/python3.1 + #-- VERSION/python/lib/python3.1 import commands @@ -568,7 +570,7 @@ def UnixPyBundle(target=None, source=None, env=None): commands.getoutput(cmd) if env['WITH_BF_FHS']: dir = os.path.join(env['BF_INSTALLDIR'], 'share', 'blender', env['BF_VERSION']) # BLENDERPATH - else: dir = os.path.join(env['BF_INSTALLDIR'], '.blender') + else: dir = os.path.join(env['BF_INSTALLDIR'], VERSION) py_src = env.subst( env['BF_PYTHON_LIBPATH'] + '/python'+env['BF_PYTHON_VERSION'] ) py_target = env.subst( dir + '/python/lib/python'+env['BF_PYTHON_VERSION'] ) diff --git a/tools/btools.py b/tools/btools.py index a703103c59c..cb3ccd3ba03 100644 --- a/tools/btools.py +++ b/tools/btools.py @@ -1,4 +1,3 @@ - import os import os.path import SCons.Options @@ -16,6 +15,8 @@ import sys Variables = SCons.Variables BoolVariable = SCons.Variables.BoolVariable +VERSION = '2.52' # This is used in creating the local config directories + def print_arguments(args, bc): if len(args): for k,v in args.iteritems(): -- cgit v1.2.3