パソコンでプログラミングしよう ウィンドウズC++プログラミング環境の構築
1.6.3.6(15)
統合開発環境のカスタマイズ(2)

統合開発環境メニューに参考ドキュメント自作ツールなどを登録するカスタマイズ手順を説明する。

外部情報

セットアップ手順

  1. グローバル変数の定義
  2. 参考ドキュメントのメニュー登録
  3. 自作ツールなどのメニュー登録

グローバル変数の定義

統合開発環境のカスタマイズ(1)にならいグローバル変数codeblocksとそのメンバ変数を定義する。

メンバ codeblocks
base C:\Users\user\CodeBlocks
bin $(#codeblocks)\bin
batch $(#codeblocks)\batch
doc $(#codeblocks)\doc

メンバ変数binは[Global Variable Editor]ダイアログの[Built-in fields]で定義できるが、batchとdocは[User-defined field]に新しいユーザー定義メンバ変数として定義する。なお$(#codeblocks.bin)は前述の自作ツールの導入で必要として既に定義されているはずだ。

参考ドキュメントのメニュー登録

[Settings|Environment]の[Environment settings]ダイアログで以下を設定する。[Help files]ページ[Add]ボタンを押して[Add title]ダイアログで以下の表に示す追加タイトルを入力し[OK]とする。[Browse]ダイアログが開くが[いいえ]で応える。一覧リストで追加したタイトルを選択し、リスト直下のテキストボックスにファイル名あるいはフルコマンドを入力し、必要に応じ[This line represents a full command to be executed]にチェックを入れる。

タイトル ファイル名/フルコマンド This line...
C++11 (JTC1_SC22_WG21 N3242) $(#codeblocks.doc)\n3242.pdf チェックを外す
C++14 (JTC1_SC22_WG21 N3797) $(#codeblocks.doc)\n3797.pdf チェックを外す
C++17 (JTC1_SC22_WG21 N4659) $(#codeblocks.doc)\n4659.pdf チェックを外す
C++20 (JTC1_SC22_WG21 N4861) $(#codeblocks.doc)\n4861.pdf チェックを外す
C++23 (JTC1_SC22_WG21 N4964) $(#codeblocks.doc)\n4964.pdf チェックを外す
C11 (JTC1_SC22_WG14 N1570) $(#codeblocks.doc)\n1570.pdf チェックを外す
GCC 13.2.0 Manual $(#codeblocks.doc)\gcc.pdf チェックを外す
GCC 13.2.0 Standard C++ Library Manual $(#codeblocks.doc)\libstdc++-manual.pdf チェックを外す
GCC 13.2.0 Standard C++ Library Reference Manual $(#codeblocks.doc)\libstdc++-api.pdf チェックを外す
Boost Documentation rundll32 url.dll,FileProtocolHandler https://www.boost.org/doc/ チェックを入れる
Boost 1.83.0 Library Documentation rundll32 url.dll,FileProtocolHandler https://www.boost.org/doc/libs/1_83_0/ チェックを入れる
Windows API Index rundll32 url.dll,FileProtocolHandler https://docs.microsoft.com/en-us/windows/win32/apiindex/windows-api-list/ チェックを入れる
wxWidgets 3.0.5 Documentation $(#codeblocks.doc)\wxWidgets-3.0.5.chm チェックを外す
Git Reference rundll32 url.dll,FileProtocolHandler https://git-scm.com/docs/ チェックを入れる
Git Book rundll32 url.dll,FileProtocolHandler https://git-scm.com/book/en/v2/ チェックを入れる
GNU Gettext Utilities rundll32 url.dll,FileProtocolHandler https://www.gnu.org/software/gettext/manual/gettext.html チェックを入れる
Doxygen Manual $(#codeblocks.doc)\doxygen_manual-1.9.8.chm チェックを外す
Inno Setup Help C:\Program Files (x86)\Inno Setup 6\ISetup.chm チェックを外す
Inno Setup Preprocessor C:\Program Files (x86)\Inno Setup 6\ISPP.chm チェックを外す
パソコンでプログラミングしよう rundll32 url.dll,FileProtocolHandler http://www17.plala.or.jp/KodamaDeveloped/LetsProgramming/ チェックを入れる

これで各参考ドキュメントを[Help]メニューから表示できる。

覚え書き
ウィンドウズで関連付けてないアプリケーションで表示するにはフルコマンドで記述して[This line represents a full command to be executed]にチェックを入れる。

自作ツールなどのメニュー登録

[Tools+|Configure Tools]の[User-defined Tools]ダイアログで以下を設定する。最初に[Tools]ページで[New]ボタンを押し以下に自作ツールなどを登録する。[Tools]あるいは[Tools+]でデスクトップアプリケーションをある条件で起動すると非表示となるがcmd /cで回避できるため、以下は要否問わず一様にcmd /cを用いる。

Tool Name Command Line Working Directory Tools Menu Path Output to
Gettext/Get cmd /c $(#codeblocks.bin)\KGetText --get --target $(PROJECT_NAME) --editor "C:\Program Files (x86)\Poedit\Poedit" --no-msgfmt $(PROJECT_DIR) Gettext/Get Tools Output Window
Gettext/Edit cmd /c $(#codeblocks.bin)\KGetText --edit --target $(PROJECT_NAME) --editor "C:\Program Files (x86)\Poedit\Poedit" --no-msgfmt $(PROJECT_DIR) Gettext/Edit Tools Output Window
Autoversion/Show status cmd /c $(#codeblocks.bin)\KAutoVer --version $(PROJECT_DIR) Autoversion/Show status Tools Output Window
Autoversion/Not pre-increased cmd /c $(#codeblocks.bin)\KAutoVer --no-update-target --status $(TARGET_NAME) $(PROJECT_DIR) Autoversion/Not pre-increased Tools Output Window
Autoversion/Pre-increased/Revision number cmd /c $(#codeblocks.bin)\KAutoVer --increment 0.0.0.1(A0) --no-update-target --status $(TARGET_NAME) $(PROJECT_DIR) Autoversion/Pre-increased/Revision number Tools Output Window
Autoversion/Pre-increased/Build number cmd /c $(#codeblocks.bin)\KAutoVer --increment 0.0.1.A0(A0) --no-update-target --status $(TARGET_NAME) $(PROJECT_DIR) Autoversion/Pre-increased/Build number Tools Output Window
Autoversion/Pre-increased/Minor number cmd /c $(#codeblocks.bin)\KAutoVer --increment 0.1.A0.A0(A0) --no-update-target --status $(TARGET_NAME) $(PROJECT_DIR) Autoversion/Pre-increased/Minor number Tools Output Window
Autoversion/Pre-increased/Major number cmd /c $(#codeblocks.bin)\KAutoVer --increment 1.A0.A0.A0(A0) --no-update-target --status $(TARGET_NAME) $(PROJECT_DIR) Autoversion/Pre-increased/Major number Tools Output Window
Autoversion/Update files (silent) cmd /c $(#codeblocks.bin)\KAutoVer --date no-change --silent $(PROJECT_DIR) Autoversion/Update files (silent) Tools Output Window
Git/Show status cmd /c $(#codeblocks.bin)\KGitWVer --status $(PROJECT_DIR) Git/Show status Tools Output Window
Git/Commit cmd /c $(#codeblocks.bin)\KGitWVer $(PROJECT_DIR) Git/Commit Tools Output Window
Git/Commit with/Tag cmd /c $(#codeblocks.bin)\KGitWVer --autoversion --tag #{MAJOR}.#{MINOR}.#{BUILD}.#{REVISION} $(PROJECT_DIR) Git/Commit with/Tag Tools Output Window
Git/Commit with/Archive cmd /c $(#codeblocks.bin)\KGitWVer --autoversion --archive archive\$(PROJECT_NAME)-#{MAJOR}.#{MINOR}.#{BUILD}.#{REVISION}.zip $(PROJECT_DIR) Git/Commit with/Archive Tools Output Window
Git/Commit with/Tag and archive cmd /c $(#codeblocks.bin)\KGitWVer --autoversion --tag #{MAJOR}.#{MINOR}.#{BUILD}.#{REVISION} --archive archive\$(PROJECT_NAME)-#{MAJOR}.#{MINOR}.#{BUILD}.#{REVISION}.zip $(PROJECT_DIR) Git/Commit with/Tag and archive Tools Output Window
Git/Commit amended (silent) cmd /c $(#codeblocks.bin)\KGitWVer --amend --silent $(PROJECT_DIR) Git/Commit amended (silent) Tools Output Window
Git/Sourcetree cmd /c C:\Users\user\AppData\Local\SourceTree\SourceTree.exe $(PROJECT_DIR) Git/Sourcetree Tools Output Window
Doxygen/Analyse sources cmd /c doxygen $(PROJECT_DIR)\doxygen Doxygen/Analyse sources Tools Output Window
Doxygen/Run HTML cmd /c rundll32 url.dll,FileProtocolHandler file:///$(PROJECT_DIR)/doxygen/html/index.html $(PROJECT_DIR)\doxygen Doxygen/Run HTML Tools Output Window
Doxygen/Create HTML help cmd /c $(#codeblocks.batch)\k_doxygen_winchm $(PROJECT_DIR)\doxygen Doxygen/Create HTML help Tools Output Window
Inno Setup/Edit script cmd /c "C:\Program Files (x86)\Inno Setup 6\Compil32" InnoSetup.iss $(PROJECT_DIR)\innosetup Inno Setup/Create installer Tools Output Window
Inno Setup/Create installer cmd /c "C:\Program Files (x86)\Inno Setup 6\ISCC" InnoSetup.iss $(PROJECT_DIR)\innosetup Inno Setup/Create installer Tools Output Window
GIMP/Blank cmd /c gimp $(PROJECT_DIR)\iconimages GIMP/Blank Tools Output Window
GIMP/Application icon cmd /c gimp favicon.ico $(PROJECT_DIR)\iconimages GIMP/Application icon Tools Output Window

次に[Plugin Settings]ページで[Replace Tools menu with Tools Plus]チェックボックスと[Reuse existing Tools page]の両方にチェックを入れる。

覚え書き
[Autoversion|Not pre-increased]あるいは[...|Pre-increased|XXX number]はデフォルトでバージョン番号データファイルのみを更新しバージョン番号設定ファイルは更新しない(--no-update-target)。これはターゲットプレビルドステップ(例えば動作確認(3))がバージョン番号リリース回数をカウントアップしてバージョン番号設定ファイルを更新する事を前提とするためで、バージョン番号設定ファイル更新が必要ならダイアログでオプション変更するか実行後に[Autoversion|Update files (silent)]を実行する。
[...|Not pre-increased]あるいは[...|Pre-increased|XXX number]は[Build|Select target]でバーチャルターゲット(例えばDeployバーチャルターゲット)を選択して実行すると$(TARGET_NAME)が空白文字列となりエラーとなる。
覚え書き
[Git|Commit with|Archive]あるいは[...|Tag and archive]の作成するアーカイブファイル名にビルトイン変数$(PROJECT_NAME)を用いる。$(TARGET_OUTPUT_BASENAME)、$(PROJECT_DIR)、$(PROJECT_FILENAME)はプロジェクトを表す名前としては不適で、$(PROJECT_FILE_BASENAME)は存在しない。$(PROJECT_NAME)は[Management]ウィンドウ[Projects]ページのプロジェクトノードに示されるプロジェクトタイトルで、プロジェクト作成時はプロジェクトファイル(*.cbp)のベースネームに等しい。これは[Project|Property]メニュー[Project/targets options]ダイアログ[Project settings]ページの[Title]で説明的な長いものにに変更できるが、その場合はアーカイブファイル名も不必要に長くなる。
プロジェクトタイトルは[Project|Build options]メニュー[Project build options]ダイアログの左側ツリービューのルートノードにも用いられ、長いタイトルはダイアログ幅を著しく拡大し(恐らくGUIデザインミスでタイトル表示長に比例して拡大する)左右スクロールが強制される。このような不具合もありプロジェクトタイトルは作成時のままを推奨する。
覚え書き
[GIMP|Blank]あるいは[...|Applicaiton icon]でGIMP起動後に[Tool Output]ウィンドウに以下のようなエラーメッセージが文字化けと共に表示されるが無害なので無視して良い。
GEGL-Message: 11:57:55.232: Module 'C:\msys64\mingw64\lib\gegl-0.4\ff-load.dll' load error: 'C:\msys64\mingw64\lib\gegl-0.4\ff-load.dll': 文字化け
GEGL-Message: 11:57:55.232: Module 'C:\msys64\mingw64\lib\gegl-0.4\ff-save.dll' load error: 'C:\msys64\mingw64\lib\gegl-0.4\ff-save.dll': 文字化け
さらにGIMPで[File|Open](日本語表示なら[ファイル|開く/インポート])などで[Open Image](日本語表示なら[画像ファイルを開く])ダイアログを開くと以下のようなエラーメッセージが一覧表示されるファイル数に比例して大量に表示される。
(gimp:6736): GLib-GIO-CRITICAL **: 12:04:41.919: g_content_type_is_a: assertion 'type != NULL' failed
こちらも無害と思われるがエラー出力を[Tool Output]ウィンドウへリダイレクトする処理に時間が掛かり暫くGIMPが操作できない。我慢できなければ[Output to]をStandard Shellへ変更してエラー出力を全て捨てれば良いが無用なコマンドプロンプトが表示されてしまう。