From eaca6d660318eab52ff53ae0b2b4cc1933f98566 Mon Sep 17 00:00:00 2001 From: moto <855818+mthrok@users.noreply.github.com> Date: Fri, 14 Aug 2020 19:08:30 +0000 Subject: [PATCH] [Build] Disable C++11 ABI when necessary for libtorch compatibility See also: - https://github.com/pytorch/text/pull/931 - https://stackoverflow.com/a/55406930 --- build_tools/setup_helpers/extension.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/build_tools/setup_helpers/extension.py b/build_tools/setup_helpers/extension.py index 0dc306f07e..7f0ba7a14f 100644 --- a/build_tools/setup_helpers/extension.py +++ b/build_tools/setup_helpers/extension.py @@ -3,6 +3,7 @@ import subprocess from pathlib import Path +import torch from torch.utils.cpp_extension import ( CppExtension, BuildExtension as TorchBuildExtension @@ -109,12 +110,22 @@ def _get_libraries(): return [] if _BUILD_SOX else ['sox'] +def _get_cxx11_abi(): + try: + value = int(torch._C._GLIBCXX_USE_CXX11_ABI) + except ImportError: + value = 0 + return f'-D_GLIBCXX_USE_CXX11_ABI={value}' + + def _build_third_party(base_build_dir): build_dir = os.path.join(base_build_dir, 'third_party') os.makedirs(build_dir, exist_ok=True) subprocess.run( args=[ 'cmake', + f"-DCMAKE_CXX_FLAGS='{_get_cxx11_abi()}'", + '-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON', f'-DCMAKE_INSTALL_PREFIX={_TP_INSTALL_DIR}', f'-DBUILD_SOX={"ON" if _BUILD_SOX else "OFF"}', f'-DBUILD_TRANSDUCER={"ON" if _BUILD_TRANSDUCER else "OFF"}',