708c2951272606054b000dc2d819fe433810bc26
[blender-staging.git] / build_files / buildbot / slave_compile.py
1 # ##### BEGIN GPL LICENSE BLOCK #####
2 #
3 #  This program is free software; you can redistribute it and/or
4 #  modify it under the terms of the GNU General Public License
5 #  as published by the Free Software Foundation; either version 2
6 #  of the License, or (at your option) any later version.
7 #
8 #  This program is distributed in the hope that it will be useful,
9 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
10 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 #  GNU General Public License for more details.
12 #
13 #  You should have received a copy of the GNU General Public License
14 #  along with this program; if not, write to the Free Software Foundation,
15 #  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 #
17 # ##### END GPL LICENSE BLOCK #####
18
19 import os
20 import subprocess
21 import sys
22
23 # get builder name
24 if len(sys.argv) < 2:
25     sys.stderr.write("Not enough arguments, expecting builder name\n")
26     sys.exit(1)
27
28 builder = sys.argv[1]
29
30 # we run from build/ directory
31 blender_dir = '../blender'
32
33 if builder.find('cmake') != -1:
34     # cmake
35
36     # set build options
37     cmake_options = ['-DCMAKE_BUILD_TYPE:STRING=Release']
38
39     if builder == 'mac_x86_64_cmake':
40         cmake_options.append('-DCMAKE_OSX_ARCHITECTURES:STRING=x86_64')
41     elif builder == 'mac_i386_cmake':
42         cmake_options.append('-DCMAKE_OSX_ARCHITECTURES:STRING=i386')
43     elif builder == 'mac_ppc_cmake':
44         cmake_options.append('-DCMAKE_OSX_ARCHITECTURES:STRING=ppc')
45
46     # configure and make
47     retcode = subprocess.call(['cmake', blender_dir] + cmake_options)
48     if retcode != 0:
49         sys.exit(retcode)
50     retcode = subprocess.call(['make', '-s', '-j4', 'install'])
51     sys.exit(retcode)
52 else:
53     # scons
54     os.chdir(blender_dir)
55     scons_options = []
56
57     retcode = subprocess.call(['python', 'scons/scons.py'] + scons_options)
58     sys.exit(retcode)
59