MUSHclient source structure

Posted by Twisol on Wed 03 Mar 2010 04:39 AM — 4 posts, 12,423 views.

USA #0
I'm working locally on a small restructuring of the MUSHclient source. At the moment everything is part of the same project, but I'd like to move external libraries like zlib, pcre, and lua into their own project files (though still under the same solution, or VC6 "workspace"). This ideally shouldn't change much in MUSHclient itself, but it keeps things organized and tidy. It might also make it possible to keep a downloadable zip of the precompiled external .lib's, so you don't have to go through the process of grabbing the others unless you want to. And the MUSHclient resources repository could be merged into the MUSHclient repository, but as its own project.

I assume VC6 has support for this, given its separation between workspace and project files, but I have no way to make/create VC6 projects. So I'll be keeping these changes in a separate branch, though hopefully the structure can be adopted officially.
USA #1
So far this has gone really well. I've got pcre, png, sqlite3, and zlib moved into their own projects now, and I'll next be doing it with the json-c library and probably Lua as well. It already feels so much cleaner now that everything inside the MUSHclient project is MUSHclient source and not a bunch of external libraries sequestered inside as well.

In the interest of full disclosure, I've seen a ~100kb increase in executable size between now and the last json-related change I compiled. It totals 3,052kb in size. The current 4.50 standard executable is 2,704kb, but it doesn't include the JSON library or my JSON changes, and I believe that VS2005 produces slightly bulkier executables anyways (based on comparisons when I first compiled the source). I still think the benefits outweigh the meager cost, and I'm sure you'll still be under 3,000kb under VC6 even with these changes.
USA #2
I've moved json-c into its own project, and introduced lua and mushclient_resources as new projects as well. Now it's almost runnable straight from a build, though you have to move EN.dll into locale\, and it complains about the missing help file when you run it. Not a big deal though.
USA #3
Fixed up the resources project so it sends EN.dll into locale\ automatically. You'd still want to copy the final mushclient.exe over a previous installation to properly test it, but at least now you can run it straight off.

All of my project changes are, again, kept in a separate branch, which you can browse here [1]. It's all VS2005-only so far, but that's only because I'm unable to create the equivalent project files/configuration in VC6.

[1] http://github.com/Twisol/mushclient/tree/projects