[Insight-users] build and install into 'InsightToolkit-3.12'

Darren Weber darren.weber.lists at gmail.com
Wed May 27 13:30:46 EDT 2009


I'm working on a MacPort for InsightToolkit at 3.12.0, and the port has a
non-default installation location to /opt/local/lib/InsightToolkit-3.12/
(and similar include path of /opt/local/include/InsightToolkit-3.12/).  I
made the decision to provide this version specific path, so it may be
possible to install multiple versions of the library within the MacPorts
system.  The InsightToolkit specifies very tight compatibility versions
(e.g., ITK 3.12.0 has compatibility only for 3.12.0), so any software that
builds on it will either require a specific version dependency or it must
keep up with the current version available in MacPorts (assuming this
practice of very tight compatibility continues).  In case any software that
is stable and requires a dependency on a specific version of ITK is included
in MacPorts, it should be possible to get any version specific dependencies
resolved and installed.

However, cmake is not installing into this version specific path.  The
configure uses the following command line options to cmake (among others,
where prefix=/opt/local):

    -D CMAKE_INCLUDE_PATH:PATH=${prefix}/include \
    -D CMAKE_LIBRARY_PATH:PATH=${prefix}/lib \
    -D CMAKE_INSTALL_NAME_DIR:STRING=${prefix}/lib/${distname} \
    -D CMAKE_INSTALL_PREFIX:PATH=${prefix} \

Yet cmake installs into a DESTDIR/${prefix}/lib/InsightToolkit regardless
(and similar include path).  Am I missing a cmake configuration variable
that will correct this?  Is this a bug in cmake 2.6?

Also, this raised a port issue because the cmake macro FindITK.cmake is
managed by a cmake port (under
/opt/local/share/cmake-2.6/Modules/FindITK.cmake).  Rather than hack that
file directly, this port does several things.  First it creates a symlink
from PREFIX/lib/InsightToolkit to PREFIX/lib/InsightToolkit-3.12 (and
likewise for the include path, so FindITK.cmake might work and the symlinks
can be easily changed to any version specific install(s)).  It also makes a
copy of FindITK.cmake into FindITK-3.12.cmake and modifies the content of
that file to indicate the include and lib paths are
.../InsightToolkit-3.12/.  Furthermore, the
PREFIX/lib/InsightToolkit-3.12/ITKConfig.cmake was modified to point to this
install path also.

I guess it is a bug in cmake that the
CMAKE_INSTALL_NAME_DIR:STRING=${prefix}/lib/InsightToolkit-3.12 is not
actually used as the install path (it defaults back to
${prefix}/lib/InsightToolkit).  It does use this variable setting to update
all the RPATH settings for the .dylib and some other binaries (OSX build),
but then it does not actually install to this path.  Is the install path
hard-wired or am I'm missing another cmake variable setting to control this?

Take care,
Darren
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20090527/19f29d55/attachment.htm>


More information about the Insight-users mailing list