martes, 26 de junio de 2018

Combinando plantillas en ZinjaI

Muy lentamente, la variedad de complementos para ZinjaI va creciendo. La mayoría de ellos corresponden a bibliotecas como GLUT, wxWidgets, OpenCV, SFML, SQLite, etc. Entre otras cosas, lo principal que provee la biblioteca es una configuración de las opciones de compilación y enlazado lista para poner un proyecto en marcha en tres clicks. Esto sería probablemente lo más difícil de reemplazar para muchos usuarios. No me simpatiza, pero las consultas que recibo me demuestran que muy pocos se toman el tiempo de entender qué hacen realmente el compilador y el IDE por debajo; y se limitan a usar la configuración que viene con la plantilla como caja negra... mientras funcione.

Hay tres casos en los que esto se queda corto o deja de funcionar:
  1. Cuando queremos utilizar una biblioteca para la cual aún no hay un complemento armado.
  2. Cuando un cambio en la versión o arquitectura del compilador o de la biblioteca deja obsoleta una configuración previa.
  3. Cuando se necesita combinar en un mismo proyecto más de una biblioteca externa.
Para el punto 1, ya escribí en su momento varios artículos. Lo que ahora vengo a presentar es la solución para los puntos 2 y 3.

Nuevo cuadro de diálogo. La primer columna muestra los perfiles
del proyecto actual, la tercera los de alguna otra plantilla.

La nueva funcionalidad en ZinjaI se denomina "Combinación de Plantillas". Si tenemos un proyecto abierto, esta opción nos permite seleccionar otra plantilla (u otro proyecto ya creado), y "copiar" las configuraciones más relevantes de sus perfiles de compilación al actual. "Copiar" puede significar dos cosas:
  • reemplazar: se pisa la configuración actual con una nueva (para cuando se actualiza la plantilla)
  • combinar: se agregan en la configuración actual las opciones definidas en alguna otra plantilla (para efectivamente mezclar dos configuraciones). 

Pueden probar esto desde ayer. Deben actualizar ZinjaI, abrir el proyecto que quieren actualizar/modificar, ir a las opciones generales (menú "Archivo" -> "Configuraciones generales..."), y allí en la pestaña "Más" seleccionar "Actualizar/combinar plantilla...".

Así se puede acceder al nuevo cuadro de diálogo.

Esto nos dará para elegir alguna de las plantillas de proyecto disponibles, o mediante la última opción, buscar el zpr de algún otro proyecto. Una vez seleccionada la plantilla (o el proyecto) de referencia, el nuevo cuadro de diálogo permitirá definir la correspondencia entre perfiles (entre los del actual proyecto, y los de la plantilla a combinar). ZinjaI intentará matchear los nombres de perfiles entre ambos con cierta inteligencia, pero por si falla se puede editar. Además de eso, entre cada par (destino-origen) un combo permite elegir la acción, para determinar así cuales perfiles reemplazar, cuales combinar, y cuales no modificar.

Finalmente, además de la correspondencia entre perfiles, la parte derecha de la ventana permite acotar los campos a combinar, e importar además algunas configuraciones generales que no dependen de los perfiles.


Entonces, ahora ya pueden, por ejemplo, configurar sin mayor esfuerzo un sistema de gestión con GUI basada en wxWidgets y persistencia basada en SQLite; o reconfigurar rápidamente un proyecto que habían creado con el complemento de OpenCV 3.1.0 para que funcione con la versión actual (3.4.1). Hace rato que venía queriendo agregar esto; pero todavía no estoy convencido de cómo debe ser la interfaz, ni de dónde tiene que estar el acceso a esta funcionalidad. Por ahora está ahí, pueden probarla; y si no la encuentran, como casi cualquier funcionalidad, pueden buscarla desde la ventana principal con Ctrl+F2. Veremos cuan útil resulta y cómo evoluciona.

No hay comentarios:

Publicar un comentario