Pascal 日和 ホームページ

カウンター








ソースネクスト

Typhon IDE構築モード



構築モードの作成方法




 事前に、「CodeTyphonインストール」ページを参照して CodeTyphon Studio をインストールしてください。

 本設定は、 プラットフォーム共通の話です。Lazarus も同様です。



 Typhon IDE では、プロジェクトを新規作成すると、構築モードは「Default」が1つ作成されます。
 普通に「構築」(ビルド)すると、プロジェクトフォルダに、既定のプラットフォーム用のターゲットファイル(プログラム)が作成されます。
 プロジェクトオプションでコンパイルオプションやデバッグ情報等を変更して再度構築すると、ターゲットファイルが上書きされて新しいものになります。

 【HelloWorldプロジェクトフォルダ】 - 構築前

 <HelloWorld>

  ├ HelloWorld.ctpr

  ├ HelloWorld.ctps

  ├ HelloWorld.ico

  ├ HelloWorld.ppr

  ├ HelloWorld.res

  ├ Unit1.frm

  └ Unit1.pp


 【HelloWorldプロジェクトフォルダ】 - 構築後 (Defaultモード)

 <HelloWorld>

  ├ <lib>                              <lib>フォルダは構築の中間ファイル置き場。

  │ └ <i386-win32>                   <i386-win32>はターゲットのCPUとOSを表している。

  │   ├ HelloWorld.compiled

  │   ├ HelloWorld.o

  │   ├ HelloWorld.or

  │   ├ HelloWorld.res

  │   ├ Unit1.frm

  │   ├ Unit1.o

  │   └ Unit1.ppu

  ├ HelloWorld.ctpr

  ├ HelloWorld.ctps

  ├ HelloWorld.exe                    ターゲットファイル(exe)はプロジェクトフォルダ直下に作成される。

  ├ HelloWorld.ico

  ├ HelloWorld.ppr

  ├ HelloWorld.res

  ├ Unit1.frm

  └ Unit1.pp



 Delphi (RAD Studio) や Visual Studio の様に、Debug と Release を専用のフォルダで分けて構築したいときがあります。
 その場合、「構築モード」を、以下の構成になるように、それぞれ分けて作成します。

 【構築モード作成】
 @ Debug(Win32)
 A Release(Win32)

 【HelloWorldプロジェクトフォルダ】 - 構築後 (@ & A)

 <HelloWorld>

  ├ <bin>                              <bin>フォルダは構築のターゲットファイル置き場。

  │ └ <i386-win32>                   <i386-win32>はターゲットのCPUとOSを表している。

  │   ├ <Debug(Win32)>             <Debug(Win32)>フォルダはデバッグモードを表している。

  │   │ ├ HelloWorld.dbg

  │   │ └ HelloWorld.exe        ターゲットファイル(Win32デバッグ版exe)

  │   └ <Release(Win32)>           <Release(Win32)>フォルダはリリースモードを表している。

  │     └ HelloWorld.exe        ターゲットファイル(Win32リリース版exe)

  ├ <lib>

  │ └ <i386-win32>

  │   ├ <Debug(Win32)>             <Debug(Win32)>フォルダはデバッグモードを表している。

  │   │ ├ HelloWorld.compiled

  │   │ ├ HelloWorld.o

  │   │ ├ HelloWorld.or

  │   │ ├ HelloWorld.res

  │   │ ├ Unit1.frm

  │   │ ├ Unit1.o

  │   │ └ Unit1.ppu

  │   └ <Release>                  <Release(Win32)>フォルダはデバッグモードを表している。

  │     ├ HelloWorld.compiled

  │     ├ HelloWorld.o

  │     ├ HelloWorld.or

  │     ├ HelloWorld.res

  │     ├ Unit1.frm

  │     ├ Unit1.o

  │     └ Unit1.ppu

  ├ HelloWorld.ctpr

  ├ HelloWorld.ctps

  ├ HelloWorld.ico

  ├ HelloWorld.ppr

  ├ HelloWorld.res

  ├ Unit1.frm

  └ Unit1.pp



 クロス環境を利用する場合は、ターゲットプラットフォーム毎に「構築モード」を作成することもできます。
 その場合、「構築モード」を、以下の構成になるように、BCを追加作成します。

 【構築モード作成】
 @ Debug(Win32)
 A Release(Win32)
 B Debug(Win64)
 C Release(Win64)

 【HelloWorldプロジェクトフォルダ】 - 構築後 (@ & A & B & C)

 <HelloWorld>

  ├ <bin>

  │ ├ <i386-win32>                   <i386-win32>はターゲットのCPUとOSを表している。

  │ │ ├ <Debug(Win32)>

  │ │ │ ├ HelloWorld.dbg

  │ │ │ └ HelloWorld.exe        ターゲットファイル(Win32デバッグ版exe)

  │ │ └ <Release(Win32)>

  │ │   └ HelloWorld.exe        ターゲットファイル(Win32リリース版exe)

  │ └ <x86_64-win64>                 <x86_64-win64>はターゲットのCPUとOSを表している。

  │   ├ <Debug(Win64)>

  │   │ ├ HelloWorld.dbg

  │   │ └ HelloWorld.exe        ターゲットファイル(Win64デバッグ版exe)

  │   └ <Release(Win64)>

  │     └ HelloWorld.exe        ターゲットファイル(Win64リリース版exe)

  ├ <lib>

  │ ├ <i386-win32>                   <i386-win32>はターゲットのCPUとOSを表している。

  │ │ ├ <Debug(Win32)>

  │ │ │ ├ HelloWorld.compiled

  │ │ │ ├ HelloWorld.o

  │ │ │ ├ HelloWorld.or

  │ │ │ ├ HelloWorld.res

  │ │ │ ├ Unit1.frm

  │ │ │ ├ Unit1.o

  │ │ │ └ Unit1.ppu

  │ │ └ <Release(Win32)>

  │ │   ├ HelloWorld.compiled

  │ │   ├ HelloWorld.o

  │ │   ├ HelloWorld.or

  │ │   ├ HelloWorld.res

  │ │   ├ Unit1.frm

  │ │   ├ Unit1.o

  │ │   └ Unit1.ppu

  │ └ <x86_64-win64>                 <x86_64-win64>はターゲットのCPUとOSを表している。

  │   ├ <Debug(Win64)>

  │   │ ├ HelloWorld.compiled

  │   │ ├ HelloWorld.o

  │   │ ├ HelloWorld.or

  │   │ ├ HelloWorld.res

  │   │ ├ Unit1.frm

  │   │ ├ Unit1.o

  │   │ └ Unit1.ppu

  │   └ <Release(Win64)>

  │     ├ HelloWorld.compiled

  │     ├ HelloWorld.o

  │     ├ HelloWorld.or

  │     ├ HelloWorld.res

  │     ├ Unit1.frm

  │     ├ Unit1.o

  │     └ Unit1.ppu

  ├ HelloWorld.ctpr

  ├ HelloWorld.ctps

  ├ HelloWorld.ico

  ├ HelloWorld.ppr

  ├ HelloWorld.res

  ├ Unit1.frm

  └ Unit1.pp



 ここまで設定すると、Delphi (RAD Studio) や Visual Studio と比べても遜色ない構成となります。

 構築モードの作成は、Typhon IDE の [IDEオプション] ではなく、プロジェクト毎の [プロジェクトのオプション]で設定します。




