Ticket #654 (closed defect: fixed)
Opened 2011-07-05T09:20:06-05:00
Last modified 2011-08-03T11:15:49-05:00
Fix bf-cpp distribution bundle generation
Reported by: | curtis | Owned by: | hinerm |
---|---|---|---|
Priority: | critical | Milestone: |
|
Component: | SCIFIO | Version: | |
Severity: | serious | Keywords: | |
Cc: | Blocked By: | ||
Blocking: |
Description
The Bio-Formats C++ bindings build process uses the CMake post-build command feature to copy resultant artifacts into a single folder called dist, for easy packaging. Unfortunately, not all files are copied. This folder must be reviewed and updated to include everything necessary for distribution of bf-cpp, including all JAR libraries (in a project-agnostic way—no loci_tools.jar), all shared libraries, and all needed header files (both top-level includes and individual proxy headers).
Change History
comment:1 Changed 2011-07-05T09:20:30-05:00 by curtis
- Milestone set to biweekly-2011: Jul-05 to Jul-15
comment:2 Changed 2011-07-27T14:51:55-05:00 by curtis
- Owner changed from curtis to hinerm
- Status changed from new to assigned
Reassigning to Mark, to make sure this gets done.
comment:3 Changed 2011-08-03T11:15:49-05:00 by hinerm
- Status changed from assigned to closed
- Resolution set to fixed
Changes were made to the jar2lib templates and bio-formats supporting files (e.g. extras.txt used by jar2lib) to facilitate the following improvements:
- project header files are now copied into the /dist/include directory
- proxy headers are now copied into the /dist/include directory
- jar dependencies (via maven) are now copied into the /dist/jar directory
- jar dependencies (via cmake) are now copied into the /dist/jar directory to avoid duplication of the maven-declared dependencies
- all dependencies to loci_tools.jar have been removed and redirected to the appropriate individual jars as a result of ticket #298's resolution
- packaging via "make package" command improved such that packaged executables & libraries no longer require the original full-path versions of the dependencies
Note that the initially created executables (from invoking "make") still have hard-coded library paths. The packaging process removes this to facilitate distribution.
Note that these changes currently require that, when using cppwrap on bio-formats, the dependency plugin is invoked. This can be done using the following command:
mvn -DskipTests package cppwrap:wrap dependency:copy-dependencies