platform: added basic riscv support
This commit is contained in:
parent
17ed252b60
commit
bc67453b6c
3 changed files with 14 additions and 8 deletions
|
|
@ -1 +1 @@
|
||||||
Subproject commit f7b1b02a301f900082d2e05ebbbc2d7edc2a4e09
|
Subproject commit 173f387022310148e1f9ef65d61164579ba509a9
|
||||||
11
meson.build
11
meson.build
|
|
@ -37,6 +37,7 @@ os = host_machine.system()
|
||||||
cpu = host_machine.cpu_family()
|
cpu = host_machine.cpu_family()
|
||||||
cxx = compiler.get_id()
|
cxx = compiler.get_id()
|
||||||
build_type = get_option ('buildtype')
|
build_type = get_option ('buildtype')
|
||||||
|
cpu_non_x86 = cpu == 'arm' or cpu.startswith('ppc') or cpu.startswith('riscv')
|
||||||
|
|
||||||
opt_64bit = get_option('64bit')
|
opt_64bit = get_option('64bit')
|
||||||
opt_native = get_option('native')
|
opt_native = get_option('native')
|
||||||
|
|
@ -111,7 +112,7 @@ if cxx == 'clang' or cxx == 'gcc'
|
||||||
'-pthread'
|
'-pthread'
|
||||||
]
|
]
|
||||||
|
|
||||||
if not opt_native and cpu != 'arm' and not cpu.startswith('ppc')
|
if not opt_native and not cpu_non_x86
|
||||||
cxxflags += '-mtune=generic'
|
cxxflags += '-mtune=generic'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
@ -119,7 +120,7 @@ if cxx == 'clang' or cxx == 'gcc'
|
||||||
cxxflags += [
|
cxxflags += [
|
||||||
'-march=armv8-a+fp+simd',
|
'-march=armv8-a+fp+simd',
|
||||||
]
|
]
|
||||||
elif cpu != 'arm' and not cpu.startswith('ppc')
|
elif not cpu_non_x86
|
||||||
if not opt_nosimd
|
if not opt_nosimd
|
||||||
cxxflags += [
|
cxxflags += [
|
||||||
'-msse', '-msse2', '-msse3', '-msse3', '-mfpmath=sse'
|
'-msse', '-msse2', '-msse3', '-msse3', '-mfpmath=sse'
|
||||||
|
|
@ -143,7 +144,7 @@ if cxx == 'clang' or cxx == 'gcc'
|
||||||
'-funroll-loops', '-fomit-frame-pointer', '-fno-stack-protector', '-fvisibility=hidden', '-fvisibility-inlines-hidden', '-fno-math-errno'
|
'-funroll-loops', '-fomit-frame-pointer', '-fno-stack-protector', '-fvisibility=hidden', '-fvisibility-inlines-hidden', '-fno-math-errno'
|
||||||
]
|
]
|
||||||
|
|
||||||
if os != 'darwin' and os != 'windows' and cpu != 'aarch64' and cpu != 'arm' and not cpu.startswith('ppc')
|
if os != 'darwin' and os != 'windows' and cpu != 'aarch64' and not cpu_non_x86
|
||||||
if not opt_static_linkent
|
if not opt_static_linkent
|
||||||
cxxflags += [
|
cxxflags += [
|
||||||
'-fdata-sections',
|
'-fdata-sections',
|
||||||
|
|
@ -203,7 +204,7 @@ if cxx == 'clang' or cxx == 'gcc'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# by default we buid 32bit binaries
|
# by default we buid 32bit binaries
|
||||||
if not opt_64bit and cpu != 'aarch64' and cpu != 'arm' and not cpu.startswith('ppc')
|
if not opt_64bit and cpu != 'aarch64' and not cpu_non_x86
|
||||||
cxxflags += '-m32'
|
cxxflags += '-m32'
|
||||||
ldflags += '-m32'
|
ldflags += '-m32'
|
||||||
|
|
||||||
|
|
@ -319,6 +320,8 @@ target_name = meson.project_name()
|
||||||
# xash specific postfix for binaries
|
# xash specific postfix for binaries
|
||||||
if cpu == 'aarch64'
|
if cpu == 'aarch64'
|
||||||
target_name += '_arm64'
|
target_name += '_arm64'
|
||||||
|
elif cpu.startswith('riscv')
|
||||||
|
target_name += '_riscv64d'
|
||||||
elif opt_64bit
|
elif opt_64bit
|
||||||
target_name += '_amd64'
|
target_name += '_amd64'
|
||||||
endif
|
endif
|
||||||
|
|
|
||||||
|
|
@ -827,6 +827,9 @@ void Game::constructCSBinaryName (StringArray &libs) {
|
||||||
else if (plat.ppc) {
|
else if (plat.ppc) {
|
||||||
suffix = "_ppc64le";
|
suffix = "_ppc64le";
|
||||||
}
|
}
|
||||||
|
else if (plat.riscv) {
|
||||||
|
suffix = "_riscv64d";
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
suffix = "_amd64";
|
suffix = "_amd64";
|
||||||
}
|
}
|
||||||
|
|
@ -844,12 +847,12 @@ void Game::constructCSBinaryName (StringArray &libs) {
|
||||||
// build base names
|
// build base names
|
||||||
if (plat.android) {
|
if (plat.android) {
|
||||||
// only "libcs" with suffix (no "mp", and must have "lib" prefix)
|
// only "libcs" with suffix (no "mp", and must have "lib" prefix)
|
||||||
libs.insert (0, "libcs" + suffix);
|
libs.push ("libcs" + suffix);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// Standard: "mp" and "cs" with suffix
|
// Standard: "mp" and "cs" with suffix
|
||||||
libs.insert (0, "cs" + suffix);
|
libs.push ("cs" + suffix);
|
||||||
libs.insert (0, "mp" + suffix);
|
libs.push ("mp" + suffix);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue