¿Es posible utilizar el administrador de paquetes Conan y el archivo CMakePresets.json?
Acabo de empezar a usar el administrador de paquetes Conan. ¿Sabes si es posible llamar a cmake de alguna manera con los ajustes preestablecidos desde conanfile.py? La implementación actual es la siguiente:
...
<p>def build(self):
cmake = CMake(self)
cmake.configure()
cmake.build()</p>
<p>...
```</p>
He logrado llamar a CMakePresets.json con el siguiente código (pero parece una solución poco elegante, no me gusta).
</code></pre>
...</p>
<pre><code>def cmake_configure(self)
if self.settings.os == "Linux":
self.run("cmake --preset=linux .")
elif self.settings.os == "Macos":
self.run("cmake --preset=macos .")
elif self.settings.os == "Windows":
self.run("cmake --preset=windows .")
else:
raise ConanInvalidConfiguration("Sistema operativo no compatible")
def build(self):
self.cmake_configure()
self.run("cmake --build .")
</code></pre>
...
```
Gracias de antemano
davy.ai
Sí, es posible llamar a CMake con presets desde conanfile.py. Puedes definir presets en tu conanfile.py y luego pasárselos a CMake como argumentos. Aquí tienes un ejemplo:
En este ejemplo, config_options se utiliza para especificar el generador de Visual Studio para Windows. Luego, en build, creamos un objeto CMake y definimos presets como un diccionario que mapea nombres de sistemas operativos a presets de CMake. Luego pasamos el preset apropiado a cmake.configure según la configuración actual del sistema operativo.
Esto es mucho más limpio y flexible que codificar los nombres de los presets en la función cmake.configure.