Kent, I have a CMake function that may be of interest to you (see attached file).
For your purposes, use it as follows: GetCMakeCacheValue( "${ABC_BUILD_DIR}" ABC_SOURCE_DIR ) where the project against which you want to build is named "ABC". The first argument must always be the build directory of a project configured with CMake. The second (and an arbitrary number of subsequent arguments) are variables whose values you want to retrieve from the CMakeCache.txt file. Assuming everything goes well, two new variables will be defined in the scope in which you called GetCMakeCacheValue: ABC_SOURCE_DIR ABC_SOURCE_DIR_TYPE If there is no entry for ABC_SOURCE_DIR, then the above variables will take on the values ABC_SOURCE_DIR-NOT_FOUND ABC_SOURCE_DIR_TYPE-NOT_FOUND I hope this is useful to you and others. It would be great if CMake had similar functionality built in. - Cory On Fri, Jan 25, 2013 at 6:13 PM, Jean-Christophe Fillion-Robin <jchris.filli...@kitware.com> wrote: > Hi Kent, > > On all the platform, the build tree contains a CMakeCache.txt that will > systematically contain the following text: > > FOO_SOURCE_DIR:STATIC=/path/to/foosource > > where FOO is the name of the project. > > You could simply check for the existence of "CMakeCache.txt", and extact the > value using a regex. > > Hth > Jc > > > > > On Fri, Jan 25, 2013 at 5:41 PM, Kent Williams <nkwmailingli...@gmail.com> > wrote: >> >> I'm trying to write a Find<package>.cmake file for a library that doesn't >> generate a proper <package>Config.cmake file. >> >> The problem I'm trying to solve is how to build against a build tree >> instead of an install tree. On OS X and Windows (well, probably any >> Makefile generator) CMake helpfully adds CMakeDirectoryInformation.cmake >> files to the build tree, which makes it straightforward to recover the root >> of the source tree. >> >> Come to find out, that doesn't work on Windows with Visual Studio build >> system, and probably won't work with other build systems besides Makefile on >> OS X and Linux. >> >> So the question is, given that I can't go in and fix the CMake build >> system for this package, is there a portable way to find the source tree by >> looking at the build tree? >> >> -- >> >> Powered by www.kitware.com >> >> Visit other Kitware open-source projects at >> http://www.kitware.com/opensource/opensource.html >> >> Please keep messages on-topic and check the CMake FAQ at: >> http://www.cmake.org/Wiki/CMake_FAQ >> >> Follow this link to subscribe/unsubscribe: >> http://www.cmake.org/mailman/listinfo/cmake > > > > > -- > +1 919 869 8849 > > -- > > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Please keep messages on-topic and check the CMake FAQ at: > http://www.cmake.org/Wiki/CMake_FAQ > > Follow this link to subscribe/unsubscribe: > http://www.cmake.org/mailman/listinfo/cmake -- Cory Quammen Research Associate Department of Computer Science The University of North Carolina at Chapel Hill
GetCMakeCacheValue.cmake
Description: Binary data
-- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake