2013-02-06 20 views
7

Ho scritto un programma per un'azienda. Vogliono il codice sorgente.Rilascio codice sorgente parziale al cliente

Il programma utilizza il codice che ho scritto nel tempo per diversi progetti per un numero di client.

Voglio rilasciare solo il codice utilizzato da questo programma. Quindi se un file condiviso chiamato Utils.pas contiene dieci funzioni e questo programma ne usa solo due, voglio rilasciare un file chiamato Utils.pas con solo le due funzioni in esso contenute.

Il codice è Borland Pascal, scritto utilizzando Delphi.

Qualcuno sa come posso fare questo?

Precisazione: non sto chiedendo informazioni sulla licenza. Voglio che il cliente abbia solo il codice sorgente utilizzato dal suo programma e nient'altro.

+2

Se non è possibile farlo con la struttura del file esistente, si rifugio' L'ho rotto in pezzi sufficienti. Questo è un rischio di avere tutti i file sorgente. – Blrfl

+0

Se il codice che hai prodotto fa uso delle "librerie comuni" che hai prodotto, perché non fornire semplicemente i file .pas per i loro progetti e i file DCU compilati per le tue "librerie comuni"? – LaKraven

+1

Tutto ciò che è specifico per tutti i clienti, inserirlo nel proprio pacchetto componenti e fornire solo la BPL senza fonte. Quindi, la fonte rimanente sarà specifica del cliente. Tuttavia, se si dispone di un codice specifico per un cliente, che non si desidera visualizzare da un altro cliente specifico, sarà necessario produrre una BPL per il codice di ciascun cliente. Questo è ancora un compito importante e ti auguro buona fortuna. –

risposta

2

Rompere il codice da utils.pas, in client_xxxx_utils.pas. Carica loro la tua solita tariffa per il lavoro per farlo, ricostruire, testare il fumo, ecc. Problema risolto.

Ok, nel caso sia un lavoro ingrato per capire cosa tagliare ... Compilare il programma e guardare l'unità utils.pas. Normalmente, avrai punti blu sul margine, a indicare che puoi impostare i punti di interruzione. "Codice Morto" non avrà i punti blu sul margine, poiché quel codice è stato eliminato dal linker. Qualsiasi cosa senza un punto blu, è qualcosa che non hanno bisogno.

Per un approccio più automatico, forse Peganza Pascal Analyzer è in grado di identificare il codice in uno dei suoi numerosi rapporti.

Ecco alcune domande correlate qui su SO con risposte simili (alcuni da me!)

Finding unused (aka "dead") code in Delphi

How to "automatically" remove unused units from uses clause?

Problemi correlati