== SCons ==
authorNathan Letwory <nathan@letworyinteractive.com>
Mon, 5 Jul 2010 07:06:19 +0000 (07:06 +0000)
committerNathan Letwory <nathan@letworyinteractive.com>
Mon, 5 Jul 2010 07:06:19 +0000 (07:06 +0000)
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
tools/Blender.py
tools/btools.py

index 0b985f3321a1ec239c8f67e983d22e6d60501367..26fa5b471981314756816ff81019d8d86e8b2716 100644 (file)
@@ -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']
index cd6e4652754b1d80cedceb52f5a16886f19c3783..9d4dab65770c79b080592fb69d002932720ad281 100644 (file)
@@ -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'] )
index a703103c59cbc72a121419757f1241094ffaf882..cb3ccd3ba037cbd0caa24181365f4dbaba957f7d 100644 (file)
@@ -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():