[CMake] override CMAKE_COMMAND

Chen Levy mailist at chenlevy.com
Sun Jan 13 08:15:12 EST 2008


Solved. (Thanks to Bill Hoffman and Hans Rijneke)

I have used my current installation as a bootstrap to compile the
sources. I have used ccmake to change the CMAKE_CXX_FLGAS to be:
 -I/path/to/gcc/lib '-R$$ORIGIN/../lib'
(see http://docs.sun.com/app/docs/doc/817-1984/6mhm7pl37?a=view)
and then linked /path/to/gcc/lib -> /path/to/cmake/lib

Thanks again.

On Jan 10, 2008 5:33 PM, Bill Hoffman <bill.hoffman at kitware.com> wrote:
>
> Levy, Chen wrote:
> > Hello, List.
> >
> > I have CMake v2.4.7 running on SunOS 5.8 from the binary SunOS tar.gz
> > file, but I was unable to patch the libCrun.so.1 libCstd.so.1 on that
> > box.
> >
> > So here what I have done:
> >
> > 0. I have put the CMake distributions in: /some/path/cmake
> >
> > 1. I have copied correct libCrun.so.1 libCstd.so.1 into
> > /some/path/cmake/lib
> >
> > 2. I have moved: /some/path/cmake/bin/cmake -> cmake.bin
> >
> > 3. I have created /some/path/cmake/bin/cmake like this:
> >
> >   #!/bin/sh
> >   LD_LIBRARY_PATH=/some/path/cmake/lib /some/path/cmake/bin/cmake.bin
> >
> > 4. Every time I run cmake I do it like this:
> > /some/path/cmake/bin/cmake
> > -DCMAKE_COMMAND:FILEPATH=/some/path/cmake/bin/cmake
> >
> > It is generally works, except when I run gmake, and it detects that the
> > Makefile is older then the CMakeList.txt file, in that case it runs the
> > ${CMAKE_COMMAND} on it's own accord (without the
> > -DCMAKE_COMMAND:FILEPATH=/some/path/cmake/bin/cmake) and in that case
> > does:
> >
> > ...
> > /some/path/cmake/bin/cmake -H/path/to/objs -B/path/to/objs
> > --check-build-system CMakeFiles/Makefile.cmake 0
> > Re-run cmake file: Makefile older than: /path/to/CMakeLists.txt
> > -- Configuring done
> > -- Generating done
> > -- Build files have been written to: /path/to/objs
> > gmake -f CMakeFiles/Makefile2 some-make-target
> > gmake[1]: Entering directory `/path/to/objs'
> > gmake[1]: *** Warning: File `CMakeFiles/Makefile2' has modification time
> > in the future (2008-01-09 16:14:54.508727 > 2008-01-09
> > 15:59:46.65257409)
> > /some/path/cmake/bin/cmake.bin -H/path/to/objs -B/path/to/objs
> > --check-build-system CMakeFiles/Makefile.cmake 0
> > ld.so.1: /some/path/cmake/bin/cmake.bin: fatal: libCstd.so.1: open
> > failed: No such file or directory
> > ...
> >
> > Must I run cmake like:
> > /some/path/cmake/bin/cmake
> > -DCMAKE_COMMAND:STRING="/some/path/cmake/bin/cmake
> > -DCMAKE_COMMAND:FILEPATH=/some/path/cmake/bin/cmake"
> > And how deeply nested must I do this?
> >
> > Is there a better way to override the CMAKE_COMMAND value?
> >
> > Note that I must not change the LD_LIBRARY_PATH globally, because I
> > don't want to build with those libraries, just to run the cmake binary.
> >
>
> CMAKE_COMMAND is an internal variable that you should never try to set.
>     You can not replace cmake with a shell script, as it figures out
> where it is.  You might want to try do do a build with a rpath of "."
> and then put the libCstd.so.1 next to the cmake executable.
>
> -Bill
>
>



-- 
Cheers,
Chen.


More information about the CMake mailing list