From bb6da19bca28b60288baf5d0b6bb661ca2580e01 Mon Sep 17 00:00:00 2001 From: "Edward Z. Yang" Date: Thu, 12 Dec 2019 14:52:45 +0800 Subject: [PATCH] Actually get rid of Windows hacks in cpp_extensions. Signed-off-by: Edward Z. Yang ghstack-source-id: 77b5ed9aa069925703ede06a23b268084347436f Pull Request resolved: https://github.com/pytorch/pytorch/pull/31161 --- torch/utils/cpp_extension.py | 61 ++++++++++++++++++------------------ 1 file changed, 30 insertions(+), 31 deletions(-) diff --git a/torch/utils/cpp_extension.py b/torch/utils/cpp_extension.py index 877b628c3f..151469fda5 100644 --- a/torch/utils/cpp_extension.py +++ b/torch/utils/cpp_extension.py @@ -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) @@ -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', []) @@ -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: @@ -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') @@ -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: