[ make、実行方法について ]


* 動作環境

  必須環境

  ・gtkmm 3.24.0 以上
  ・glibmm 2.58.0 以上
  ・zlib 1.2 以上
  ・gnutls 3.6.7 以上

  推奨環境

  ・Linux Kernel 4.19.0 以上
  ・UTF-8環境 ( EUC環境では LANG="ja_JP.UTF-8" を指定する必要がある )

  ※ GTK2版はv0.4.0リリースをもって廃止 ( https://github.com/JDimproved/JDim/issues/229 を参照 )

* makeに必要なツール、ライブラリ

  必須

  ・meson 0.53.0 以上
  ・g++ 8 以上、または clang++ 7 以上
  ・gnutls
  ・gtkmm
  ・zlib

  オプション

  ・alsa-lib (-Dalsa=enabled)
  ・openssl 1.1.1 以上 (-Dtls=openssl)
  ・migemo (-Dmigemo=enabled)
  ・googletest 1.10.0 以上 (`test/RADME.md`を参照)

  WebPやAVIF画像の表示に必要なパッケージ
  インストールされていない環境では`.webp`や`.avif`で終わるURLは通常リンクになる。

  ・libwebp, webp-pixbuf-loader (WebP)
  ・libavif (AVIF)

  GTKがデフォルトでサポートしていないWebPやAVIF形式の画像を表示する方法は
  https://github.com/JDimproved/JDim/discussions/737 を参照。(v0.5.0+からサポート)

  OSやディストリビューション別の解説は https://github.com/JDimproved/JDim/discussions/592 を参照。


* ビルド方法( meson )

    1. meson setup builddir
    2. ninja -C builddir ( または meson compile -C builddir )
    3. 起動は ./builddir/src/jdim

    mesonのビルドオプション
    - meson setup builddir -Dpangolayout=enabled のように指定する。
    - オプションの一覧は meson configure を実行してProject optionsの段落を参照する。

Autotools(./configure)のサポートは2023年7月のリリースをもって廃止されます。
詳しくは https://github.com/JDimproved/rfcs/blob/master/docs/0012-end-of-autotools-support.md を参照。


* ビルドオプション

    -Dsessionlib=[xsmp|no]

       XSMP を使ってセッション管理をするには「xsmp」を、セッション管理を無効にするには「no」を選択する。
       デフォルトでは XSMP を使用する。

    -Dpangolayout=enabled

       描画にPangoLayoutを使う。デフォルトでは PangoGlyphString を使用する。
       スレビューのテキスト表示に問題があるときはこのオプションを試してみてください。

    -Dmigemo=enabled

       migemoによる検索が有効になる。migemoがUTF-8の辞書でインストールされている必要がある。
       有効にすると正規表現のメタ文字が期待通りに動作しない場合があるので注意すること。

    -Dmigemodict=PATH

       (-Dmigemo 限定) migemo の辞書ファイルの場所を設定する。
       about:config で変更が可能、空欄にした場合は migemo が無効になる。(変更後は要再起動)

    -Dnative=enabled

       CPUに合わせた最適化
       手動でCPUの種類を指定する場合は meson -Dcpp_args="-march=ARCH" を利用してください。

    -Dtls=[gnutls|openssl]

       使用するSSL/TLSライブラリを設定する。デフォルトでは GnuTLS を使用する。

    -Dtls=openssl

       GnuTLS のかわりに OpenSSL を使用する。ライセンス上バイナリ配布が出来なくなることに注意すること。

    -Dalsa=enabled

       ALSAによる効果音再生機能を有効にする。詳しくは"https://jdimproved.github.io/JDim/"の項を参照すること。

    -Dgprof=enabled

       gprofによるプロファイリングを行う。コンパイルオプションに -pg が付き、JDimを実行すると
       gmon.out が出来るので gprof ./gmon.out で解析できる。CPUの最適化は効かなくなるので注意する。

    -Dcompat_cache_dir=disabled

       JDのキャッシュディレクトリ ~/.jd を読み込む互換機能を無効化する。

    -Dpackager=PACKAGER

       Meson限定: 動作環境にパッケージや作成者の情報を追加する。(v0.7.0+から追加)
       PACKAGER に改行やHTML文字参照を *含めない* ことを推奨する。

* メモ

  実行するには直接 builddir/src/jdim を起動するか手動で /usr/bin あたりに builddir/src/jdim を cp する。

  以上の操作で ninja が通らなかったり動作が変な時は meson のビルドオプションを変更する。
