[PATCH 1 of 2] setup: refactor hasfunction in term of a more flexible cancompile

cboos at neuf.fr cboos at neuf.fr
Wed Jun 16 12:30:18 CDT 2010


# HG changeset patch
# User cboos <cboos at neuf.fr>
# Date 1276709261 -7200
# Node ID 1458d799cc97e1dbb117c56e89500aa2a6d8bdf8
# Parent  0044193a1c45790bb3ab1ad998799244b70df1a2
setup: refactor hasfunction in term of a more flexible cancompile

diff -r 0044193a1c45 -r 1458d799cc97 setup.py
--- a/setup.py	Tue Jun 15 19:49:56 2010 -0300
+++ b/setup.py	Wed Jun 16 19:27:41 2010 +0200
@@ -49,14 +49,18 @@
 # simplified version of distutils.ccompiler.CCompiler.has_function
 # that actually removes its temporary files.
 def hasfunction(cc, funcname):
+    return cancompile(cc, '', '    %s();\n' % funcname)
+
+def cancompile(cc, prelude, body):
     tmpdir = tempfile.mkdtemp(prefix='hg-install-')
     devnull = oldstderr = None
     try:
         try:
             fname = os.path.join(tmpdir, 'funcname.c')
             f = open(fname, 'w')
+            f.write(prelude)
             f.write('int main(void) {\n')
-            f.write('    %s();\n' % funcname)
+            f.write(body)
             f.write('}\n')
             f.close()
             # Redirect stderr to /dev/null to hide any error messages


More information about the Mercurial-devel mailing list