#!python import os env = Environment() if ARGUMENTS.get("use_llvm", "no") == "yes": env["CXX"] = "clang++" target = ARGUMENTS.get("target", "core") platform = ARGUMENTS.get("p", "linux") if (target == "core"): if platform == "linux": env.Append(CCFLAGS = ['-g','-O3', '-std=c++14']) env.Append(CPPPATH=['.', './godot']) if platform == "windows": env.Append(LIBS=['godot.windows.tools.64.lib']) env.Append(CPPFLAGS=['-D_GD_CPP_CORE_API_IMPL']) sources = [ 'godot_cpp/core/Array.cpp', 'godot_cpp/core/Basis.cpp', 'godot_cpp/core/Color.cpp', 'godot_cpp/core/Dictionary.cpp', 'godot_cpp/core/Image.cpp', 'godot_cpp/core/InputEvent.cpp', 'godot_cpp/core/NodePath.cpp', 'godot_cpp/core/Plane.cpp', 'godot_cpp/core/PoolArrays.cpp', 'godot_cpp/core/Quat.cpp', 'godot_cpp/core/Rect2.cpp', 'godot_cpp/core/Rect3.cpp', 'godot_cpp/core/RID.cpp', 'godot_cpp/core/String.cpp', 'godot_cpp/core/Transform.cpp', 'godot_cpp/core/Transform2D.cpp', 'godot_cpp/core/Variant.cpp', 'godot_cpp/core/Vector2.cpp', 'godot_cpp/core/Vector3.cpp' ] library = env.SharedLibrary(target='godot_cpp_core', source=sources) Default(library) elif target == "bindings": if platform == "linux": if env["CXX"] == "clang++": env.Append(CCFLAGS = ['-Wno-writable-strings']) else: env.Append(CCFLAGS = ['-Wno-write-strings', '-Wno-return-local-addr']) env.Append(CCFLAGS = ['-g','-O3', '-std=c++14']) env.Append(LINKFLAGS = ['-Wl,-R,\'$$ORIGIN\'']) env.Append(CPPPATH=['.', './godot', './godot_cpp']) if platform == "windows": env.Append(LIBS=['godot.windows.tools.64']) env.Append(LIBS=['godot_cpp_core']) env.Append(LIBPATH=["."]) env.Append(CPPFLAGS=['-D_GD_CPP_BINDING_IMPL']) sources = [os.path.join("godot_cpp/impl/", f) for f in os.listdir("godot_cpp/impl/") if f.endswith('.cpp')] library = env.SharedLibrary(target='godot_cpp_bindings', source=sources) Default(library)