What is my understanding also is that besides aiming towards scripting direction, you try to aim also for keeping everything at run-time - I have also identified that there exists C++ compiler option for making .dll replacable at run-time - called “Create Hotpatchable Image -> Yes (/hotpatch)” - option
existed there for ages, but noone used it before actively - I’ve noticed some demos where this option was used in live++
https://molecular-matters.com/docs/livepp/documentation.html
https://molecular-matters.com/products_livepp.html
I haven’t used it by myself, but still curious about how to use it. (seen what kind of magic javascript can perform with their code (So called “hot reload”) - and I find it absolutely stunning, even thus it’s buggy and not always working as it should)
Let me roll bit back as well - you might ask - why you do not want to use cmake language instead of C# or C++ language ?
Try to modify syncProj C# script and cmake file, which goes easier for you ? Debuging support, intellisense, and error handling in tool are main reasons currently. cmake language dialect is not easily extendable as well.
One another thing which I want to try out with syncProj2 (potential future generation of syncProj) - is being able to monitor Visual studio solution / project in live manner and generate / update script based on end-user interactions.
So user adds include directory “include1” to project, and .cs project gets
includedirs(“include1”);
script line.
Also syncProj2 - upon which “scripting” language it will be based upon is still open. At the moment I see following alternatives / candidates: C++, C#, Python. (C++ for it’s performance, C# for it’s solidness)
If you have some proposals, let me know.
My requirements are: Windows & Visual studio (64-bit compilation) must be supported.
Optional / nice-to-have: C++/cli generation is supported (syncProj has this already), C# project / solutions generation is supported. (not supported at the moment, but there is a small need to support this), C++ “scriptability” on some level needs to be supported.