外部の wxWidgets を使う場合

szmCt 説明書 | | | 目次/総目次 | 連絡先

本頁は OS に関係なく共通です。また、必要な人だけお読みください。

wxWidgets 単体でも CMake から作ることができるため、CMake の通常の使い方でビルド・インストールしていただければよいのですが、注意点がいくつかあります。

以下、CMake GUI における操作説明がありますが、末節以外は wxWidgets をビルドするときの操作、末節は szmCt をビルドするときの操作であることにご注意ください。

また当然ながらコマンドライン/ターミナル/端末から cmake で同等の指定を行っても差し支えございません。

三つのディレクトリ

システムに組み込まなくても INSTALL は必要

wxWidgets をライブラリとして使う場合は BUILD だけではなく INSTALL されていることが前提になります。場所は szmCt を CMake から操作するときに指定するのでアクセスできればどこでも結構です。

システムに組み込むかどうかにかかわらず CMake GUI では wxBUILD_INSTALL にレ印が入っていることを確認してください。組み込まない場合は、加えて CMAKE_INSTALL_PREFIX も指定することになります。

ソースフォルダも必要

INSTALL された wxWidgets には翻訳に使う .po ファイルも .mo ファイルも含まれておりません。szmCt は wxWidgets 部分の翻訳ファイルを参照するためこれらへのファイルパスが必要です。

過程で三つ、szmCt 構築時に二つのディレクトリが必要

上記の結果、wxWidgets のソースファイル集合、BUILD 先、INSTALL 先の三つのディレクトリが作業過程で必要となり、szmCt の構築時にはソースファイルと INSTALL 先の二つが必要となります。

STATIC 系か SHARED 系か

szmCt は STATIC 系の指定が標準となっています。wxWidgets 側もこれに合わせるか、逆に szmCt 側を SHARED 系にするかしないと正常に構築できないと思います。

wxWidgets を STATIC 系で用意するには、CMake GUI 上の操作でいうと wxBUILD_SHARED のレ印を外しwxBUILD_USE_STATIC_RUNTIME のレ印を入れる必要があります。

実は私自身もよくわかっていないのですが、現状 Windows 以外ではポータブル版のビルドができないと思います。apt-get や dnf を使ってシステムに設置した依存ライブラリを使う前提になっているからです。
openMSX みたいにwxWidgets の依存ライブラリも全部自前ビルドしたら何とかなるのかしらん。

szmCt の CMakeLists.txt では、ほかにもいろいろ内部 wxWidgets 用に wxUSE_* を弄っていますが、本頁で述べていないものは合わせても合わせなくても問題ありません。

szmCt を CMake GUI で扱うときの指定

初回の Configure を実行する前に、Add Entry で下記の通り設定値を加えてください。先に Configure を行ってしまうと szmCt 内部の wxWidgets を調査しはじめるので時間の無駄になります。

  1. szmCt_WX_IS_EXTERNAL を BOOL 型にしてレ印を入れてください。
  2. szmCt_WX_WHERE_IS_SOURCE_DIR を STRING 型にして wxWidgets のソースファイル集合の場所をご指定ください。
  3. szmCt_WX_WHERE_IS_INSTALLED を STRING 型にして前記の INSTALL 先ディレクトリをご指定ください。

二回目の Configure の後に wxWidgets_DIR が赤項目で出てくることがありますが、通常はそのまま三回目を実行すれば問題ありません。

将来 wxWidgets の 3.3.x 系以降を使う、もしくは現行でも開発ブランチからビルドしようとした場合、修正すべき項目が出ると思います(旧版互換項目に使える値が変わってしまうとか)。それらは適宜対応してください。