構築モード - Debug(Win32) と Release(Win32) の作成


 Windows版の Typhon32 をもとに説明します。

 【構築モード作成】
 @ Debug(Win32)
 A Release(Win32)

 デスクトップのアイコン Typhon32 をダブルクリックして、 Typhon IDE (32bit版) を起動します。




 メニューの [プロジェクト(P)]-[プロジェクトを開く...] で既存のプロジェクトを開きます。
 または、[ファイル(F)]-[新規...] で新しいプロジェクトを作成します。




 ここでは、作成済みの HelloWorld プロジェクトを使用する前提で進めます。
 「HelloWprld.ctpr」 を選択して [開く(O)] ボタンをクリックします。




 対象のプロジェクトを開いている状態で、メニューの [プロジェクト(P)]-[プロジェクトオプション...] で[プロジェクトのオプション] を開きます。




 [コンパイラオプション] を選択すると、[構築モード] が初期設定では「Default」であることが確認できます。




 「Default」モードで、フォルダ構成のひな形を設定します。
 [ユニット出力ディレクトリ(-FU)] が構築の中間ファイルの置き場所になります。
 [対象とするファイル名(-o)] がターゲットファイル(exe)のパスになります。
 初期設定は以下の様になっています。




 [ユニット出力ディレクトリ(-FU)] を以下の様に修正します。
  【修正前】 lib\$(TargetCPU)-$(TargetOS)
  【修正後】 lib\$(TargetCPU)-$(TargetOS)\$(BuildMode)


 [対象とするファイル名(-o)] を以下の様に修正します。ファイル拡張子の指定は不要。
  【修正前】 HelloWorld       (ターゲットのexeのファイル名になっています。初期値はプロジェクト名と同じです。)
  【修正後】 bin\$(TargetCPU)-$(TargetOS)\$(BuildMode)\$NameOnly($(ProjFile))

 ※ $マクロ名 または $(マクロ名) は、IDEで定義されているマクロの値に展開されます。
 ※ プロジェクト固有の値を使用せず、マクロを使用すると任意のプロジェクトで同じ設定が使用できます。プラットフォームにも依存しなくなります。

  TargetCPU    ターゲットのCPU。「i386」、「x86_64」など。

  TargetOS     ターゲットのOS。「win32」、「win64」など。

  BuildMode    対象の構築モードの任意の名前。構築モードの名前はフォルダ名として使用できるものにする必要があります。

  ProjFile     プロジェクトファイル名。「HelloWorld.ctpr」など。

  NameOnly(値) 値のファイル名のみ返す関数。$NameOnly($(ProjFile)) は「HelloWorld」となる。


 設定できたら、上部の [構築モード] の右の [...] ボタンをクリックして構築モード一覧を表示します。必ず上記の設定を済ませてから表示してください。




 「Default」が選択された状態で [デバッグおよびリリースモードを作成] ボタンをクリックします。




 新しく「Debug」と「Release」の2つの構築モードができました。
 マルチプラットフォームに対応するように、それぞれ「Debug(Win32)」と「Release(Win32)」にリネームします。
 「Debug」モードを選択して [Rename] ボタンをクリックします。




 「Debug」を「Debug(Win32)」に変更して [OK(O)] ボタンをクリックします。




 「リリース」モードも同様にリネームします。
 「Release」を「Release(Win32)」に変更して [OK(O)] ボタンをクリックします。




 両方ともリネームされたことを確認したら、[OK(O)] ボタンをクリックして [プロジェクトオプション] に戻ります。
 「Default」は残してあります。構築オプションのテストなどに使用すると便利です。



 上部の [構築モード] のプルダウンで「Release(Win32)」を選択して [デバッグ] 設定を見ます。
 デバッグ情報を生成しない設定になっていることを確認します。




 上部の [構築モード] のプルダウンで「Debug(Win32)」を選択して [デバッグ] 設定を見ます。
 デバッグ情報を生成する設定になっていることを確認します。
 [Heaptrc (メモリリークチェック用) ユニットを使用する (-gh)] のチェックを外します。
 [OK(O)] ボタンをクリックして設定を終了します。




 アクティブな構築モードを切り替える場合は、[プロジェクトのオプション] を表示して、上部の [構築モード] のプルダウンで選択します。
 [構築モード] は、[コンパイラオプション]以下の設定で表示されます。
 確定したら [OK(O)] ボタンをクリックします。






