[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/pythonthings/cefpython/cefpython52/src/linux/setup/setup.py [Back]  [Original]

from distutils.core import setup
# Use "Extension" from Cython.Distutils so that "cython_directives" works.
# from distutils.extension import Extension
from Cython.Distutils import build_ext, Extension
import sys
import platform
from Cython.Compiler import Options
import Cython

print("Cython version: %s" % Cython.__version__)

BITS = platform.architecture()[0]
assert (BITS == "32bit" or BITS == "64bit")

# Stop on first error, otherwise hundreds of errors appear in the console.
Options.fast_fail = True

# Python version string: "27" or "32".
PYTHON_VERSION = str(sys.version_info.major) + str(sys.version_info.minor)

def CompileTimeConstants():

    print("Generating: compile_time_constants.pxi")
    with open("./../../compile_time_constants.pxi", "w") as fd:
        fd.write('# This file was generated by setup.py\n')
        # A way around Python 3.2 bug: UNAME_SYSNAME is not set.
        fd.write('DEF UNAME_SYSNAME = "%s"\n' % platform.uname()[0])
        fd.write('DEF PY_MAJOR_VERSION = %s\n' % sys.version_info.major)

CompileTimeConstants()

ext_modules = [Extension(

    "cefpython_py%s" % PYTHON_VERSION,
    ["cefpython.pyx"],

    # Ignore the warning in the console:
    # > C:\Python27\lib\distutils\extension.py:133: UserWarning:
    # > Unknown Extension options: 'cython_directives' warnings.warn(msg)
    cython_directives={
        # Any conversion to unicode must be explicit using .decode().
        "c_string_type": "bytes",
        "c_string_encoding": "utf-8",
    },

    language='c++',
    include_dirs=[
        r'./../',
        r'./../../',
        r'./../../cython_includes/',
        '/usr/include/gtk-2.0',
        '/usr/include/glib-2.0',
        '/usr/include/gtk-unix-print-2.0',
        '/usr/include/cairo',
        '/usr/include/pango-1.0',
        '/usr/include/gdk-pixbuf-2.0',
        '/usr/include/atk-1.0',
        # Ubuntu
        '/usr/lib/x86_64-linux-gnu/gtk-2.0/include',
        '/usr/lib/x86_64-linux-gnu/gtk-unix-print-2.0',
        '/usr/lib/x86_64-linux-gnu/glib-2.0/include',
        '/usr/lib/i386-linux-gnu/gtk-2.0/include',
        '/usr/lib/i386-linux-gnu/gtk-unix-print-2.0',
        '/usr/lib/i386-linux-gnu/glib-2.0/include',
        # Fedora
        '/usr/lib64/gtk-2.0/include',
        '/usr/lib64/gtk-unix-print-2.0',
        '/usr/lib64/glib-2.0/include',
        '/usr/lib/gtk-2.0/include',
        '/usr/lib/gtk-2.0/gtk-unix-print-2.0',
        '/usr/lib/glib-2.0/include',
    ],

    # http_authentication not implemented on Linux.
    library_dirs=[
        r'./lib_%s' % BITS,
        r'./../../client_handler/',
        r'./../../subprocess/', # libcefpythonapp
        r'./../../cpp_utils/'
    ],

    # Static libraries only. Order is important, if library A depends on B,
    # then B must be included before A.
    libraries=[
        'X11',
        'gobject-2.0',
        'glib-2.0',
        'gtk-x11-2.0',
        # CEF and CEF Python libraries
        'cef_dll_wrapper',
        'cefpythonapp',
        'client_handler',
        'cpp_utils',
    ],

    # When you put "./" in here, loading of libcef.so will only work when
    # running scripts from the same directory that libcef.so resides in.
    # runtime_library_dirs=[
    #    './'
    #],

    # Fix "ImportError ... undefined symbol ..." caused by CEF's include/base/
    # headers by adding the -flto flag (Issue #230). Unfortunately -flto
    # prolongs compilation time significantly.
    # More on the other flags: https://stackoverflow.com/questions/6687630/
    extra_compile_args=['-flto', '-fdata-sections', '-ffunction-sections',
                        '-std=gnu++11'],
    extra_link_args=['-flto', '-Wl,--gc-sections'],

    # Defining macros:
    # define_macros = [("UNICODE","1"), ("_UNICODE","1"), ]
)]

setup(
    name = 'cefpython_py%s' % PYTHON_VERSION,
    cmdclass = {'build_ext': build_ext},
    ext_modules = ext_modules
)

Web Proxy Viewer  |  New URL  |  Original Page