- add sources.
[platform/framework/web/crosswalk.git] / src / tools / swig / swig.py
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.
5
6 """Wrapper around swig.
7
8 Sets the SWIG_LIB environment var to point to Lib dir
9 and defers control to the platform-specific swig binary.
10
11 Depends on swig binaries being available at ../../third_party/swig.
12 """
13
14 import os
15 import subprocess
16 import sys
17
18
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',
29   }
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',
37   }
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)
42
43
44 if __name__ == "__main__":
45   sys.exit(main())