
Remove uneeded message Update README.md Update README.md Update README.md Update README.md Update README.md Update README.md Update README.md Update README.md Update README.md Update README.md Update README.md update readme and also ios build to be with .framework as well Co-Authored-By: Patrick Exner (FlameLizard) <patrick.exner1@web.de>
74 lines
2 KiB
Python
74 lines
2 KiB
Python
#!/usr/bin/env python
|
|
import os
|
|
|
|
|
|
def normalize_path(val, env):
|
|
return val if os.path.isabs(val) else os.path.join(env.Dir("#").abspath, val)
|
|
|
|
|
|
def validate_parent_dir(key, val, env):
|
|
if not os.path.isdir(normalize_path(os.path.dirname(val), env)):
|
|
raise UserError("'%s' is not a directory: %s" % (key, os.path.dirname(val)))
|
|
|
|
|
|
libname = "EXAMPLE"
|
|
projectdir = "godot"
|
|
|
|
localEnv = Environment(tools=["default"], PLATFORM="")
|
|
|
|
customs = ["custom.py"]
|
|
customs = [os.path.abspath(path) for path in customs]
|
|
|
|
opts = Variables(customs, ARGUMENTS)
|
|
opts.Add(
|
|
BoolVariable(
|
|
key="compiledb",
|
|
help="Generate compilation DB (`compile_commands.json`) for external tools",
|
|
default=localEnv.get("compiledb", False),
|
|
)
|
|
)
|
|
opts.Add(
|
|
PathVariable(
|
|
key="compiledb_file",
|
|
help="Path to a custom `compile_commands.json` file",
|
|
default=localEnv.get("compiledb_file", "compile_commands.json"),
|
|
validator=validate_parent_dir,
|
|
)
|
|
)
|
|
opts.Update(localEnv)
|
|
|
|
Help(opts.GenerateHelpText(localEnv))
|
|
|
|
env = localEnv.Clone()
|
|
env["compiledb"] = False
|
|
|
|
env.Tool("compilation_db")
|
|
compilation_db = env.CompilationDatabase(
|
|
normalize_path(localEnv["compiledb_file"], localEnv)
|
|
)
|
|
env.Alias("compiledb", compilation_db)
|
|
|
|
env = SConscript("godot-cpp/SConstruct", {"env": env, "customs": customs})
|
|
|
|
env.Append(CPPPATH=["src/"])
|
|
sources = Glob("src/*.cpp") + Glob("src/utils/*.cpp")
|
|
|
|
file = "{}{}{}".format(libname, env["suffix"], env["SHLIBSUFFIX"])
|
|
|
|
if env["platform"] == "macos" or env["platform"] == "ios":
|
|
platlibname = "{}.{}.{}".format(libname, env["platform"], env["target"])
|
|
file = "{}.framework/{}".format(env["platform"], platlibname, platlibname)
|
|
|
|
libraryfile = "bin/{}/{}".format(env["platform"], file)
|
|
library = env.SharedLibrary(
|
|
libraryfile,
|
|
source=sources,
|
|
)
|
|
|
|
copy = env.InstallAs("{}/bin/{}/lib{}".format(projectdir, env["platform"], file), library)
|
|
|
|
default_args = [library, copy]
|
|
if localEnv.get("compiledb", False):
|
|
default_args += [compilation_db]
|
|
Default(*default_args)
|