Copy generated library to the projectdir

pull/15/head
Adam Scott 2023-10-15 13:50:01 -04:00
parent 055ab32bc6
commit 54a177ce39
No known key found for this signature in database
GPG Key ID: 1352C2919D96DDDF
10 changed files with 34 additions and 10 deletions

12
.gitignore vendored
View File

@ -3,6 +3,18 @@
# Ignore library files but not the gdextension file
demo/bin/*
!demo/bin/android
demo/bin/android/*
!demo/bin/android/.gitkeep
!demo/bin/linux
demo/bin/linux/*
!demo/bin/linux/.gitkeep
!demo/bin/macos
demo/bin/macos/*
!demo/bin/macos/.gitkeep
!demo/bin/windows
demo/bin/windows/*
!demo/bin/windows/.gitkeep
!demo/bin/*.gdextension
.sconsign*.dblite

View File

@ -12,6 +12,7 @@ def validate_parent_dir(key, val, env):
libname = "EXTENSION-NAME"
projectdir = "demo"
localEnv = Environment(tools=["default"], PLATFORM="")
@ -52,19 +53,30 @@ env = SConscript("godot-cpp/SConstruct", {"env": env, "customs": customs})
env.Append(CPPPATH=["src/"])
sources = Glob("src/*.cpp")
file = "{}{}{}".format(libname, env["suffix"], env["SHLIBSUFFIX"])
if env["platform"] == "macos":
platlibname = "{}.{}.{}".format(libname, env["platform"], env["target"])
file = "{}.framework/{}".format(env["platform"], platlibname, platlibname)
libraryfile = "bin/{}/{}".format(env["platform"], file)
library = env.SharedLibrary(
"bin/{}.framework/{}".format(platlibname, platlibname),
source=sources,
)
else:
library = env.SharedLibrary(
"bin/{}{}{}".format(libname, env["suffix"], env["SHLIBSUFFIX"]),
libraryfile,
source=sources,
)
default_args = [library]
def copy_bin_to_projectdir(target, source, env):
import shutil
targetfrom = "bin/{}/lib{}".format(env["platform"], file)
targetdest = "{}/bin/{}/lib{}".format(projectdir, env["platform"], file)
shutil.copyfile(targetfrom, targetdest)
copy = env.Command(libraryfile, None, copy_bin_to_projectdir)
default_args = [library, copy]
if localEnv.get("compiledb", False):
default_args += [compilation_db]
Default(*default_args)

0
bin/android/.gitkeep Normal file
View File

0
bin/linux/.gitkeep Normal file
View File

0
bin/macos/.gitkeep Normal file
View File

0
bin/windows/.gitkeep Normal file
View File

View File

0
demo/bin/linux/.gitkeep Normal file
View File

0
demo/bin/macos/.gitkeep Normal file
View File

View File