[Git][debian-gis-team/osmcoastline][upstream] New upstream version 2.2.3

Bas Couwenberg gitlab at salsa.debian.org
Wed Feb 6 15:57:26 GMT 2019


Bas Couwenberg pushed to branch upstream at Debian GIS Project / osmcoastline


Commits:
1faaeb33 by Bas Couwenberg at 2019-02-06T15:33:48Z
New upstream version 2.2.3
- - - - -


3 changed files:

- CHANGELOG.md
- CMakeLists.txt
- src/osmcoastline.cpp


Changes:

=====================================
CHANGELOG.md
=====================================
@@ -13,6 +13,14 @@ This project adheres to [Semantic Versioning](https://semver.org/).
 ### Fixed
 
 
+## [2.2.3] - 2018-02-06
+
+### Fixed
+
+- Compile with `NDEBUG` in `RelWithDebInfo` mode.
+- Better error reporting on some exceptions.
+
+
 ## [2.2.2] - 2018-02-03
 
 ### Fixed
@@ -140,7 +148,10 @@ This project adheres to [Semantic Versioning](https://semver.org/).
 - Added man pages
 
 
-[unreleased]: https://github.com/osmcode/osmium-tool/compare/v2.2.0...HEAD
+[unreleased]: https://github.com/osmcode/osmium-tool/compare/v2.2.3...HEAD
+[2.2.3]: https://github.com/osmcode/osmium-tool/compare/v2.2.2...v2.2.3
+[2.2.2]: https://github.com/osmcode/osmium-tool/compare/v2.2.1...v2.2.2
+[2.2.1]: https://github.com/osmcode/osmium-tool/compare/v2.2.0...v2.2.1
 [2.2.0]: https://github.com/osmcode/osmium-tool/compare/v2.1.4...v2.2.0
 [2.1.4]: https://github.com/osmcode/osmium-tool/compare/v2.1.3...v2.1.4
 [2.1.3]: https://github.com/osmcode/osmium-tool/compare/v2.1.2...v2.1.3


=====================================
CMakeLists.txt
=====================================
@@ -20,7 +20,7 @@ project(osmcoastline)
 
 set(OSMCOASTLINE_VERSION_MAJOR 2)
 set(OSMCOASTLINE_VERSION_MINOR 2)
-set(OSMCOASTLINE_VERSION_PATCH 2)
+set(OSMCOASTLINE_VERSION_PATCH 3)
 
 set(OSMCOASTLINE_VERSION
     ${OSMCOASTLINE_VERSION_MAJOR}.${OSMCOASTLINE_VERSION_MINOR}.${OSMCOASTLINE_VERSION_PATCH})
@@ -75,9 +75,11 @@ endif()
 #
 #-----------------------------------------------------------------------------
 if(MSVC)
-    set(USUAL_COMPILE_OPTIONS "/Ox")
+    set(DEV_COMPILE_OPTIONS "/Ox")
+    set(RWD_COMPILE_OPTIONS "/Ox /DNDEBUG")
 else()
-    set(USUAL_COMPILE_OPTIONS "-O3 -g")
+    set(DEV_COMPILE_OPTIONS "-O3 -g")
+    set(RWD_COMPILE_OPTIONS "-O3 -g -DNDEBUG")
 endif()
 
 if(WIN32)
@@ -85,7 +87,7 @@ if(WIN32)
                     -DWINVER=0x0500 -D_WIN32_WINNT=0x0500 -D_WIN32_IE=0x0600)
 endif()
 
-set(CMAKE_CXX_FLAGS_DEV "${USUAL_COMPILE_OPTIONS}"
+set(CMAKE_CXX_FLAGS_DEV "${DEV_COMPILE_OPTIONS}"
     CACHE STRING "Flags used by the compiler during developer builds."
     FORCE)
 
@@ -97,7 +99,7 @@ mark_as_advanced(
     CMAKE_EXE_LINKER_FLAGS_DEV
 )
 
-set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${USUAL_COMPILE_OPTIONS}"
+set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${RWD_COMPILE_OPTIONS}"
     CACHE STRING "Flags used by the compiler during RELWITHDEBINFO builds."
     FORCE)
 


=====================================
src/osmcoastline.cpp
=====================================
@@ -153,6 +153,15 @@ std::string memory_usage() {
 
 /* ================================================== */
 
+std::unique_ptr<OutputDatabase> open_output_database(const std::string& name, const bool create_index) try {
+    return std::unique_ptr<OutputDatabase>{new OutputDatabase{name, srs, create_index}};
+} catch (const std::exception& e) {
+    std::cerr << e.what() << '\n';
+    std::exit(return_code_fatal);
+}
+
+/* ================================================== */
+
 int main(int argc, char *argv[]) {
     Stats stats{};
     unsigned int warnings = 0;
@@ -201,7 +210,8 @@ int main(int argc, char *argv[]) {
     } else {
         vout << "Will NOT create geometry index (because you told me to using --no-index/-i).\n";
     }
-    OutputDatabase output_database{options.output_database, srs, options.create_index};
+
+    auto output_database = open_output_database(options.output_database, options.create_index);
 
     // The collection of all coastline rings we will be filling and then
     // operating on.
@@ -253,7 +263,7 @@ int main(int argc, char *argv[]) {
             for (const auto& node : buffer.select<osmium::Node>()) {
                 if (node.tags().has_tag("natural", "coastline")) {
                     try {
-                        output_database.add_error_point(factory.create_point(node), "tagged_node", node.id());
+                        output_database->add_error_point(factory.create_point(node), "tagged_node", node.id());
                     } catch (const osmium::geometry_error&) {
                         std::cerr << "Ignoring illegal geometry for node " << node.id() << ".\n";
                     }
@@ -267,7 +277,7 @@ int main(int argc, char *argv[]) {
         }
         reader2.close();
     } catch (const std::exception& e) {
-        vout << e.what() << '\n';
+        std::cerr << e.what() << '\n';
         std::exit(return_code_fatal);
     }
 
@@ -282,10 +292,10 @@ int main(int argc, char *argv[]) {
 
     vout << memory_usage();
 
-    output_database.set_options(options);
+    output_database->set_options(options);
 
     vout << "Check line segments for intersections and overlaps...\n";
-    warnings += coastline_rings.check_for_intersections(output_database, segments_fd);
+    warnings += coastline_rings.check_for_intersections(*output_database, segments_fd);
 
     if (segments_fd != -1) {
         ::close(segments_fd);
@@ -301,7 +311,7 @@ int main(int argc, char *argv[]) {
     if (options.close_rings) {
         vout << "Close broken rings... (Use --close-distance/-c 0 if you do not want this.)\n";
         vout << "  Closing if distance between nodes smaller than " << options.close_distance << ". (Set this with --close-distance/-c.)\n";
-        coastline_rings.close_rings(output_database, options.debug, options.close_distance);
+        coastline_rings.close_rings(*output_database, options.debug, options.close_distance);
         stats.rings_fixed = coastline_rings.num_fixed_rings();
         errors += coastline_rings.num_fixed_rings();
         vout << "  Closed " << coastline_rings.num_fixed_rings() << " rings. This left "
@@ -313,7 +323,7 @@ int main(int argc, char *argv[]) {
 
     if (options.output_rings) {
         vout << "Writing out rings... (Because you gave the --output-rings/-r option.)\n";
-        warnings += coastline_rings.output_rings(output_database);
+        warnings += coastline_rings.output_rings(*output_database);
     } else {
         vout << "Not writing out rings. (Use option --output-rings/-r if you want the rings.)\n";
     }
@@ -321,8 +331,8 @@ int main(int argc, char *argv[]) {
     if (options.output_polygons != output_polygon_type::none || options.output_lines) {
         try {
             vout << "Create polygons...\n";
-            CoastlinePolygons coastline_polygons{create_polygons(coastline_rings, output_database, &warnings, &errors), \
-                                                 output_database, \
+            CoastlinePolygons coastline_polygons{create_polygons(coastline_rings, *output_database, &warnings, &errors), \
+                                                 *output_database, \
                                                  options.bbox_overlap, \
                                                  options.max_points_in_polygon};
 
@@ -348,7 +358,7 @@ int main(int argc, char *argv[]) {
             if (options.output_polygons != output_polygon_type::none) {
                 if (options.epsg == 4326) {
                     vout << "Checking for questionable input data...\n";
-                    const unsigned int questionable = coastline_rings.output_questionable(coastline_polygons, output_database);
+                    const unsigned int questionable = coastline_rings.output_questionable(coastline_polygons, *output_database);
                     warnings += questionable;
                     vout << "  Found " << questionable << " rings in input data.\n";
                 } else {
@@ -387,8 +397,8 @@ int main(int argc, char *argv[]) {
     vout << memory_usage();
 
     vout << "Committing database transactions...\n";
-    output_database.set_meta(vout.runtime(), osmium::MemoryUsage{}.peak(), stats);
-    output_database.commit();
+    output_database->set_meta(vout.runtime(), osmium::MemoryUsage{}.peak(), stats);
+    output_database->commit();
     vout << "All done.\n";
     vout << memory_usage();
 



View it on GitLab: https://salsa.debian.org/debian-gis-team/osmcoastline/commit/1faaeb333703a4da7644d7e762c47975e9815e24

-- 
View it on GitLab: https://salsa.debian.org/debian-gis-team/osmcoastline/commit/1faaeb333703a4da7644d7e762c47975e9815e24
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-grass-devel/attachments/20190206/faf24553/attachment-0001.html>


More information about the Pkg-grass-devel mailing list