Now the build script accepts the main file and folders as parameters.

This commit is contained in:
Relintai 2020-12-25 21:11:32 +01:00
parent 4ea3702768
commit 4ef17eee09
1 changed files with 26 additions and 2 deletions

View File

@ -115,6 +115,9 @@ opts = Variables([], ARGUMENTS)
opts.Add(EnumVariable("target", "Compilation target", "debug", ("debug", "release_debug", "release"))) opts.Add(EnumVariable("target", "Compilation target", "debug", ("debug", "release_debug", "release")))
opts.Add("folders", "App folders to compile", "")
opts.Add("main_file", "The main file", "")
# Compilation environment setup # Compilation environment setup
opts.Add("CXX", "C++ compiler") opts.Add("CXX", "C++ compiler")
opts.Add("CC", "C compiler") opts.Add("CC", "C compiler")
@ -124,6 +127,8 @@ opts.Add("CFLAGS", "Custom flags for the C compiler")
opts.Add("CXXFLAGS", "Custom flags for the C++ compiler") opts.Add("CXXFLAGS", "Custom flags for the C++ compiler")
opts.Add("LINKFLAGS", "Custom flags for the linker") opts.Add("LINKFLAGS", "Custom flags for the linker")
opts.Update(env_base)
# add default include paths # add default include paths
env_base.Prepend(CPPPATH=["#", "libs"]) env_base.Prepend(CPPPATH=["#", "libs"])
env_base.Prepend(CPPPATH=["#libs"]) env_base.Prepend(CPPPATH=["#libs"])
@ -190,9 +195,28 @@ for m in module_list:
sys.path.remove(tmppath) sys.path.remove(tmppath)
sys.modules.pop("detect") sys.modules.pop("detect")
env.prg_sources = [ "rdn_application.cpp" ]
folders = env_base["folders"].split(";")
files = []
for fol in folders:
folt = fol.strip()
if folt == "":
continue
ff = os.listdir(folt)
for f in ff:
if f.endswith("cpp"):
files.append(f)
env.prg_sources = files
libapp = env.add_library("application", env.prg_sources) libapp = env.add_library("application", env.prg_sources)
env.Prepend(LIBS=[libapp]) env.Prepend(LIBS=[libapp])
prog = env.add_program("#bin/server", ["main.cpp"])
mfp = os.path.abspath(env_base["main_file"])
prog = env.add_program("#bin/server", [ mfp ])