diff --git a/lzomodule.c b/lzomodule.c index ae5fa19..62d2cf8 100644 --- a/lzomodule.c +++ b/lzomodule.c @@ -29,7 +29,9 @@ */ -#define MODULE_VERSION "1.16" +#ifndef MODULE_VERSION +# define MODULE_VERSION "unknown" +#endif #define PY_SSIZE_T_CLEAN diff --git a/setup.py b/setup.py index c1b1595..3b9aa4b 100644 --- a/setup.py +++ b/setup.py @@ -4,6 +4,7 @@ from __future__ import print_function import os +import re import shutil import subprocess import sys @@ -12,6 +13,18 @@ from setuptools import Command, Extension, setup +def _get_version(): + with open("pyproject.toml", "r") as f: + for line in f: + m = re.match(r'^version\s*=\s*"([^"]+)"', line) + if m: + return m.group(1) + return "unknown" + + +_package_version = _get_version() + + class TestCommand(Command): user_options = [] @@ -72,6 +85,7 @@ def has_system_lzo2(): include_dirs=[os.path.join(lzo_dir, "include")], libraries=['lzo2'] if _use_system_lzo else [], library_dirs=[os.path.join(lzo_dir, "lib")], + define_macros=[("MODULE_VERSION", '"%s"' % _package_version)], #extra_link_args=["-flat_namespace"] if sys.platform == "darwin" else [], ) ],