aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustus Winter <[email protected]>2016-08-02 16:45:10 +0000
committerJustus Winter <[email protected]>2016-08-02 16:45:10 +0000
commit4c8265d32ddff5960a464b8d4e8d7d2258495b2e (patch)
tree6dbac46beb0c7844c19cac4b7568709ecc4600fc
parentpython: Fix build system integration. (diff)
downloadgpgme-4c8265d32ddff5960a464b8d4e8d7d2258495b2e.tar.gz
gpgme-4c8265d32ddff5960a464b8d4e8d7d2258495b2e.zip
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 <[email protected]>
-rw-r--r--lang/python/helpers.c9
-rw-r--r--lang/python/helpers.h3
-rw-r--r--lang/python/pyme/version.py.in1
-rwxr-xr-xlang/python/setup.py.in12
4 files changed, 24 insertions, 1 deletions
diff --git a/lang/python/helpers.c b/lang/python/helpers.c
index 0406f9f8..0b4a7736 100644
--- a/lang/python/helpers.c
+++ b/lang/python/helpers.c
@@ -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) {
diff --git a/lang/python/helpers.h b/lang/python/helpers.h
index 16a9b9fd..9200f937 100644
--- a/lang/python/helpers.h
+++ b/lang/python/helpers.h
@@ -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);
diff --git a/lang/python/pyme/version.py.in b/lang/python/pyme/version.py.in
index a40e02d3..e4a5a27b 100644
--- a/lang/python/pyme/version.py.in
+++ b/lang/python/pyme/version.py.in
@@ -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]
diff --git a/lang/python/setup.py.in b/lang/python/setup.py.in
index 45b56a3e..a524c95c 100755
--- a/lang/python/setup.py.in
+++ b/lang/python/setup.py.in
@@ -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:])