Switch linux buildbot to compile all cuda kernels in 64bit environment
[blender.git] / build_files / buildbot / slave_compile.py
index fa933a84841f12cfb9a4acbc69f0e31f1b7e2e5c..b66a09afe2540db209839df5d04c48290db2c2da 100644 (file)
@@ -60,6 +60,26 @@ else:
     if builder.find('linux') != -1:
         import shutil
 
+        configs = []
+        if builder.endswith('linux_glibc211_x86_64_scons'):
+            configs = ['user-config-player-glibc211-x86_64.py',
+                       'user-config-cuda-glibc211-x86_64.py',
+                       'user-config-glibc211-x86_64.py']
+            chroot_name = 'buildbot_squeeze_x86_64'
+            cuda_chroot = 'buildbot_squeeze_x86_64'
+        elif builder.endswith('linux_glibc211_i386_scons'):
+            configs = ['user-config-player-glibc211-i686.py',
+                       'user-config-cuda-glibc211-i686.py',
+                       'user-config-glibc211-i686.py']
+            chroot_name = 'buildbot_squeeze_i686'
+
+            # use 64bit cuda toolkit, so there'll be no memory limit issues
+            cuda_chroot = 'buildbot_squeeze_x86_64'
+
+        # Compilation will happen inside of chroot environment
+        prog_scons_cmd = ['schroot', '-c', chroot_name] + scons_cmd
+        cuda_scons_cmd = ['schroot', '-c', cuda_chroot] + scons_cmd
+
         # We're using the same rules as release builder, so tweak
         # build and install dirs
         build_dir = os.path.join('..', 'build', builder)
@@ -74,14 +94,6 @@ else:
         buildbot_dir = os.path.dirname(os.path.realpath(__file__))
         config_dir = os.path.join(buildbot_dir, 'config')
 
-        configs = []
-        if builder.endswith('linux_glibc211_x86_64_scons'):
-            configs = ['user-config-player-glibc211-x86_64.py',
-                       'user-config-glibc211-x86_64.py']
-        elif builder.endswith('linux_glibc211_i386_scons'):
-            configs = ['user-config-player-glibc211-i686.py',
-                       'user-config-glibc211-i686.py']
-
         for config in configs:
             config_fpath = os.path.join(config_dir, config)
 
@@ -94,14 +106,19 @@ else:
 
             scons_options += common_options
 
-            if config.find('player') == -1:
-                scons_options.append('blender')
-            else:
+            if config.find('player') != -1:
                 scons_options.append('blenderplayer')
+                cur_scons_cmd = prog_scons_cmd
+            elif config.find('cuda') != -1:
+                scons_options.append('cudakernels')
+                cur_scons_cmd = cuda_scons_cmd
+            else:
+                scons_options.append('blender')
+                cur_scons_cmd = prog_scons_cmd
 
             scons_options.append('BF_CONFIG=' + config_fpath)
 
-            retcode = subprocess.call(scons_cmd + scons_options)
+            retcode = subprocess.call(cur_scons_cmd + scons_options)
             if retcode != 0:
                 print('Error building rules wuth config ' + config)
                 sys.exit(retcode)