Fix windows scons OSL build error, just use quotes now instead of array.
[blender-staging.git] / intern / cycles / kernel / shaders / SConscript
1 #!/usr/bin/env python
2 #
3 # ***** BEGIN GPL LICENSE BLOCK *****
4 #
5 # This program is free software; you can redistribute it and/or
6 # modify it under the terms of the GNU General Public License
7 # as published by the Free Software Foundation; either version 2
8 # of the License, or (at your option) any later version.
9 #
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 # GNU General Public License for more details.
14 #
15 # You should have received a copy of the GNU General Public License
16 # along with this program; if not, write to the Free Software Foundation,
17 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 #
19 # The Original Code is Copyright (C) 2011, Blender Foundation
20 # All rights reserved.
21 #
22 # The Original Code is: all of this file.
23 #
24 # Contributor(s): Nathan Letwory.
25 #
26 # ***** END GPL LICENSE BLOCK *****
27
28 import sys
29 import os
30 import Blender as B
31
32 def normpath(path):
33     return os.path.abspath(os.path.normpath(path))
34
35 Import ('env')
36
37 oso_files = []
38
39 if env['WITH_BF_CYCLES_OSL']:
40     shaders = env.Clone()
41
42     # osl compiler
43     osl_compiler = File(env.subst(env['BF_OSL_COMPILER'])).abspath
44
45     # build directory
46     root_build_dir = normpath(env['BF_BUILDDIR'])
47     build_dir = os.path.join(root_build_dir, 'intern/cycles/kernel/shaders')
48
49     # source directories and files
50     source_dir = Dir('.').srcnode().path
51
52     # dependencies
53     dependencies = shaders.Glob('*.h')
54
55     for f in os.listdir(source_dir):
56         if f.endswith('.osl'):
57             osl_file = os.path.join(source_dir, f)
58             oso_file = os.path.join(build_dir, f.replace('.osl', '.oso'))
59
60             command = "\"%s\" -q -O2 -I\"%s\" -o \"%s\" \"%s\"" % (osl_compiler, source_dir, oso_file, osl_file)
61
62             shaders.Command(oso_file, f, command)
63             shaders.Depends(oso_file, [f] + dependencies)
64
65             oso_files.append(oso_file)
66
67
68 Return('oso_files')