[Cython] [Fwd: [cython-users] Conditional compilation of Cython code / preprocessor / external conditions]
Yury V. Zaytsev
yury at shurup.com
Mon Jul 22 16:45:30 CEST 2013
Hi,
After a bit more research, I found two options that I initially
overlooked:
1) (Apparently undocumented) provisions to provide external attributes
in cython_compile_time_env
2) Generation of the PXI file from the external build system
I don't like (2) very much, so I've got an idea to extend (1) with the
ability to pass -D options to cython compiler, like:
cython -DHAVE_LIBFOO=1
Will any such pull request be accepted?
--
Sincerely yours,
Yury V. Zaytsev
-------- Forwarded Message --------
From: Yury V. Zaytsev <yury at shurup.com>
Reply-to: cython-users at googlegroups.com
To: cython-users at googlegroups.com
Subject: [cython-users] Conditional compilation of Cython code /
preprocessor / external conditions
Date: Mon, 22 Jul 2013 16:17:58 +0200
Hi folks,
Is it possible to conditionally compile Cython code depending on some
externally defined value?
>From reading the documentation, I've got an impression that presently
Cython doesn't have any kind of preprocessor, and I hope that I'm just
missing something here:
http://docs.cython.org/src/userguide/language_basics.html
My use case is as follows:
The application that I'm wrapping links against a number of libraries,
and some might be unavailable at compile time, so the corresponding
parts of the Cython code shouldn't be compiled either.
During the build, a preprocessor constant is defined, such as
HAVE_LIBFOO that I can get by including config.h or pass via the
autotools build system to the external tools. However, I can't figure
out how to use that from Cython...
So far, I was able to come up with an idea of replicating the API of the
missing libraries with dummies on the C++ level, such that the Cython
code compiles either way.
Or else, I can make a poor man's preprocessor based on sed and just
strip parts marked for conditional compilation from the PYX files.
Both solutions look really disgusting and unmaintainable. I would
greatly appreciate better ideas! To me it sounds like a rather common
problem, so somebody must have come up with a solution already...
Thanks,
--
Sincerely yours,
Yury V. Zaytsev
--
---
You received this message because you are subscribed to the Google Groups "cython-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cython-users+unsubscribe at googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
More information about the cython-devel
mailing list