¿Cuál es la mejor forma de compartir archivos fuente Delphi entre proyectos?¿Cuál es la mejor manera de compartir archivos fuente Delphi entre proyectos?
Aclaración: Queremos utilizar un solo archivo fuente en múltiples proyectos Delphi. Hemos estado utilizando nuestra herramienta SCM para colocar el mismo archivo en varias carpetas, pero esta no es una experiencia súper elegante y también estamos considerando migrar a una herramienta que no sea compatible con esto.
Como he estado investigando esta cuestión, he considerado algunos enfoques diferentes, pero me gustaría saber qué está haciendo y cómo encuentra su enfoque.
escenarios importantes:
- Código de tiempo
- Adición de una nueva dependencia intercambio debe requerir declaración explícita, por lo que se gestiona el intercambio.
- Añadir una nueva dependencia de uso compartido debería ser relativamente simple; no debería requerir un proceso complicado.
- Un archivo que enumera todos los archivos "importados" del proyecto (desde el exterior) sería agradable.
- tiempo de compilación
- Todos los proyectos siempre deben construir con la versión actual (válida a partir del estado de sincronización fuente más ediciones locales).
- (Mantener diferentes versiones en diferentes lugares debe usar el archivo de ramificación, que no es el tema, aquí.)
- sea cada proyecto debe ser capaz de afectar a la compilación del archivo compartido con diferentes ajustes del compilador (incluyendo banderas) es discutible.
- Es posiblemente más fácil de mantener (es decir, a largo plazo) el código fuente que siempre se crea de forma coherente.
- Podría decirse que es más fácil realizar arreglos de mantenimiento (es decir, a corto plazo) si el alcance de dichos cambios se puede restringir fácilmente a un proyecto.
- Todos los proyectos siempre deben construir con la versión actual (válida a partir del estado de sincronización fuente más ediciones locales).
- depuración en tiempo
- La versión correcta de la fuente debería abrir automáticamente, al entrar en una rutina o la creación de un punto de ruptura.
- La edición de la fuente mostrada debería afectar a la siguiente compilación.
- No queremos depurar contra una copia temporal de la fuente: probablemente perderíamos el código, en la confusión.
Consideraciones:
- CORTO PLAZO:
- ¿Qué enfoque será más simple para poner en su lugar?
- a Largo Plazo:
- ¿Qué enfoque será más sencillo de utilizar y mantener?
Gracias, de antemano, por su colaboración!
Mattias
--- --- ACTUALIZACIÓN
Gracias por su colaboración, a través de respuestas, comentarios y votos!
He comenzado por el camino de poner archivos compartidos en un proyecto de "productor" e importar una lista de archivos compilados en cada proyecto de "consumidor". Los proyectos están siendo vinculados junto con MSBuild. Una vez que las cosas estén más definidas, editaré esta pregunta y la respuesta del "Proyecto de biblioteca" para compartir lo que he aprendido.
¡Estén atentos! (Pero no contener la respiración; podrás asfixian en cuestión de minutos!: P)
Utilizo proyectos de biblioteca almacenados CON control de fuente. Para las unidades compartidas, solo incluyo la ruta al directorio fuente de la biblioteca en las rutas de búsqueda de la biblioteca. – skamradt
Dado que todos los archivos están en la ruta de la biblioteca, ¿cada uno de sus proyectos tiene acceso a la mayoría de los archivos compartidos? ¿O tiene * tantos * proyectos de biblioteca que comparte solo un archivo a la vez? (Y el control de fuente es absolutamente necesario! He aclarado lo que quise decir en el otro enfoque. :-)) –
No, las rutas de búsqueda específicas del proyecto se ocupan de los directorios que están localizados para decir, una versión específica o grupo de programas. Para el día a día, cada programa debe usar rutinas, esas están en la ruta de búsqueda global, – skamradt