71 lines
2.1 KiB
Python
71 lines
2.1 KiB
Python
import os
|
|
|
|
from .base import PlatformInfo
|
|
from kiwixbuild.utils import which, pj
|
|
|
|
|
|
class I586PlatformInfo(PlatformInfo):
|
|
build = 'i586'
|
|
arch_full = 'i586-linux-gnu'
|
|
compatible_hosts = ['fedora', 'debian']
|
|
|
|
def get_cross_config(self):
|
|
return {
|
|
'binaries': self.binaries,
|
|
'exe_wrapper_def': '',
|
|
'extra_libs': ['-m32', '-march=i586', '-mno-sse'],
|
|
'extra_cflags': [
|
|
'-m32',
|
|
'-march=i586',
|
|
'-mno-sse',
|
|
*('-I{}'.format(include_dir) for include_dir in self.get_include_dirs())
|
|
],
|
|
'host_machine': {
|
|
'system': 'linux',
|
|
'lsystem': 'linux',
|
|
'cpu_family': 'x86',
|
|
'cpu': 'i586',
|
|
'endian': 'little',
|
|
'abi': ''
|
|
}
|
|
}
|
|
|
|
@property
|
|
def configure_options(self):
|
|
yield f'--host={self.arch_full}'
|
|
|
|
@property
|
|
def binaries(self):
|
|
return {k:which(v)
|
|
for k, v in (('CC', os.environ.get('CC', 'gcc')),
|
|
('CXX', os.environ.get('CXX', 'g++')),
|
|
('AR', 'ar'),
|
|
('STRIP', 'strip'),
|
|
('RANLIB', 'ranlib'),
|
|
('LD', 'ld'),
|
|
('PKGCONFIG', 'pkg-config'))
|
|
}
|
|
|
|
def set_comp_flags(self, env):
|
|
super().set_comp_flags(env)
|
|
env['CFLAGS'] = "-m32 -march=i586 -mno-sse "+env['CFLAGS']
|
|
env['CXXFLAGS'] = "-m32 -march=i586 -mno-sse "+env['CXXFLAGS']
|
|
env['LDFLAGS'] = "-m32 -march=i586 -mno-sse "+env['LDFLAGS']
|
|
|
|
def get_bin_dir(self):
|
|
return []
|
|
|
|
|
|
def finalize_setup(self):
|
|
super().finalize_setup()
|
|
self.buildEnv.cmake_crossfile = self._gen_crossfile('cmake_i586_cross_file.txt', 'cmake_cross_file.txt')
|
|
self.buildEnv.meson_crossfile = self._gen_crossfile('meson_cross_file.txt')
|
|
|
|
class I586Dyn(I586PlatformInfo):
|
|
name = 'i586_dyn'
|
|
static = False
|
|
|
|
class I586Static(I586PlatformInfo):
|
|
name = 'i586_static'
|
|
static = True
|