コマンドラインを使用して Delphi 6 & 7 (Delphi > 7 ではない) プロジェクトをコンパイルできた人はいますか?
私が見るすべての指示は、正確にどこに行く必要があるかについてあまり明確ではありません!
ステップバイステップの指示を探しています。
回答は Delphi 6 と 7 に限定する必要があります。私は Delphi 2006 を理解しており、> はるかに簡単な MSBuild を使用しています。
リンクも大歓迎です。
ガット
コマンドラインを使用して Delphi 6 & 7 (Delphi > 7 ではない) プロジェクトをコンパイルできた人はいますか?
私が見るすべての指示は、正確にどこに行く必要があるかについてあまり明確ではありません!
ステップバイステップの指示を探しています。
回答は Delphi 6 と 7 に限定する必要があります。私は Delphi 2006 を理解しており、> はるかに簡単な MSBuild を使用しています。
リンクも大歓迎です。
ガット
これは難しくありません。私のマシンには標準の Delphi 5 がインストールされています。コマンド プロンプトを開くと、$(DELPHI)\Demos\Threads
ディレクトリに移動しdcc32.exe thrddemo.dpr
、コマンド ラインでアプリケーションがビルドされていると入力します。
独自のプロジェクトでは、ファイル ディレクトリ、出力ディレクトリ、定義などを含めるためにいくつかのスイッチを追加する必要がある場合があります。パラメータなしで実行dcc32.exe
すると、スイッチとパラメータのリストが表示されます。それはすべてドキュメントにも記載されています。
再現性のために、バッチ ファイルまたは通常の Makefile を作成する必要があります。
プロジェクトファイルとDelphi ディレクトリ内cfg
の共通ファイルの両方に、重要な設定が含まれていることに注意してください。dcc32.cfg
それらがビルドにどのように影響するかについては、たとえば、Delphi Wikia のこのリンクを参照してください。
ビルドの自動化には、ソフトウェアのビルド プロセスを自動化するためのソフトウェア ツールであるApache Antを使用します。Delphi 6 から Delphi 2009 までのすべてのプロジェクト、および Free Pascal で使用しています。
「すぐに」実行できることには、MD5 チェックサムの生成、ZIP ファイルの作成、テキストの検索/置換 (著作権ヘッダーの生成に役立ちます)、SQL ステートメントの実行、XSLT 処理が含まれます。
たとえば、Delphi 6 ですべてのプロジェクトをコンパイルするには、次のスクリプト (の一部) を使用します。
<target name="compile_d6">
<!-- Compile with Delphi 6 -->
<apply executable="${d6}\Bin\dcc32" failonerror="true" output="build-d6.log" >
<!-- rebuild quiet -->
<arg value="-B"/>
<arg value="-Q"/>
<!-- file paths -->
<arg value="-I${source};${indy10}/Lib/System"/>
<arg value="-O${source};${indy10}/D6;${jcl}/d6"/>
<arg value="-U${source};${indy10}/D6;${jcl}/d6"/>
<!-- all *.dpr files in current directory -->
<fileset dir=".">
<patternset><include name="*.dpr"/></patternset>
</fileset>
</apply>
</target>
Hudson/Jenkins のような無料のオープン ソース CI (Continous Integration) サーバーは、すぐに使用できる Apache Ant ビルド スクリプトをサポートしています。つまり、ソース リポジトリの変更をチェックインするたびに、プロジェクトを自動的にビルドすることができます。
次のコマンドラインを使用してすべてをビルドできます。
"C:\Program Files\Borland\Delphi7\Bin\DCC32.exe" -Q -B your-project.dpr
この行を.batファイルに入れて、常に入力する必要がないようにします。これを実行しているコマンドラインオプションを見てください。
"C:\Program Files\Borland\Delphi7\Bin\DCC32.exe" -h
ところで:-Qは静かなコンパイルであり、-Bはすべてを再構築します。より迅速なコンパイルが必要な場合は、-Bを使用しないでください。
your-project.cfgファイルのすべてのオプションを使用します。このdof2cfg実行可能ファイルは非常に便利です。これを使用して、.dofテキストファイルを編集し、変更をコマンドラインとIDEに伝達できます。プロジェクトごとに編集する必要はありません。
長いパスに関する重要な警告: Delphi7コマンドラインコンパイラには非常に奇妙なバグがあります。パスが非常に長い場合、不可解なエラーで失敗します。意味のある情報がないアクセス違反です。合理的な動機なしに失敗した場合は、最大パスサイズとファイル名サイズを小さくしてみてください。プロジェクトをルートフォルダに置くと、通常は解決します。
FinalBuilderはそれをとても簡単にします。試してみる。
NAnt と dcc32 の組み合わせをお勧めしますが、Juancarlo Añez の「WAnt - A Pascal-Friendly Build Tool」もあります。2.x alpha の代わりに 1.x の修正版を使用しています。オープンソースなのでNAntと同じ形式でログをXMLで出力するようにコードを拡張できたので、CruiseControl.NETと統合できました。
それ以降のバージョンの Delphi では、これを次のように変更する必要があります。
"C:\Program Files (x86)\Embarcadero\RAD Studio\8.0\bin\DCC32.exe" -h