11
11
from setuptools import setup , find_packages , Extension
12
12
from setuptools .dist import Distribution
13
13
from setuptools .command .install import install
14
-
15
- extensions = [
16
- Extension ("primes" , ["primes.pyx" ],
17
- include_dirs = [...],
18
- libraries = [...],
19
- library_dirs = [...]),
20
- # Everything but primes.pyx is included here.
21
- Extension ("*" , ["*.pyx" ],
22
- include_dirs = [...],
23
- libraries = [...],
24
- library_dirs = [...]),
25
- ]
26
- setup (
27
- name = "My hello app" ,
28
- ext_modules = cythonize (extensions ),
29
- )
14
+ from Cython .Build import cythonize
15
+ from distutils .extension import Extension
30
16
31
17
PACKAGE_NAME = "turicreate"
32
18
VERSION = '6.0' #{{VERSION_STRING}}
@@ -92,6 +78,7 @@ def run(self):
92
78
93
79
94
80
if __name__ == '__main__' :
81
+
95
82
from distutils .util import get_platform
96
83
classifiers = [
97
84
"Development Status :: 5 - Production/Stable" ,
@@ -111,7 +98,13 @@ def run(self):
111
98
"Topic :: Scientific/Engineering" ,
112
99
"Topic :: Scientific/Engineering :: Information Analysis" ,
113
100
]
101
+
102
+ # Get the include directories.
103
+ include_dirs = os .environ .get ('CPATH' , '' ).split (';' )
104
+ library_dirs = os .environ .get ('LD_LIBRARY_PATH' , '' ).split (';' )
105
+
114
106
cur_platform = get_platform ()
107
+
115
108
if cur_platform .startswith ("macosx" ):
116
109
classifiers .append ("Operating System :: MacOS :: MacOS X" )
117
110
elif cur_platform .startswith ('linux' ):
@@ -149,15 +142,20 @@ def run(self):
149
142
name = "turicreate" ,
150
143
version = VERSION ,
151
144
152
- # This distribution contains platform-specific C++ libraries, but they are not
153
- # built with distutils. So we must create a dummy Extension object so when we
154
- # create a binary file it knows to make it platform-specific.
155
- ext_modules = [Extension ('turicreate.__dummy' , sources = ['dummy.c' ])],
156
-
157
145
author = 'Apple Inc.' ,
158
146
159
147
cmdclass = dict (install = InstallEngine ),
160
148
distclass = BinaryDistribution ,
149
+
150
+ ext_modules = cythonize ([
151
+ # Everything but primes.pyx is included here.
152
+ Extension ("*" , ["turicreate/_cython/*.pyx" ],
153
+ include_dirs = include_dirs ,
154
+ libraries = ['TuriCore' ],
155
+ library_dirs = library_dirs ,
156
+ extra_compile_args = ['-O3' , '-DNDEBUG' , '-std=c++11' , '-w' ]),
157
+ ]),
158
+
161
159
package_data = {
162
160
'turicreate' : [
163
161
0 commit comments