[sfcgal] 02/04: Imported Upstream version 1.2.1

Sven Geggus giggls-guest at moszumanska.debian.org
Tue Nov 10 18:39:41 UTC 2015


This is an automated email from the git hooks/post-receive script.

giggls-guest pushed a commit to branch master
in repository sfcgal.

commit dcc15a08d37e8f74292a807a840978b221df9620
Author: Sven Geggus <sven-deb at geggus.net>
Date:   Tue Nov 10 19:17:56 2015 +0100

    Imported Upstream version 1.2.1
---
 .gitignore                                         | 11 +++
 .travis.yml                                        | 10 ++-
 cmake/Modules/FindCGAL.cmake                       |  3 +-
 src/algorithm/Intersection3D.cpp                   | 12 ++-
 src/algorithm/difference.cpp                       |  1 -
 src/algorithm/differencePrimitives.h               |  8 +-
 src/algorithm/intersects.cpp                       |  4 +-
 src/algorithm/minkowskiSum.cpp                     |  8 ++
 src/algorithm/straightSkeleton.cpp                 |  4 +-
 src/algorithm/union.cpp                            |  4 +-
 src/detail/Point_inside_polyhedron.h               | 19 +++++
 test/CMakeLists.txt                                |  2 +
 .../StraightSkeletonTest.txt                       |  0
 test/data/StraightSkeletonTest/issue111.txt        |  3 +
 test/garden/CMakeLists.txt                         |  4 +-
 test/regress/standalone/CMakeLists.txt             |  4 +-
 test/regress/standalone/README                     | 15 ++++
 .../standalone/SFCGAL/StraightSkeletonTest.cpp     | 97 +++++++++++++++++-----
 test/unit/CMakeLists.txt                           |  4 +-
 travis/linux/before_install.sh                     | 16 +++-
 travis/linux/install_cgal.sh                       | 14 ++++
 21 files changed, 193 insertions(+), 50 deletions(-)

diff --git a/.gitignore b/.gitignore
index eef6c1b..51a58d0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -28,3 +28,14 @@ polygon_triangulation2.obj
 gmon.out
 
 include/SFCGAL
+
+.gdb_history
+libSFCGAL.la
+sfcgal-config
+src/libSFCGAL.so*
+test/bench/bench-SFCGAL
+test/garden/garden-test-SFCGAL
+test/regress/convex_hull/test-regress-convex_hull
+test/regress/polygon_triangulator/test-regress-polygon_triangulator
+test/regress/standalone/standalone-regress-test-SFCGAL
+test/unit/unit-test-SFCGAL
diff --git a/.travis.yml b/.travis.yml
index 32a0cd5..9e05e25 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -5,15 +5,19 @@ language: cpp
 #  - osx
 
 compiler:
-  - gcc
+#  - gcc
   - clang
 
+env:
+  - CGAL_VERSION=4.3
+  - CGAL_VERSION=4.7
+
 before_install:
-  - ./travis/${TRAVIS_OS_NAME}/before_install.sh
+  - ./travis/${TRAVIS_OS_NAME}/before_install.sh $CGAL_VERSION
 
 before_script:
   - cmake -DSFCGAL_BUILD_TESTS=ON
 
 script:
   - make
-  - make test
+  - ctest -VV
diff --git a/cmake/Modules/FindCGAL.cmake b/cmake/Modules/FindCGAL.cmake
index 17876b5..d61765e 100644
--- a/cmake/Modules/FindCGAL.cmake
+++ b/cmake/Modules/FindCGAL.cmake
@@ -24,7 +24,8 @@ if( CGAL_LIBRARY )
 endif()
 
 if(CGAL_FIND_VERSION)
-    find_file(version_file CGAL/version.h HINTS $ENV{CGAL_DIR}/include ${CGAL_DIR}/include ${CGAL_INCLUDE_DIRS} PATH_SUFFIXES CGAL)
+    message("CGAL_DIR ${CGAL_DIR}")
+    find_file(version_file version.h HINTS $ENV{CGAL_DIR}/include ${CGAL_DIR}/include ${CGAL_INCLUDE_DIRS} PATH_SUFFIXES CGAL)
     file(STRINGS ${version_file} version_str REGEX "# *define +CGAL_VERSION +")
     string( REGEX REPLACE "# *define +CGAL_VERSION +" "" CGAL_VERSION ${version_str})
     if("${CGAL_VERSION}" VERSION_LESS "${CGAL_FIND_VERSION}")
