[CMake] Package installation conundrum

Dave Abrahams dave at boostpro.com
Mon May 7 20:11:07 EDT 2012


Here's another one!

Scenario:

* I am running CMake under 0install to build and install libraries

* Each library builds a package SomePackage for the library binaries
  and another package SomePackage-dev for the library headers (and
  import libraries on Windows)

* The FindSomePackage.cmake file is part of the -dev package

* After building, 0install moves each package's build products into a
  mostly-unpredictable subdirectory of its otherwise-read-only "cache"
  (~/.cache/0install.net/).  The subdirectory's name is determined by a
  hash of the files.

* To get this working, I followed the scheme discussed here:
  http://news.gmane.org/find-root.php?message_id=%3cm2lil6s8jq.fsf%40pluto.luannocracy.com%3e

  Summary:

  1. Create a 0install "SomePackage-preinstall" package.  Building this
     package involves CMake building and installing both SomePackage and
     SomePackage-dev into separate subdirectories (main/ and dev/) of
     some prefix.  0install thereafter moves the whole directory tree
     into its cache in a directory called sha1=someuglyhash

  2. SomePackage's 0installation procedure is to copy sha1=someuglyhash/main/
     into its distribution directory (which then ends up in
     ~/.cache/0install.net/sha1=otheruglyhash)

  3. SomePackage-dev's 0installation procedure is to copy
     sha1=someuglyhash/dev/ into its distribution directory

Problem: FindSomePackageConfig.cmake now has the wrong path to the
library binaries.  

Any help most appreciated.

-- 
Dave Abrahams
BoostPro Computing
http://www.boostpro.com




More information about the CMake mailing list