Adding Extension Libraries

May 22, 2012 at 2:42 AM

I have been thinking lately about the possibility of adding several 'extension' library projects to the engine.  There is a growing number of specialty areas already included in the engine (MFC support, Kinect support, Win32 framework) as well as items that are on their way (in engine UI support with GWEN, Metro framework, etc...). 

From the beginning, I always wanted Hieroglyph 3 to remain as a nearly dependancy free library.  This has lead to having the specialty projects failing to compile on systems that don't have the additional dependencies installed.  For example, if the Kinect SDK isn't installed, then the KinectPlayground sample fails.  If the Windows SDK isn't installed, then the MFC sample will fail.  This is less than ideal, and I would like to address the issue.

What I currently have planned is to add an 'extensions' folder to the main Hieroglyph3 project folder.  This will house additional projects that contain the specialty dependancies and will build into another static library.  The output of that additional project will be copied into the SDK folder as it is now, and its include files will be added to a subfolder of the current SDK\Include folder. 

These extensions will provide custom functionality that uses the core engine and builds on it to provide something new.  Then, any applications that will depend on these extensions will be included in a separate solution file - this will allow people to build the core engine with its pure samples, and later if they want to build any of the specialty samples, they can simply open another solution file and do so.  This will promote reuse of the specialty code, and keep things better organized.

This should provide the option for users to select the items that they want, and leave other things that they don't want without having to bother with other SDKs and so on.  I wanted to solicit your feedback, and see if you like the idea, or if you have something else in mind that might be more suitable.  Have you seen something similar in other projects?  Do you use something better at work that would address the issue better?  If so, let me hear about!

May 22, 2012 at 9:50 AM
Edited May 22, 2012 at 9:51 AM

Seems fine to me.

By the way, I think it would be a good idea to use the newest GWEN svn snapshot, rather than quite old (compared to what's in repo) source package from download section, just a thought. :) 

May 22, 2012 at 6:30 PM

Being myself a component library author for years, I have been confronted with that issue a lot of time. The way you want to solve it is probably the correct one. I would just add somthing in the code that when the required SDK is not installed display a source code line with explanation for the one trying to compile the solution.