FindDoxygen 以外の Doxygen の使い道

2024-04-02

CMake Modules の FindDoxygen プログラミング解説

概要

FindDoxygen は、以下の情報を提供します。

  • Doxygen の実行可能ファイルのパス
  • Doxygen ヘッダーファイルのパス
  • Doxygen 設定ファイルのパス

これらの情報は、CMake の他のモジュールやプロジェクトのビルド設定で使用できます。

使用方法

FindDoxygen を使用するには、CMakeLists.txt ファイルで以下のコマンドを実行します。

find_package(Doxygen)

FindDoxygen は、以下の変数を設定します。

  • DOXYGEN_FOUND: Doxygen が見つかったかどうかを示すブール値
  • DOXYGEN_EXECUTABLE: Doxygen 実行可能ファイルのパス
  • DOXYGEN_INCLUDE_DIR: Doxygen ヘッダーファイルのパス
  • DOXYGEN_CONFIG_DIR: Doxygen 設定ファイルのパス

これらの変数は、以下の例のように使用できます。

if(DOXYGEN_FOUND)
  add_custom_target(docs
    COMMAND ${DOXYGEN_EXECUTABLE}
    -o docs
    ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile
    )
endif()

FindDoxygen の詳細については、以下のリソースを参照してください。

補足

  • FindDoxygen は、デフォルトで Doxygen のバージョン 1.8.13 を探します。異なるバージョンを使用している場合は、DOXYGEN_VERSION 変数を設定する必要があります。
  • FindDoxygen は、いくつかのオプションを提供しています。詳細は、CMake ドキュメントを参照してください。

以下の例は、FindDoxygen を使用して Doxygen ドキュメントを生成する方法を示しています。

cmake_minimum_required(VERSION 3.10)

project(MyProject)

find_package(Doxygen)

if(DOXYGEN_FOUND)
  add_custom_target(docs
    COMMAND ${DOXYGEN_EXECUTABLE}
    -o docs
    ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile
    )
endif()

この例では、Doxygen モジュールを検索し、DOXYGEN_FOUND 変数が設定されているかどうかを確認します。DOXYGEN_FOUND が true の場合、docs という名前のカスタムターゲットを作成します。このターゲットは、Doxygen 実行可能ファイルを実行して、Doxyfile で指定されたドキュメントを生成します。

FindDoxygen は、CMake プロジェクトで Doxygen を簡単に使用するための便利なモジュールです。このモジュールを使用することで、Doxygen のインストール場所を自動的に検出し、ドキュメントを生成することができます。



FindDoxygen のサンプルコード

基本的な例

cmake_minimum_required(VERSION 3.10)

project(MyProject)

find_package(Doxygen)

if(DOXYGEN_FOUND)
  add_custom_target(docs
    COMMAND ${DOXYGEN_EXECUTABLE}
    -o docs
    ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile
    )
endif()

Doxygen バージョンの指定

cmake_minimum_required(VERSION 3.10)

project(MyProject)

set(DOXYGEN_VERSION 1.9.2)

find_package(Doxygen)

if(DOXYGEN_FOUND)
  add_custom_target(docs
    COMMAND ${DOXYGEN_EXECUTABLE}
    -o docs
    ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile
    )
endif()

この例では、DOXYGEN_VERSION 変数を設定して、Doxygen のバージョン 1.9.2 を検索します。

Doxygen オプションの指定

cmake_minimum_required(VERSION 3.10)

project(MyProject)

find_package(Doxygen)

if(DOXYGEN_FOUND)
  add_custom_target(docs
    COMMAND ${DOXYGEN_EXECUTABLE}
    -o docs
    -D DOXYGEN_QUIET=YES
    ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile
    )
endif()

この例では、DOXYGEN_QUIET オプションを設定して、Doxygen の出力を抑制します。

詳細なサンプル

以下のサンプルコードは、FindDoxygen を使用して Doxygen ドキュメントを生成する方法を示しています。

cmake_minimum_required(VERSION 3.10)

project(MyProject)

# Doxygen バージョンを指定
set(DOXYGEN_VERSION 1.9.2)

# Doxygen オプションを指定
set(DOXYGEN_WARN_IF_UNDOCUMENTED=YES)
set(DOXYGEN_JAVADOC_AUTOBRIEF=NO)

# Doxygen のインストール場所を指定
set(DOXYGEN_DIR /usr/local/bin)

# Doxygen モジュールを検索
find_package(Doxygen)

if(DOXYGEN_FOUND)
  # Doxygen ドキュメントを生成するカスタムターゲットを作成
  add_custom_target(docs
    COMMAND ${DOXYGEN_EXECUTABLE}
    -o docs
    -D DOXYGEN_QUIET=YES
    ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile
    )
else()
  message(STATUS "Doxygen が見つかりません。")
endif()

このサンプルコードでは、以下の設定を行っています。

  • Doxygen バージョンを 1.9.2 に指定
  • Doxygen オプションを設定
  • Doxygen のインストール場所を指定

これらの設定は、find_package(Doxygen) コマンドの前に設定する必要があります。

FindDoxygen は、CMake プロジェクトで Doxygen を簡単に使用するための便利なモジュールです。このモジュールを使用することで、Doxygen のインストール場所を自動的に検出し、ドキュメントを生成することができます。

