| Index: scripts/macports-gcc-wrapper/wrapper.py
|
| ===================================================================
|
| --- scripts/macports-gcc-wrapper/wrapper.py (revision 0)
|
| +++ scripts/macports-gcc-wrapper/wrapper.py (revision 0)
|
| @@ -0,0 +1,39 @@
|
| +#!/usr/bin/python
|
| +
|
| +# Copyright (c) 2010 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.
|
| +import os
|
| +import subprocess
|
| +import sys
|
| +
|
| +# This python script wraps gcc-mp-4.X so it can handle
|
| +# compilation options memcheck uses on Mac, including:
|
| +# a) skip "-arch XXX"
|
| +# b) define empty "__private_extern__" macro so it doesn't bark
|
| +# on mac-specific code using this keyword.
|
| +# c) skip "-mno-dynamic-no-pic" and "-mdynamic-no-pic"
|
| +# This may not be a very clean solution in general but it works.
|
| +
|
| +# The gcc command should be passes as an environment variable,
|
| +# e.g. GCC_BINARY_MASK=/opt/local/bin/XXX-mp-4.4
|
| +assert os.environ.has_key("GCC_BINARY_MASK")
|
| +gcc_binary_mask = os.environ["GCC_BINARY_MASK"]
|
| +gcc = gcc_binary_mask.replace("XXX", sys.argv[1])
|
| +
|
| +gcc_command = [gcc, "-D__private_extern__="]
|
| +skip = 0
|
| +for arg in sys.argv[2:]:
|
| + if skip > 0:
|
| + skip -= 1
|
| + continue
|
| + if arg == "-arch":
|
| + skip = 1
|
| + continue
|
| + if arg == "-mno-dynamic-no-pic":
|
| + continue
|
| + if arg == "-mdynamic-no-pic":
|
| + continue
|
| + gcc_command.append(arg)
|
| +
|
| +subprocess.call(gcc_command)
|
|
|