Files
2017-02-16 10:48:27 +03:00

132 lines
3.6 KiB
Diff

diff -urN pycairo-1.10.0.orig/setup.py pycairo-1.10.0/setup.py
--- pycairo-1.10.0.orig/setup.py 1970-01-01 00:00:00.000000000 +0000
+++ pycairo-1.10.0/setup.py 2013-07-16 05:59:25.414054186 +0000
@@ -0,0 +1,127 @@
+#!/usr/bin/env python
+
+import distutils.core as dic
+import distutils.dir_util as dut
+import distutils.file_util as fut
+import distutils.sysconfig as dsy
+import io
+import os
+import subprocess
+import sys
+
+pycairo_version = '1.10.0'
+cairo_version_required = '1.10.1'
+python_version_required = (3,1)
+pkgconfig_file = 'py3cairo.pc'
+config_file = 'src/config.h'
+
+LIBDIR = os.uname ()[-1] == 'x86_64' and 'lib'
+
+def call(command):
+ pipe = subprocess.Popen(command, shell=True,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE)
+ pipe.wait()
+ return pipe
+
+def pkg_config_version_check(pkg, version):
+ check = '%s >= %s' % (pkg, version)
+ pipe = call("pkg-config --print-errors --exists '%s'" % (check,))
+ if pipe.returncode == 0:
+ print(check, ' Successful')
+ else:
+ print(check, ' Failed')
+ raise SystemExit(pipe.stderr.read().decode())
+
+def pkg_config_parse(opt, pkg):
+ check = "pkg-config %s %s" % (opt, pkg)
+ pipe = call("pkg-config %s %s" % (opt, pkg))
+ if pipe.returncode != 0:
+ print(check, ' Failed')
+ raise SystemExit(pipe.stderr.read().decode())
+
+ output = pipe.stdout.read()
+ output = output.decode() # get the str
+ opt = opt[-2:]
+ return [x.lstrip(opt) for x in output.split()]
+
+
+def createPcFile(PcFile):
+ print('creating %s' % PcFile)
+ with open(PcFile, 'w') as fo:
+ fo.write ("""\
+prefix=%s
+
+Name: Pycairo
+Description: Python 3 bindings for cairo
+Version: %s
+Requires: cairo
+Cflags: -I${prefix}/include/pycairo
+Libs:
+""" % (sys.prefix, pycairo_version)
+ )
+
+def createConfigFile(ConfigFile):
+ print('creating %s' % ConfigFile)
+ v = pycairo_version.split('.')
+
+ with open(ConfigFile, 'w') as fo:
+ fo.write ("""\
+// Configuration header created by setup.py - do not edit
+#ifndef _CONFIG_H
+#define _CONFIG_H 1
+
+#define PYCAIRO_VERSION_MAJOR %s
+#define PYCAIRO_VERSION_MINOR %s
+#define PYCAIRO_VERSION_MICRO %s
+#define VERSION "%s"
+
+#endif // _CONFIG_H
+""" % (v[0], v[1], v[2], pycairo_version)
+ )
+
+
+if sys.version_info < python_version_required:
+ raise SystemExit('Error: Python >= %s is required' %
+ (python_version_required,))
+
+pkg_config_version_check ('cairo', cairo_version_required)
+if sys.platform == 'win32':
+ runtime_library_dirs = []
+else:
+ runtime_library_dirs = pkg_config_parse('--libs-only-L', 'cairo')
+
+createPcFile(pkgconfig_file)
+createConfigFile(config_file)
+
+
+cairo = dic.Extension(
+ name = 'cairo._cairo',
+ sources = ['src/cairomodule.c',
+ 'src/context.c',
+ 'src/font.c',
+ 'src/matrix.c',
+ 'src/path.c',
+ 'src/pattern.c',
+ 'src/surface.c',
+ ],
+ include_dirs = pkg_config_parse('--cflags-only-I', 'cairo'),
+ library_dirs = pkg_config_parse('--libs-only-L', 'cairo'),
+ libraries = pkg_config_parse('--libs-only-l', 'cairo'),
+ runtime_library_dirs = runtime_library_dirs,
+ )
+
+dic.setup(
+ name = "pycairo",
+ version = pycairo_version,
+ description = "python interface for cairo",
+ ext_modules = [cairo],
+ package_dir = {'cairo': 'src'},
+ packages = ['cairo'],
+ data_files = [
+ ('include/pycairo', ['src/py3cairo.h']),
+ (LIBDIR + '/pkgconfig', [pkgconfig_file]),
+ (os.path.join(dsy.get_python_lib(True, False, prefix=sys.prefix), 'cairo'),
+ ['src/__init__.py']),
+ ],
+ )