ede: Sourcecode objects

 
 8.5 Sourcecode objects
 ======================
 
 EDE projects track source file / target associates via source code
 objects.  The definitions for this is in ‘ede-source.el’.  A source code
 object contains methods that know how to identify a file as being of
 that class, (i.e., a C file ends with ‘.c’).  Some targets can handle
 many different types of sources which must all be compiled together.
 For example, a mixed C and C++ program would have instantiations of both
 sourcecode types.
 
    When a target needs to know if it will accept a source file, it
 references its list of source code objects.  These objects then make
 that decision.
 
    Source code objects are stored in the target objects as a list of
 symbols, where the symbol’s value is the object.  This enables the
 project save file mechanism to work.
 
    Here is an example for an instantiation of an Emacs Lisp source code
 object:
 
      (defvar ede-source-emacs
        (ede-sourcecode "ede-emacs-source"
                        :name "Emacs Lisp"
                        :sourcepattern "\\.el$"
                        :garbagepattern '("*.elc"))
        "Emacs Lisp source code definition.")
 
    If you want to recycle parts of an existing sourcecode object, you
 can clone the original, and then just tweak the parts that are
 different.  For example:
 
      (defvar ede-source-emacs-autoload
        (clone ede-source-emacs "ede-source-emacs-autoload"
               :name "Emacs Lisp Autoload"
               :sourcepattern "-loaddefs\\.el")
        "Emacs Lisp autoload source code.")
 
    In this case, the garbage pattern is the same.
 
    SeeSourcecode.