From cf1bdde7b76340e79bf0ef10773baaef931cef6e Mon Sep 17 00:00:00 2001 From: Winfried Dobbe Date: Wed, 26 May 2021 23:20:00 +0200 Subject: [PATCH 1/2] Boost.python requires numpy. Fix function _run_python_script(), was broken when script returns empty output. --- recipes/boost/all/conanfile.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/recipes/boost/all/conanfile.py b/recipes/boost/all/conanfile.py index 80810767aa07b..e57fea362ea44 100644 --- a/recipes/boost/all/conanfile.py +++ b/recipes/boost/all/conanfile.py @@ -10,6 +10,7 @@ import shlex import shutil import yaml +import re try: from cStringIO import StringIO @@ -385,6 +386,13 @@ def validate(self): if min_compiler_version is not None: if tools.Version(self.settings.compiler.version) < min_compiler_version: raise ConanInvalidConfiguration("Boost.Math requires a C++11 capable compiler") + + if not self.options.without_python: + #Boost python library build will fail if python package numpy is not installed + try: + import numpy + except ImportError as e: + raise ConanInvalidConfiguration("Boost.python library requires numpy but this is not installed in your python environment") def build_requirements(self): if not self.options.header_only: @@ -478,6 +486,8 @@ def _run_python_script(self, script): # Conan is broken when run_to_output = True if "\n-----------------\n" in output: output = output.split("\n-----------------\n", 1)[1] + elif re.search('\n----+$', output) != None: + output = '' return output if output != "None" else None def _get_python_path(self, name): From 4401448c02269adb572f88a52da804d707e1c1e2 Mon Sep 17 00:00:00 2001 From: Winfried Dobbe Date: Sat, 29 May 2021 13:29:39 +0200 Subject: [PATCH 2/2] Boost: implement PR #5643 feedback from @SSE4. Remove numpy check, needs more investigation --- recipes/boost/all/conanfile.py | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/recipes/boost/all/conanfile.py b/recipes/boost/all/conanfile.py index e57fea362ea44..f60245c03254b 100644 --- a/recipes/boost/all/conanfile.py +++ b/recipes/boost/all/conanfile.py @@ -10,7 +10,6 @@ import shlex import shutil import yaml -import re try: from cStringIO import StringIO @@ -386,13 +385,6 @@ def validate(self): if min_compiler_version is not None: if tools.Version(self.settings.compiler.version) < min_compiler_version: raise ConanInvalidConfiguration("Boost.Math requires a C++11 capable compiler") - - if not self.options.without_python: - #Boost python library build will fail if python package numpy is not installed - try: - import numpy - except ImportError as e: - raise ConanInvalidConfiguration("Boost.python library requires numpy but this is not installed in your python environment") def build_requirements(self): if not self.options.header_only: @@ -482,12 +474,11 @@ def _run_python_script(self, script): except ConanException: self.output.info("(failed)") return None - output = output.getvalue().strip() + output = output.getvalue() # Conan is broken when run_to_output = True if "\n-----------------\n" in output: output = output.split("\n-----------------\n", 1)[1] - elif re.search('\n----+$', output) != None: - output = '' + output = output.strip() return output if output != "None" else None def _get_python_path(self, name):