Skip to content

Commit

Permalink
Actually get rid of Windows hacks in cpp_extensions.
Browse files Browse the repository at this point in the history
Signed-off-by: Edward Z. Yang <ezyang@fb.com>

ghstack-source-id: 77b5ed9aa069925703ede06a23b268084347436f
Pull Request resolved: pytorch/pytorch#31161
  • Loading branch information
ezyang committed Dec 12, 2019
1 parent 196bb01 commit bb6da19
Showing 1 changed file with 30 additions and 31 deletions.
61 changes: 30 additions & 31 deletions torch/utils/cpp_extension.py
Original file line number Diff line number Diff line change
Expand Up @@ -446,18 +446,16 @@ def CppExtension(name, sources, *args, **kwargs):
include_dirs += include_paths()
kwargs['include_dirs'] = include_dirs

if IS_WINDOWS:
library_dirs = kwargs.get('library_dirs', [])
library_dirs += library_paths()
kwargs['library_dirs'] = library_dirs

libraries = kwargs.get('libraries', [])
libraries.append('c10')
libraries.append('torch')
libraries.append('torch_cpu')
libraries.append('torch_python')
libraries.append('_C')
kwargs['libraries'] = libraries
library_dirs = kwargs.get('library_dirs', [])
library_dirs += library_paths()
kwargs['library_dirs'] = library_dirs

libraries = kwargs.get('libraries', [])
libraries.append('c10')
libraries.append('torch')
libraries.append('torch_cpu')
libraries.append('torch_python')
kwargs['libraries'] = libraries

kwargs['language'] = 'c++'
return setuptools.Extension(name, sources, *args, **kwargs)
Expand Down Expand Up @@ -497,14 +495,12 @@ def CUDAExtension(name, sources, *args, **kwargs):

libraries = kwargs.get('libraries', [])
libraries.append('cudart')
if IS_WINDOWS:
libraries.append('c10')
libraries.append('c10_cuda')
libraries.append('torch_cpu')
libraries.append('torch_cuda')
libraries.append('torch')
libraries.append('torch_python')
libraries.append('_C')
libraries.append('c10')
libraries.append('c10_cuda')
libraries.append('torch')
libraries.append('torch_cpu')
libraries.append('torch_cuda')
libraries.append('torch_python')
kwargs['libraries'] = libraries

include_dirs = kwargs.get('include_dirs', [])
Expand Down Expand Up @@ -561,12 +557,11 @@ def library_paths(cuda=False):
'''
paths = []

if IS_WINDOWS:
here = os.path.abspath(__file__)
torch_path = os.path.dirname(os.path.dirname(here))
lib_path = os.path.join(torch_path, 'lib')

paths.append(lib_path)
# We need to link against libtorch.so
here = os.path.abspath(__file__)
torch_path = os.path.dirname(os.path.dirname(here))
lib_path = os.path.join(torch_path, 'lib')
paths.append(lib_path)

if cuda:
if IS_WINDOWS:
Expand Down Expand Up @@ -933,14 +928,14 @@ def verify_ninja_availability():


def _prepare_ldflags(extra_ldflags, with_cuda, verbose):
here = os.path.abspath(__file__)
torch_path = os.path.dirname(os.path.dirname(here))
lib_path = os.path.join(torch_path, 'lib')

if IS_WINDOWS:
python_path = os.path.dirname(sys.executable)
python_lib_path = os.path.join(python_path, 'libs')

here = os.path.abspath(__file__)
torch_path = os.path.dirname(os.path.dirname(here))
lib_path = os.path.join(torch_path, 'lib')

extra_ldflags.append('c10.lib')
if with_cuda:
extra_ldflags.append('c10_cuda.lib')
Expand All @@ -949,9 +944,13 @@ def _prepare_ldflags(extra_ldflags, with_cuda, verbose):
extra_ldflags.append('torch_cuda.lib')
extra_ldflags.append('torch.lib')
extra_ldflags.append('torch_python.lib')
extra_ldflags.append('_C.lib')
extra_ldflags.append('/LIBPATH:{}'.format(python_lib_path))
extra_ldflags.append('/LIBPATH:{}'.format(lib_path))
else:
extra_ldflags.append('-L{}'.format(lib_path))
extra_ldflags.append('-lc10')
extra_ldflags.append('-ltorch')
extra_ldflags.append('-ltorch_python')

if with_cuda:
if verbose:
Expand Down

0 comments on commit bb6da19

Please sign in to comment.