[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