summaryrefslogtreecommitdiff
path: root/conanfile.py
diff options
context:
space:
mode:
authorIikka Eklund <iikka.eklund@qt.io>2022-08-17 14:30:17 +0300
committerIikka Eklund <iikka.eklund@qt.io>2022-08-18 19:02:44 +0300
commit99a792bdb963b9b425db0f15db3832c50cd937c7 (patch)
tree18f4d57a4f213e8b0b5a2ad8d9b43106ad8e3402 /conanfile.py
parent8ad3a73590029d8284bae1e81a169dbc21c723aa (diff)
downloadqtwebengine-99a792bdb963b9b425db0f15db3832c50cd937c7.tar.gz
Conan: Implement 'package_env_info()' in the build recipe
The qtwebengine needs to pass information about where the QtWebEngineProcess is located for Conan as each Qt package is installed under separate install prefix inside the Conan cache. Locate the QtWebEngineProcess from the installation folder under the qtwebengine install prefix inside the Conan cache. Return a dictionary where 'QTWEBENGINEPROCESS_PATH' points to the located QtWebEngineProcess file. Pick-to: 6.2 6.3 6.3.2 6.4 Change-Id: I54da22eae3b0e7cca0b1a19e683f661ccf21d219 Reviewed-by: Toni Saario <toni.saario@qt.io>
Diffstat (limited to 'conanfile.py')
-rw-r--r--conanfile.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/conanfile.py b/conanfile.py
index a1547a7b9..137285c08 100644
--- a/conanfile.py
+++ b/conanfile.py
@@ -70,3 +70,20 @@ class QtWebEngine(ConanFile):
def get_qt_leaf_module_default_options(self) -> Dict[str, Any]:
"""Implements abstractmethod from qt-conan-common.QtLeafModule"""
return self._shared.convert_qt_features_to_default_conan_options(_qtwebengine_features)
+
+ def package_env_info(self) -> Dict[str, Any]:
+ """Implements abstractmethod from qt-conan-common.QtLeafModule"""
+ # this will be called only after a successful build
+ _f = lambda p: True
+ if tools.os_info.is_windows:
+ ptrn = "**/QtWebEngineProcess.exe"
+ elif tools.os_info.is_macos:
+ ptrn = "**/QtWebEngineProcess.app/**/QtWebEngineProcess"
+ _f = lambda p: not any(".dSYM" in item for item in p.parts)
+ else:
+ ptrn = "**/QtWebEngineProcess"
+ ret = [str(p) for p in Path(self.package_folder).rglob(ptrn) if p.is_file() and _f(p)]
+ if len(ret) != 1:
+ print("Expected to find one 'QtWebEngineProcess'. Found: {0}".format(ret))
+ return {"QTWEBENGINEPROCESS_PATH": ret.pop() if ret else ""}
+