構築モード - Debug(Win64) と Release(Win64) の作成


 引き続き、Windows版の Typhon32 をもとに説明します。
 
 Typhon32 は 32bit版の IDE ですが、[Win32-Win64クロス環境] ページの設定をすると、Windows 64bit アプリの構築もできます。
 そのための構築モードを追加作成します。

 【構築モード作成】
 B Debug(Win64)
 C Release(Win64)

 すでに「Debug(Win32)」と「Release(Win32)」の構築モードを作成済みのプロジェクトを開いている状態で、メニューの [プロジェクト(P)]-[プロジェクトオプション...] で[プロジェクトのオプション] を開きます。
 上部の [構築モード] の右の [...] ボタンをクリックして構築モード一覧を表示します。




 構築モード一覧で、すでに作成済みの「Debug(Win32)」を選択して [] ボタンをクリックします。




 「Debug(Win32)」のコピー「Debug(Win32)1」が作成されます。
 そのコピーを選択したまま [リネーム] ボタンをクリックします。




 「Debug(Win32)1」を「Debug(Win64)」に変更して [OK(O)] ボタンをクリックします。




 構築モード一覧で、すでに作成済みの「Release(Win32)」を選択して [] ボタンをクリックします。




 「Relase(Win32)」のコピー「Relase(Win32)1」が作成されます。
 そのコピーを選択したまま [リネーム] ボタンをクリックします。




 「Release(Win32)1」を「Release(Win64)」に変更して [OK(O)] ボタンをクリックします。




 「Debug(Win64)」と「Release(Win64)」が作成されたことを確認したら、[OK(O)] ボタンをクリックして [プロジェクトオプション] に戻ります。




 「Debug(Win64)」と「Release(Win64)」は名前だけ 64bit 対応になりましたが、設定値はまだ 32bit のままです。
 設定値を 64bit 対応にします。
 上部の [構築モード] のプルダウンで「Release(Win64)」を選択して [設定と対象] を開きます。
 [対象とするOS (-T)] の設定をプルダウンから「Win64」を選択します。
 [対象とするCPUファミリー (-P)] の設定をプルダウンから「x86_64」を選択します。




 上部の [構築モード] のプルダウンで「Debug(Win64)」を選択して [設定と対象] を開きます。
 [対象とするOS (-T)] の設定をプルダウンから「Win64」を選択します。
 [対象とするCPUファミリー (-P)] の設定をプルダウンから「x86_64」を選択します。




 32bit の設定は、Typhon32 がWindows 32bit なので、OS と CPU ファミリーの設定は「(デフォルト)」で良いのですが、明確にしておきます。
 上部の [構築モード] のプルダウンで「Release(Win32)」を選択して [設定と対象] を開きます。
 [対象とするOS (-T)] の設定をプルダウンから「Win32」を選択します。
 [対象とするCPUファミリー (-P)] の設定をプルダウンから「i386」を選択します。




 上部の [構築モード] のプルダウンで「Debug(Win32)」を選択して [設定と対象] を開きます。
 [対象とするOS (-T)] の設定をプルダウンから「Win32」を選択します。
 [対象とするCPUファミリー (-P)] の設定をプルダウンから「i386」を選択します。
 設定したら [OK(O)] ボタンをクリックしてプロジェクトのオプション設定を終了します。






