Mateusz Loskot wrote: > 孙高勇 wrote: >> # CMakeLists.txt for geos 3.0 by sungaoyong >> # 2006-09-04 [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> >> # Building on Cmake 2.4 >> # ------------------------------------ >> # test on windows mingw32 g++ 3.4.2、msvc 2003,linux g++ 4.1 >> # hope it's usefull > > First, I'd like to thank you on behalf of GEOS team for > this contribution! > > I also run it with success! > I use Linux (Ubuntu 6.06) + gcc 4.0.3 + cmake 2.4.3 (compiled > from sources) > > Here are binaries generated by cmake: > libgeos_i.a > libgeos.so > TestSweepLineSpeed > > Is it possible to put CMakeLists.txt file outside the 'source' tree? > For example, to <GEOS ROOT>/build/cmake > > cmake generates Makefile on the same level as automake, so > I'd suggest to put cmake outside the tree to avoid potential > conflicts with autotools (some problems may be unknown at the moment). > > Is this possible to use cmake thisway?
Hi, I played for a few minutes with cmake and CMakeLists.txtfile and I managed to do complete build from outside the sources tree. I atteched my version of CMakeLists.txt file. Please note, I'm not sure it's correct, as I'm not a cmake user yet, though it works for me :-) I copied this file to following location: <GEOS>/build/cmake/CMakeLists.txt where <GEOS> is root sources dir of GEOS. In my environment it's $HOME/dev/geos/_svn/geos/ Now, to build outside the sources tree I run: $ cd $HOME/dev/geos/_svn/geos/build/cmake $ cmake . $ make -- Configuring done -- Generating done -- Build files have been written to: /home/mloskot/dev/geos/_svn/geos/build/cmake [ 0%] Building CXX object CMakeFiles/geos.dir/home/mloskot/dev/geos/_svn/geos/source/inlines.o ... [ 99%] Building CXX object CMakeFiles/geos_i.dir/home/mloskot/dev/geos/_svn/geos-cmake/source/util/math.o [100%] Building CXX object CMakeFiles/geos_i.dir/home/mloskot/dev/geos/_svn/geos-cmake/source/util/Profiler.o Linking CXX static library libgeos_i.a [100%] Built target geos_i $ pwd /home/mloskot/dev/geos/_svn/geos/build/cmake $ ls libgeos_i.a libgeos.so TestSweepLineSpeed ... So, it seems to work. It may need some more work to tune it but I'd stick to this approach of "building outside the sources tree". Cheers -- Mateusz Loskot http://mateusz.loskot.net
# CMakeLists.txt for geos 3.0 by sungaoyong # # 2006-09-04 [EMAIL PROTECTED] # Modified to build from outside the source tree (<GEOS>/build/cmake) # # 2006-09-04 [EMAIL PROTECTED] # Building on Cmake 2.4 # ------------------------------------ # test on windows mingw32 g++ 3.4.2¡¢msvc 2003,linux g++ 4.1 # hope it's usefull PROJECT(GEOS) INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/../../source/headers) set (JTS_PORT 1.7.1) set (VERSION_MAJOR 3) set (VERSION_MINOR 0) set (VERSION_PATCH 0rc1) set (VERSION 3.0.0rc1) INCLUDE(CheckSymbolExists) #CHECK_SYMBOL_EXISTS(int64_t types.h HAVE_INT64_T_64) IF(MINGW) set (HAVE_INT64_T_64 1) ENDIF(MINGW) IF(UNIX) set (HAVE_INT64_T_64 1) ENDIF(UNIX) CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/../../source/headers/geos/version.h.in ${CMAKE_SOURCE_DIR}/../../source/headers/geos/version.h) CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/../../source/headers/geos/platform.h.in.cmake ${CMAKE_SOURCE_DIR}/../../source/headers/geos/platform.h ESCAPE_QUOTES) #ADD_LIBRARY(geos STATIC inlines.cpp) #ADD_LIBRARY(geos inlines.cpp) SET(GEOS_SRCS Hello.c File2.c File3.c) #ADD_LIBRARY(geos SHARED inlines.cpp SET(GEOS_SRCS ${CMAKE_SOURCE_DIR}/../../source/inlines.cpp ${CMAKE_SOURCE_DIR}/../../source/algorithm/CentroidArea.cpp ${CMAKE_SOURCE_DIR}/../../source/algorithm/CentroidLine ${CMAKE_SOURCE_DIR}/../../source/algorithm/CentroidPoint ${CMAKE_SOURCE_DIR}/../../source/algorithm/CGAlgorithms ${CMAKE_SOURCE_DIR}/../../source/algorithm/ConvexHull ${CMAKE_SOURCE_DIR}/../../source/algorithm/HCoordinate ${CMAKE_SOURCE_DIR}/../../source/algorithm/InteriorPointArea ${CMAKE_SOURCE_DIR}/../../source/algorithm/InteriorPointLine ${CMAKE_SOURCE_DIR}/../../source/algorithm/InteriorPointPoint ${CMAKE_SOURCE_DIR}/../../source/algorithm/LineIntersector ${CMAKE_SOURCE_DIR}/../../source/algorithm/MCPointInRing ${CMAKE_SOURCE_DIR}/../../source/algorithm/MinimumDiameter ${CMAKE_SOURCE_DIR}/../../source/algorithm/NotRepresentableException ${CMAKE_SOURCE_DIR}/../../source/algorithm/PointLocator ${CMAKE_SOURCE_DIR}/../../source/algorithm/RobustDeterminant ${CMAKE_SOURCE_DIR}/../../source/algorithm/SimplePointInAreaLocator ${CMAKE_SOURCE_DIR}/../../source/algorithm/SimplePointInRing ${CMAKE_SOURCE_DIR}/../../source/algorithm/SIRtreePointInRing ${CMAKE_SOURCE_DIR}/../../source/geom/Coordinate ${CMAKE_SOURCE_DIR}/../../source/geom/CoordinateArraySequence ${CMAKE_SOURCE_DIR}/../../source/geom/CoordinateArraySequenceFactory ${CMAKE_SOURCE_DIR}/../../source/geom/CoordinateSequence # ${CMAKE_SOURCE_DIR}/../../source/geom/CoordinateSequenceFactory ${CMAKE_SOURCE_DIR}/../../source/geom/Dimension ${CMAKE_SOURCE_DIR}/../../source/geom/Envelope ${CMAKE_SOURCE_DIR}/../../source/geom/Geometry ${CMAKE_SOURCE_DIR}/../../source/geom/GeometryCollection ${CMAKE_SOURCE_DIR}/../../source/geom/GeometryComponentFilter ${CMAKE_SOURCE_DIR}/../../source/geom/GeometryFactory ${CMAKE_SOURCE_DIR}/../../source/geom/IntersectionMatrix ${CMAKE_SOURCE_DIR}/../../source/geom/LinearRing ${CMAKE_SOURCE_DIR}/../../source/geom/LineSegment ${CMAKE_SOURCE_DIR}/../../source/geom/LineString ${CMAKE_SOURCE_DIR}/../../source/geom/Location ${CMAKE_SOURCE_DIR}/../../source/geom/MultiLineString ${CMAKE_SOURCE_DIR}/../../source/geom/MultiPoint ${CMAKE_SOURCE_DIR}/../../source/geom/MultiPolygon ${CMAKE_SOURCE_DIR}/../../source/geom/Point ${CMAKE_SOURCE_DIR}/../../source/geom/Polygon ${CMAKE_SOURCE_DIR}/../../source/geom/PrecisionModel ${CMAKE_SOURCE_DIR}/../../source/geom/Triangle ${CMAKE_SOURCE_DIR}/../../source/geom/util/CoordinateOperation ${CMAKE_SOURCE_DIR}/../../source/geom/util/GeometryEditor ${CMAKE_SOURCE_DIR}/../../source/geom/util/GeometryTransformer # ${CMAKE_SOURCE_DIR}/../../source/geom/util/LinearComponentExtracter # ${CMAKE_SOURCE_DIR}/../../source/geom/util/PointExtracter # ${CMAKE_SOURCE_DIR}/../../source/geom/util/PolygonExtracter ${CMAKE_SOURCE_DIR}/../../source/geom/util/ShortCircuitedGeometryVisitor ${CMAKE_SOURCE_DIR}/../../source/geomgraph/Depth ${CMAKE_SOURCE_DIR}/../../source/geomgraph/DirectedEdge ${CMAKE_SOURCE_DIR}/../../source/geomgraph/DirectedEdgeStar ${CMAKE_SOURCE_DIR}/../../source/geomgraph/Edge ${CMAKE_SOURCE_DIR}/../../source/geomgraph/EdgeEnd ${CMAKE_SOURCE_DIR}/../../source/geomgraph/EdgeEndStar ${CMAKE_SOURCE_DIR}/../../source/geomgraph/EdgeIntersection ${CMAKE_SOURCE_DIR}/../../source/geomgraph/EdgeIntersectionList ${CMAKE_SOURCE_DIR}/../../source/geomgraph/EdgeList ${CMAKE_SOURCE_DIR}/../../source/geomgraph/EdgeNodingValidator ${CMAKE_SOURCE_DIR}/../../source/geomgraph/EdgeRing ${CMAKE_SOURCE_DIR}/../../source/geomgraph/GeometryGraph ${CMAKE_SOURCE_DIR}/../../source/geomgraph/GraphComponent ${CMAKE_SOURCE_DIR}/../../source/geomgraph/Label ${CMAKE_SOURCE_DIR}/../../source/geomgraph/Node ${CMAKE_SOURCE_DIR}/../../source/geomgraph/NodeFactory ${CMAKE_SOURCE_DIR}/../../source/geomgraph/NodeMap ${CMAKE_SOURCE_DIR}/../../source/geomgraph/PlanarGraph ${CMAKE_SOURCE_DIR}/../../source/geomgraph/Position ${CMAKE_SOURCE_DIR}/../../source/geomgraph/Quadrant ${CMAKE_SOURCE_DIR}/../../source/geomgraph/TopologyLocation ${CMAKE_SOURCE_DIR}/../../source/geomgraph/index/MonotoneChainEdge ${CMAKE_SOURCE_DIR}/../../source/geomgraph/index/MonotoneChainIndexer ${CMAKE_SOURCE_DIR}/../../source/geomgraph/index/SegmentIntersector ${CMAKE_SOURCE_DIR}/../../source/geomgraph/index/SimpleEdgeSetIntersector ${CMAKE_SOURCE_DIR}/../../source/geomgraph/index/SimpleMCSweepLineIntersector ${CMAKE_SOURCE_DIR}/../../source/geomgraph/index/SimpleSweepLineIntersector ${CMAKE_SOURCE_DIR}/../../source/geomgraph/index/SweepLineEvent ${CMAKE_SOURCE_DIR}/../../source/geomgraph/index/SweepLineSegment ${CMAKE_SOURCE_DIR}/../../source/index/bintree/Bintree ${CMAKE_SOURCE_DIR}/../../source/index/bintree/Interval ${CMAKE_SOURCE_DIR}/../../source/index/bintree/Key ${CMAKE_SOURCE_DIR}/../../source/index/bintree/Node ${CMAKE_SOURCE_DIR}/../../source/index/bintree/NodeBase ${CMAKE_SOURCE_DIR}/../../source/index/bintree/Root ${CMAKE_SOURCE_DIR}/../../source/index/chain/MonotoneChain ${CMAKE_SOURCE_DIR}/../../source/index/chain/MonotoneChainBuilder ${CMAKE_SOURCE_DIR}/../../source/index/chain/MonotoneChainOverlapAction ${CMAKE_SOURCE_DIR}/../../source/index/chain/MonotoneChainSelectAction ${CMAKE_SOURCE_DIR}/../../source/index/quadtree/DoubleBits ${CMAKE_SOURCE_DIR}/../../source/index/quadtree/IntervalSize ${CMAKE_SOURCE_DIR}/../../source/index/quadtree/Key ${CMAKE_SOURCE_DIR}/../../source/index/quadtree/Node ${CMAKE_SOURCE_DIR}/../../source/index/quadtree/NodeBase ${CMAKE_SOURCE_DIR}/../../source/index/quadtree/Root ${CMAKE_SOURCE_DIR}/../../source/index/quadtree/Quadtree ${CMAKE_SOURCE_DIR}/../../source/index/strtree/AbstractNode ${CMAKE_SOURCE_DIR}/../../source/index/strtree/AbstractSTRtree ${CMAKE_SOURCE_DIR}/../../source/index/strtree/Interval ${CMAKE_SOURCE_DIR}/../../source/index/strtree/ItemBoundable ${CMAKE_SOURCE_DIR}/../../source/index/strtree/SIRtree ${CMAKE_SOURCE_DIR}/../../source/index/strtree/STRtree ${CMAKE_SOURCE_DIR}/../../source/index/sweepline/SweepLineEvent ${CMAKE_SOURCE_DIR}/../../source/index/sweepline/SweepLineIndex ${CMAKE_SOURCE_DIR}/../../source/index/sweepline/SweepLineInterval ${CMAKE_SOURCE_DIR}/../../source/io/ByteOrderDataInStream ${CMAKE_SOURCE_DIR}/../../source/io/ByteOrderValues ${CMAKE_SOURCE_DIR}/../../source/io/ParseException ${CMAKE_SOURCE_DIR}/../../source/io/StringTokenizer ${CMAKE_SOURCE_DIR}/../../source/io/Unload ${CMAKE_SOURCE_DIR}/../../source/io/WKBReader ${CMAKE_SOURCE_DIR}/../../source/io/WKBWriter ${CMAKE_SOURCE_DIR}/../../source/io/WKTReader ${CMAKE_SOURCE_DIR}/../../source/io/WKTWriter ${CMAKE_SOURCE_DIR}/../../source/io/Writer ${CMAKE_SOURCE_DIR}/../../source/noding/IntersectionAdder ${CMAKE_SOURCE_DIR}/../../source/noding/IntersectionFinderAdder ${CMAKE_SOURCE_DIR}/../../source/noding/IteratedNoder ${CMAKE_SOURCE_DIR}/../../source/noding/MCIndexNoder ${CMAKE_SOURCE_DIR}/../../source/noding/NodingValidator ${CMAKE_SOURCE_DIR}/../../source/noding/Octant ${CMAKE_SOURCE_DIR}/../../source/noding/ScaledNoder ${CMAKE_SOURCE_DIR}/../../source/noding/SegmentNode ${CMAKE_SOURCE_DIR}/../../source/noding/SegmentNodeList ${CMAKE_SOURCE_DIR}/../../source/noding/SegmentString ${CMAKE_SOURCE_DIR}/../../source/noding/SimpleNoder ${CMAKE_SOURCE_DIR}/../../source/noding/snapround/HotPixel ${CMAKE_SOURCE_DIR}/../../source/noding/snapround/MCIndexPointSnapper ${CMAKE_SOURCE_DIR}/../../source/noding/snapround/MCIndexSnapRounder ${CMAKE_SOURCE_DIR}/../../source/noding/snapround/SimpleSnapRounder ${CMAKE_SOURCE_DIR}/../../source/operation/buffer/BufferBuilder ${CMAKE_SOURCE_DIR}/../../source/operation/buffer/BufferOp ${CMAKE_SOURCE_DIR}/../../source/operation/buffer/BufferSubgraph ${CMAKE_SOURCE_DIR}/../../source/operation/buffer/OffsetCurveBuilder ${CMAKE_SOURCE_DIR}/../../source/operation/buffer/OffsetCurveSetBuilder ${CMAKE_SOURCE_DIR}/../../source/operation/buffer/RightmostEdgeFinder ${CMAKE_SOURCE_DIR}/../../source/operation/buffer/SubgraphDepthLocater ${CMAKE_SOURCE_DIR}/../../source/operation/distance/ConnectedElementLocationFilter ${CMAKE_SOURCE_DIR}/../../source/operation/distance/ConnectedElementPointFilter ${CMAKE_SOURCE_DIR}/../../source/operation/distance/DistanceOp ${CMAKE_SOURCE_DIR}/../../source/operation/distance/GeometryLocation ${CMAKE_SOURCE_DIR}/../../source/operation/GeometryGraphOperation ${CMAKE_SOURCE_DIR}/../../source/operation/IsSimpleOp ${CMAKE_SOURCE_DIR}/../../source/operation/linemerge/EdgeString ${CMAKE_SOURCE_DIR}/../../source/operation/linemerge/LineMergeDirectedEdge ${CMAKE_SOURCE_DIR}/../../source/operation/linemerge/LineMergeEdge ${CMAKE_SOURCE_DIR}/../../source/operation/linemerge/LineMergeGraph ${CMAKE_SOURCE_DIR}/../../source/operation/linemerge/LineMerger ${CMAKE_SOURCE_DIR}/../../source/operation/linemerge/LineSequencer ${CMAKE_SOURCE_DIR}/../../source/operation/overlay/EdgeSetNoder ${CMAKE_SOURCE_DIR}/../../source/operation/overlay/ElevationMatrix ${CMAKE_SOURCE_DIR}/../../source/operation/overlay/ElevationMatrixCell ${CMAKE_SOURCE_DIR}/../../source/operation/overlay/LineBuilder ${CMAKE_SOURCE_DIR}/../../source/operation/overlay/MaximalEdgeRing ${CMAKE_SOURCE_DIR}/../../source/operation/overlay/MinimalEdgeRing ${CMAKE_SOURCE_DIR}/../../source/operation/overlay/OverlayNodeFactory ${CMAKE_SOURCE_DIR}/../../source/operation/overlay/OverlayOp ${CMAKE_SOURCE_DIR}/../../source/operation/overlay/PointBuilder ${CMAKE_SOURCE_DIR}/../../source/operation/overlay/PolygonBuilder ${CMAKE_SOURCE_DIR}/../../source/operation/polygonize/PolygonizeDirectedEdge ${CMAKE_SOURCE_DIR}/../../source/operation/polygonize/PolygonizeEdge ${CMAKE_SOURCE_DIR}/../../source/operation/polygonize/EdgeRing ${CMAKE_SOURCE_DIR}/../../source/operation/polygonize/PolygonizeGraph ${CMAKE_SOURCE_DIR}/../../source/operation/polygonize/Polygonizer ${CMAKE_SOURCE_DIR}/../../source/operation/predicate/RectangleContains ${CMAKE_SOURCE_DIR}/../../source/operation/predicate/RectangleIntersects ${CMAKE_SOURCE_DIR}/../../source/operation/predicate/SegmentIntersectionTester ${CMAKE_SOURCE_DIR}/../../source/operation/relate/EdgeEndBuilder ${CMAKE_SOURCE_DIR}/../../source/operation/relate/EdgeEndBundle ${CMAKE_SOURCE_DIR}/../../source/operation/relate/EdgeEndBundleStar ${CMAKE_SOURCE_DIR}/../../source/operation/relate/RelateComputer ${CMAKE_SOURCE_DIR}/../../source/operation/relate/RelateNode ${CMAKE_SOURCE_DIR}/../../source/operation/relate/RelateNodeFactory ${CMAKE_SOURCE_DIR}/../../source/operation/relate/RelateNodeGraph ${CMAKE_SOURCE_DIR}/../../source/operation/relate/RelateOp ${CMAKE_SOURCE_DIR}/../../source/operation/valid/ConnectedInteriorTester ${CMAKE_SOURCE_DIR}/../../source/operation/valid/ConsistentAreaTester ${CMAKE_SOURCE_DIR}/../../source/operation/valid/IsValidOp ${CMAKE_SOURCE_DIR}/../../source/operation/valid/QuadtreeNestedRingTester ${CMAKE_SOURCE_DIR}/../../source/operation/valid/RepeatedPointTester ${CMAKE_SOURCE_DIR}/../../source/operation/valid/SimpleNestedRingTester ${CMAKE_SOURCE_DIR}/../../source/operation/valid/SweeplineNestedRingTester ${CMAKE_SOURCE_DIR}/../../source/operation/valid/TopologyValidationError ${CMAKE_SOURCE_DIR}/../../source/planargraph/DirectedEdge ${CMAKE_SOURCE_DIR}/../../source/planargraph/DirectedEdgeStar ${CMAKE_SOURCE_DIR}/../../source/planargraph/Edge ${CMAKE_SOURCE_DIR}/../../source/planargraph/Node ${CMAKE_SOURCE_DIR}/../../source/planargraph/NodeMap ${CMAKE_SOURCE_DIR}/../../source/planargraph/PlanarGraph ${CMAKE_SOURCE_DIR}/../../source/planargraph/Subgraph ${CMAKE_SOURCE_DIR}/../../source/planargraph/algorithm/ConnectedSubgraphFinder ${CMAKE_SOURCE_DIR}/../../source/precision/CommonBits ${CMAKE_SOURCE_DIR}/../../source/precision/CommonBitsOp ${CMAKE_SOURCE_DIR}/../../source/precision/CommonBitsRemover ${CMAKE_SOURCE_DIR}/../../source/precision/EnhancedPrecisionOp ${CMAKE_SOURCE_DIR}/../../source/precision/GeometrySnapper ${CMAKE_SOURCE_DIR}/../../source/precision/LineStringSnapper ${CMAKE_SOURCE_DIR}/../../source/precision/SimpleGeometryPrecisionReducer ${CMAKE_SOURCE_DIR}/../../source/simplify/DouglasPeuckerLineSimplifier ${CMAKE_SOURCE_DIR}/../../source/simplify/DouglasPeuckerSimplifier ${CMAKE_SOURCE_DIR}/../../source/simplify/LineSegmentIndex ${CMAKE_SOURCE_DIR}/../../source/simplify/TaggedLineSegment ${CMAKE_SOURCE_DIR}/../../source/simplify/TaggedLinesSimplifier ${CMAKE_SOURCE_DIR}/../../source/simplify/TaggedLineString ${CMAKE_SOURCE_DIR}/../../source/simplify/TaggedLineStringSimplifier ${CMAKE_SOURCE_DIR}/../../source/simplify/TopologyPreservingSimplifier ${CMAKE_SOURCE_DIR}/../../source/util/Assert # ${CMAKE_SOURCE_DIR}/../../source/util/AssertionFailedException ${CMAKE_SOURCE_DIR}/../../source/util/GeometricShapeFactory # ${CMAKE_SOURCE_DIR}/../../source/util/IllegalArgumentException ${CMAKE_SOURCE_DIR}/../../source/util/math ${CMAKE_SOURCE_DIR}/../../source/util/Profiler # ${CMAKE_SOURCE_DIR}/../../source/util/UnsupportedOperationException ) ADD_LIBRARY(geos SHARED ${GEOS_SRCS}) ADD_LIBRARY(geos_i STATIC ${GEOS_SRCS}) ADD_EXECUTABLE(TestSweepLineSpeed ${CMAKE_SOURCE_DIR}/../../tests/bigtest/GeometryTestFactory ${CMAKE_SOURCE_DIR}/../../tests/bigtest/TestSweepLineSpeed) TARGET_LINK_LIBRARIES(TestSweepLineSpeed geos)
_______________________________________________ geos-devel mailing list geos-devel@geos.refractions.net http://geos.refractions.net/mailman/listinfo/geos-devel