From be1d0545c2f7a85a63d05b4bdc1020ee284e72cb Mon Sep 17 00:00:00 2001 From: Spartan322 Date: Mon, 24 Jul 2023 20:24:01 -0400 Subject: Initial structural commit --- tools/linux.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 tools/linux.py (limited to 'tools/linux.py') diff --git a/tools/linux.py b/tools/linux.py new file mode 100644 index 0000000..0a2c35c --- /dev/null +++ b/tools/linux.py @@ -0,0 +1,35 @@ +# Copied from https://github.com/godotengine/godot-cpp/blob/2bf983e6382f5236948f7740faf130a3568f9dd0/tools/linux.py +from SCons.Variables import * +from SCons.Tool import clang, clangxx + + +def options(opts): + opts.Add(BoolVariable("use_llvm", "Use the LLVM compiler - only effective when targeting Linux", False)) + + +def exists(env): + return True + + +def generate(env): + if env["use_llvm"]: + clang.generate(env) + clangxx.generate(env) + + env.Append(CCFLAGS=["-fPIC", "-Wwrite-strings"]) + env.Append(LINKFLAGS=["-Wl,-R,'$$ORIGIN'"]) + + if env["arch"] == "x86_64": + # -m64 and -m32 are x86-specific already, but it doesn't hurt to + # be clear and also specify -march=x86-64. Similar with 32-bit. + env.Append(CCFLAGS=["-m64", "-march=x86-64"]) + env.Append(LINKFLAGS=["-m64", "-march=x86-64"]) + elif env["arch"] == "x86_32": + env.Append(CCFLAGS=["-m32", "-march=i686"]) + env.Append(LINKFLAGS=["-m32", "-march=i686"]) + elif env["arch"] == "arm64": + env.Append(CCFLAGS=["-march=armv8-a"]) + env.Append(LINKFLAGS=["-march=armv8-a"]) + elif env["arch"] == "rv64": + env.Append(CCFLAGS=["-march=rv64gc"]) + env.Append(LINKFLAGS=["-march=rv64gc"]) -- cgit v1.2.3-56-ga3b1