Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Configuración de proyectos Delphi (https://www.clubdelphi.com/foros/showthread.php?t=94414)

Ñuño Martínez 31-01-2020 22:27:49

Configuración de proyectos Delphi
 
Como sabéis, estoy trabajando en Allegro.pas, cuyo objetivo es permitir usar Allegro tanto con Free Pascal como con Delphi. El tema es que este último no lo he usado mucho últimamente, así que tengo algunas dudas.

Creé archivos de proyecto (.dproj) para que compilar los ejemplos fuera rápido. Lo hize con la versión gratuita anterior a la Community Edition, pero hace unos meses actualicé a esta última (10.3 Version 26.0.36039.7899) y me he dado cuenta de que los archivos de proyecto son de otra versión (la 18.8, cuando antes era la 18.3) y añade algunos elementos.

Evidentemente quiero que estos archivos de proyecto puedan ser utilizados por la mayor parte de versiones y ediciones de Delphi que sea posible, así que mi pregunta es cómo afecta la versión, si otros Delphi serán capaces de leer el proyecto, o cómo puedo construir (aunque sea a mano, puesto que es un XML) archivos de proyecto que puedan ser usados por cualquier Delphi desde Delphi 8 (los anteriores no funcionan por incompatibilidad de dialectos).

Otra pregunta es acerca la configuración en sí. ¿Desde cuándo es tan caótica? Me cuesta horrores encontrar las opciones. ¿Hay algún sitio que describa con sencillez cómo activar y desactivar la depuración y las optimizaciones? Porque no lo veo por ningún lado.

Y para terminar, ¿cómo funciona con Delphi el Windows Manifest? Tampoco encuentra nada al respecto.

Otro día os pregunto sobre el compilador en línea de comandos y la utilidad "make".

Al González 02-02-2020 20:53:28

Hola Ñuño, un gusto. :-)

Cita:

Empezado por Ñuño Martínez (Mensaje 535478)
cómo afecta la versión, si otros Delphi serán capaces de leer el proyecto, o cómo puedo construir (aunque sea a mano, puesto que es un XML) archivos de proyecto que puedan ser usados por cualquier Delphi desde Delphi 8

Lo normal es crear a mano un archivo de proyecto por cada versión contemplada del compilador. Si bien Embarcadero, al igual que Borland, ha cuidado (y se agradece) la compatibilidad hacia atrás del código .pas y otros formatos de archivo, no es el mismo caso con archivos de configuración o que agrupan unidades u otros proyectos. Al no estar esto garantizado, los fabricantes suelen entregar el código fuente de bibliotecas con un paquete por cada versión, aunque las unidades .pas contenidas sean las mismas en cada paquete.

Cita:

Empezado por Ñuño Martínez (Mensaje 535478)
cómo activar y desactivar la depuración y las optimizaciones?

Project|Options...|Delphi Compiler|Compiling

Neftali [Germán.Estévez] 03-02-2020 10:02:11

Cita:

Empezado por Ñuño Martínez (Mensaje 535478)
Otra pregunta es acerca la configuración en sí. ¿Desde cuándo es tan caótica? Me cuesta horrores encontrar las opciones. ¿Hay algún sitio que describa con sencillez cómo activar y desactivar la depuración y las optimizaciones? Porque no lo veo por ningún lado.


Sólo un comentario acerca de la búsqueda de opciones en las últimas verisones de Delphi.
Mucha gente no sabe que en la ventana de búsqueda del IDE (Search) que usamos para buscar componentes, podemos también buscar opciones de configuración.
Por ejemplo, si escribimos "Optimiz" (para buscar optimization) nos da el acceso directo a esa opción de configuración.




Ñuño Martínez 03-02-2020 11:43:38

Toma ya con el buscador. Ni se me había pasado por la cebeza. :eek: Gracias Germán.

Cita:

