From f8af10c4f07bd83954de2e3d6ba67e2e973e49e8 Mon Sep 17 00:00:00 2001 From: Justin Nolan Date: Wed, 13 May 2026 14:14:34 +0200 Subject: [PATCH] Prevents VariantDir from duplicating source files --- SConstruct | 15 ++++++++------- extension/deps/openvic-simulation | 2 +- scripts | 2 +- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/SConstruct b/SConstruct index 053f1997..c15f5ce9 100644 --- a/SConstruct +++ b/SConstruct @@ -64,14 +64,14 @@ SConscript("extension/deps/SCsub", "env") ovsim_gen_files = env.openvic_simulation["GEN_FILES"] -# Mirror extension/src into the per-config build dir +# Out-of-source build: variant tree holds object files and generated headers, +# not copies of the source. Compile diagnostics therefore reference original +# source paths. ext_src = "extension/src" ext_variant = build_dir + "/" + ext_src # forward slashes so VariantDir matches -env.VariantDir(ext_variant, ext_src, duplicate=True) +env.VariantDir(ext_variant, ext_src, duplicate=False) -# Use ONLY the variant include path. Adding both source and variant would let -# the same header be found through two different paths and fail compilation -env.Append(CPPPATH=[env.Dir(ext_variant)]) +env.Append(CPPPATH=[env.Dir(ext_variant), env.Dir(ext_src)]) Default( env.CommandNoCache( @@ -115,9 +115,10 @@ Default( doc_gen_source = ext_src + "/gen/doc_data.gen.cpp" doc_gen_variant = ext_variant + "/gen/doc_data.gen.cpp" -# Exclude doc_data.gen.cpp and pch.cpp +# Exclude doc_data.gen.cpp and pch.cpp from the regular source list. +pch_cpp_source = ext_src + "/openvic-extension/pch.cpp" pch_cpp_variant = ext_variant + "/openvic-extension/pch.cpp" -sources = env.GlobRecursive("*.cpp", [ext_variant], [doc_gen_variant, pch_cpp_variant]) +sources = env.GlobRecursiveVariant("*.cpp", ext_src, ext_variant, [doc_gen_source, pch_cpp_source]) env.extension_sources = sources env.SetupPCH("openvic-extension/pch.hpp", pch_cpp_variant) diff --git a/extension/deps/openvic-simulation b/extension/deps/openvic-simulation index d122c589..ce065d11 160000 --- a/extension/deps/openvic-simulation +++ b/extension/deps/openvic-simulation @@ -1 +1 @@ -Subproject commit d122c589a63e15fbfdf3433853b74136bf01a40b +Subproject commit ce065d112931cf219729254db6bd036ada8e2e48 diff --git a/scripts b/scripts index d8f908cb..76abb7ea 160000 --- a/scripts +++ b/scripts @@ -1 +1 @@ -Subproject commit d8f908cb2d7b4a4564d12f71cbfe97bed241195f +Subproject commit 76abb7eadb24eb8bdb696fd5928ba41d68a36298