cmakeにおけるDWITH_MPIオプションのデフォルト設定は本来ONのはずだが、OFFになっている
マニュアルによると、cmakeにおけるDWITH_MPIオプションのデフォルト設定、 すなわちDWITH_MPIを指定しなかった場合の設定はONになるはず。
https://manual.frontistr.com/en/install/install_04.html#cmake-options
ところが現状ではOFFになってしまう。これはCMakeLists.txtで
if(WITH_MPI)
find_package(MPI)
と
option(WITH_MPI "for parallel environment with MPI" ${MPI_FOUND})
の呼び出し順が、本来の順番と逆であるため。 これではWITH_MPIが外部から与えられない場合、変数WITH_MPIが未定義のままif判定に進むため、find_package(MPI)が実行されないので、optionを通ってもWITH_MPIがONにならない。
WITH_MPI=ONのときだけfind_package(MPI)をさせたいのなら、
option(WITH_MPI "for parallel environment with MPI" ON)
if(WITH_MPI)
find_package(MPI)
が正しい。これならば、
- DWITH_MPIを省略 ⇒WITH_MPIはON
- DWITH_MPI=ON指定 ⇒WITH_MPIはON
- DWITH_MPI=OFF指定 ⇒WITH_MPIはOFF
の挙動となる(はず)。