MSVC project files cleanup
|Reported by:||bluegr||Owned by:||bluegr|
Currently, whenever a file gets added or removed from the scummvm project tree, and this file is needed for the Windows version to compile, we usually resort to wait for someone who has a version of Microsoft Visual Studio, so that the MS Visual C++ (MSVC) project files can be updated. This means that for every file that gets added or removed, there is a big possibility that the MSVC project files get desynced.
The current versions of MSVC that are in the trunk are:
- MSVC9, Visual Studio 2008: Latest version, free version available for download from Microsoft, usually gets updated, not major differences from its predecessor (MSVC8), as the format itself seems to have matured. ScummVM compiles correctly with this one
- MSVC8, Visual Studio 2005: Previous version, very similar to MSVC9, gets updated too, ScummVM compiles correctly with this one
- MSVC71, Visual Studio 2003: A bit older version, quietust has supplied patches for it, project files differ from MSVC8, some tags have been changed or removed
- MSVC7, Visual Studio 2002: The first IDE supporting ".net", project files for it are very similar to MSVC71, hasn't been updated in awhile, noone seems to be using it. ScummVM probably compiles though, as it's very similar to MSVC71
- MSVC6: Very old version, its project files haven't been updated for quite a while and they differ radically from the subsequent versions
Currently, I've created and uploaded 2 batch files that can be used to convert project files between MSVC9 and MSVC8. This is very useful, because if a developer has either MSVC9 or MSVC8, it's very simple to update one set of files and automatically update the other ones.
These script files can be found under /dists, as msvc9_to_msvc8.bat and msvc8_to_msvc9.bat and they're using the Windows version of the GNU rpl tool, available from:
I've now created another batch file, which can convert MSVC8 files to MSVC71 and MSVC7 ones and I'm attaching it with this patch, along with a patch file for the current project files, which have been generated from this tool. The MSVC8->MSVC71->MSVC7 tool is a bit more complex, as the differences between MSVC8 and MSVC71 are more than the ones between MSVC9 and MSVC8.
The questions are:
- Will the MSVC71 and MSVC7 files be kept? Should this tool be used for auto-generating them? Currently, there's only one known person using MSVC71, quietust. We could easily keep the MSVC71 and MSVC7 project files in sync with the other ones this way, but there is going to be the extra work of generating their project files, plus adding support for those old compilers themselves
- Shall the MSVC6 project files be removed altogether? Noone seems to be maintaining them, it's not easy at all to create them automatically from newer MSVC project files, as they're very different, plus it's not known if ScummVM will even compile on MSVC6 any more
As mentioned, attached you'll find the script itself, plus a patch over the project files in the trunk
Ticket imported from: #1861744. Ticket imported from: patches/871.