2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
6 """Wrapper around swig.
8 Sets the SWIG_LIB environment var to point to Lib dir
9 and defers control to the platform-specific swig binary.
11 Depends on swig binaries being available at ../../third_party/swig.
20 swig_dir
= os
.path
.abspath(os
.path
.join(os
.path
.dirname(sys
.argv
[0]),
21 os
.pardir
, os
.pardir
, 'third_party', 'swig'))
22 lib_dir
= os
.path
.join(swig_dir
, "Lib")
23 os
.putenv("SWIG_LIB", lib_dir
)
30 # Swig documentation lies that platform macros are provided to swig
31 # preprocessor. Provide them ourselves.
33 'darwin': '-DSWIGMAC',
34 'linux2': '-DSWIGLINUX',
35 'linux3': '-DSWIGLINUX',
38 swig_bin
= os
.path
.join(swig_dir
, dir_map
[sys
.platform
], 'swig')
39 args
= [swig_bin
, platform_flags
[sys
.platform
]] + sys
.argv
[1:]
40 args
= [x
.replace('/', os
.sep
) for x
in args
]
41 return subprocess
.call(args
)
44 if __name__
== "__main__":