<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ouroboros/cmake/version.cmake, branch master</title>
<subtitle>Ouroboros main repository</subtitle>
<id>http://www.ouroboros.rocks/cgit/ouroboros/atom?h=master</id>
<link rel='self' href='http://www.ouroboros.rocks/cgit/ouroboros/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://www.ouroboros.rocks/cgit/ouroboros/'/>
<updated>2026-02-18T07:02:26+00:00</updated>
<entry>
<title>build: Automatically parse version from tag</title>
<updated>2026-02-18T07:02:26+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2026-02-15T17:54:42+00:00</published>
<link rel='alternate' type='text/html' href='http://www.ouroboros.rocks/cgit/ouroboros/commit/?id=b6b0b754d99dc2298930cb5db42950bf7c08cc08'/>
<id>urn:sha1:b6b0b754d99dc2298930cb5db42950bf7c08cc08</id>
<content type='text'>
The build will now parse tags so the git tag is now the single source
of truth for a version. We do not need to manually maintain the
version header.

The VERSION file uses git's export-subst feature. When git archive
creates a snapshot (e.g. cgit), git substitutes the $Format:...$
placeholder with the output of git describe, embedding the version
string directly in the archive. This requires the export-subst
attribute to be set for the VERSION file in the repository's
.gitattributes.

The version is resolved in the following order:
 - git describe (inside a git repository with tags)
 - the VERSION file (archives/snapshots)
 - 0.0.0 (fallback)

The build system will warn when it can't set a correct version, such
as in a git repo without tags, or an archive without VERSION.

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>build: Add a version target</title>
<updated>2026-02-18T07:02:21+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2026-02-15T17:29:10+00:00</published>
<link rel='alternate' type='text/html' href='http://www.ouroboros.rocks/cgit/ouroboros/commit/?id=03b3f0c5345e4ddc4cdfad050e9b28e79ffa6721'/>
<id>urn:sha1:03b3f0c5345e4ddc4cdfad050e9b28e79ffa6721</id>
<content type='text'>
This adds a make version target, that will print the version from the
build directory without having to compile and run irmd --version.

[100%] Updating git hash in version.h
[100%] Built target version_header
Ouroboros 0.22.0-37-ga3a5da14-dirty
[100%] Built target version

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>build: Add git hash to version string</title>
<updated>2026-02-18T07:02:16+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2026-02-15T16:54:30+00:00</published>
<link rel='alternate' type='text/html' href='http://www.ouroboros.rocks/cgit/ouroboros/commit/?id=079035dbf4890e667c5e931295a1c24f28d9c0df'/>
<id>urn:sha1:079035dbf4890e667c5e931295a1c24f28d9c0df</id>
<content type='text'>
Embed git commit hash into version.h and irmd --version output using
git describe. Regenerated at build time to stay current across
commits.

Ouroboros version MAJOR.MINOR.PATCH (TAG-COMMITS-GHASH-dirty)

Example for dirty work tree (uncommitted changes):

  $ irmd --version
  Ouroboros version 0.22.0 (0.22.0-36-g86dba544-dirty)

Example after commit:

  $ sudo irmd --version
  Ouroboros version 0.22.0-37-g55fa9445

Officical release (on tag):
  Ouroboros version 0.22.0

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>build: Refactor CMake modules</title>
<updated>2026-01-07T09:00:06+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2025-12-23T10:59:45+00:00</published>
<link rel='alternate' type='text/html' href='http://www.ouroboros.rocks/cgit/ouroboros/commit/?id=48c294105f5123dc876fbad199ec1e0166d82a18'/>
<id>urn:sha1:48c294105f5123dc876fbad199ec1e0166d82a18</id>
<content type='text'>
This moves the CMake build logic out of the source tree and splits it
up into a more modular form. The tests now have a CMakeLists.txt file
in their respective source directory.

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
</feed>
