Blink roll 25b6bd3a7a131ffe68d809546ad1a20707915cdc:3a503f41ae42e5b79cfcd2ff10e65afde...
[chromium-blink-merge.git] / tools / swig / swig.py
blob8f4babb98ae477bfc06690fbcace46d253412121
1 #!/usr/bin/env python
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.
12 """
14 import os
15 import subprocess
16 import sys
19 def main():
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)
24 dir_map = {
25 'darwin': 'mac',
26 'linux2': 'linux',
27 'linux3': 'linux',
28 'win32': 'win',
30 # Swig documentation lies that platform macros are provided to swig
31 # preprocessor. Provide them ourselves.
32 platform_flags = {
33 'darwin': '-DSWIGMAC',
34 'linux2': '-DSWIGLINUX',
35 'linux3': '-DSWIGLINUX',
36 'win32': '-DSWIGWIN',
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__":
45 sys.exit(main())