| | import os |
| | from setuptools import setup |
| | from torch.utils.cpp_extension import BuildExtension, CUDAExtension |
| |
|
| | _src_path = os.path.dirname(os.path.abspath(__file__)) |
| |
|
| | nvcc_flags = [ |
| | '-O3', '-std=c++14', |
| | |
| | '-U__CUDA_NO_HALF_OPERATORS__', '-U__CUDA_NO_HALF_CONVERSIONS__', '-U__CUDA_NO_HALF2_OPERATORS__', |
| | ] |
| |
|
| | if os.name == "posix": |
| | c_flags = ['-O3', '-std=c++14'] |
| | elif os.name == "nt": |
| | c_flags = ['/O2', '/std:c++17'] |
| |
|
| | |
| | def find_cl_path(): |
| | import glob |
| | for edition in ["Enterprise", "Professional", "BuildTools", "Community"]: |
| | paths = sorted(glob.glob(r"C:\\Program Files (x86)\\Microsoft Visual Studio\\*\\%s\\VC\\Tools\\MSVC\\*\\bin\\Hostx64\\x64" % edition), reverse=True) |
| | if paths: |
| | return paths[0] |
| |
|
| | |
| | if os.system("where cl.exe >nul 2>nul") != 0: |
| | cl_path = find_cl_path() |
| | if cl_path is None: |
| | raise RuntimeError("Could not locate a supported Microsoft Visual C++ installation") |
| | os.environ["PATH"] += ";" + cl_path |
| |
|
| | ''' |
| | Usage: |
| | |
| | python setup.py build_ext --inplace # build extensions locally, do not install (only can be used from the parent directory) |
| | |
| | python setup.py install # build extensions and install (copy) to PATH. |
| | pip install . # ditto but better (e.g., dependency & metadata handling) |
| | |
| | python setup.py develop # build extensions and install (symbolic) to PATH. |
| | pip install -e . # ditto but better (e.g., dependency & metadata handling) |
| | |
| | ''' |
| | setup( |
| | name='raymarching_face', |
| | ext_modules=[ |
| | CUDAExtension( |
| | name='_raymarching_face', |
| | sources=[os.path.join(_src_path, 'src', f) for f in [ |
| | 'raymarching.cu', |
| | 'bindings.cpp', |
| | ]], |
| | extra_compile_args={ |
| | 'cxx': c_flags, |
| | 'nvcc': nvcc_flags, |
| | } |
| | ), |
| | ], |
| | cmdclass={ |
| | 'build_ext': BuildExtension, |
| | } |
| | ) |