NOTICE! This is a static HTML version of a legacy ImageJ Trac ticket.

The ImageJ project now uses GitHub Issues for issue tracking.

Please file all new issues there.

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: imagej-2.0-alpha5
Component: SCIFIO Version:
Severity: serious Keywords:
Cc: Blocked By:


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