From 16983b22c36bf07326c73da61a0e6dd6f2af97c9 Mon Sep 17 00:00:00 2001 From: jgsogo Date: Sat, 4 Apr 2020 12:59:22 +0200 Subject: [PATCH 1/7] boost with icu --- recipes/boost/all/conanfile.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/recipes/boost/all/conanfile.py b/recipes/boost/all/conanfile.py index 70052f9f28625..7b374ffedc1d7 100644 --- a/recipes/boost/all/conanfile.py +++ b/recipes/boost/all/conanfile.py @@ -55,7 +55,8 @@ class BoostConan(ConanFile): "segmented_stacks": [True, False], "debug_level": [i for i in range(1, 14)], "pch": [True, False], - "extra_b2_flags": "ANY" # custom b2 flags + "extra_b2_flags": "ANY", # custom b2 flags + "disable_icu": [True, False], } options.update({"without_%s" % libname: [True, False] for libname in lib_list}) @@ -81,6 +82,7 @@ class BoostConan(ConanFile): "debug_level": 2, 'pch': True, 'extra_b2_flags': 'None', + "disable_icu": True, } for libname in lib_list: @@ -133,6 +135,8 @@ def requirements(self): self.requires("xz_utils/5.2.4") if self.options.zstd: self.requires("zstd/1.4.3") + if not self.options.disable_icu: + self.requires("icu/66.1") def package_id(self): if self.options.header_only: @@ -539,6 +543,15 @@ def _build_flags(self): flags.append("-sNO_LZMA=%s" % ("0" if self.options.lzma else "1")) flags.append("-sNO_ZSTD=%s" % ("0" if self.options.zstd else "1")) + if not self.options.disable_icu: + #flags.append("--include={}".format(";".join(self.deps_cpp_info["icu"].include_paths))) + #flags.append("--library-path={}".format(";".join(self.deps_cpp_info["icu"].lib_paths))) + flags.append("-sICU_PATH={}".format(self.deps_cpp_info["icu"].rootpath)) + flags.append("boost.locale.iconv=off boost.locale.icu=on") + else: + flags.append("--disable-icu") + + def add_defines(option, library): if option: for define in self.deps_cpp_info[library].defines: From 350e87b708ced69ccb4c5d286f7ac2813e5d33c5 Mon Sep 17 00:00:00 2001 From: jgsogo Date: Sat, 4 Apr 2020 13:53:17 +0200 Subject: [PATCH 2/7] see if installed --- recipes/boost/all/conanfile.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipes/boost/all/conanfile.py b/recipes/boost/all/conanfile.py index 7b374ffedc1d7..9261213a1f835 100644 --- a/recipes/boost/all/conanfile.py +++ b/recipes/boost/all/conanfile.py @@ -136,7 +136,7 @@ def requirements(self): if self.options.zstd: self.requires("zstd/1.4.3") if not self.options.disable_icu: - self.requires("icu/66.1") + self.requires("icu/64.2") def package_id(self): if self.options.header_only: @@ -547,6 +547,8 @@ def _build_flags(self): #flags.append("--include={}".format(";".join(self.deps_cpp_info["icu"].include_paths))) #flags.append("--library-path={}".format(";".join(self.deps_cpp_info["icu"].lib_paths))) flags.append("-sICU_PATH={}".format(self.deps_cpp_info["icu"].rootpath)) + #flags.append("-sICU_LINK=\"-L{} -l{}\"".format(self.deps_cpp_info["icu"].lib_paths[0], " -l".join(self.deps_cpp_info["icu"].libs))) + #-sICU_LINK="-L/opt/some/path/lib/x86_64-linux-gnu -licuuc -licudata -licui18n" flags.append("boost.locale.iconv=off boost.locale.icu=on") else: flags.append("--disable-icu") From 9b40af49ee29a53f585b5f0eb6456275a97b0cee Mon Sep 17 00:00:00 2001 From: jgsogo Date: Sat, 4 Apr 2020 14:30:46 +0200 Subject: [PATCH 3/7] forbidden --- recipes/boost/all/conanfile.py | 1 - 1 file changed, 1 deletion(-) diff --git a/recipes/boost/all/conanfile.py b/recipes/boost/all/conanfile.py index 9261213a1f835..f9009096fb7df 100644 --- a/recipes/boost/all/conanfile.py +++ b/recipes/boost/all/conanfile.py @@ -548,7 +548,6 @@ def _build_flags(self): #flags.append("--library-path={}".format(";".join(self.deps_cpp_info["icu"].lib_paths))) flags.append("-sICU_PATH={}".format(self.deps_cpp_info["icu"].rootpath)) #flags.append("-sICU_LINK=\"-L{} -l{}\"".format(self.deps_cpp_info["icu"].lib_paths[0], " -l".join(self.deps_cpp_info["icu"].libs))) - #-sICU_LINK="-L/opt/some/path/lib/x86_64-linux-gnu -licuuc -licudata -licui18n" flags.append("boost.locale.iconv=off boost.locale.icu=on") else: flags.append("--disable-icu") From fc9c7ddd5b8c6282b43d779447894554843d6cc8 Mon Sep 17 00:00:00 2001 From: jgsogo Date: Sat, 4 Apr 2020 14:52:07 +0200 Subject: [PATCH 4/7] use options.icu --- recipes/boost/all/conanfile.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/recipes/boost/all/conanfile.py b/recipes/boost/all/conanfile.py index f9009096fb7df..bbfcc848b13f1 100644 --- a/recipes/boost/all/conanfile.py +++ b/recipes/boost/all/conanfile.py @@ -56,7 +56,7 @@ class BoostConan(ConanFile): "debug_level": [i for i in range(1, 14)], "pch": [True, False], "extra_b2_flags": "ANY", # custom b2 flags - "disable_icu": [True, False], + "icu": [True, False], } options.update({"without_%s" % libname: [True, False] for libname in lib_list}) @@ -82,7 +82,7 @@ class BoostConan(ConanFile): "debug_level": 2, 'pch': True, 'extra_b2_flags': 'None', - "disable_icu": True, + "icu": False, } for libname in lib_list: @@ -122,6 +122,10 @@ def config_options(self): if self.settings.os == "Windows": del self.options.fPIC + def configure(self): + if self.options.icu: + tools.check_min_cppstd(self, "11") + def build_requirements(self): self.build_requires("b2/4.2.0") @@ -135,8 +139,8 @@ def requirements(self): self.requires("xz_utils/5.2.4") if self.options.zstd: self.requires("zstd/1.4.3") - if not self.options.disable_icu: - self.requires("icu/64.2") + if self.options.icu: + self.requires("icu/66.1") def package_id(self): if self.options.header_only: @@ -543,7 +547,7 @@ def _build_flags(self): flags.append("-sNO_LZMA=%s" % ("0" if self.options.lzma else "1")) flags.append("-sNO_ZSTD=%s" % ("0" if self.options.zstd else "1")) - if not self.options.disable_icu: + if self.options.icu: #flags.append("--include={}".format(";".join(self.deps_cpp_info["icu"].include_paths))) #flags.append("--library-path={}".format(";".join(self.deps_cpp_info["icu"].lib_paths))) flags.append("-sICU_PATH={}".format(self.deps_cpp_info["icu"].rootpath)) @@ -552,7 +556,6 @@ def _build_flags(self): else: flags.append("--disable-icu") - def add_defines(option, library): if option: for define in self.deps_cpp_info[library].defines: From f460ff55fdd78443ec2aabf9be95eb850c5d39e4 Mon Sep 17 00:00:00 2001 From: jgsogo Date: Sat, 4 Apr 2020 14:54:02 +0200 Subject: [PATCH 5/7] remove comments --- recipes/boost/all/conanfile.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/recipes/boost/all/conanfile.py b/recipes/boost/all/conanfile.py index bbfcc848b13f1..0182022fd29b8 100644 --- a/recipes/boost/all/conanfile.py +++ b/recipes/boost/all/conanfile.py @@ -548,10 +548,7 @@ def _build_flags(self): flags.append("-sNO_ZSTD=%s" % ("0" if self.options.zstd else "1")) if self.options.icu: - #flags.append("--include={}".format(";".join(self.deps_cpp_info["icu"].include_paths))) - #flags.append("--library-path={}".format(";".join(self.deps_cpp_info["icu"].lib_paths))) flags.append("-sICU_PATH={}".format(self.deps_cpp_info["icu"].rootpath)) - #flags.append("-sICU_LINK=\"-L{} -l{}\"".format(self.deps_cpp_info["icu"].lib_paths[0], " -l".join(self.deps_cpp_info["icu"].libs))) flags.append("boost.locale.iconv=off boost.locale.icu=on") else: flags.append("--disable-icu") From 2b15d9a0990f0905b6f26fe5c4cc6088545183d6 Mon Sep 17 00:00:00 2001 From: jgsogo Date: Sat, 18 Apr 2020 16:53:24 +0200 Subject: [PATCH 6/7] make it mergeable --- recipes/boost/all/conanfile.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/recipes/boost/all/conanfile.py b/recipes/boost/all/conanfile.py index 0182022fd29b8..a4c2bca081ae3 100644 --- a/recipes/boost/all/conanfile.py +++ b/recipes/boost/all/conanfile.py @@ -122,10 +122,6 @@ def config_options(self): if self.settings.os == "Windows": del self.options.fPIC - def configure(self): - if self.options.icu: - tools.check_min_cppstd(self, "11") - def build_requirements(self): self.build_requires("b2/4.2.0") @@ -140,7 +136,7 @@ def requirements(self): if self.options.zstd: self.requires("zstd/1.4.3") if self.options.icu: - self.requires("icu/66.1") + self.requires("icu/64.2") def package_id(self): if self.options.header_only: From 67086e295dd046d9352f625ea894024862bdd4e5 Mon Sep 17 00:00:00 2001 From: "Javier G. Sogo" Date: Tue, 21 Apr 2020 10:06:31 +0200 Subject: [PATCH 7/7] use choicce option for i18n backend --- recipes/boost/all/conanfile.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/recipes/boost/all/conanfile.py b/recipes/boost/all/conanfile.py index a4c2bca081ae3..abe253ca4fcb9 100644 --- a/recipes/boost/all/conanfile.py +++ b/recipes/boost/all/conanfile.py @@ -56,7 +56,7 @@ class BoostConan(ConanFile): "debug_level": [i for i in range(1, 14)], "pch": [True, False], "extra_b2_flags": "ANY", # custom b2 flags - "icu": [True, False], + "i18n_backend": ["iconv", "icu", None], } options.update({"without_%s" % libname: [True, False] for libname in lib_list}) @@ -82,7 +82,7 @@ class BoostConan(ConanFile): "debug_level": 2, 'pch': True, 'extra_b2_flags': 'None', - "icu": False, + "i18n_backend": 'iconv', } for libname in lib_list: @@ -122,6 +122,10 @@ def config_options(self): if self.settings.os == "Windows": del self.options.fPIC + def configure(self): + if not self.options.i18n_backend and not self.options.without_locale: + raise ConanInvalidConfiguration("Boost 'locale' library requires a i18n_backend, either 'icu' or 'iconv'") + def build_requirements(self): self.build_requires("b2/4.2.0") @@ -135,7 +139,7 @@ def requirements(self): self.requires("xz_utils/5.2.4") if self.options.zstd: self.requires("zstd/1.4.3") - if self.options.icu: + if self.options.i18n_backend == 'icu': self.requires("icu/64.2") def package_id(self): @@ -543,11 +547,14 @@ def _build_flags(self): flags.append("-sNO_LZMA=%s" % ("0" if self.options.lzma else "1")) flags.append("-sNO_ZSTD=%s" % ("0" if self.options.zstd else "1")) - if self.options.icu: + if self.options.i18n_backend == 'icu': flags.append("-sICU_PATH={}".format(self.deps_cpp_info["icu"].rootpath)) flags.append("boost.locale.iconv=off boost.locale.icu=on") + elif self.options.i18n_backend == 'iconv': + flags.append("boost.locale.iconv=on boost.locale.icu=off") else: - flags.append("--disable-icu") + flags.append("boost.locale.iconv=off boost.locale.icu=off") + flags.append("--disable-icu --disable-iconvv") def add_defines(option, library): if option: