【シーメイク】
CMake とは?
💡 「どの環境でもビルドできる」を実現する、Makefileの翻訳者
📌 このページのポイント
CMakeってMakeと何が違うの?名前が似てるけど…
なんでわざわざ2段階にするの?直接ビルドすればいいのに
CMakeLists.txtってどんなことを書くの?
C/C++以外でも使えるの?
一応CUDAやFortranにも対応してるけど、主戦場はC/C++だね。PythonやJavaScriptの世界ではまず使わない。逆にC/C++のプロジェクトでは、CMakeがないとビルドが始まらないレベルで浸透してるよ
find_packageって何?
CMakeって難しいイメージがあるんだけど…
正直、独自の構文に慣れるまでは戸惑うかもね。でもmodern CMake(3.x系)では「ターゲットベース」の書き方が主流になって、かなり整理されたよ。古い書き方のチュートリアルに惑わされないように、公式ドキュメントを参照するのがコツだね
まとめ:ざっくりこれだけ覚えればOK!
「CMake」って出てきたら「どのOSでもビルドできるようにMakefileを自動生成してくれるツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「Cross-platform Make」 = クロスプラットフォーム対応のMake
💬 「どのプラットフォームでもmakeできる」という意味のCross-platform Makeの略だよ。2000年にKitware社が開発したんだ