Give Effector a version and a changelog, shown from the menu

The version is the project() line of CMakeLists.txt and nowhere else:
CMake writes it, with the text of CHANGELOG.md, into a generated
core/version.hpp, so the number and the release notes the binary shows
are the ones it was built from. effector --version (-V) prints it, and
the header-bar menu gains a section with Changelog, a window laying the
Markdown out as headings and bullets, and About Effector.

The core tests hold the newest changelog entry to the current version,
so a bump cannot go in without its notes. Releases are tagged vX.Y.Z;
this is 0.5.0, and the changelog reconstructs 0.1.0-0.4.0 from the
history.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Si
2026-09-26 10:14:43 +02:00
co-authored by Claude Opus 5.5
parent 431fcf9c58
commit b9f905e04c
12 changed files with 350 additions and 2 deletions
+5
View File
@@ -13,6 +13,7 @@
#include "core/image.hpp"
#include "core/registry.hpp"
#include "core/rng.hpp"
#include "core/version.hpp"
#include "gui/app.hpp"
namespace {
@@ -78,6 +79,10 @@ int main(int argc, char** argv) {
std::cout << effector::usage(argv[0]);
return 0;
}
if (options.showVersion) {
std::cout << "effector " << effector::kVersion << "\n";
return 0;
}
if (options.listEffects) {
for (const auto& effect : effector::effects()) {
std::cout << effect->name() << "\t" << effect->title() << " - "