What I'm not getting is why this system wouldn't work for both FS2 and FRED?
The real reason is that FS2 needs to know what the SEXP means - how to evaluate it, and how to handle the effects of a SEXP becoming true.
At present this has that massive CASE statement at its core - very efficient when comparing against constants, but quite slow if it compared against a runtime-generated SEXP array.
So FS2 should stay with the constants.
However, FRED does not care what a SEXP means - it's not a simulator.
In fact, the XML style portej just suggested would allow FRED to load a different "SEXP-FLAG" config file depending on the target.
- So you could use the same build of Fred for "Retail", "3.6.10" or "3.6.11alpha" depending on the target FreeSpace2.
This would mean that you could use a 'newer' build of FRED (with associated bug fixes) to create missions for older FS2 versions, without needing to know what is and isn't supported by that version.
Right now, we have to release new builds of FRED with every new build of FS2 Open, which feels very clumsy.
portej's suggestion removes that need, as only a small configuration file required to 'update' your FRED.
Thus new builds of FRED are only required when features/bugfixes specifically for FRED become available - the shared bit would be POF code.
The prerequisite for this is the ability to quickly and easily generate that config file - portej appears to have (almost) solved that problem now.
Oh, and Qt 4 can be statically linked if you want, with the '-static' flag. I think this is a relatively new option though.
Please, NO!
I've outlined static linking and my objections to it before (mainly on the internal thread), and most of the issue revolves around linking with other libraries (think what happens when a prebuilt component is distributed built against a different CRT to the one you're building against and you allocate and free memory between them), which is VERY likely to occur.
I don't like it either, just saying that it's possible!
Installation of the Qt libraries is simply a case of copying the required Qtxxx.dll files into the same folder as the executable.
It doesn't need to be registered like OpenAL did.
I've done a bit of testing with 'breaking' installations, and the error messages I got were excellent:
"The application failed to start because QtCore.dll was not found. Reinstalling the application may fix the problem."
So the support is pretty easy.