def get_vcvarsall_arg(arch, target_arch): if target_arch == Architecture.X86: # If arch is x86_64, this will cause the WOW64 version of MSVC to be # used, which is how most people compile 32-bit apps on 64-bit. return 'x86' if arch == Architecture.X86: if target_arch == Architecture.X86_64: return 'x86_amd64' elif target_arch == Architecture.ARM64: return 'x86_arm64' elif target_arch.is_arm(): return 'x86_arm' elif arch == Architecture.X86_64: if target_arch == Architecture.X86_64: return 'amd64' elif target_arch == Architecture.ARM64: return 'amd64_arm64' elif Architecture.is_arm(target_arch): return 'amd64_arm' # FIXME: Does Visual Studio support arm/arm64 as build machines? elif arch == Architecture.ARM64 and target_arch == Architecture.ARM64: return 'arm64' elif Architecture.is_arm(arch) and Architecture.is_arm(target_arch): return 'arm' raise FatalError('Unsupported arch/target_arch: {0}/{1}'.format( arch, target_arch))
def _get_target_cpu_family(self): if Architecture.is_arm(self.config.target_arch): if Architecture.is_arm32(self.config.target_arch): return 'arm' else: return 'aarch64' return self.config.target_arch
def add_system_libs(config, new_env, old_env=None): ''' Add /usr/lib/pkgconfig to PKG_CONFIG_PATH so the system's .pc file can be found. ''' arch = config.target_arch libdir = 'lib' # Only use this when compiling on Linux for Linux and not cross-compiling # to some other Linux if config.platform != Platform.LINUX: return if config.target_platform != Platform.LINUX: return if config.cross_compiling(): return if arch == Architecture.X86_64: if config.distro == Distro.REDHAT or config.distro == Distro.SUSE: libdir = 'lib64' sysroot = '/' if config.sysroot: sysroot = config.sysroot if not old_env: old_env = os.environ search_paths = [] if old_env.get('PKG_CONFIG_LIBDIR', None): search_paths += [old_env['PKG_CONFIG_LIBDIR']] if old_env.get('PKG_CONFIG_PATH', None): search_paths += [old_env['PKG_CONFIG_PATH']] search_paths += [ os.path.join(sysroot, 'usr', libdir, 'pkgconfig'), os.path.join(sysroot, 'usr/share/pkgconfig')] if config.target_distro == Distro.DEBIAN: host = None if arch == Architecture.ARM: host = 'arm-linux-gnueabi' elif arch == Architecture.ARM64: host = 'aarch64-linux-gnu' elif arch == Architecture.X86: host = 'i386-linux-gnu' elif Architecture.is_arm(arch): host = 'arm-linux-gnueabihf' else: host = '%s-linux-gnu' % arch search_paths.append(os.path.join(sysroot, 'usr/lib/%s/pkgconfig' % host)) new_env['PKG_CONFIG_PATH'] = ':'.join(search_paths) search_paths = [os.environ.get('ACLOCAL_PATH', ''), os.path.join(sysroot, 'usr/share/aclocal')] new_env['ACLOCAL_PATH'] = ':'.join(search_paths)
def add_system_libs(config, new_env): ''' Add /usr/lib/pkgconfig to PKG_CONFIG_PATH so the system's .pc file can be found. ''' arch = config.target_arch libdir = 'lib' if arch == Architecture.X86_64: if config.distro == Distro.REDHAT or config.distro == Distro.SUSE: libdir = 'lib64' sysroot = '/' if config.sysroot: sysroot = config.sysroot search_paths = [ os.environ['PKG_CONFIG_LIBDIR'], os.path.join(sysroot, 'usr', libdir, 'pkgconfig'), os.path.join(sysroot, 'usr/share/pkgconfig') ] if config.target_distro == Distro.DEBIAN: host = None if arch == Architecture.ARM: host = 'arm-linux-gnueabi' elif arch == Architecture.ARM64: host = 'aarch64-linux-gnu' elif arch == Architecture.X86: host = 'i386-linux-gnu' elif Architecture.is_arm(arch): host = 'arm-linux-gnueabihf' else: host = '%s-linux-gnu' % arch search_paths.append( os.path.join(sysroot, 'usr/lib/%s/pkgconfig' % host)) new_env['PKG_CONFIG_PATH'] = ':'.join(search_paths) search_paths = [ os.environ.get('ACLOCAL_PATH', ''), os.path.join(sysroot, 'usr/share/aclocal') ] new_env['ACLOCAL_PATH'] = ':'.join(search_paths)
def add_system_libs(config, new_env): ''' Add /usr/lib/pkgconfig to PKG_CONFIG_PATH so the system's .pc file can be found. ''' arch = config.target_arch libdir = 'lib' if arch == Architecture.X86_64: if config.distro == Distro.REDHAT or config.distro == Distro.SUSE: libdir = 'lib64' sysroot = '/' if config.sysroot: sysroot = config.sysroot search_paths = [os.environ['PKG_CONFIG_LIBDIR'], os.path.join(sysroot, 'usr', libdir, 'pkgconfig'), os.path.join(sysroot, 'usr/share/pkgconfig')] if config.target_distro == Distro.DEBIAN: host = None if arch == Architecture.ARM: host = 'arm-linux-gnueabi' elif arch == Architecture.ARM64: host = 'aarch64-linux-gnu' elif arch == Architecture.X86: host = 'i386-linux-gnu' elif Architecture.is_arm(arch): host = 'arm-linux-gnueabihf' else: host = '%s-linux-gnu' % arch search_paths.append(os.path.join(sysroot, 'usr/lib/%s/pkgconfig' % host)) new_env['PKG_CONFIG_PATH'] = ':'.join(search_paths) search_paths = [os.environ.get('ACLOCAL_PATH', ''), os.path.join(sysroot, 'usr/share/aclocal')] new_env['ACLOCAL_PATH'] = ':'.join(search_paths)