python: Add a flag identifying in-tree builds.

* lang/python/helpers.c (pyme_in_tree_build): New variable.
* lang/python/helpers.h (pyme_in_tree_build): New declaration.
* lang/python/pyme/version.py.in (in_tree_build): New variable.
* lang/python/setup.py.in: Rework macro handling, set 'IN_TREE_BUILD'
as appropriate.

Signed-off-by: Justus Winter <justus@g10code.com>
This commit is contained in:
Justus Winter 2016-08-02 18:45:10 +02:00
parent 0bd7d8c197
commit 4c8265d32d
4 changed files with 24 additions and 1 deletions

View File

@ -28,6 +28,15 @@
#include "helpers.h"
#include "private.h"
/* Flag specifying whether this is an in-tree build. */
int pyme_in_tree_build =
#if IN_TREE_BUILD
1
#else
0
#endif
;
static PyObject *GPGMEError = NULL;
void _pyme_exception_init(void) {

View File

@ -26,6 +26,9 @@
#define write(fd, str, sz) {DWORD written; WriteFile((HANDLE) fd, str, sz, &written, 0);}
#endif
/* Flag specifying whether this is an in-tree build. */
extern int pyme_in_tree_build;
PyObject *pyme_raise_callback_exception(PyObject *self);
PyObject *pyme_set_passphrase_cb(PyObject *self, PyObject *cb);

View File

@ -21,6 +21,7 @@ from . import gpgme
productname = 'pyme'
versionstr = "@VERSION@"
gpgme_versionstr = gpgme.GPGME_VERSION
in_tree_build = bool(gpgme.cvar.pyme_in_tree_build)
versionlist = versionstr.split(".")
major = versionlist[0]

View File

@ -28,7 +28,9 @@ gpg_error_config = "gpg-error-config"
gpgme_config = "gpgme-config"
gpgme_h = ""
library_dirs = []
in_tree = False
extra_swig_opts = []
extra_macros = dict()
if os.path.exists("../../src/gpgme-config"):
# In-tree build.
@ -36,7 +38,10 @@ if os.path.exists("../../src/gpgme-config"):
gpgme_config = "../../src/gpgme-config"
gpgme_h = "../../src/gpgme.h"
library_dirs = ["../../src/.libs"] # XXX uses libtool internals
extra_swig_opts = ["-DHAVE_DATA_H=1"]
extra_macros.update(
HAVE_DATA_H=1,
IN_TREE_BUILD=1,
)
try:
subprocess.check_call([gpg_error_config, '--version'],
@ -87,6 +92,11 @@ include_dirs = [os.getcwd()]
define_macros = []
libs = getconfig('libs')
# Define extra_macros for both the SWIG and C code
for k, v in extra_macros.items():
extra_swig_opts.append("-D{0}={1}".format(k, v))
define_macros.append((k, str(v)))
for item in getconfig('cflags'):
if item.startswith("-I"):
include_dirs.append(item[2:])