File: generic.el.html
There are a lot of build systems out there, and EDE can't support them all fully. The ede/generic.el system is the base for supporting alternate build systems in a simple way, automatically.
The structure is for the ede-generic baseclass, which is augmented by simple sub-classes that can be created by users on an as needed basis. The generic system will have targets for many language types, and create the targets on an as needed basis. All sub-project types will recycle the same generic target types.
The generic target types will only be implemented for languages where having EDE support actually matters, with a single MISC to represent anything else.
TOO MANY PROJECTS DETECTED:
If enabling ede-generic support starts identifying too many
projects, drop a file called .ede-ignore into any directory where
you do not want a project to be.
Customization:
Since these projects are all so incredibly generic, a user will need to configure some aspects of the project by hand. In order to enable this without configuring the project objects directly (which are auto-generated) a special ede-generic-config object is defined to hold the basics. Generic projects will identify and use these config files.
Adding support for new projects:
To add support to EDE Generic for new project types is very quick. See the end of this file for examples such as CMake and SCons.
Support consists of one class for your project, specifying the file
name used by the project system you want to support. It also
should implement th method ede-generic-setup-configuration to
prepopulate the configurable portion of the generic project with
build details.
Lastly, call ede-generic-new-autoloader to setup your project so
EDE can use it.
Adding support for new types of source code:
Sources of different types are supported with a simple class which
subclasses ede-generic-target(var)/ede-generic-target(fun). The slots shortname and
extension should be given new initial values.
Optionally, any target method used by EDE can then be overridden. The ede-generic-target-c-cpp has some example methods setting up the pre-processor map and system include path.
NOTE: It is not necessary to modify ede/generic.el to add any of the above described support features.