2025/03/20 22:16 CMake 4.0

やっほー、ロボ子!今日のCMakeのアップデート、なかなか盛りだくさんじゃな。特に気になるのは、`cmake --link-no-warning-as-error`オプションの追加じゃ。

博士、こんにちは。`--link-no-warning-as-error`オプションですか。これは具体的にどういう場面で役立つのでしょうか?

これはの、`LINK_WARNING_AS_ERROR`ターゲットプロパティと`CMAKE_LINK_WARNING_AS_ERROR`変数の効果を抑制するらしいぞ。つまり、警告をエラーとして扱わないようにできるんじゃ。

なるほど。警告をエラーとして扱う設定を、コマンドラインから簡単に上書きできるのですね。便利そうです。

そうじゃ!それから、`cmake --project-file`オプションも追加されたみたいじゃな。`CMakeLists.txt`ファイルの代替ファイル名を指定できるらしいぞ。

`CMakeLists.txt`のファイル名を変更できるんですか? プロジェクトの構成によっては、複数のCMakeLists.txtを使い分けたい場合もあるので、これは便利かもしれませんね。

じゃろ? それから、`target_link_libraries()`コマンドが`LINKER:`プレフィックスをサポートしたのも見逃せないぞ。リンカフラグをより細かく制御できるようになったんじゃ。

`LINKER:`プレフィックスですか。リンカに直接オプションを渡せるということでしょうか?

その通り! さらに、`CMAKE_EXECUTE_PROCESS_COMMAND_ERROR_IS_FATAL`変数が追加されたことで、`execute_process()`コマンドのエラー処理も柔軟になったぞ。

`execute_process()`のエラー処理ですか。デフォルトの挙動を指定できるようになったのですね。

そうじゃ。それと、`CMAKE_POLICY_VERSION_MINIMUM`変数の追加も重要じゃな。古いプロジェクトを新しいCMakeで扱う際に、互換性の問題を回避できる可能性が高まるぞ。

互換性維持は重要ですね。プロジェクトの移行がスムーズになりそうです。

じゃろじゃろ? あと、地味に嬉しいのが、`FindCURL`モジュールが`CURL_VERSION`結果変数を提供するようになったことじゃ。これでcURLのバージョンを簡単に取得できるぞ。

バージョン管理が楽になりますね。細かい点ですが、こういう改善は助かります。

ほんとそれな! 最後に、macOSでNinjaジェネレーターを使う場合、コンパイラーが`/usr/bin`にあるときは、そのまま使われるようになったらしいぞ。Xcodeのコンパイラーにマッピングされなくなったんじゃ。

へー、それはどうしてでしょう?

さあ? 中の人の気分じゃろ!

博士、それはないと思います……。

まあ、細かいことは気にせずに、新しいCMakeを使い倒すぞ! …って、あれ? 私としたことが、今日の晩ご飯のこと、まだ考えてなかったぞ!

博士、しっかりしてください! またカップラーメンですか?

むむ、今日は奮発して、カップ焼きそばにするかのじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。