1313SRCPATH = osp .join ("." , "src" )
1414
1515
16- # We create requirements for C/pyx dependencies compilation and integration into wheel
17- # file
1816def is_msvc ():
1917 """Detect if Microsoft Visual C++ compiler was chosen to build package"""
20- # checking if mingw is the compiler
21- # mingw32 compiler configured in %USERPROFILE%\pydistutils.cfg
22- # or distutils\distutils.cfg
2318 dist = Distribution ()
2419 dist .parse_config_files ()
2520 bld = dist .get_option_dict ("build" )
@@ -30,51 +25,64 @@ def is_msvc():
3025 return os .name == "nt" and "mingw" not in "" .join (sys .argv )
3126
3227
33- CFLAGS = ["-Wall" ]
34- if is_msvc ():
35- CFLAGS .insert (0 , "/EHsc" )
36- for arg , compile_arg in (("--sse2" , "-msse2" ), ("--sse3" , "-msse3" )):
37- if arg in sys .argv :
38- sys .argv .pop (sys .argv .index (arg ))
39- CFLAGS .insert (0 , compile_arg )
28+ def get_compiler_flags ():
29+ """Get compiler flags for C++ dependencies compilation"""
30+ if is_msvc ():
31+ cflags = ["/EHsc" ]
32+ else :
33+ cflags = ["-Wall" ]
34+ for arg , compile_arg in (("--sse2" , "-msse2" ), ("--sse3" , "-msse3" )):
35+ if arg in sys .argv :
36+ sys .argv .pop (sys .argv .index (arg ))
37+ cflags .insert (0 , compile_arg )
38+ return cflags
4039
4140
42- for fname in os .listdir (SRCPATH ):
43- if osp .splitext (fname )[1 ] == ".pyx" :
44- Main .compile (osp .join (SRCPATH , fname ), language_level = 2 )
41+ def compile_cython_extensions ():
42+ """Compile Cython extensions"""
43+ for fname in os .listdir (SRCPATH ):
44+ if osp .splitext (fname )[1 ] == ".pyx" :
45+ Main .compile (osp .join (SRCPATH , fname ), language_level = 2 )
46+
47+
48+ compile_cython_extensions ()
49+
50+ INCLUDE_DIRS = [SRCPATH , numpy .get_include ()]
51+ DEFINE_MACROS = [("NPY_NO_DEPRECATED_API" , "NPY_1_7_API_VERSION" )]
4552
4653setup (
4754 ext_modules = [
4855 Extension (
4956 name = f"{ LIBNAME } .mandelbrot" ,
5057 sources = [osp .join (SRCPATH , "mandelbrot.c" )],
51- include_dirs = [ SRCPATH , numpy . get_include ()] ,
52- define_macros = [( "NPY_NO_DEPRECATED_API" , "NPY_1_7_API_VERSION" )] ,
58+ include_dirs = INCLUDE_DIRS ,
59+ define_macros = DEFINE_MACROS ,
5360 ),
5461 Extension (
5562 name = f"{ LIBNAME } .histogram2d" ,
5663 sources = [osp .join (SRCPATH , "histogram2d.c" )],
57- include_dirs = [ SRCPATH , numpy . get_include ()] ,
58- define_macros = [( "NPY_NO_DEPRECATED_API" , "NPY_1_7_API_VERSION" )] ,
64+ include_dirs = INCLUDE_DIRS ,
65+ define_macros = DEFINE_MACROS ,
5966 ),
6067 Extension (
6168 name = f"{ LIBNAME } .contour2d" ,
6269 sources = [osp .join (SRCPATH , "contour2d.c" )],
63- include_dirs = [ SRCPATH , numpy . get_include ()] ,
64- define_macros = [( "NPY_NO_DEPRECATED_API" , "NPY_1_7_API_VERSION" )] ,
70+ include_dirs = INCLUDE_DIRS ,
71+ define_macros = DEFINE_MACROS ,
6572 ),
6673 Extension (
6774 name = f"{ LIBNAME } ._scaler" ,
6875 sources = [osp .join (SRCPATH , "scaler.cpp" ), osp .join (SRCPATH , "pcolor.cpp" )],
69- extra_compile_args = CFLAGS ,
76+ extra_compile_args = get_compiler_flags () ,
7077 depends = [
7178 osp .join (SRCPATH , "traits.hpp" ),
7279 osp .join (SRCPATH , "points.hpp" ),
7380 osp .join (SRCPATH , "arrays.hpp" ),
7481 osp .join (SRCPATH , "scaler.hpp" ),
7582 osp .join (SRCPATH , "debug.hpp" ),
7683 ],
77- include_dirs = [SRCPATH , numpy .get_include ()],
84+ include_dirs = INCLUDE_DIRS ,
85+ define_macros = DEFINE_MACROS ,
7886 ),
7987 ]
8088)
0 commit comments