The new build system detects dependencies automatically with the crawl keyword by following includes with "" marks and then jumping from headers to implementations of the same name in the same folder. The old build system can still be usedful as an emergency solution if the new build system won't work for any reason.
New benefits
Works on MS-Windows without having to create a CodeBlocks project for each SDK example. Just need to have CodeBlocks installed or change the compiler path
Can have multiple main implementations in the same folder with different project files.
Easy to get sound by importing the framework's project header that selects the correct dependencies based on the target platform. Other libraries can have their own headers to handle their own dependencies.
It should be possible to use the build system without most of this framework because of the newly defined "essential" subset of strings, buffers and files as in includeEssentials.h. Maybe it can be redistributed as a separate project once fully developed.
Fast switching between branches by keeping object files for multiple versions of the same source file. The first number in the object name is a checksum of the absolute path and compiler flags as an identity. The second number is the checksum of file content, using bit-wise exclusive or to combine the included files without having to go through them multiple times or being dependent on the order. Just make sure that you never include two identical headers, because then identical changes to both of them would cancel each other out in the checksum.
Still lacking
If statements in project files don't have any else keywords yet, so you currently have to make two if statements with opposing statements.
There are no comparisons for string types yet, only concatenating strings and working with them as integers.
The wizard application is currently just checking that sound works, but it can later be a welcome screen for the SDK as a whole wrapping itself over different scripts for launching examples, refactoring code, static analysis, creating new projects, et cetera.
Windows
If the MinGW distribution of CodeBlocks is installed at the standard location, so that a C++ compiler is located at C:\Program\CodeBlocks\MinGW\bin, you only have to doubleclick on build_windows.bat in any SDK example's or template's folder. Just as easy as building on Linux. All examples and templates have static runtime enabled by default, which will make sure that they run on a clean install of Windows. Tested on a $20 pre-owned HTPC with Intel Atom CPU and Windows 7. The %temp% folder of MS-Windows is not automatically erased, so you have to clean it up once in a while when it gets too big.
Linux
The new build system makes it faster to build parts of the framework that changed by only storing object files. If compilation is too slow after having the /tmp folder cleared after reboot, you can change SCRIPT_PATH to a persistent folder and clean it manually once in a while.
The new build system detects dependencies automatically with the crawl keyword by following includes with "" marks and then jumping from headers to implementations of the same name in the same folder. The old build system can still be usedful as an emergency solution if the new build system won't work for any reason.
New benefits
Still lacking
Windows If the MinGW distribution of CodeBlocks is installed at the standard location, so that a C++ compiler is located at C:\Program\CodeBlocks\MinGW\bin, you only have to doubleclick on build_windows.bat in any SDK example's or template's folder. Just as easy as building on Linux. All examples and templates have static runtime enabled by default, which will make sure that they run on a clean install of Windows. Tested on a $20 pre-owned HTPC with Intel Atom CPU and Windows 7. The %temp% folder of MS-Windows is not automatically erased, so you have to clean it up once in a while when it gets too big.
Linux The new build system makes it faster to build parts of the framework that changed by only storing object files. If compilation is too slow after having the /tmp folder cleared after reboot, you can change SCRIPT_PATH to a persistent folder and clean it manually once in a while.