Archived

This topic is now archived and is closed to further replies.

CoffeeMug

Cross platform project management

Recommended Posts

I recently got into linux and am interested in writing a small cross-platform OpenGL demo. I will use Visual Studio .NET on Windows and KDevelop on Linux. I can''t wrap my mind around project management. Do I need to maintain VS and KDevelop project files separately? Or can I take advantage of makefiles in some way? If someone could give me a brief tour of how project management is done in cross platform projects or point me to a few resources it''d be great.

Share this post


Link to post
Share on other sites
I''m no Windows/VS expert, but IIRC, Microsoft''s compilers do not take the same command-line args/options as GNU compilers, and they use their own makefile/project syntax and parser. You could not use your GNU makefiles to build your project using the Visual Studio compiler/linker tools.

If you are interested in painless cross-platform development, you would be better off using either Mingw or Cygwin under Windows. Cygwin implements a fairly full-featured suite of Unix-style tools but requires a DLL for executables to run; Mingw supplies a stripped-down Unix-style environment with all the build tools (compilers, linkers, ar, make, etc) but without the necessity of having the cygwin dll in the path.

If you insist on using Visual Studio, you will need to maintain separate projects and jump through the necessary hoops to make it build and run under both platforms.

I do all of my development in GNU/Linux, and my OpenGL applications (using SDL) port over to Dev C++(Mingw) on Windows usually without having to change a thing on those very infrequent occasions when I bother with a Windows port.

Josh
vertexnormal AT linuxmail DOT org


Check out Golem at:
My cheapass website

Share this post


Link to post
Share on other sites
I know there are scripts that convert Makefiles to MSCV6/7 project files because I''ve used them before. I know the Crystal Space team has a cron job set up that rebuilds ( via a perl script ) their MSVC project files and recommits them back into CVS. Perhaps you can poke around their cvs a bit to see how they do it.

Maintaining two different project files is not so bad if you have a person dedicated to maintaining each. On a single person project it may be a bit more difficult ( or easier depending on how you look at it ).



-------
Andrew
PlaneShift - A MMORPG in development.

Share this post


Link to post
Share on other sites
Try to stick with just one build environment at least until the end of the development process. Keeping two synced is annoying and wastes a lot of time.

If you follow that advice, you''re left with two primary options:
Basically ignore one platform, with the except of sparse ports to ensure continued portability.

Ignore one compiler (and its associated build method) and use the other for both platforms. In this type of scenario you''d be using GCC and Unix-style make-files for both Windows and *nix; you could also build both outputs in *nix if you chose. If you''d like to see how to cross-compile using a project properly setup with the GNU build tools, see my post here. Alternatively, you could use Cygwin (possibly paired with MinGW for Cygwin DLL freedom) to provide a Unix-style make for Windows.

Share this post


Link to post
Share on other sites
You can do something like the following if usign OO:

You organize your project files into folders like this:


\Game
\Portable
\Abstract
\Others
\Platform
\Linux
\Windows
\Project Files
\MSVC
\GCC


And then you access those folders from two diferent OSs and you code the platform specific code in it folder.

EDIT: You'll have different project files.

[edited by - owl on September 1, 2003 5:58:54 PM]

Share this post


Link to post
Share on other sites