差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
fltk:helloworld-cmake [2025/05/24 22:55] – [CMakeLists.txt] freemikanfltk:helloworld-cmake [2025/05/30 14:01] (現在) – [CMakeを使ったHello World] Add a link to fltk: page for FLTK logo freemikan
行 1: 行 1:
 ====== CMakeを使ったHello World ====== ====== CMakeを使ったHello World ======
 +[[fltk:|{{:fltk:fltk_shadow.png?200|}}]]
  
-{{:fltk:fltk_shadow.png?200|FLTK}}+このページでは、[[helloworld|前回のチュートリアル]]で作成したのとまったく同じプログラムを、CMakeを使ってビルドする方法を紹介します。 
 +具体的には、FLTKを利用するために必要なCMakeListsファイルの最低限の内容とcmakeコマンドの実行方法だけ紹介します。 
 +CMake自体についての詳しい解説は行いません。
  
 ===== 前提 ===== ===== 前提 =====
行 7: 行 10:
 違う場所にインストールした場合は(そうであっても全く問題ありません)、パスをご自身のものに置き換えてください。 違う場所にインストールした場合は(そうであっても全く問題ありません)、パスをご自身のものに置き換えてください。
  
-CMakeもインストールされている必要があります。+また、CMakeもインストールされている必要があります。
 ===== 作業ディレクトリの用意 ===== ===== 作業ディレクトリの用意 =====
 作業ディレクトリは $HOME/code/fltk/hello-fltk-cmake とします。 作業ディレクトリは $HOME/code/fltk/hello-fltk-cmake とします。
行 27: 行 30:
 ===== プログラムのソースコード ===== ===== プログラムのソースコード =====
 プログラムのソースコード[[fltk:helloworld#プログラムのソースコード|前回のHello World]]で使用したものと全く同じです。 プログラムのソースコード[[fltk:helloworld#プログラムのソースコード|前回のHello World]]で使用したものと全く同じです。
-main.cppという名前でコピーを作成しておきます。+作業ディレクトリhello-fltk-cmake直下にmain.cppという名前でコピーを作成しておきます。
  
  
 ===== CMakeLists.txt ===== ===== CMakeLists.txt =====
 +作業ディレクトリhello-fltk-cmakeの直下にCMakeLists.txtという名前のファイルを作成します。
  
 __CMakeLists.txt__: __CMakeLists.txt__:
行 46: 行 50:
 </code> </code>
  
-CMake自体にFLTKのMODULEモードのコンフィギュレーション(FindFLTK.cmake)が同梱されています。+CMake自体にFLTKのMODULEモードのコンフィギュレーション(FindFLTK.cmake)が同梱されています。
 一方、FLTKもCMakeのコンフィギュレーションを提供しています。 一方、FLTKもCMakeのコンフィギュレーションを提供しています。
-可能らばFLTKのを利用するほうが良いでしょう。+るべくFLTKが提供するものを利用するほうが良いでしょう。
 FLTK 1.3まではMODULEモードのコンフィギュレーションが提供されていましたが、FLTK 1.4からCONFIGモードのコンフィギュレーションが提供されています。 FLTK 1.3まではMODULEモードのコンフィギュレーションが提供されていましたが、FLTK 1.4からCONFIGモードのコンフィギュレーションが提供されています。
 上のCMakeLists.txtのように ''find_package(FLTK 1.4 REQUIRED CONFIG)'' の1行を含めるだけでFLTKが利用可能になります。 上のCMakeLists.txtのように ''find_package(FLTK 1.4 REQUIRED CONFIG)'' の1行を含めるだけでFLTKが利用可能になります。
行 54: 行 58:
 あまり詳細に踏み込みたくはないので、今回は最低限のオプションのみ指定しました。 あまり詳細に踏み込みたくはないので、今回は最低限のオプションのみ指定しました。
 ===== ビルドディレクトリの作成 ===== ===== ビルドディレクトリの作成 =====
 +現在の作業ディレクトリhello-fltk-cmakeの中にbuildという名前のディレクトリを作成して、その中に移動します。
  
 <cli> <cli>
行 61: 行 66:
  
 ===== CMakeコンフィギュレーションの実行 ===== ===== CMakeコンフィギュレーションの実行 =====
 +buildディレクトリの中でcmakeコマンドを実行します。
  
 <cli> <cli>
行 66: 行 72:
 </cli> </cli>
  
 +CMAKE_PREFIX_PATHにFLTKをインストールしたパスを設定するのが最大のポイントです。
 +もし標準的なディレクトリFLTKをインストールしたのであれば不要なオプションです。
 +しかし、今回のように非標準的な場所にインストールした場合であっても、柔軟かつ簡単に対処できるのはCMakeの強みの一つと言えます。
 ===== ビルドの実行 ===== ===== ビルドの実行 =====
 +CMakeコンフィギュレーション時に「-G」で指定しなければ、大抵はMakefileが生成されます。
 +もしかしたらbuild.ninjaやそれ以外のケースがあるかもしれませんので、少し注意して経過を観察してみてください。
 +
 +Makefileが生成されているのであればmakeを実行します。
  
 <cli> <cli>
行 72: 行 85:
 </cli> </cli>
  
-ある+もしbuild.ninjaが生成されているのでればninjaを実行します。 
 + 
 +<cli> 
 +$ ninja 
 +</cli> 
 + 
 +どのビルドツールを実行すのかの判断をCMakeにまかせてしまう場合cmakeをを実行します。
  
 <cli> <cli>
 $ cmake --build . $ cmake --build .
 </cli> </cli>
 +
 +この場合、カレントディレクトリを意味する「.」を忘れないようにしてください。
  
 ==== 結果の確認 ==== ==== 結果の確認 ====
 +ソースコード(hello-fltk-cmake.cpp)に問題がなければ、ビルドに成功して実行可能バイナリファイルが生成されます。
  
 <cli> <cli>
行 92: 行 114:
  
 ===== Hello Worldプログラムの実行 ===== ===== Hello Worldプログラムの実行 =====
 +最後に、生成された実行可能バイナリファイルを実行して、プログラムが起動することを確認しておきましょう。
  
 <cli> <cli>
 $ ./hello-fltk-cmake $ ./hello-fltk-cmake
 </cli> </cli>
 +
 +うまく行けばウィンドウが表示されます。
  
 {{ :fltk:fltk_hello_cmake.jpg |Hello FLTK}} {{ :fltk:fltk_hello_cmake.jpg |Hello FLTK}}
 +
  
文書の先頭へ