Merge pull request #15 from adamscott/copy-bin-to-projectdir

pull/18/head
Patrick Exner (FlameLizard) 2023-10-17 10:02:57 +02:00 committed by GitHub
commit 843b2258a0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
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 # Ignore library files but not the gdextension file
demo/bin/* 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 !demo/bin/*.gdextension
.sconsign*.dblite .sconsign*.dblite

View File

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