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
100 lines (85 loc) · 3.51 KB
/
setup.py
File metadata and controls
100 lines (85 loc) · 3.51 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
import os
import sys
import struct
import platform
from setuptools import setup
COMPILE_FLAGS = ['-flto', '-std=gnu++11', '-g', '-Wall',
'-fPIC', '-Werror']
LINK_FLAGS = ['-flto', '-Wl,-rpath,.']
if len(sys.argv) > 1 and "--fast" in sys.argv:
sys.argv.remove("--fast")
# Fast mode disables optimization flags
FAST = True
print("FAST mode On")
else:
FAST = False
# 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/
COMPILE_FLAGS += ['-fdata-sections', '-ffunction-sections']
LINK_FLAGS += ['-Wl,--gc-sections']
# Architecture and OS postfixes
ARCH32 = (8 * struct.calcsize('P') == 32)
ARCH64 = (8 * struct.calcsize('P') == 64)
OS_POSTFIX = ("win" if platform.system() == "Windows" else
"linux" if platform.system() == "Linux" else
"mac" if platform.system() == "Darwin" else "unknown")
OS_POSTFIX2 = "unknown"
if OS_POSTFIX == "win":
OS_POSTFIX2 = "win32" if ARCH32 else "win64"
elif OS_POSTFIX == "mac":
OS_POSTFIX2 = "mac32" if ARCH32 else "mac64"
elif OS_POSTFIX == "linux":
OS_POSTFIX2 = "linux32" if ARCH32 else "linux64"
# Directories
CLIENT_HANDLER_DIR = os.path.abspath(os.path.dirname(__file__))
SRC_DIR = os.path.abspath(os.path.join(CLIENT_HANDLER_DIR, ".."))
# Python version string: "27" or "32".
PYTHON_VERSION = str(sys.version_info.major) + str(sys.version_info.minor)
client_handler_src = [
'client_handler.cpp', 'cookie_visitor.cpp', 'resource_handler.cpp',
'web_request_client.cpp', 'string_visitor.cpp', 'request_context_handler.cpp',
'task.cpp', 'x11.cpp', 'context_menu_handler.cpp', 'display_handler.cpp',
'download_handler.cpp', 'focus_handler.cpp', 'js_dialog_handler.cpp',
'keyboard_handler.cpp', 'lifespan_handler.cpp', 'load_handler.cpp',
'render_handler.cpp', 'request_handler.cpp'
]
if OS_POSTFIX.startswith('mac'):
client_handler_src.append('util_mac.mm')
setup(
name='client_handler',
libraries=[('client_handler', dict(
sources=[os.path.join(CLIENT_HANDLER_DIR, src) for src in client_handler_src],
include_dirs=[
r'./../',
r'./../common/',
r'/usr/include/python2.7',
r'/usr/include/gtk-2.0',
r'/usr/include/gtk-unix-print-2.0',
r'/usr/include/glib-2.0',
r'/usr/include/cairo',
r'/usr/include/pango-1.0',
r'/usr/include/gdk-pixbuf-2.0',
r'/usr/include/atk-1.0',
r'/usr/lib/x86_64-linux-gnu/gtk-2.0/include',
r'/usr/lib/x86_64-linux-gnu/gtk-unix-print-2.0',
r'/usr/lib/x86_64-linux-gnu/glib-2.0/include',
r'/usr/lib/i386-linux-gnu/gtk-2.0/include',
r'/usr/lib/i386-linux-gnu/gtk-unix-print-2.0',
r'/usr/lib/i386-linux-gnu/glib-2.0/include',
r'/usr/lib64/gtk-2.0/include',
r'/usr/lib64/gtk-unix-print-2.0',
r'/usr/lib64/glib-2.0/include',
r'/usr/lib/gtk-2.0/include',
r'/usr/lib/gtk-2.0/gtk-unix-print-2.0',
r'/usr/lib/glib-2.0/include',
],
# library_dirs=library_dirs,
# Static libraries only. Order is important, if library A depends on B,
# then B must be included before A.
# libraries=libs,
extra_compile_args=COMPILE_FLAGS,
extra_link_args=LINK_FLAGS,
))],
)