forked from cztomczak/cefpython
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup.py
More file actions
executable file
·105 lines (87 loc) · 3.4 KB
/
setup.py
File metadata and controls
executable file
·105 lines (87 loc) · 3.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
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
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
# Written to cython_includes/compile_time_constants.pxi
CEF_VERSION = 1
# Python version string: "27" or "32".
PYTHON_VERSION = str(sys.version_info.major) + str(sys.version_info.minor)
def CompileTimeConstants():
print("Generating: cython_includes/compile_time_constants.pxi")
with open("./../../../cython_includes/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 CEF_VERSION = %s\n' % CEF_VERSION)
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'./../../../',
r'./../../../cython_includes/',
'/usr/include/gtk-2.0',
'/usr/include/glib-2.0',
'/usr/lib/i386-linux-gnu/gtk-2.0/include',
'/usr/lib/i386-linux-gnu/glib-2.0/include',
'/usr/include/cairo',
'/usr/include/pango-1.0',
'/usr/include/gdk-pixbuf-2.0',
'/usr/include/atk-1.0',
# 64bit Ubuntu
'/usr/lib/x86_64-linux-gnu/glib-2.0/include',
'/usr/lib/x86_64-linux-gnu/gtk-2.0/include',
],
# http_authentication not implemented on Linux.
library_dirs=[
r'./lib_%s' % BITS,
r'./../../v8function_handler/',
r'./../../client_handler/',
r'./../../../cpp_utils/'
],
libraries=[
'cef_dll_wrapper',
'v8function_handler',
'client_handler',
'cpp_utils'
],
# Loading libcef.so will only work when running scripts from the same
# directory that libcef.so resides in when you put "./" in here.
# runtime_library_dirs=[
# './'
#],
# /EHsc - using STL string, multimap and others that use C++ exceptions.
extra_compile_args=[],
# '/ignore:4217' - silence warnings: "locally defined symbol _V8FunctionHandler_Execute
# imported in function "public: virtual bool __thiscall V8FunctionHandler::Execute".
# client_handler or other vcprojects include setup/cefpython.h,
# this is a list of functions with "public" statement that is
# accessible from c++.
extra_link_args=[],
# Defining macros:
# define_macros = [("UNICODE","1"), ("_UNICODE","1"), ]
)]
setup(
name = 'cefpython_py%s' % PYTHON_VERSION,
cmdclass = {'build_ext': build_ext},
ext_modules = ext_modules
)