[sword-devel] SWORD_VERSION

Greg Hellings greg.hellings at gmail.com
Tue Oct 25 07:46:32 MST 2011

Jaak, Troy,

On Tue, Oct 25, 2011 at 9:37 AM, Troy A. Griffitts <scribe at crosswire.org> wrote:
> Hey Jaak,
> I can see how this is useful, though I believe the standard way to handle
> this with any package is to define what you need with, e.g.,
> pkg-config --atleast-version=1.6.2 sword

In CMAKE this is made very easy, assuming that the --mod-version of
sword is placed in the CMake variable SWORD_VERSION to do


which obviates the need for the complicated shell results below.  This
is the method I use in the CLucene detection version. It properly
handles the presence of non-digit characters, differentiates between
1.6.2 and 1.6.12 in a way that STRGREATER does not and so on.

> You can define what you want, like INCLUDES_WLC_VERSIFICATION, or whatever
> you need to have special code for, based on the SWORD library version.
>  Unless you change the whole world of package versioning formats, I'm not
> sure it helps much for just us to add a new format.  If you still want to
> use the comparable version number in your code, you could currently do
> something like
> SWORD_VERSION := $(shell pkg-config --modversion sword | awk -F.
> '{printf("%0.2x%0.2x%0.2x\n",$$1,$$2,$$3)}')

With CMake magic like this becomes unnecessary.

> which would also work for you with any package.
> Hope this helps.  If you still think we should define a special hex version
> number in future releases, please let me know.

On the other hand, I have found that it is common for libraries to
include something along the lines of what Jaak is asking for, Qt not
being the only place I've encountered it.  I have also seen variables
for SWORD_MAJOR=1, SWORD_MINOR=6 and SWORD_PATCH=2 or something akin
to that with the appropriate values included. It would be a rather
straightforward matter to include these in SWORD's header files, no?


More information about the sword-devel mailing list