The compilers of Visual TrueType are now open sourced and shared at the following site. The included command line tool that uses the compilers is vttcompile and similar to the vttshell tool included with VTT download.
The project includes build action for Windows. There is no dependency on ‘window.h’ in the code but there is still work to be done to port the code for MacOS or Linux.
There are no unit tests in the project yet.
I have created a number of issues to track needed enhancements and bug fixes.
This is more a prove of concept, very rough and dirty.
Would like to see the main vtt open-sourced also (I know apparently it was written in VB6...) - one step at a time
I had a quick look at @Georg Seifert 'port - the change is extensive and quite repetitious? most of the non-portable stuff are wide-char string functions I think? Some replacement exists in glibc, but the easier way is perhaps looking at how the wine people wrap the windows wide-char functions with unix replacements, given that wine also runs on macs. It is probably unwise to cut and paste as wine source is LGPL, unlike VTT.
for my mingw port (https://github.com/HinTak/VisualTrueType/tree/mingw-port). i.e. using mingw gcc to build or cross-build the windows binary, instead of visual studios.
Finished porting to linux - it is on the linux-port branch, but I reckon it works for mac's too, so
the default branch on my repo is called "opencompiler-port" (and it also cross-builds for 32-bit/64-bit windows too ; for now it is identical to the "linux-port" branch, which will be left to rot). I stole some ideas from @Georg Seifert 's work, but thought of a neater way of doing all the massive swprintf replacement, so the bulk of the portability change is just a dozen of lines instead of about 500 swprintf changes (see https://github.com/HinTak/VisualTrueType/commit/017591981104f68610887f73fa471f9ec7f77d69 ) . See the change log history for what changed and why... as I mentioned earlier, the beginning of getting it to work with mingw gcc involves renaming files, to proper mixed cases, since linux file systems are case-sensitive.
And opened a new issue for discussion:
The discussion issue will stay open for a little while longer, to address compiler warnings etc.