Empezado por Al González (Mensaje 535508)
Lo normal es crear a mano un archivo de proyecto por cada versión contemplada del compilador. Si bien Embarcadero, al igual que Borland, ha cuidado (y se agradece) la compatibilidad hacia atrás del código .pas y otros formatos de archivo, no es el mismo caso con archivos de configuración o que agrupan unidades u otros proyectos. Al no estar esto garantizado, los fabricantes suelen entregar el código fuente de bibliotecas con un paquete por cada versión, aunque las unidades .pas contenidas sean las mismas en cada paquete.

Pues vaya. Pero yo veo varios problemas. Primero, que va a haber chorrocientos (bueno, alguno menos) proyectos para cada ejemplo. Y segundo, que a ver dónde encuentro la descripción del formato para cada versión. :(

Lo que sí he comprobado es que Community Edition parece ser capaz de entender los proyectos de la versión anterior. Quizá si logro descifrar el formato que usa Delphi 6 (que puedo instalar en Linux para que no se mezcle con el Community :D) puede que de el pego y lo cargue bien... ;) Aunque no va a funcionar con Delphi 6 (ni Delphi 7, me temo) debido a problemas de compatibilidad del dialecto con el de Free Pascal.

movorack 03-02-2020 18:41:33

Y si solo dejas los .dpr? Cuando los abres en una nueva versión el crea de inmediato el .dproj con lo básico para que pueda compilar

Al González 03-02-2020 18:42:38

Buena aportación, Germán. :-)

Cita:

Empezado por Ñuño Martínez (Mensaje 535516)
proyectos para cada ejemplo

Quizá debí matizar. Los archivos de código fuente principal .dpr y .dpk son generalmente compatibles. La bronca viene con los nuevos archivos que los acompañan (como el XML .dproj). Pero creo que podrá funcionarte si sólo incluyes el .dpr (quizá también el .res) y dejas que el IDE cree los archivos adicionales que necesite.

Ñuño Martínez 05-02-2020 13:47:25

tl;nr: Esto es más complicado de lo que parece.

Para empezar no hay archivo ".dpr" porque el ejemplo debe funcionar tanto en Delphi como con Free Pascal (la gracia de la biblioteca es que funcione en ambos sin hacer nada especial) así que todos los programas tienen extensión ".pas". Además las fuentes de los ejemplos están en un directorio separado de las unidades de la biblioteca para que se puedan instalar fácilmente estas últimas, y los ejecutables se guardan en otro directorio para no mezclar. Imaginad, si no, fuentes, bibliotecas, ejecutables y datos todos mezclados en el mismo directorio. Yo no tengo que hacerlo porque lo he visto, incluso en proyectos supuestamente profesionales, y ya os digo que no es nada cómodo.

O sea, el árbol de directorios (resumido, aquí el completo) es el siguiente:
Código:

allegro.pas
 +-bin
 |  +-demo
 |  \-examples
 \-src
    +-demo
    +-examples
    \-lib

Si a esto unimos que quiero que la primera vez que se compile lo haga optimizado para combatir el sanbenito de que Pascal genera ejecutables grandes y lentos, el archivo ".dproj" es indispensable. Si no incluyo los proyectos, cargará el archivo ".pas" en Delphi, compilará, le dará error porque no encuentra la unidad talycual y ¡vaya m¡€#@ de proyecto que no compila ni los ejemplos!

Con Lazarus hay poco problema porque, al ser libre y gratuito, si no carga pues te actualizas y a correr; incluso puedes tener varias versiones instaladas a la vez sin pegarse. Pero con Delphi, ¡ay, amigo!, actualizar no es tan fácil ni barato, y si te bajas una versión de prueba teniendo otra ya instalada preguntad al compañero Dec lo que puede pasar...

Se me ocurre como solución no incluir los archivos de proyecto y añadir Delphi como compilador de make (mi viejo Delphi 6 lo incluye, no he comprobado si las versiones más modernas también), aunque sé de buena tinta que los delphineros no estáis muy acostumbrados y la consola de comandos os da un poco de urticaria (que lo entiendo, oye). Quizá si explico en la documentación paso a paso cómo crear el proyecto no espante a mucha gente.

Ya véis mi problema. A ver cómo lo puedo solucionar. :(


La franja horaria es GMT +2. Ahora son las 23:55:27.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi