1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- from conan import ConanFile
- {%- if use_conan2 %}
- from conan.tools.files import copy
- from conan.tools.cmake import CMakeToolchain, CMakeDeps, cmake_layout
- {%- endif %}
- class App(ConanFile):
- settings = "os", "compiler", "build_type", "arch"
- default_options = {
- {%- for conan_option in conan_options -%}
- {%- set option_and_value = rsplit(conan_option, "=", 2) %}"{{ option_and_value[0] }}": "{{ option_and_value[1] }}"
- {%- if not loop.last -%}, {% endif -%}
- {%- endfor -%}
- }
- {%- if (conan_tool_packages|length) %}
- tool_requires =
- {%- for conan_tool_require in conan_tool_packages %} "{{ conan_tool_require }}"
- {%- if not loop.last -%},{%- endif -%}
- {%- endfor -%}
- {%- endif -%}
- {%- if (conan_packages|length) %}
- def requirements(self):
- requires = [
- {%- for conan_require in conan_packages %} "{{ conan_require }}"
- {%- if not loop.last -%},{%- endif -%}
- {%- endfor %} ]
- for require in requires:
- if ("linux-headers" in require) and (self.settings.os != "Linux"):
- continue
- self.requires(require)
- {%- endif -%}
- {%- if use_conan2 %}
- def generate(self):
- CMakeDeps(self).generate()
- CMakeToolchain(self).generate()
- for dep in self.dependencies.values():
- if dep.cpp_info.bindirs:
- {%- for conan_import in conan_imports -%}
- {%- set search_and_dstdir = rsplit(conan_import|trim, "->", 2) -%}
- {%- set search = search_and_dstdir[0]|trim -%}
- {%- set dstdir = search_and_dstdir[1]|trim -%}
- {%- set srcdir_and_mask = rsplit(search, ",", 2) -%}
- {%- set srcdir = srcdir_and_mask[0]|trim -%}
- {%- set mask = srcdir_and_mask[1]|trim %}
- copy(self, pattern="{{ mask }}", src=dep.cpp_info.bindirs[0], dst=self.build_folder + "../../../../{{ dstdir }}")
- {%- endfor %}
- def layout(self):
- cmake_layout(self)
- {%- else %}
- generators = "cmake_find_package", "cmake_paths"
- def imports(self):
- {%- for conan_import in conan_imports -%}
- {%- set search_and_dstdir = rsplit(conan_import|trim, "->", 2) -%}
- {%- set search = search_and_dstdir[0]|trim -%}
- {%- set dstdir = search_and_dstdir[1]|trim -%}
- {%- set srcdir_and_mask = rsplit(search, ",", 2) -%}
- {%- set srcdir = srcdir_and_mask[0]|trim -%}
- {%- set mask = srcdir_and_mask[1]|trim %}
- self.copy(pattern="{{ mask }}", src="{{ srcdir }}", dst="{{ dstdir }}")
- {%- endfor %}
- {%- endif %}
|