diff --git a/src/algorithm/Intersection3D.cpp b/src/algorithm/Intersection3D.cpp
index 2481eb7..3011856 100644
--- a/src/algorithm/Intersection3D.cpp
+++ b/src/algorithm/Intersection3D.cpp
@@ -32,7 +32,7 @@
 
 #include <CGAL/IO/Polyhedron_iostream.h>
 
-#include <CGAL/Point_inside_polyhedron_3.h>
+#include <SFCGAL/detail/Point_inside_polyhedron.h>
 
 using namespace SFCGAL::detail;
 
@@ -48,7 +48,7 @@ void _intersection_solid_segment( const PrimitiveHandle<3>& pa, const PrimitiveH
     const CGAL::Segment_3<Kernel>* segment = pb.as<CGAL::Segment_3<Kernel> >();
 
     MarkedPolyhedron* ext_poly_nc = const_cast<MarkedPolyhedron*>( ext_poly );
-    CGAL::Point_inside_polyhedron_3<MarkedPolyhedron, Kernel> is_in_ext( *ext_poly_nc );
+    Point_inside_polyhedron<MarkedPolyhedron, Kernel> is_in_ext( *ext_poly_nc );
 
     GeometrySet<3> triangles;
     GeometrySet<3> spoint( segment->source() );
@@ -151,7 +151,7 @@ void _intersection_solid_triangle( const MarkedPolyhedron& pa, const CGAL::Trian
     CGAL::Intersection_of_Polyhedra_3<MarkedPolyhedron,Kernel, Split_visitor> intersect_polys( visitor );
     intersect_polys( polya, polyb, std::back_inserter( polylines ) );
 
-    CGAL::Point_inside_polyhedron_3<MarkedPolyhedron, Kernel> point_inside_q( polya );
+    Point_inside_polyhedron<MarkedPolyhedron, Kernel> point_inside_q( polya );
 
     if ( polylines.size() == 0 ) {
         // no surface intersection
@@ -168,7 +168,13 @@ void _intersection_solid_triangle( const MarkedPolyhedron& pa, const CGAL::Trian
     // triangle decomposition
     std::list<MarkedPolyhedron> decomposition;
     Is_not_marked criterion;
+#if CGAL_VERSION_NR < 1040701000 // version 4.7
+    // Before 4.7, extract_connected_components lies in CGAL::internal
     CGAL::internal::extract_connected_components( polyb, criterion, std::back_inserter( decomposition ) );
+#else
+    // After 4.7, it's now in CGAL::internal::corefinement
+    CGAL::internal::corefinement::extract_connected_components( polyb, criterion, std::back_inserter( decomposition ) );
+#endif
 
     bool hasSurface = false;
 
diff --git a/src/algorithm/difference.cpp b/src/algorithm/difference.cpp
index aaadac9..c4eab51 100644
--- a/src/algorithm/difference.cpp
+++ b/src/algorithm/difference.cpp
@@ -32,7 +32,6 @@
 #include <CGAL/Exact_predicates_exact_constructions_kernel.h>
 #include <CGAL/box_intersection_d.h>
 #include <CGAL/corefinement_operations.h>
-#include <CGAL/Point_inside_polyhedron_3.h>
 
 //
 // Intersection kernel
diff --git a/src/algorithm/differencePrimitives.h b/src/algorithm/differencePrimitives.h
index c1ae977..216d31e 100644
--- a/src/algorithm/differencePrimitives.h
+++ b/src/algorithm/differencePrimitives.h
@@ -32,7 +32,7 @@
 #include <CGAL/Exact_predicates_exact_constructions_kernel.h>
 #include <CGAL/box_intersection_d.h>
 #include <CGAL/corefinement_operations.h>
-#include <CGAL/Point_inside_polyhedron_3.h>
+#include <SFCGAL/detail/Point_inside_polyhedron.h>
 
 
 
@@ -168,7 +168,7 @@ PointOutputIteratorType difference( const Point_3& a, const Triangle_3& b, Point
 template < typename PointOutputIteratorType>
 PointOutputIteratorType difference( const Point_3& a, const MarkedPolyhedron& b, PointOutputIteratorType out )
 {
-    CGAL::Point_inside_polyhedron_3<MarkedPolyhedron, Kernel> is_in_poly( b );
+    Point_inside_polyhedron<MarkedPolyhedron, Kernel> is_in_poly( b );
 
     if ( CGAL::ON_UNBOUNDED_SIDE == is_in_poly( a ) ) {
         *out++ = a;
@@ -628,7 +628,7 @@ SegmentOutputIteratorType difference( const Segment_3& segment, const MarkedPoly
 
     if ( !collisions.size() ) {
         // completely in or out, we just test one point
-        CGAL::Point_inside_polyhedron_3<MarkedPolyhedron, Kernel> is_in_poly( polyhedron );
+        Point_inside_polyhedron<MarkedPolyhedron, Kernel> is_in_poly( polyhedron );
 
         if ( CGAL::ON_UNBOUNDED_SIDE == is_in_poly( segment.source() ) ) {
             *out++ = segment;
@@ -675,7 +675,7 @@ SegmentOutputIteratorType difference( const Segment_3& segment, const MarkedPoly
             const Nearer<Point_3> nearer( seg->source() );
             std::sort( points.begin()+1, points.end()-1, nearer );
 
-            CGAL::Point_inside_polyhedron_3<MarkedPolyhedron, Kernel> is_in_poly( polyhedron );
+            Point_inside_polyhedron<MarkedPolyhedron, Kernel> is_in_poly( polyhedron );
 
             // append segments that has length and wich midpoint is outside polyhedron to result
             for ( std::vector< Point_3 >::const_iterator p = points.begin(); p != points.end()-1; ++p ) {
diff --git a/src/algorithm/intersects.cpp b/src/algorithm/intersects.cpp
index 55baa7f..4836d0a 100644
--- a/src/algorithm/intersects.cpp
+++ b/src/algorithm/intersects.cpp
@@ -37,7 +37,7 @@
 
 #include <CGAL/box_intersection_d.h>
 
-#include <CGAL/Point_inside_polyhedron_3.h>
+#include <SFCGAL/detail/Point_inside_polyhedron.h>
 
 using namespace SFCGAL::detail;
 
@@ -256,7 +256,7 @@ struct intersects_volume_x : public boost::static_visitor<bool> {
             // this test is needed only if its a volume
             // if the polyhedron is not closed, this is not a volume, actually
 
-            CGAL::Point_inside_polyhedron_3<MarkedPolyhedron, Kernel> is_in_poly( *polyhedron );
+            Point_inside_polyhedron<MarkedPolyhedron, Kernel> is_in_poly( *polyhedron );
 
             GeometrySet<3> points;
             points.collectPoints( geometry );
diff --git a/src/algorithm/minkowskiSum.cpp b/src/algorithm/minkowskiSum.cpp
index 2edc1c3..c14ca5c 100644
--- a/src/algorithm/minkowskiSum.cpp
+++ b/src/algorithm/minkowskiSum.cpp
@@ -166,7 +166,15 @@ void minkowskiSum( const LineString& gA, const Polygon_2& gB, Polygon_set_2& pol
         P.push_back( gA.pointN( i ).toPoint_2() );
         P.push_back( gA.pointN( i+1 ).toPoint_2() );
 
+        //
+        // We want to compute the "minkowski sum" on each segment of the line string
+        // This is not very well defined. But it appears CGAL supports it.
+        // However we must use the explicit "full convolution" method for that particular case in CGAL >= 4.7
+#if CGAL_VERSION_NR < 1040701000 // version 4.7
         Polygon_with_holes_2 part = minkowski_sum_2( P, gB );
+#else
+        Polygon_with_holes_2 part = minkowski_sum_by_full_convolution_2( P, gB );
+#endif
 
         // merge into a polygon set
         if ( polygonSet.is_empty() ) {
diff --git a/src/algorithm/straightSkeleton.cpp b/src/algorithm/straightSkeleton.cpp
index a44188a..45b4186 100644
--- a/src/algorithm/straightSkeleton.cpp
+++ b/src/algorithm/straightSkeleton.cpp
@@ -100,7 +100,9 @@ straightSkeleton(const Polygon_with_holes_2& poly)
     poly.holes_end     (),
     CGAL::Epick()
   );
-  return CGAL::convert_straight_skeleton_2< Straight_skeleton_2 > ( *sk ) ;
+  boost::shared_ptr< Straight_skeleton_2 > ret;
+  if ( sk ) ret = CGAL::convert_straight_skeleton_2< Straight_skeleton_2 > ( *sk ) ;
+  return ret;
 }
 
 // Throw an exception if any two polygon rings touch,
diff --git a/src/algorithm/union.cpp b/src/algorithm/union.cpp
index 3932cbe..257e874 100644
--- a/src/algorithm/union.cpp
+++ b/src/algorithm/union.cpp
@@ -525,7 +525,7 @@ void union_point_volume( Handle<2> ,Handle<2>  )
 void union_point_volume( Handle<3> a,Handle<3> b )
 {
     //@todo put is in poly in a struct derived from MarkedPolyhedron to avoid rebuilding point inside every time
-    CGAL::Point_inside_polyhedron_3<MarkedPolyhedron, Kernel> is_in_poly( b.asVolume() );
+    Point_inside_polyhedron<MarkedPolyhedron, Kernel> is_in_poly( b.asVolume() );
 
     if ( CGAL::ON_UNBOUNDED_SIDE != is_in_poly( a.asPoint() ) ) {
         b.registerObservers( a );
@@ -638,7 +638,7 @@ void union_segment_volume( Handle<3> a,Handle<3> b )
                               bboxes.begin(), bboxes.end(),
                               cb );
 
-    CGAL::Point_inside_polyhedron_3<MarkedPolyhedron, Kernel> is_in_poly( polyhedron );
+    Point_inside_polyhedron<MarkedPolyhedron, Kernel> is_in_poly( polyhedron );
 
     if ( !collisions.size() ) {
         // completely in or out, we just test one point
diff --git a/src/detail/Point_inside_polyhedron.h b/src/detail/Point_inside_polyhedron.h
new file mode 100644
index 0000000..6b23efd
--- /dev/null
+++ b/src/detail/Point_inside_polyhedron.h
@@ -0,0 +1,19 @@
+#ifndef POLYGON_INSIDE_POLYHEDRON_H
+#define POLYGON_INSIDE_POLYHEDRON_H
+
+//
+// Compatibility layer for Point_inside_polyhderon_3 that becomes Side_of_triangle_mesh in CGAL 4.7
+
+#if CGAL_VERSION_NR < 1040701000 // version 4.7
+
+#include <CGAL/Point_inside_polyhedron_3.h>
+#define Point_inside_polyhedron CGAL::Point_inside_polyhedron_3
+
+#else
+
+#include <CGAL/Side_of_triangle_mesh.h>
+#define Point_inside_polyhedron CGAL::Side_of_triangle_mesh
+
+#endif
+
+#endif
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 64f8014..6a455e9 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -18,3 +18,5 @@ if( SFCGAL_BUILD_BENCH )
 	add_subdirectory( bench )
 endif()
 
+# add a custom rule "check" that adds verbosity to ctest
+add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --verbose)
diff --git a/test/data/StraightSkeletonTest.txt b/test/data/StraightSkeletonTest/StraightSkeletonTest.txt
similarity index 100%
rename from test/data/StraightSkeletonTest.txt
rename to test/data/StraightSkeletonTest/StraightSkeletonTest.txt
diff --git a/test/data/StraightSkeletonTest/issue111.txt b/test/data/StraightSkeletonTest/issue111.txt
new file mode 100644
index 0000000..99271e0
--- /dev/null
+++ b/test/data/StraightSkeletonTest/issue111.txt
@@ -0,0 +1,3 @@
+# Test for https://github.com/Oslandia/SFCGAL/issues/111
+# Origin https://trac.osgeo.org/postgis/ticket/3324
+POLYGON ((-86.53986 32.35124,-86.54 32.35202,-86.54122 32.35622,-86.5424 32.3611,-86.54368 32.36537,-86.54456 32.36679,-86.54509 32.36723,-86.54565 32.36764,-86.54625 32.36801,-86.54679 32.3683,-86.54744 32.3686,-86.54802 32.36881,-86.5486 32.36897,-86.54911 32.36907,-86.54982 32.36913,-86.55044 32.36911,-86.55379 32.36878,-86.55473 32.36867,-86.55599 32.3686,-86.55683 32.3686,-86.55767 32.36864,-86.5585 32.36873,-86.55933 32.36885,-86.56025 32.36946,-86.563 32.37094,-86.56472 32.37169,- [...]
diff --git a/test/garden/CMakeLists.txt b/test/garden/CMakeLists.txt
index 28674b9..cf83e06 100644
--- a/test/garden/CMakeLists.txt
+++ b/test/garden/CMakeLists.txt
@@ -17,9 +17,9 @@ set_target_properties( ${REGRESS_NAME} PROPERTIES DEBUG_POSTFIX "d" )
 install( TARGETS ${REGRESS_NAME} DESTINATION bin )
 
 if (CMAKE_BUILD_TYPE STREQUAL "Debug" )
-    add_test( garden-testd ${CMAKE_CURRENT_BINARY_DIR}/garden-test-SFCGALd )
+    add_test( garden-testd ${CMAKE_CURRENT_BINARY_DIR}/garden-test-SFCGALd --verbose)
 else()
-    add_test( garden-test ${CMAKE_CURRENT_BINARY_DIR}/garden-test-SFCGAL )
+    add_test( garden-test ${CMAKE_CURRENT_BINARY_DIR}/garden-test-SFCGAL --verbose)
 endif()
 
 
diff --git a/test/regress/standalone/CMakeLists.txt b/test/regress/standalone/CMakeLists.txt
index 2b0df3c..7459e5e 100644
--- a/test/regress/standalone/CMakeLists.txt
+++ b/test/regress/standalone/CMakeLists.txt
@@ -15,9 +15,9 @@ set_target_properties( standalone-regress-test-SFCGAL PROPERTIES DEBUG_POSTFIX "
 install( TARGETS standalone-regress-test-SFCGAL DESTINATION bin )
 
 if (CMAKE_BUILD_TYPE STREQUAL "Debug" )
-    add_test( standalone-regress-testd ${CMAKE_CURRENT_BINARY_DIR}/standalone-regress-test-SFCGALd )
+    add_test( standalone-regress-testd ${CMAKE_CURRENT_BINARY_DIR}/standalone-regress-test-SFCGALd --auto_start_dbg=y --log_level=all)
 else()
-    add_test( standalone-regress-test ${CMAKE_CURRENT_BINARY_DIR}/standalone-regress-test-SFCGAL )
+    add_test( standalone-regress-test ${CMAKE_CURRENT_BINARY_DIR}/standalone-regress-test-SFCGAL --auto_start_dbg=y --log_level=all)
 endif()
 
 
diff --git a/test/regress/standalone/README b/test/regress/standalone/README
new file mode 100644
index 0000000..587b81f
--- /dev/null
+++ b/test/regress/standalone/README
@@ -0,0 +1,15 @@
+Tester file is built with "make" if enabled at configure time
+
+ cmake -D SFCGAL_BUILD_TESTS=True <srcdir> # in top-level build dir
+
+Run all tests with:
+
+ ./standalone-regress-test-SFCGAL
+
+Run specific tests with:
+
+ ./standalone-regress-test-SFCGAL --run_test=TestSuite/Test
+
+See more options with:
+
+ ./standalone-regress-test-SFCGAL --help
diff --git a/test/regress/standalone/SFCGAL/StraightSkeletonTest.cpp b/test/regress/standalone/SFCGAL/StraightSkeletonTest.cpp
index ae3d622..23bee5f 100644
--- a/test/regress/standalone/SFCGAL/StraightSkeletonTest.cpp
+++ b/test/regress/standalone/SFCGAL/StraightSkeletonTest.cpp
@@ -37,37 +37,88 @@
 #include "../../../test_config.h"
 
 #include <boost/test/unit_test.hpp>
+#include <boost/filesystem.hpp>
+#include <boost/filesystem/path.hpp>
+
 using namespace boost::unit_test ;
 
 using namespace SFCGAL ;
 
 BOOST_AUTO_TEST_SUITE( SFCGAL_StraightSkeletonTest )
 
-BOOST_AUTO_TEST_CASE( testStraightSkeletonTest )
-{
-    std::string filename( SFCGAL_TEST_DIRECTORY );
-    filename += "/data/StraightSkeletonTest.txt" ;
-
-    std::ifstream ifs( filename.c_str() );
-    BOOST_REQUIRE( ifs.good() ) ;
-
-    std::string line;
-
-    while ( std::getline( ifs, line ) ) {
-        if ( line[0] == '#' || line.empty() ) {
-            continue ;
+namespace {
+
+    void runTest(const std::string& filename)
+    {
+        std::ifstream ifs( filename.c_str() );
+        BOOST_REQUIRE( ifs.good() ) ;
+
+        std::string line;
+        std::string lbl_base = boost::filesystem::basename(filename);
+
+        int lineno = 0;
+        while ( std::getline( ifs, line ) ) {
+            ++lineno;
+            if ( line[0] == '#' || line.empty() ) {
+                continue ;
+            }
+            std::stringstream lblstream;
+            lblstream << lbl_base << ':' << lineno << ": ";
+            std::string lbl = lblstream.str();
+
+            std::istringstream iss( line );
+            std::string inputWkt ;
+            std::string outputWkt ;
+            std::string obtWkt ;
+
+            if ( ! std::getline( iss, inputWkt, '|' ) ||
+                 ! std::getline( iss, outputWkt, '|' ) )
+            {
+                std::stringstream ss;
+                ss << lbl << "missing `|' char in test file";
+                BOOST_CHECK_EQUAL("", ss.str());
+                continue;
+            }
+
+            std::auto_ptr< Geometry > g;
+            try {
+              g = io::readWkt( inputWkt );
+            } catch (const std::exception &e) {
+              std::stringstream ss;
+              ss << lbl << e.what();
+              BOOST_CHECK_EQUAL("", ss.str());
+              continue;
+            }
+            std::auto_ptr< MultiLineString > result;
+            try {
+              result = algorithm::straightSkeleton( *g ) ;
+              obtWkt = result->asText( 6 );
+            } catch (const std::exception& e) {
+              obtWkt = std::string(e.what());
+            }
+            std::string obt = lbl + obtWkt;
+            std::string exp = lbl + outputWkt;
+            BOOST_CHECK_EQUAL( exp, obt );
         }
+    }
+}
 
-        std::istringstream iss( line );
-        std::string inputWkt ;
-        std::string outputWkt ;
-
-        BOOST_CHECK( std::getline( iss, inputWkt, '|' ) );
-        BOOST_CHECK( std::getline( iss, outputWkt, '|' ) );
-
-        std::auto_ptr< Geometry > g( io::readWkt( inputWkt ) );
-        std::auto_ptr< MultiLineString > result = algorithm::straightSkeleton( *g ) ;
-        BOOST_CHECK_EQUAL( result->asText( 6 ), outputWkt );
+BOOST_AUTO_TEST_CASE( testStraightSkeletonTest )
+{
+    using namespace boost;
+    using namespace boost::filesystem;
+
+    std::string testdir( SFCGAL_TEST_DIRECTORY );
+    path dirname = testdir + "/data/StraightSkeletonTest" ;
+    if ( is_directory(dirname) )
+    {
+      directory_iterator it = directory_iterator(dirname);
+      while ( it != directory_iterator() )
+      {
+        path f = *it;
+        runTest(f.c_str());
+        ++it;
+      }
     }
 }
 
diff --git a/test/unit/CMakeLists.txt b/test/unit/CMakeLists.txt
index bede8ba..675c7c9 100644
--- a/test/unit/CMakeLists.txt
+++ b/test/unit/CMakeLists.txt
@@ -23,8 +23,8 @@ set_target_properties( unit-test-SFCGAL PROPERTIES DEBUG_POSTFIX "d" )
 install( TARGETS unit-test-SFCGAL DESTINATION bin )
 
 if (CMAKE_BUILD_TYPE STREQUAL "Debug" )
-    add_test( unit-testd ${CMAKE_CURRENT_BINARY_DIR}/unit-test-SFCGALd )
+    add_test( unit-testd ${CMAKE_CURRENT_BINARY_DIR}/unit-test-SFCGALd --auto_start_dbg=y --log_level=all)
 else()
-    add_test( unit-test ${CMAKE_CURRENT_BINARY_DIR}/unit-test-SFCGAL )
+    add_test( unit-test ${CMAKE_CURRENT_BINARY_DIR}/unit-test-SFCGAL --auto_start_dbg=y --log_level=all)
 endif()
 
diff --git a/travis/linux/before_install.sh b/travis/linux/before_install.sh
index 00d52b7..26f84ca 100755
--- a/travis/linux/before_install.sh
+++ b/travis/linux/before_install.sh
@@ -1,15 +1,23 @@
 export DEBIAN_FRONTEND=noninteractive
 sudo add-apt-repository ppa:apokluda/boost1.53 --yes
+sudo add-apt-repository ppa:kalakris/cmake --yes # CMAKE 2.8.11
 sudo apt-get update -qq
 sudo apt-get install --force-yes \
     cmake libboost-chrono1.53-dev libboost-program-options1.53-dev libboost-filesystem1.53-dev libboost-timer1.53-dev \
     libboost-test1.53-dev libboost-date-time1.53-dev libboost-thread1.53-dev \
     libboost-system1.53-dev libboost-serialization1.53-dev \
-    libmpfr-dev libgmp-dev
+    libmpfr-dev libgmp-dev \
+    cmake
 #CGAL
-wget https://gforge.inria.fr/frs/download.php/file/32994/CGAL-4.3.tar.gz
-tar xzf CGAL-4.3.tar.gz
-cd CGAL-4.3 && cmake . && make && sudo make install && cd ..
+if [ "$1" = "4.3" ]; then
+    wget https://gforge.inria.fr/frs/download.php/file/32994/CGAL-4.3.tar.gz
+    tar xzf CGAL-4.3.tar.gz
+    cd CGAL-4.3 && cmake . && make && sudo make install && cd ..
+elif [ "$1" = "4.7" ]; then
+    wget https://github.com/CGAL/cgal/releases/download/releases%2FCGAL-4.7/CGAL-4.7.tar.gz
+    tar xzf CGAL-4.7.tar.gz
+    cd CGAL-4.7 && cmake . && make && sudo make install && cd ..
+fi
 
 
 cmake --version
diff --git a/travis/linux/install_cgal.sh b/travis/linux/install_cgal.sh
new file mode 100644
index 0000000..92922aa
--- /dev/null
+++ b/travis/linux/install_cgal.sh
@@ -0,0 +1,14 @@
+#CGAL
+if [ "$1" = "4.3" ]; then
+    wget https://gforge.inria.fr/frs/download.php/file/32994/CGAL-4.3.tar.gz
+    tar xzf CGAL-4.3.tar.gz
+    cd CGAL-4.3 && cmake -DCMAKE_INSTALL_PREFIX=$HOME/CGAL-4.3 . && make && make install && cd ..
+elif [ "$1" = "4.7" ]; then
+    wget https://github.com/CGAL/cgal/releases/download/releases%2FCGAL-4.7/CGAL-4.7.tar.gz
+    tar xzf CGAL-4.7.tar.gz
+    cd CGAL-4.7 && cmake -DCMAKE_INSTALL_PREFIX=$HOME/CGAL-4.7 . && make && make install && cd ..
+fi
+
+
+cmake --version
+clang --version

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/sfcgal.git



More information about the Pkg-grass-devel mailing list