[CMake] Copying cmake generated files to another machine
Eric Noulard
eric.noulard at gmail.com
Sun Dec 6 12:20:10 EST 2009
2009/12/6 steve naroff <snaroff at apple.com>:
> Hi, I work on llvm/clang (a client of cmake).
> For development, cmake is wonderful (no big issues).
> For deployment, cmake's inability to copy it's generated project files to
> another machine is causing us some grief. The scenario is quite simple: I
> want to copy the llvm/clang source tree over another machine (running the
> same OS/tools) and build it *without* having to rerun cmake and generate
> *new* project files. Without this ability, it requires the target machine
> have cmake installed (which isn't convenient for some clients that want to
> build/use/master the result of the llvm/clang build). What was a 1 step
> process (open the project file) now becomes a 3 step process (install cmake,
> run it to generate the project file, open the project file).
> Last time I checked (about a year ago) the usage model I've outlined wasn't
> supported. Is this still the case? Is there any workaround?
> Thanks for any help with this,
I think that the topic has been discussed several times and each time
(I remember)
the answer was, this not possible (in general) to make cmake produce a build
tree (i.e. project file) which may copied and re-used without CMake.
There is the CMAKE_SUPPRESS_REGENERATION which may be used
to suppress the "build tree / project file" regeneration (which
implies CMake usage)
but I think this does not work if your build tree is not exactly the same on
the target machine (i.e. full absolute path to file is the same).
There is the CMAKE_USE_RELATIVE_PATHS option but Bill said recently
that it should be deprecated:
http://www.cmake.org/pipermail/cmake/2009-November/033456.html
However being able to somehow "prepare" a build tree and give it to a
customer/user
seems to be important for several people.
May be we can achieve this **without** requiring the fact that CMake
should not be run.
May be we can think of "packaging" CMake itself along with the build tree?
My idea is YOU WON'T HAVE TO **INSTALL** CMake but when you
unzip your build tree you'll get:
- the source tree
- the pre-configured build tree
- the cmake binary folder.
Could be something like:
MyProject----------Sources
|_____Build
|_____CMake
Would the idea fits the need?
Potential user may step in and tell us what they think?
Would it be doable?
I think it could be done with some "special" CPack generator
but may be CMake developer can tell us what they think of this
[may be wrong] idea?
With this feature you'll get a "portable" project which contains the
source tree,
a preconfigured build tree + some cmake binaries corresponding to the
build tree.
--
Erk
Membre de l'April - « promouvoir et défendre le logiciel libre » -
http://www.april.org
More information about the CMake
mailing list