[geos-devel] Re: cmake: distclean-like ? out of source tree build ?

Mateusz Loskot mateusz at loskot.net
Sat Feb 6 16:12:18 EST 2010


strk wrote:
> Mat, is there a 'cleanup' command for cmake-prepared build trees ?
> I start to suspect my source tree was 'infected' by cmake things :)
> Like:
> 
> build$ cmake ../trunk # does things but *build* dir is empty

This is strange. It perfectly works for me:

mloskot at dog:~/dev/geos/_svn/build$ ls
mloskot at dog:~/dev/geos/_svn/build$ cmake ../trunk
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Setting GEOS version 3.3.0 as port of JTS 1.10.0
-- Setting GEOS C API version 1.6.1
-- Setting GEOS build type - Debug
-- Forcing IEEE 754 using flag -ffloat-store - ON
-- Setting GEOS compilation with small functions inlining - ON
-- Setting GEOS compilation with assert() macro enabled - OFF
-- Check for STD namespace
-- Check for STD namespace - found
-- Looking for include files HAVE_STDINT_H
-- Looking for include files HAVE_STDINT_H - found
-- Looking for include files HAVE_INTTYPES_H
-- Looking for include files HAVE_INTTYPES_H - found
-- Looking for include files HAVE_IEEEFP_H
-- Looking for include files HAVE_IEEEFP_H - not found.
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of int64_t
-- Check size of int64_t - done
-- Performing Test HAVE_STD_ISNAN
-- Performing Test HAVE_STD_ISNAN - Success
-- Performing Test HAVE_STD_ISFINITE
-- Performing Test HAVE_STD_ISFINITE - Failed
-- Looking for isfinite
-- Looking for isfinite - found
-- Enable GEOS Unit Tests build - ON
-- Enable GEOS XML Tester build - ON
-- CMake 2.8.0 successfully configured geos using Unix Makefiles generator
-- Configuring done
-- Generating done
-- Build files have been written to: /home/mloskot/dev/geos/_svn/build
mloskot at dog:~/dev/geos/_svn/build$ ls
capi CMakeFiles CTestTestfile.cmake include src tests CMakeCache.txt
cmake_install.cmake DartConfiguration.tcl Makefile Testing tools
mloskot at dog:~/dev/geos/_svn/build$

> build$ cd ../trunk
> trunk$ cmake . && make

I never do build in-tree. In fact, I was going to disable this option,
so CMake would detect that was executed in trunk and would fail.

> CMakeFiles/geos_unit.dir/geostest2.cpp.o: In function `main':
> /usr/src/geos/trunk/tests/unit/geostest2.cpp:56: multiple definition of `main'
> CMakeFiles/geos_unit.dir/geos_unit.cpp.o:/usr/src/geos/trunk/tests/unit/geos_unit.cpp:56: first defined here

mloskot at dog:~/dev/geos/_svn/trunk$ svn-clean
unlink include/geos/platform.h.disabled

mloskot at dog:~/dev/geos/_svn/trunk$ svn up
At revision 2906.

mloskot at dog:~/dev/geos/_svn/trunk$ cmake .
-- The C compiler identification is GNU
...
-- Build files have been written to: /home/mloskot/dev/geos/_svn/trunk
mloskot at dog:~/dev/geos/_svn/trunk$ make

...and everything builds and tests for me with success.


> Didn't you fix the last error ? (which is what makes me think there might
> be something old around).

I'm not sure which error you mean.
Last fixes were for the file macro commands RENAME/REMOVE issue

http://trac.osgeo.org/geos/changeset/2905

and making XMLTester to run well:

http://trac.osgeo.org/geos/changeset/2906

Regarding distclean, there is no such feature because of no need:

# CMake does not generate a "make distclean" target. Why?
http://www.vtk.org/Wiki/CMake_FAQ

Best regards
-- 
Mateusz Loskot, http://mateusz.loskot.net
Charter Member of OSGeo, http://osgeo.org


More information about the geos-devel mailing list