上記のサンプルコードを参考に、自分のプロジェクトに FindDoxygen を導入してみてください。



FindDoxygen 以外の Doxygen の使い道

CMake の Doxygen ターゲット

CMake は、Doxygen ドキュメントを生成するためのターゲットをいくつか提供しています。これらのターゲットを使用するには、CMakeLists.txt ファイルで以下のコマンドを実行します。

add_doxygen_target(docs
  INPUT_DIR ${CMAKE_CURRENT_SOURCE_DIR}
  OUTPUT_DIR docs
  )

このコマンドは、docs という名前の Doxygen ターゲットを作成します。このターゲットは、CMAKE_CURRENT_SOURCE_DIR ディレクトリにあるソースファイルから Doxygen ドキュメントを生成し、docs ディレクトリに出力します。

Doxygen は、コマンドラインツールとして使用することもできます。このツールを使用するには、以下のコマンドを実行します。

doxygen Doxyfile

このコマンドは、Doxyfile で指定された設定に基づいて Doxygen ドキュメントを生成します。

Doxygen は、GUI ツールとしても使用できます。このツールを使用するには、Doxygen を起動し、プロジェクトの設定を指定します。

その他の方法

上記の以外にも、Doxygen を使用するにはいくつかの方法があります。詳細は、Doxygen の公式ドキュメントを参照してください。

FindDoxygen は、CMake プロジェクトで Doxygen を使用する最も簡単な方法ですが、他にもいくつかの方法があります。自分のプロジェクトに合った方法を選択してください。




C++標準ライブラリ、テンプレートエンジン、シェルスクリプト... string()コマンドの代替方法を徹底比較

CMakeのstring()コマンドは、文字列処理を行うための強力なツールです。C++のstd::stringのような機能に加え、CMake特有の便利な機能も備えています。主な機能文字列の連結、分割、置換、比較大文字・小文字変換部分文字列の抽出



CMake の if() コマンド: デバッグとトラブルシューティング

構文条件式if() コマンドの引数には、条件式を指定します。条件式は、以下のいずれかの形式で記述できます。変数の比較: <variable> <operator> <value>コマンドの存在チェック: COMMAND <command-name>


CMake try_compile() を使って特定のライブラリがインストールされているかどうかを確認する方法

try_compile() は、CMake の強力なコマンドの一つで、コードを実際にコンパイルすることなく、コンパイルが成功するかどうかを確認することができます。これは、特定のコンパイラやオプションがシステム上で使用可能かどうかをテストしたり、コードの移植性を検証したりする際に非常に便利です。


CMakeにおける"get_target_property()"コマンド: ターゲットの情報を自在に操る

get_target_property()コマンドは、CMakeプロジェクトで定義されたターゲットからプロパティを取得するために使用されます。ターゲットプロパティは、ターゲットのビルド方法や動作を制御するために使用される情報です。構文引数VAR: ターゲットプロパティの値を格納する変数名


CMakeのCommandsにおけるuse_mangled_mesa()

use_mangled_mesa() は CMake の Commands における関数で、Mesa ライブラリの mangled シンボル名を解決するために使用されます。Mesa は OpenGL の実装であり、古いバージョンの Mesa ではシンボル名が mangled されるため、use_mangled_mesa() を使用してこれらのシンボル名を解決する必要があります。



CMake GUIでOSX_ARCHITECTURES_CONFIGを設定する方法

概要デフォルト値: OSX_ARCHITECTURES プロパティによって設定されます。データ型: STRING使用箇所: ターゲットのプロパティ設定方法: CMake GUICMake GUI設定例詳細解説OSX_ARCHITECTURES_CONFIG は、ターゲット毎に異なるアーキテクチャを指定するために使用できます。例えば、"my_app" は "Debug" 構成では x86_64 と arm64 アーキテクチャでビルドし、"Release" 構成では x86_64 アーキテクチャのみでビルドするといった設定が可能です。


CMake の Variables に関連する CMAKE_SCRIPT_MODE_FILE のプログラミング

CMAKE_SCRIPT_MODE_FILE は、CMake の "Variables" における特別な変数です。これは、現在実行中の CMake スクリプトファイルのフルパスを格納します。この変数は、以下の状況でのみ使用できます。cmake -P スクリプトモード


CMakeでシェルコマンドを実行したい?add_custom_commandの使い方を分かりやすく解説

add_custom_command() は CMake における強力なツールであり、シェルコマンドをビルドプロセスにシームレスに統合できます。このガイドでは、add_custom_command() の詳細な使い方を、豊富な例と分かりやすい解説を通して説明します。


Dart で CMake の Modules を作成して、ビルドプロセスを効率化

1. 複雑な CMake ロジックの簡素化Dart を使用すると、複雑な CMake ロジックをより簡潔で読みやすいコードに分割できます。これは、特に大規模なプロジェクトで複数の CMake ファイルを使用する場合に役立ちます。2. コードの再利用性の向上


CMake の Variables に関連する CMAKE_FRAMEWORK_PATH のプログラミング解説

CMake の CMAKE_FRAMEWORK_PATH 変数は、フレームワークライブラリの場所を指定するために使用されます。これは、クロスプラットフォーム開発プロジェクトで特に重要であり、異なるオペレーティングシステムで異なるフレームワークパスが必要になる場合があります。