JDimproved / JDim

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

config: Add include "config.h" to src/config/globalconf.h #1303

Closed ma8ma closed 7 months ago

ma8ma commented 7 months ago

config: Add include "config.h" to src/config/globalconf.h

migemoとUnity buildを組み合わせてビルドするとコンパイルエラーになる場合があったためヘッダーファイルに#includeを追加して修正します。

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() );
     |                             ^~~~~~~~~~~~~~~~~~~

背景

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

Unity buildはソースコードを結合するため、初回のinclude globalconf.hでCONFIG::get_migemodict_path()が宣言されないとインクルードガードの仕組みによって関数の宣言が妨げられます。

CI: Add weekly jobs which use Unity build with build options

GitHub Actionsのworkflowにビルドオプションを切り替えて Unity buildを有効にしてビルドするjobを追加して定期的に実行します。 追加するjobはパッチをマージする要件にはしないのでPull requestを開いたときやmasterブランチにpushしたときには実行しません。

追加するjobの構成

Closes #1302