Mark Slee | 89e2bb8 | 2007-03-01 00:20:36 +0000 | [diff] [blame] | 1 | #!/usr/bin/env python |
| 2 | # |
| 3 | # Copyright (c) 2006- Facebook |
| 4 | # Distributed under the Thrift Software License |
| 5 | # |
| 6 | # See accompanying file LICENSE or visit the Thrift site at: |
| 7 | # http://developers.facebook.com/thrift/ |
| 8 | |
dweatherford | 65b7075 | 2007-10-31 02:18:14 +0000 | [diff] [blame] | 9 | from os import path |
Mark Slee | e2bd58d | 2006-10-31 05:09:24 +0000 | [diff] [blame] | 10 | from SCons.Builder import Builder |
| 11 | |
mvaradachari | 476b796 | 2007-09-17 20:40:16 +0000 | [diff] [blame] | 12 | def scons_env(env, add=''): |
dweatherford | 65b7075 | 2007-10-31 02:18:14 +0000 | [diff] [blame] | 13 | opath = path.dirname(path.abspath('$TARGET')) |
| 14 | lstr = 'thrift --cpp -o ' + opath + ' ' + add + ' $SOURCE' |
mvaradachari | 476b796 | 2007-09-17 20:40:16 +0000 | [diff] [blame] | 15 | cppbuild = Builder(action = lstr) |
Mark Slee | e2bd58d | 2006-10-31 05:09:24 +0000 | [diff] [blame] | 16 | env.Append(BUILDERS = {'ThriftCpp' : cppbuild}) |
| 17 | |
| 18 | def gen_cpp(env, dir, file): |
| 19 | scons_env(env) |
| 20 | suffixes = ['_types.h', '_types.cpp'] |
| 21 | targets = map(lambda s: 'gen-cpp/' + file + s, suffixes) |
| 22 | return env.ThriftCpp(targets, dir+file+'.thrift') |