Exodus Emulation Platform All the ideas and discussions
16 votes Vote

Write portable code

I know you're not planning a Linux version yourself, but you can do a lot to help/hinder those who want to port to Linux. Requiring a VC runtime is a bad start. Please use toolkits that exist on many platforms to enable easy porting. There are many open source project for Windows that many people would love to see on Linux, but they're just not going to be ported because the authors used libraries that aren't cross platform. Don't make that mistake.

Hatta , 25.05.2013, 07:24
Response from the site administrator
Nemesis1207, 27.05.2013
You'll find very few third party library references exist, and all the ones that do are cross platform. See the "About" dialog for a complete list of non-platform third party libraries used in this project. Apart from these libraries, the only other dependencies are the Win32 API for the interface (which is reasonably contained, but I've got more plans in this area), and OpenGL for the rendered elements, and of course the C++ Standard Template Library, which is what is contained in the VC++ runtimes that you need to install. I chose to link to the STL dynamically because I'm using DLL's for plugins, and I didn't want to have to statically bind in a copy into each plugin, which would have bloated the DLL size significantly and possibly hurt CPU caching.

I designed this system from day one to logically contain and abstract third party interfaces, in particular with the expectation that support for other platforms such as Linux would be added in the future, so you should find there's a very good start for this already.
Idea status: completed


Leave a comment