Sunday, April 29, 2012
How to layout project files for multi platform/target code bases.
There are often many ways to look at how to build and manage the project files, as well as the output from the project, the intermediary and release files. It is better to keep the intermediaries out of the source tree, to keep it clean and small. You can accidentally check in files that should not be included if you are not careful. Best to keep them out of the tree altogether. Then there is the actual output from your work; the libraries, modules and programs you wish to release. If these are in their own folder organized how they need to be then you can just zip or tar.bz2 them up easily. You can even add a target level at that point and use a cross complier to release for many platforms at one go. You may also need to add in a special build for code that uses the compiler to build a special version of There are three levels of indirection that apply to the hard set calculations of where the path goes. Level 1 is: where does the project go when you save out a new one you create? Level 2 is: where is the project file in relation to the root of the project file? IE... where is the source code? Level 3 is: where do my intermediate and builds go in relation to the project root? /Builds /Targets /Debug /Release /Clang /Intermediates /Targets /Debug /Release /Clang /MainProject-SDK /LoadableModules/ProjectRoot /platform /os /buildsystem /target /ProjectFile Where target is removed if a certain os only has a single target ever.