[ 
https://issues.apache.org/jira/browse/LUCY-215?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13241830#comment-13241830
 ] 

Nick Wellnhofer commented on LUCY-215:
--------------------------------------

As previously discussed on the mailing list, we should also provide parts of 
the code in buildlib/Lucy/Build.pm as a Clownfish module, so extensions can be 
built easily. To handle different build configuration variables like module 
name, additional C sources, etc., I would propose to create a BuildConfig class 
that provides all these variables via methods. Then, every extensions can 
optionally extend the class and create a BuildConfig object. This object can be 
stored as a "property" of the Module::Build object. Build configuration 
includes:

* Main class name
* Parcel
* Additional C sources, include dirs and flags
* Additional libraries and linker flags
* Clownfish include directories
* Other files to install in Clownfish/_include

Open questions:

* How to name the build module? Clownfish::CFC::Build?
* Do we want provide an equivalent to Lucy::Build::CBuilder? Probably yes.
* We might need a better way to find the Binding build packages.
* Should we support parts of the Valgrind infrastructure?

                
> Support extensions written in C
> -------------------------------
>
>                 Key: LUCY-215
>                 URL: https://issues.apache.org/jira/browse/LUCY-215
>             Project: Lucy
>          Issue Type: New Feature
>          Components: Clownfish
>            Reporter: Nick Wellnhofer
>            Assignee: Nick Wellnhofer
>         Attachments: 0001-Use-path_part-instead-of-source_class-in-CFC.patch, 
> 0002-Implement-CFCFileSpec.patch, 
> 0003-LUCY-215-Allow-filename-clash-between-source-and-inc.patch
>
>
> Currently, all Lucy extensions that contain C code must be shipped with the 
> Lucy source tree. In order to support external C-based extensions, Clownfish 
> must be able to compile .cfh files that extend classes from a separate source 
> tree. As discussed on the mailing list, a solution could look like this:
> * Install the .cfh files together with Lucy.
> * When building the extension, rebuild the complete Clownfish hierarchy 
> together with the new classes.
> * Generate C headers, regenerating the headers for Lucy's core classes.
> * Compile the extension.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to