Programing/Tool/CMake/Guides/Tutorial のバックアップ(No.2)



CMake Tutorialの簡易翻訳

はじめに

Step1.基本

  • 基本プロジェクト
    最も基本的なプロジェクトは、ソースコードから実行ファイルをビルドするプロジェクトです。
    単純なプロジェクトの場合、必要なのは3行の CMakeLists.txt ファイルのみです。
    次のような CMakeLists.txt ファイルをディレクトリに作成します。
    このファイルがチュートリアルの出発点になります。
    1. cmake_minimum_required(VERSION 3.10)
    2.  
    3. # プロジェクト名を指定
    4. project(Tutorial)
    5.  
    6. # 実行ファイルを追加
    7. add_executable(Tutorial tutorial.cxx)
    Note: この例では CMakeLists.txt で小文字のコマンドを使用していることに注意してください。
    大文字、小文字、および大文字と小文字が混在するコマンドをCMakeでサポートします。

バージョン番号と設定済みヘッダファイルの追加

  • バージョン番号の追加
    実行ファイルとプロジェクトにバージョン番号を追加します。
    1. cmake_minimum_required(VERSION 3.10)
    2.  
    3. # プロジェクト名とバージョンの指定
    4. project(Tutorial VERSION 1.0)
  • 設定済み設定ファイル
    バージョン番号をソースコードに渡すためのヘッダファイルを設定します。
    configure_fileコマンドを使用することで、テンプレートファイル(TutorialConfig.h.in)内にCMakeLists.txtで定義した変数の内容を埋め込んで、ヘッダファイル(TutorialConfig.h)を生成します。
    1. configure_file(TutorialConfig.h.in TutorialConfig.h)
  • 検索パスの追加
    設定済みファイルはバイナリツリーに書き込まれるため、インクルードファイルを検索するために、パスのリストに追加する必要があります。
    CMakeLists.txt の最後に次の行を追加します。
    1. target_include_directories(Tutorial PUBLIC
    2.                            "${PROJECT_BINARY_DIR}"
    3.                            )
  • テンプレートファイル
    次の内容でソースディレクトリに テンプレートファイル(TutorialConfig.h.in)を作成します。
    1. // チュートリアル用の設定済みオプション
    2. #define Tutorial_VERSION_MAJOR @Tutorial_VERSION_MAJOR@
    3. #define Tutorial_VERSION_MINOR @Tutorial_VERSION_MINOR@
    CMakeがこのヘッダーファイルを生成すると、@Tutorial_VERSION_MAJOR@ と @Tutorial_VERSION_MINOR@ が変数値に置き換えられます。
  • ソースファイル
    次に、tutorial.cxxを変更して、構成済みヘッダーファイル TutorialConfig.h をインクルードします。
    最後に、以下のように実装することで実行可能ファイルの名前とバージョン番号を出力します。。
    1.   if (argc < 2) {
    2.     // report version
    3.     std::cout << argv[0] << " Version " << Tutorial_VERSION_MAJOR << "."
    4.               << Tutorial_VERSION_MINOR << std::endl;
    5.     std::cout << "Usage: " << argv[0] << " number" << std::endl;
    6.     return 1;
    7.   }