#!/usr/bin/env python # Copyright (c) 2012 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. """Wrapper around swig. Sets the SWIG_LIB environment var to point to Lib dir and defers control to the platform-specific swig binary. Depends on swig binaries being available at ../../third_party/swig. """ import os import subprocess import sys def main(): swig_dir = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), os.pardir, os.pardir, 'third_party', 'swig')) lib_dir = os.path.join(swig_dir, "Lib") os.putenv("SWIG_LIB", lib_dir) dir_map = { 'darwin': 'mac', 'linux2': 'linux', 'linux3': 'linux', 'win32': 'win', } # Swig documentation lies that platform macros are provided to swig # preprocessor. Provide them ourselves. platform_flags = { 'darwin': '-DSWIGMAC', 'linux2': '-DSWIGLINUX', 'linux3': '-DSWIGLINUX', 'win32': '-DSWIGWIN', } swig_bin = os.path.join(swig_dir, dir_map[sys.platform], 'swig') args = [swig_bin, platform_flags[sys.platform]] + sys.argv[1:] args = [x.replace('/', os.sep) for x in args] return subprocess.call(args) if __name__ == "__main__": sys.exit(main())