I’ve had to use make files for many many years yet I still find myself either failing to implement things like dependency checking or coming back to make files I wrote six months ago and having to reread the documentation. I have used CMake in the past but I don’t like the swath of temp files it makes. This is of cause a personal point of view and I am not saying there is anything wrong with using make files.
But I finally wrote a project that I had been thinking about when I first started to use make files on the PS1 and other games consoles.
I have copied the route some IDE’s take like visual studio and use a ‘project file’. My solution only uses one file and creates no temporary files. I am close to marking it version 1.0. But before I do, over the next few days i’ll be adding more help functionality, the hope is that you don’t need to go and google if you have an issue.
It is called appbuild.
- Full dependacy checking.
- Project references and automatic building of these references when needed.
- Multithread compiling.
- Resource file support with file access API. Files are compressed to save space. think something like res folder for Android apps. Resource files are compiled into the exec.
- Builtin build environment defines to help with build time and version generation.
- Does not create extra files to manage the project and so will not clutter up your repository. Just uses the one project file for each project.
- Single process used during entire build process that allows for increased speed of dependency checking between source files.
I have used the json file format so that the file can contain other data that will be ignored, this other data would help with the integration with an IDE.
As I finish off the first version of the project I would like some feedback, even if it’s ‘how the hell do you use it’ as that’ll mean I have more work on the documentation. Also be nice to know if someone else can even build it and run it. :-)
The primary goal was to create an alternative to Make for my own uses and that has been reached. :)
I have created a github repository so I can learn all the in’s and out’s of presenting an open source project and maybe one day have it added to a repository. :)