44from setuptools import Extension , setup
55from Cython .Build import cythonize
66
7+ INSTALL_PREFIX_WIN = "deps\\ install"
78
8- def get_include_dirs ():
9- platform_supported = False
9+
10+ def is_nix_platform ( platform ):
1011 for prefix in ["darwin" , "linux" , "bsd" ]:
1112 if prefix in sys .platform :
12- platform_supported = True
13- include_dirs = [
14- "/usr/include" ,
15- "/usr/local/include" ,
16- "/usr/include/eigen3" ,
17- "/usr/local/include/eigen3" ,
18- ]
19-
20- if "CPATH" in os .environ :
21- include_dirs += os .environ ["CPATH" ].split (":" )
22-
23- break
24- if sys .platform == "win32" :
25- platform_supported = False
26- if not platform_supported :
13+ return True
14+ return False
15+
16+
17+ def get_include_dirs ():
18+ if is_nix_platform (sys .platform ):
19+ include_dirs = [
20+ "/usr/include" ,
21+ "/usr/local/include" ,
22+ "/usr/include/eigen3" ,
23+ "/usr/local/include/eigen3" ,
24+ ]
25+
26+ if "CPATH" in os .environ :
27+ include_dirs += os .environ ["CPATH" ].split (":" )
28+
29+ elif sys .platform == "win32" :
30+ include_dirs = [
31+ f"{ INSTALL_PREFIX_WIN } \\ include" ,
32+ f"{ INSTALL_PREFIX_WIN } \\ include\\ eigen3" ,
33+ ]
34+ else :
2735 raise NotImplementedError (sys .platform )
2836
2937 # get the numpy include path from numpy
@@ -34,17 +42,25 @@ def get_include_dirs():
3442
3543
3644def get_libraries_dir ():
37- for prefix in ["darwin" , "linux" , "bsd" ]:
38- if prefix in sys .platform :
39- platform_supported = True
40- lib_dirs = ["/usr/lib" , "/usr/local/lib" ]
45+ if is_nix_platform (sys .platform ):
46+ lib_dirs = ["/usr/lib" , "/usr/local/lib" ]
47+
48+ if "LD_LIBRARY_PATH" in os .environ :
49+ lib_dirs += os .environ ["LD_LIBRARY_PATH" ].split (":" )
50+ return lib_dirs
51+ if sys .platform == "win32" :
52+ return [f"{ INSTALL_PREFIX_WIN } \\ lib" ]
4153
42- if "LD_LIBRARY_PATH" in os .environ :
43- lib_dirs += os .environ ["LD_LIBRARY_PATH" ].split (":" )
44- return lib_dirs
4554 raise NotImplementedError (sys .platform )
4655
4756
57+ def get_libraries ():
58+ libraries = ["fcl" , "octomap" ]
59+ if sys .platform == "win32" :
60+ libraries .extend (["octomath" , "ccd" , "vcruntime" ])
61+ return libraries
62+
63+
4864setup (
4965 ext_modules = cythonize (
5066 [
@@ -53,7 +69,7 @@ def get_libraries_dir():
5369 ["src/fcl/fcl.pyx" ],
5470 include_dirs = get_include_dirs (),
5571 library_dirs = get_libraries_dir (),
56- libraries = [ "fcl" , "octomap" ] ,
72+ libraries = get_libraries () ,
5773 language = "c++" ,
5874 extra_compile_args = ["-std=c++11" ],
5975 )
0 commit comments