[cmake-developers] CMake to GMake issues

Alan W. Irwin irwin at beluga.phys.uvic.ca
Mon Jan 24 13:26:53 EST 2011


On 2011-01-24 17:02-0000 Chris Lawrence wrote:

> Hi,
> 
> I've recently been looking into using CMake with one of my projects at work. I've recently run into a problem where the Makefile, CMake
> generates will not run on my build system unless I install the cmake libraries.
> 
> Just to clarify, my development machine (where CMake is installed) and my build machine are separate. My project requires the use of the
> generated makefile, without the dependence of having cmake installed on that machine.
> 
> Is there any flags available for CMake, to generate a gmake file that can be run independently from the cmake libraries?

To the CMake developers here: should the answer be in the FAQ?
My quick check could not find it there.

To Chris:

This subject is probably more appropriate for the cmake at cmake.org list
where the question has been answered a number of times already, but
I will attempt to answer it here.

In short, the answer is no.  If you run "make VERBOSE=1" you will see
cmake is invoked for at least progress reports and dependency
analysis.  Also, if you want your build to be cross-platform at all,
as a build system designer you will be using the cmake -E commands to
do cross-platform commands such as the following:

Usage: cmake -E [command] [arguments ...]
Available commands:
   chdir dir cmd [args]...   - run command in a given directory
   rename oldname newname    - rename a file or directory (on one volume)
   copy file destination     - copy file to destination (either file or directory)
   copy_if_different in-file out-file  - copy file if input has changed
   copy_directory source destination   - copy directory 'source' content to directory 'destination'
   compare_files file1 file2 - check if file1 is same as file2
   echo [string]...          - displays arguments as text
   echo_append [string]...   - displays arguments as text but no new line
   environment               - display the current environment
   make_directory dir        - create a directory
   md5sum file1 [...]        - compute md5sum of files
   remove_directory dir      - remove a directory and its contents
   remove [-f] file1 file2 ... - remove the file(s), use -f to force it
   tar [cxt][vfz][cvfj] file.tar file/dir1 file/dir2 ... - create a tar archive
   time command [args] ...   - run command and return elapsed time
   touch file                - touch a file.
   touch_nocreate file       - touch a file but do not create it.
   build build_dir           - build the project in build_dir.
   create_symlink old new    - create a symbolic link new -> old

So even if you could get rid of the progress reports and dependency
analysis, then you severely limit the cross-platform usefulness of
your package by not being able to use these commands at make time.

Alan
__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state implementation
for stellar interiors (freeeos.sf.net); PLplot scientific plotting software
package (plplot.org); the libLASi project (unifont.org/lasi); the Loads of
Linux Links project (loll.sf.net); and the Linux Brochure Project
(lbproject.sf.net).
__________________________

Linux-powered Science
__________________________



More information about the cmake-developers mailing list