|
@@ -1,87 +0,0 @@
|
|
|
-#!/usr/bin/env python
|
|
|
-#
|
|
|
-# Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
|
|
|
-#
|
|
|
-# SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
|
-#
|
|
|
-
|
|
|
-#
|
|
|
-# ARMCC tools do not support cygwin paths. Ths script converts cygwin paths to DOS paths
|
|
|
-# in any arguments.
|
|
|
-#
|
|
|
-# armcc_wrapper.py ToolToExec [command line to convert]
|
|
|
-#
|
|
|
-# anything with the / will be converted via cygpath cygwin call or manually.
|
|
|
-# -I/cygpath/c/example is a special case as you can not pass -I to cygpath
|
|
|
-#
|
|
|
-# ExceptionList if a tool takes an argument with a / add it to the exception list
|
|
|
-#
|
|
|
-from __future__ import print_function
|
|
|
-import sys
|
|
|
-import os
|
|
|
-import subprocess
|
|
|
-import pipes
|
|
|
-
|
|
|
-#
|
|
|
-# Convert using cygpath command line tool
|
|
|
-# Currently not used, but just in case we need it in the future
|
|
|
-#
|
|
|
-def ConvertCygPathToDosViacygpath(CygPath):
|
|
|
- p = subprocess.Popen("cygpath -m " + pipes.quote(CygPath), shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, close_fds=True)
|
|
|
- return p.stdout.read().strip()
|
|
|
-
|
|
|
-#
|
|
|
-#
|
|
|
-#
|
|
|
-def ConvertCygPathToDos(CygPath):
|
|
|
- if CygPath.find("/cygdrive/") == 0:
|
|
|
- # convert /cygdrive/c/Xyz to c:/Xyz
|
|
|
- DosPath = CygPath[10] + ':' + CygPath[11:]
|
|
|
- else:
|
|
|
- DosPath = CygPath
|
|
|
-
|
|
|
- # pipes.quote will add the extra \\ for us.
|
|
|
- return DosPath.replace('/', '\\')
|
|
|
-
|
|
|
-
|
|
|
-# we receive our options as a list, but we will be passing them to the shell as a line
|
|
|
-# this means we have to requote things as they will get one round of unquoting.
|
|
|
-# we can't set "shell=False" because we are running commands from the PATH and
|
|
|
-# if you don't use the shell you don't get a PATH search.
|
|
|
-def main(argv):
|
|
|
-
|
|
|
- # use 1st argument as name of tool to call
|
|
|
- Command = pipes.quote(sys.argv[1]);
|
|
|
-
|
|
|
- ExceptionList = ["/interwork"]
|
|
|
-
|
|
|
- for arg in argv:
|
|
|
- if arg.find('/') == -1:
|
|
|
- # if we don't need to convert just add to the command line
|
|
|
- Command = Command + ' ' + pipes.quote(arg)
|
|
|
- elif arg in ExceptionList:
|
|
|
- # if it is in the list, then don't do a cygpath
|
|
|
- # assembler stuff after --apcs has the /.
|
|
|
- Command = Command + ' ' + pipes.quote(arg)
|
|
|
- else:
|
|
|
- if ((arg[0] == '-') and (arg[1] == 'I' or arg[1] == 'i')):
|
|
|
- CygPath = arg[0] + arg[1] + ConvertCygPathToDos(arg[2:])
|
|
|
- else:
|
|
|
- CygPath = ConvertCygPathToDos(arg)
|
|
|
-
|
|
|
- Command = Command + ' ' + pipes.quote(CygPath)
|
|
|
-
|
|
|
- # call the real tool with the converted paths
|
|
|
- return subprocess.call(Command, shell=True)
|
|
|
-
|
|
|
-
|
|
|
-if __name__ == "__main__":
|
|
|
- try:
|
|
|
- ret = main(sys.argv[2:])
|
|
|
-
|
|
|
- except:
|
|
|
- print("exiting: exception from " + sys.argv[0])
|
|
|
- ret = 2
|
|
|
-
|
|
|
- sys.exit(ret)
|
|
|
-
|