SCons: Build tests/ and main/ in cloned environments

Allows switching `tests=yes`/`no` and rebuilding only tests and main,
instead of the whole engine.

Co-authored-by: Andrii Doroshenko (Xrayez) <xrayez@gmail.com>
This commit is contained in:
Rémi Verschelde 2020-07-26 15:53:01 +02:00
parent df6f867806
commit a3a980eb0d
3 changed files with 21 additions and 16 deletions

View File

@ -593,8 +593,6 @@ if selected_platform in platform_list:
env.Append(CPPDEFINES=["PTRCALL_ENABLED"])
if env["tools"]:
env.Append(CPPDEFINES=["TOOLS_ENABLED"])
if env["tests"]:
env.Append(CPPDEFINES=["TESTS_ENABLED"])
if env["disable_3d"]:
if env["tools"]:
print(
@ -650,10 +648,6 @@ if selected_platform in platform_list:
}
)
# Enable test framework globally and inform it of configuration method.
if env["tests"]:
env.Append(CPPDEFINES=["DOCTEST_CONFIG_IMPLEMENT"])
scons_cache_path = os.environ.get("SCONS_CACHE")
if scons_cache_path != None:
CacheDir(scons_cache_path)

View File

@ -7,18 +7,23 @@ import main_builders
env.main_sources = []
env.add_source_files(env.main_sources, "*.cpp")
env_main = env.Clone()
env.Depends("#main/splash.gen.h", "#main/splash.png")
env.CommandNoCache("#main/splash.gen.h", "#main/splash.png", run_in_subprocess(main_builders.make_splash))
env_main.add_source_files(env.main_sources, "*.cpp")
env.Depends("#main/splash_editor.gen.h", "#main/splash_editor.png")
env.CommandNoCache(
if env["tests"]:
env_main.Append(CPPDEFINES=["TESTS_ENABLED"])
env_main.Depends("#main/splash.gen.h", "#main/splash.png")
env_main.CommandNoCache("#main/splash.gen.h", "#main/splash.png", run_in_subprocess(main_builders.make_splash))
env_main.Depends("#main/splash_editor.gen.h", "#main/splash_editor.png")
env_main.CommandNoCache(
"#main/splash_editor.gen.h", "#main/splash_editor.png", run_in_subprocess(main_builders.make_splash_editor)
)
env.Depends("#main/app_icon.gen.h", "#main/app_icon.png")
env.CommandNoCache("#main/app_icon.gen.h", "#main/app_icon.png", run_in_subprocess(main_builders.make_app_icon))
env_main.Depends("#main/app_icon.gen.h", "#main/app_icon.png")
env_main.CommandNoCache("#main/app_icon.gen.h", "#main/app_icon.png", run_in_subprocess(main_builders.make_app_icon))
lib = env.add_library("main", env.main_sources)
lib = env_main.add_library("main", env.main_sources)
env.Prepend(LIBS=[lib])

View File

@ -3,7 +3,13 @@
Import("env")
env.tests_sources = []
env.add_source_files(env.tests_sources, "*.cpp")
lib = env.add_library("tests", env.tests_sources)
env_tests = env.Clone()
# Enable test framework and inform it of configuration method.
env_tests.Append(CPPDEFINES=["DOCTEST_CONFIG_IMPLEMENT"])
env_tests.add_source_files(env.tests_sources, "*.cpp")
lib = env_tests.add_library("tests", env.tests_sources)
env.Prepend(LIBS=[lib])