【初心者向け】CMakeでホームページURLを設定しよう!PROJECT_HOMEPAGE_URLの使い方


構文

project(PROJECT_NAME VERSION MAJOR.MINOR.PATCH HOMEPAGE_URL)

引数

  • HOMEPAGE_URL: プロジェクトのホームページURL
  • PATCH: パッチバージョン番号
  • MINOR: マイナーバージョン番号
  • MAJOR: メジャーバージョン番号
  • VERSION: プロジェクトのバージョン
  • PROJECT_NAME: プロジェクトの名前


project(MyProject 1.0.0 https://example.com)

この例では、MyProjectという名前のプロジェクトが定義され、バージョンは1.0.0、ホームページURLはhttps://example.comとなります。

  • project()コマンドで最後に呼び出されたものよりも上位にあるproject()コマンドで設定されたHOMEPAGE_URL変数が使用されます。
  • プロジェクトのトップレベルのホームページURLを取得するには、CMAKE_PROJECT_HOMEPAGE_URL変数を使用します。
  • HOMEPAGE_URL変数は、パッケージメタデータやドキュメントのデフォルト値として使用されることを目的としています。
  • HOMEPAGE_URLオプションは省略可能です。省略した場合、ホームページURLは設定されません。
  • プロジェクトに関する情報を簡単に共有できます。


基本的な例

project(MyProject 1.0.0 https://example.com)

# プロジェクトに関する情報を設定
set(PROJECT_DESCRIPTION "My awesome project")
set(PROJECT_LANGUAGES C++ C)

# ターゲットを定義
add_executable(my_app main.cpp)
  1. project()コマンドを使用して、MyProjectという名前のプロジェクトが定義されます。
  2. プロジェクトのバージョンは1.0.0、ホームページURLはhttps://example.comに設定されます。
  3. set()コマンドを使用して、プロジェクトの説明と使用されるプログラミング言語が設定されます。
  4. add_executable()コマンドを使用して、my_appという名前の実行可能ファイルが定義されます。

サブディレクトリにあるソースファイルを含む

project(MyProject 1.0.0 https://example.com)

# サブディレクトリにあるソースファイルを検索
set(CMAKE_SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/src")

# ターゲットを定義
add_executable(my_app src/main.cpp src/other.cpp)

この例では、以下のことが行われています:

  1. project()コマンドを使用して、MyProjectという名前のプロジェクトが定義されます。
  2. set()コマンドを使用して、CMAKE_SOURCE_DIR変数がsrcディレクトリに設定されます。これにより、CMakeはsrcディレクトリ内のソースファイルを検索します。
  3. add_executable()コマンドを使用して、my_appという名前の実行可能ファイルが定義されます。このターゲットは、srcディレクトリ内のmain.cppother.cppファイルを含むように設定されます。
project(MyProject 1.0.0 https://example.com)

# FindBoost ライブラリ
find_package(Boost COMPONENTS system filesystem)

# ターゲットを定義
add_executable(my_app main.cpp)
target_link_libraries(my_app Boost::system Boost::filesystem)
  1. project()コマンドを使用して、MyProjectという名前のプロジェクトが定義されます。
  2. find_package()コマンドを使用して、Boostライブラリが検索されます。
  3. add_executable()コマンドを使用して、my_appという名前の実行可能ファイルが定義されます。
  4. target_link_libraries()コマンドを使用して、my_appターゲットがBoost::systemライブラリとBoost::filesystemライブラリにリンクされるように設定されます。


プロジェクトのREADMEファイルにホームページURLを記載する

プロジェクトのREADMEファイルにホームページURLを記載することで、ユーザーはプロジェクトに関する情報を簡単に確認できます。


# MyProject

## ホームページ

https://www-example-com.cdn.ampproject.org/c/s/www.example.com

CMAKE_SOURCE_DIR変数を使用してホームページURLを推測する

CMAKE_SOURCE_DIR変数を使用して、プロジェクトのホームページURLを推測することができます。これは、プロジェクトのソースコードがバージョン管理システム(VCS)で管理されている場合に役立ちます。


set(PROJECT_HOMEPAGE_URL "${CMAKE_SOURCE_DIR}/URL")

この例では、CMAKE_SOURCE_DIR変数の値がURLという名前のファイルを含むディレクトリに設定されている場合、PROJECT_HOMEPAGE_URL変数にそのファイルの内容が設定されます。

カスタム変数を使用する

プロジェクト固有の情報に関連するURLを定義するために、カスタム変数を使用することができます。


set(PROJECT_DOCUMENTATION_URL "https://example.com/docs")

この例では、PROJECT_DOCUMENTATION_URLという名前のカスタム変数が定義され、プロジェクトのドキュメントのURLに設定されています。

CMakeLists.txtファイルに直接URLを記載する

project()コマンドの引数として直接URLを記載することもできます。ただし、これは推奨される方法ではありません。


project(MyProject 1.0.0 https://example.com)

PROJECT_HOMEPAGE_URL変数は、プロジェクトのホームページURLを設定するための便利な変数ですが、必ずしも必要ではありません。上記以外にも、ホームページURLを設定する方法はいくつかあります。