[geos-devel] 3.8.0 problems building on Windows
Asa Packer
APacker at biosonicsinc.com
Mon Oct 21 12:14:17 PDT 2019
Hi,
I just started working with version 3.8.0, trying to build it on Windows. I ran into two issues:
1. Out of the box I can't build geos 3.8.0 with a fully-updated Visual Studio 2017, because geos wants cmake 3.13 and VS2017 only has 3.12. If I change line 22 of the top-level CMakeLists.txt to require only 3.12, then I can build fine in Release mode, either 32 or 64 bit, and ctest shows no failures.
2. If I build in Debug mode, with either VS2017 or VS2019, I get tons of assertion failures when I do ctest. They all come from line 115 of MonotoneChainBuilder.cpp, which on the last time through the loop causes an access of an element one past the end of a std::vector. Even if I ignore the assertion failures, the tests show as fails because the C runtime considers these to be fatal errors.
Below is a patch that fixes these issues. Are these reasonable workarounds?
Thanks!
Asa
Index: geos-3.8.0/CMakeLists.txt
===================================================================
--- geos-3.8.0/CMakeLists.txt
+++ geos-3.8.0/CMakeLists.tt
@@ -19,7 +19,7 @@
# Require CMake 3.13+ with VS generator for complete support of VS versions
# and support by AppVeyor.
if(${CMAKE_GENERATOR} MATCHES "Visual Studio")
- cmake_minimum_required(VERSION 3.13 FATAL_ERROR)
+ cmake_minimum_required(VERSION 3.12 FATAL_ERROR)
endif()
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
Index: geos-3.8.0/src/index/chain/MonotoneChainBuilder.cpp
===================================================================
--- geos-3.8.0/src/index/chain/MonotoneChainBuilder.cpp
+++ geos-3.8.0/src/index/chain/MonotoneChainBuilder.cpp
@@ -111,8 +111,10 @@
}
}
++last;
- prev = curr;
- curr = &pts[last];
+ if (last < npts) {
+ prev = curr;
+ curr = &pts[last];
+ }
}
#if GEOS_DEBUG
std::cerr << "MonotoneChainBuilder::findChainEnd() returning" << std::endl;
Asa Packer | Lead Systems Engineer
BioSonics, Inc.
2356 W Commodore Way, Unit 110
Seattle WA 98199-1258 USA
tel 206.782.2211 | biosonicsinc.com<http://www.biosonicsinc.com/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/geos-devel/attachments/20191021/5b6669cd/attachment.html>
More information about the geos-devel
mailing list