Skip to content

Commit e793fa1

Browse files
committed
(conan-io#10836) hdf5 - fix module_file
1 parent 775ffdd commit e793fa1

File tree

1 file changed

+20
-7
lines changed

1 file changed

+20
-7
lines changed

recipes/hdf5/all/conanfile.py

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ def _components(self):
176176
}
177177

178178
@staticmethod
179-
def _create_cmake_module_alias_targets(module_file, targets, is_parallel):
179+
def _create_cmake_module_alias_targets(module_file, targets):
180180
content = ""
181181
for alias, aliased in targets.items():
182182
content += textwrap.dedent("""\
@@ -193,14 +193,23 @@ def _create_cmake_module_alias_targets(module_file, targets, is_parallel):
193193
set_property(TARGET hdf5::hdf5_hl_cpp PROPERTY INTERFACE_LINK_LIBRARIES HDF5::HL_CXX)
194194
endif()
195195
""")
196-
content += textwrap.dedent("set(HDF5_IS_PARALLEL {})".format("ON" if is_parallel else "OFF"))
196+
tools.save(module_file, content)
197+
198+
@staticmethod
199+
def _create_cmake_module_variables(module_file, is_parallel):
200+
content = "set(HDF5_IS_PARALLEL {})".format("ON" if is_parallel else "OFF")
197201
tools.save(module_file, content)
198202

199203
@property
200-
def _module_file_rel_path(self):
204+
def _module_file_targets_rel_path(self):
201205
return os.path.join("lib", "cmake",
202206
"conan-official-{}-targets.cmake".format(self.name))
203207

208+
@property
209+
def _module_file_variables_rel_path(self):
210+
return os.path.join("lib", "cmake",
211+
"conan-official-{}-variables.cmake".format(self.name))
212+
204213
def package(self):
205214
self.copy("COPYING", dst="licenses", src=self._source_subfolder)
206215
cmake = self._configure_cmake()
@@ -211,8 +220,11 @@ def package(self):
211220
# but component targets have a lower case namespace prefix. hdf5::hdf5 refers to the C library only
212221
components = self._components()
213222
self._create_cmake_module_alias_targets(
214-
os.path.join(self.package_folder, self._module_file_rel_path),
215-
{"hdf5::{}".format(component["alias_target"]): "HDF5::{}".format(component["component"]) for component in components.values()},
223+
os.path.join(self.package_folder, self._module_file_targets_rel_path),
224+
{"hdf5::{}".format(component["alias_target"]): "HDF5::{}".format(component["component"]) for component in components.values()}
225+
)
226+
self._create_cmake_module_variables(
227+
os.path.join(self.package_folder, self._module_file_variables_rel_path),
216228
self.options.get_safe("parallel", False)
217229
)
218230

@@ -229,14 +241,15 @@ def _config_libname(lib):
229241

230242
self.cpp_info.components[component_name].set_property("cmake_target_name", f"hdf5::{alias_target}")
231243
self.cpp_info.components[component_name].set_property("pkg_config_name", alias_target)
244+
self.cpp_info.components[component_name].set_property("cmake_build_modules", [self._module_file_variables_rel_path])
232245
self.cpp_info.components[component_name].libs = [_config_libname(alias_target)]
233246
self.cpp_info.components[component_name].requires = requirements
234247

235248
# TODO: to remove in conan v2 once cmake_find_package_* generators removed
236249
self.cpp_info.components[component_name].names["cmake_find_package"] = component
237250
self.cpp_info.components[component_name].names["cmake_find_package_multi"] = component
238-
self.cpp_info.components[component_name].build_modules["cmake_find_package"] = [self._module_file_rel_path]
239-
self.cpp_info.components[component_name].build_modules["cmake_find_package_multi"] = [self._module_file_rel_path]
251+
self.cpp_info.components[component_name].build_modules["cmake_find_package"] = [self._module_file_targets_rel_path, self._module_file_variables_rel_path]
252+
self.cpp_info.components[component_name].build_modules["cmake_find_package_multi"] = [self._module_file_targets_rel_path, self._module_file_variables_rel_path]
240253

241254
self.cpp_info.set_property("cmake_find_mode", "both")
242255
self.cpp_info.set_property("cmake_file_name", "HDF5")

0 commit comments

Comments
 (0)