mirror of https://github.com/ARMmbed/mbed-os.git
				
				
				
			Allow users to set armcc and iccarm in path.
Raise exceptin instead of exit. Corrected error for arm-none-eabi-gcc/g++ set in path.pull/2418/head
							parent
							
								
									51245ceb7a
								
							
						
					
					
						commit
						cd229bacc3
					
				| 
						 | 
				
			
			@ -198,9 +198,9 @@ def check_toolchain_path(function):
 | 
			
		|||
    """
 | 
			
		||||
    def perform_check(self, *args, **kwargs):
 | 
			
		||||
        if not exists(self.toolchain_path):
 | 
			
		||||
            print('[ERROR] Toolchain path for %s does not exist.\n'
 | 
			
		||||
                  'Current value: %s' % (self.name, self.toolchain_path))
 | 
			
		||||
            sys.exit(-1)
 | 
			
		||||
            error_string = 'Could not find executable for %s.\n Currently ' \
 | 
			
		||||
                           'set search path: %s'% (self.name, self.toolchain_path)
 | 
			
		||||
            raise Exception(error_string)
 | 
			
		||||
        return function(self, *args, **kwargs)
 | 
			
		||||
    return perform_check
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,12 +15,12 @@ See the License for the specific language governing permissions and
 | 
			
		|||
limitations under the License.
 | 
			
		||||
"""
 | 
			
		||||
import re
 | 
			
		||||
from os.path import join, dirname, splitext, basename, exists
 | 
			
		||||
from os.path import join, dirname, splitext, basename
 | 
			
		||||
from distutils.spawn import find_executable
 | 
			
		||||
 | 
			
		||||
from tools.toolchains import mbedToolchain, TOOLCHAIN_PATHS
 | 
			
		||||
from tools.hooks import hook_tool
 | 
			
		||||
from tools.utils import mkdir
 | 
			
		||||
import copy
 | 
			
		||||
 | 
			
		||||
class ARM(mbedToolchain):
 | 
			
		||||
    LINKER_EXT = '.sct'
 | 
			
		||||
| 
						 | 
				
			
			@ -56,6 +56,11 @@ class ARM(mbedToolchain):
 | 
			
		|||
        else:
 | 
			
		||||
            cpu = target.core
 | 
			
		||||
 | 
			
		||||
        if not TOOLCHAIN_PATHS['ARM']:
 | 
			
		||||
            exe = find_executable('armcc')
 | 
			
		||||
            if exe:
 | 
			
		||||
                TOOLCHAIN_PATHS['ARM'] = dirname(dirname(exe))
 | 
			
		||||
 | 
			
		||||
        ARM_BIN = join(TOOLCHAIN_PATHS['ARM'], "bin")
 | 
			
		||||
        ARM_INC = join(TOOLCHAIN_PATHS['ARM'], "include")
 | 
			
		||||
        
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,6 +16,7 @@ limitations under the License.
 | 
			
		|||
"""
 | 
			
		||||
import re
 | 
			
		||||
from os.path import join, basename, splitext, dirname, exists
 | 
			
		||||
from distutils.spawn import find_executable
 | 
			
		||||
 | 
			
		||||
from tools.toolchains import mbedToolchain, TOOLCHAIN_PATHS
 | 
			
		||||
from tools.hooks import hook_tool
 | 
			
		||||
| 
						 | 
				
			
			@ -110,7 +111,10 @@ class GCC(mbedToolchain):
 | 
			
		|||
        self.ar = join(tool_path, "arm-none-eabi-ar")
 | 
			
		||||
        self.elf2bin = join(tool_path, "arm-none-eabi-objcopy")
 | 
			
		||||
 | 
			
		||||
        self.toolchain_path = tool_path
 | 
			
		||||
        if tool_path:
 | 
			
		||||
            self.toolchain_path = main_cc
 | 
			
		||||
        else:
 | 
			
		||||
            self.toolchain_path = find_executable("arm-none-eabi-gcc") or ''
 | 
			
		||||
 | 
			
		||||
    def parse_dependencies(self, dep_path):
 | 
			
		||||
        dependencies = []
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,6 +17,7 @@ limitations under the License.
 | 
			
		|||
import re
 | 
			
		||||
from os import remove
 | 
			
		||||
from os.path import join, exists, dirname, splitext, exists
 | 
			
		||||
from distutils.spawn import find_executable
 | 
			
		||||
 | 
			
		||||
from tools.toolchains import mbedToolchain, TOOLCHAIN_PATHS
 | 
			
		||||
from tools.hooks import hook_tool
 | 
			
		||||
| 
						 | 
				
			
			@ -50,6 +51,12 @@ class IAR(mbedToolchain):
 | 
			
		|||
            cpuchoice = "Cortex-M7"
 | 
			
		||||
        else:
 | 
			
		||||
            cpuchoice = target.core
 | 
			
		||||
 | 
			
		||||
        if not TOOLCHAIN_PATHS['IAR']:
 | 
			
		||||
            exe =  find_executable('iccarm')
 | 
			
		||||
            if exe:
 | 
			
		||||
                TOOLCHAIN_PATHS['IAR'] = dirname(dirname(exe))
 | 
			
		||||
 | 
			
		||||
        # flags_cmd are used only by our scripts, the project files have them already defined,
 | 
			
		||||
        # using this flags results in the errors (duplication)
 | 
			
		||||
        # asm accepts --cpu Core or --fpu FPU, not like c/c++ --cpu=Core
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue