Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .markdown-link-check.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
"ignorePatterns": [
{ "pattern": "go-cart\\.io" },
{ "pattern": "pnas\\.org/content/115/10/E2156" },
{ "pattern": "doi\\.org/10\\.1073/pnas\\.0400280101" }
{ "pattern": "doi\\.org/10\\.1073/pnas\\.0400280101" },
{ "pattern": "gnu\\.org/licenses/agpl-3\\.0" }
]
}
3 changes: 3 additions & 0 deletions include/constants.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -65,4 +65,7 @@ constexpr double xi_sq = 4.0;
// ly
constexpr unsigned int plotted_cell_length = 8;

// Version
const std::string version = "25.10";

#endif // CONST_HPP_
8 changes: 5 additions & 3 deletions src/cartogram_info/write_geojson.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#include "cartogram_info.hpp"
#include "constants.hpp"
#include <format>

// Function that returns coordinates of the end points of a "divider" line
// segment used to separate between different insets
Expand Down Expand Up @@ -192,9 +193,10 @@ void CartogramInfo::json_to_geojson(
add_dividers_to_geojson(container[(container.size() - 1)]);
}

new_json["properties"]["note"] =
"Created using cartogram-cpp / go-cart.io with custom projection, not in "
"EPSG:4326";
new_json["properties"]["note"] = std::format(
"Created with cartogram-cpp v{}. Coordinates are in a custom projection, "
"not EPSG:4326.",
version);

// Write that the map is projected
new_json["properties"]["projected"] = true;
Expand Down
23 changes: 23 additions & 0 deletions src/main.cpp
Original file line number Diff line number Diff line change
@@ -1,9 +1,18 @@
#include "cartogram_info.hpp"
#include "constants.hpp"
#include "parse_arguments.hpp"
#include "progress_tracker.hpp"
#include <format>
#include <iomanip>
#include <ranges>
#include <span>

static void print_version_and_command_line(const int, const char *[]);

int main(const int argc, const char *argv[])
{
print_version_and_command_line(argc, argv);

// Parse command-line arguments
Arguments args = parse_arguments(argc, argv);

Expand Down Expand Up @@ -79,3 +88,17 @@ int main(const int argc, const char *argv[])
return EXIT_FAILURE;
return EXIT_SUCCESS;
}

static void print_version_and_command_line(const int argc, const char *argv[])
{
std::cerr << std::format("Version {}\n", version);

std::span<const char *> raw_args{argv, static_cast<std::size_t>(argc)};
if (!raw_args.empty()) {
std::cerr << "Command: " << std::quoted(raw_args.front());
std::ranges::for_each(raw_args | std::views::drop(1), [](const char *s) {
std::cerr << ' ' << std::quoted(s);
});
std::cerr << '\n';
}
}
2 changes: 1 addition & 1 deletion src/misc/parse_arguments.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Arguments parse_arguments(const int argc, const char *argv[])

// Create parser for arguments using argparse.
// From https://github.com/p-ranav/argparse
argparse::ArgumentParser arguments("./cartogram", "25.9");
argparse::ArgumentParser arguments("./cartogram", version);

// Positional argument accepting geometry file (GeoJSON, JSON) as input
arguments.add_argument("geometry_file")
Expand Down