summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2023-05-02 00:56:39 +0800
committerruki <[email protected]>2023-05-02 00:56:39 +0800
commit3df1ad8688967a638f3ef5825a0011505c02dc55 (patch)
treefcce2d53e88a304a5676a0101d7e9055493dc83f
parent427517545da92e25270c290887602c77e1cbc077 (diff)
improve xmake generator
-rw-r--r--xmake/scripts/conan/extensions/generators/xmake_generator.py26
1 files changed, 25 insertions, 1 deletions
diff --git a/xmake/scripts/conan/extensions/generators/xmake_generator.py b/xmake/scripts/conan/extensions/generators/xmake_generator.py
index 8a28e9dfd..f95164acc 100644
--- a/xmake/scripts/conan/extensions/generators/xmake_generator.py
+++ b/xmake/scripts/conan/extensions/generators/xmake_generator.py
@@ -12,6 +12,30 @@ class XmakeGenerator:
def __init__(self, conanfile):
self._conanfile = conanfile
def generate(self):
- print("XmakeGenerator generate")
+ print("XmakeGenerator: generating build info ..")
+
+ # Extract all dependencies
+ host_req = self._conanfile.dependencies.host
+ test_req = self._conanfile.dependencies.test
+ build_req = self._conanfile.dependencies.build
+
+ # Merge into one list
+ full_req = list(host_req.items()) \
+ + list(test_req.items()) \
+ + list(build_req.items())
+
+ # Process dependencies and accumulate globally required data
+ pkg_files = []
+ dep_names = []
+ for require, dep in full_req:
+ dep_name = require.ref.name
+ dep_names.append(dep_name)
+ print("dep_name", dep_name)
+
+ # Convert and aggregate dependency's
+ dep_cppinfo = dep.cpp_info.copy()
+ dep_cppinfo.set_relative_base_folder(dep.package_folder)
+ dep_aggregate = dep_cppinfo.aggregated_components()
+ print("dep_aggregate", dep_aggregate)