[
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