構築モードの保存場所


 構築モード一覧で、[セッション内] 欄のチェックは、構築モードの情報を「プロジェクト情報ファイル(*.ctpr)」に保存するか、「プロジェクトセッションファイル(*.ctps)」に保存するかの選択です。
 チェックしない場合、「プロジェクト情報ファイル(*.ctpr)」に保存され、チェックした場合、「プロジェクトセションファイル(*.ctps)」に保存されます。
 プロジェクトをコピーしたり構成管理(バージョン管理)システムに登録する場合、「プロジェクト情報ファイル(*.ctpr)」は必須ですが、「プロジェクトセッションファイル(*.ctps)」は必須ではなく、作業者毎の作業情報になります。無ければ自動的に作成されます。
 そのため、作業者に関係無く共有されるべき構築モードは[セッション内] のチェックを外し、自分の作業用の構築モードは[セッション内] をチェックします。
 「プロジェクトセッションファイル(*.ctps)」は、他の中間出力ファイル同様、構成管理システムの管理対象外として「.gitignore」などに登録します。



 この場合、「マイデバッグ(Win64)」と「マイリリース(Win64)」は、プロジェクト情報ファイルには保存されず、自分のローカル情報としてプロジェクトセッションファイルに保存されます。




複数の構築モードによる一括構築


 通常は、プロジェクトのオプションで構築モードを選択して、そのモードの構築やデバッグを行いますが、いっぺんに複数のモードで一括構築したいときは、メニューの [実行(R)]-[多くのモードをコンパイル...] を実行します。




 [利用可能なプロジェクト構築モード] が表示されるので、構築したいモードをチェックし、[OK(O)] ボタンをクリックします。






不要な構築モードの削除


 構築モード一覧で、不要になった構築モードを選択して [] ボタンをクリックすると選択した構築モードが削除されます。
 一度に選択できるのは。1つのモードだけです。複数削除する場合は、同じ操作を繰返します。




 残りが1つの場合は削除できません。構築モードは最低1つは存在します。
 どれを残すかは自由です。[OK(O)] ボタンをクリックすると確定します。






プロジェクトオプションの再利用 (保存と読込)


 プロジェクトのオプション設定値はディスクに保存し、他のプロジェクトで再利用することができます。
 ここで作成した構築モードは Windows であれば再利用可能な設定としてあるので再利用が可能です。

 設定値の保存は、[プロジェクトのオプション] の [エクスポート] ボタンをクリックします。




 保存する XML ファイル名を指定し、保存対象の構築モードを選択し、[ファイルへ保存] ボタンをクリックします。




 保存結果を確認し、[OK(O)] ボタンをクリックすると完了です。




 保存した設定値(XMLファイル)を、他のプロジェクトで再利用する場合は、[プロジェクトのオプション] の [インポート] ボタンをクリックします。
 以下は新規のプロジェクトです。




 保存してある XML ファイル名を指定し、[ファイルから読み込む] ボタンをクリックします。




 保存結果を確認し、[OK(O)] ボタンをクリックすると完了です。




 構築モードが追加され、設定値も反映されていることが分かります。
 [OK(O)] ボタンをクリックして[プロジェクトのオプション] を閉じます。






インポート用プロジェクトオプションファイル


 毎回新規プロジェクト毎に上記の手順を行うのも面倒なため、
 別途作成したプロジェクトのオプションのインポート用ファイルを [ダウンロード] ページに用意しました。