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: Add include "config.h" to src/config/globalconf.h
migemoとUnity buildを組み合わせてビルドするとコンパイルエラーになる場合があったためヘッダーファイルに#includeを追加して修正します。
ninjaのエラーログ
背景
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