浏览代码

Add linux-riscv64-gcc profile (#307)

Glavo 2 年之前
父节点
当前提交
44a5a7b8bc
共有 1 个文件被更改,包括 23 次插入0 次删除
  1. 23 0
      scripts/toolchain.lua

+ 23 - 0
scripts/toolchain.lua

@@ -78,6 +78,7 @@ function toolchain(_buildDir, _libDir)
 			{ "linux-arm-gcc",   "Linux (ARM, GCC compiler)"  },
 			{ "linux-ppc64le-gcc",  "Linux (PPC64LE, GCC compiler)"  },
 			{ "linux-ppc64le-clang",  "Linux (PPC64LE, Clang compiler)"  },
+			{ "linux-riscv64-gcc",  "Linux (RISC-V 64, GCC compiler)"  },
 			{ "ios-arm",         "iOS - ARM"                  },
 			{ "ios-arm64",       "iOS - ARM64"                },
 			{ "ios-simulator",   "iOS - Simulator"            },
@@ -313,6 +314,9 @@ function toolchain(_buildDir, _libDir)
 			premake.gcc.llvm = true
 			location (path.join(_buildDir, "projects", _ACTION .. "-linux-ppc64le-clang"))
 
+		elseif "linux-riscv64-gcc" == _OPTIONS["gcc"] then
+			location (path.join(_buildDir, "projects", _ACTION .. "-linux-riscv64-gcc"))
+
 		elseif "mingw-gcc" == _OPTIONS["gcc"] then
 			if not os.getenv("MINGW") then
 				print("Set MINGW environment variable.")
@@ -851,6 +855,20 @@ function toolchain(_buildDir, _libDir)
 			"-Wl,--gc-sections",
 		}
 
+	configuration { "linux-riscv64*" }
+		buildoptions {
+			"-Wunused-value",
+			"-Wundef",
+			"-march=rv64g"
+		}
+		links {
+			"rt",
+			"dl",
+		}
+		linkoptions {
+			"-Wl,--gc-sections",
+		}
+
 	configuration { "linux-ppc64le-gcc" }
 		targetdir (path.join(_buildDir, "linux_ppc64le_gcc/bin"))
 		objdir (path.join(_buildDir, "linux_ppc64le_gcc/obj"))
@@ -861,6 +879,11 @@ function toolchain(_buildDir, _libDir)
 		objdir (path.join(_buildDir, "linux_ppc64le_clang/obj"))
 		libdirs { path.join(_libDir, "lib/linux_ppc64le_clang") }
 
+	configuration { "linux-riscv64-gcc" }
+		targetdir (path.join(_buildDir, "linux_riscv64_gcc/bin"))
+		objdir (path.join(_buildDir, "linux_riscv64_gcc/obj"))
+		libdirs { path.join(_libDir, "lib/linux_riscv64_gcc") }
+
 	configuration { "wasm2js" }
 		targetdir (path.join(_buildDir, "wasm2js/bin"))
 		objdir (path.join(_buildDir, "wasm2js/obj"))