#19781: modify cmake Modules for MacPorts prefix -----------------------------------------+---------------------------------- Reporter: dweber@… | Owner: macports-tickets@… Type: enhancement | Status: new Priority: Normal | Milestone: Component: ports | Version: 1.7.1 Keywords: FindITK.cmake cmake modules | Port: cmake -----------------------------------------+---------------------------------- Comment(by dweber@…): More information about this... I've got a new revision of InsightToolkit working nicely, but it works best with a modification to the cmake module for FindITK.cmake. This file is installed at {{{ /opt/local/share/cmake-2.6/Modules/FindITK.cmake }}} In the current testing revision of InsightToolkit is at: https://svn.macosforge.org/repository/macports/users/dweber/graphics/Insight... http://trac.macports.org/changeset/51573 The post-destroot creates version specific library and include paths, with symlinks to them from a generic path, and also modifies a few configuration files, including FindITK.cmake, so the system can find these version specific installations: {{{ post-destroot { # For some reason, cmake does not install into the CMAKE_INSTALL_NAME_DIR move ${destroot}${prefix}/lib/${name} ${destroot}${itkLibPath} move ${destroot}${prefix}/include/${name} ${destroot}${itkIncPath} # Create a symlink from the generic lib and include for InsightToolkit to this version ln -sf ${distname} ${destroot}${prefix}/lib/${name} ln -sf ${distname} ${destroot}${prefix}/include/${name} # copy FindITK.cmake to a version specific file, which might persist even # when cmake is updated, deactivated, etc. set findITK [glob ${prefix}/share/cmake-*/Modules/FindITK.cmake] set findITKbranch [strsed ${findITK} #FindITK#FindITK-${branch}#] copy ${findITK} ${destroot}${findITK} copy ${findITK} ${destroot}${findITKbranch} # Change the content of $findITK and $findITKbranch, to find MacPorts lib set stdlib /usr/local/lib/InsightToolkit set newlib ${prefix}/lib/InsightToolkit reinplace "s|${stdlib}|${newlib}\\\n ${newlib}-${branch}\\\n ${stdlib}|g" ${destroot}${findITK} reinplace "s|${stdlib}|${newlib}\\\n ${newlib}-${branch}\\\n ${stdlib}|g" ${destroot}${findITKbranch} # Change the content of ITKConfig.cmake reinplace "s|${name}|${distname}|g" ${destroot}${itkLibPath}/ITKConfig.cmake copy ${destroot}${itkLibPath}/ITKConfig.cmake ${destroot}${itkLibPath}/itk-${branch}-config.cmake } }}} Note the reinplace commands in the post-destroot, which result in the following diff on FindITK.cmake: {{{ --- FindITK.cmake-orig 2009-05-28 09:57:35.000000000 -0700 +++ FindITK.cmake 2009-05-28 10:00:09.000000000 -0700 @@ -50,6 +50,8 @@ ${ITK_DIR_SEARCH} # Look in standard UNIX install locations. + /opt/local/lib/InsightToolkit + /opt/local/lib/InsightToolkit-3.12 /usr/local/lib/InsightToolkit /usr/lib/InsightToolkit }}} Note that similar additions could be made for FindVTK.cmake, at about: {{{ # Look in standard UNIX install locations. /usr/local/lib/vtk /usr/lib/vtk }}} The problem with modification to FindITK.cmake in the InsightToolkit is that the activation stage will fail without the -f flag to force an overwrite of the FindITK.cmake file provided by cmake. It makes more sense to modify the cmake port directly. Do you agree these are useful changes to the cmake port? Can I assume responsibility for making these changes to the cmake port? Thanks, Darren -- Ticket URL: <http://trac.macports.org/ticket/19781#comment:1> MacPorts <http://www.macports.org/> Ports system for Mac OS