JDimproved / JDim

2ch browser for linux
https://jdimproved.github.io/JDim/
GNU General Public License v2.0
44 stars 11 forks source link

migemoとUnity buildを組み合わせてビルドするとコンパイルエラーになる場合がある #1302

Closed ma8ma closed 7 months ago

ma8ma commented 7 months ago

migemoとUnity buildを組み合わせてビルドするとコンパイルエラーになる場合がある

バグの説明

migemoとUnity buildを組み合わせてビルドするとコンパイルエラーになる場合があったので報告します。

再現の方法

  1. migemoとUnity buildを有効にしてmeson setupする。-Dunity_sizeは大きいサイズを指定する。
    meson setup errdir -Dmigemo=enabled -Dunity=on -Dunity_size=100
  2. JDimをビルドする
    ninja -C errdir
  3. コンパイルエラーのメッセージが表示されてビルドが中断する ninjaのエラーメッセージを抜粋
    In file included from src/jdim.p/jdim-unity0.cpp:42:
    /home/(snip)/errdir/../src/winmain.cpp:89:29: error: ‘get_migemodict_path’ is not a member of ‘CONFIG’
      89 |     jdmigemo::init( CONFIG::get_migemodict_path() );
         |                             ^~~~~~~~~~~~~~~~~~~
    In file included from test/gtest_jdim.p/gtest_jdim-unity0.cpp:42:
    /home/(snip)/errdir/../src/winmain.cpp:89:29: error: ‘get_migemodict_path’ is not a member of ‘CONFIG’
      89 |     jdmigemo::init( CONFIG::get_migemodict_path() );
         |                             ^~~~~~~~~~~~~~~~~~~

-Dunity_size=100の値を小さくするか指定しない場合はビルドに成功しました。

やりたかったこと・期待する結果

エラーを出さずビルドに成功する

スクリーンショット

なし

動作環境

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 23.10
Release:        23.10
Codename:       mantic
$ g++ --version
g++ (Ubuntu 13.2.0-4ubuntu3) 13.2.0
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ meson --version
1.2.1
$ git rev-parse HEAD
ca45e8da3ee18f780951b81ffde7615db70131d6

追加の情報

CONFIG::get_migemodict_path()は src/config/globalconf.h の中でHAVE_MIGEMO_Hマクロが定義されているときに宣言されます。 HAVE_MIGEMO_Hマクロは config.h で定義されますが globalconf.h の中ではincludeされていません。