CMakeLists.txt ファイル

CMake ツールは、プラグインおよびアプリケーションのプロジェクトを生成する場合に使用します。

プラグインまたはアプリケーションの CMakeLists.txt ファイルには、プロジェクトを生成するために必要なライブラリ、ソース ファイル、およびビルド関数の情報が含まれています。このファイルは、ソース コードや、プラグインにパッケージ化されている任意の mel スクリプトとともに、プラグインまたはアプリケーションのフォルダの最上位に配置されています。

このページでは、CMakeLists.txt ファイルの各部について説明します。

注: devkit のサンプル内にある CMakeLists.txt ファイルを、独自に作成するための開始点として使用することができます。

CMakeLists.txt ファイルの要素は、次のとおりです。

  1. 最低限必要な CMake のバージョン

    cmake_minimum_required(VERSION 3.22.1)
  2. pluginEntry.cmake ファイルのパス。このパスは、Maya devkit で使用するすべての CMakeLists.txt ファイルで同一です。

    include($ENV{DEVKIT_LOCATION}/cmake/pluginEntry.cmake)
    

    例:

    cmake_minimum_required(VERSION 3.22.1)
    
     include($ENV{DEVKIT_LOCATION}/cmake/pluginEntry.cmake)
  3. プロジェクト名

    set(PROJECT_NAME <projectName>)
    

    例:

    cmake_minimum_required(VERSION 3.22.1)
    
     include($ENV{DEVKIT_LOCATION}/cmake/pluginEntry.cmake)
    
    set(PROJECT_NAME exampleNode)
  4. 必要なリソース ファイルのリスト(不要な場合もあり)。プロジェクトで複数のリソース ファイルを使用する場合は、各ファイルをスペースで区切ります。

    ```sh cmake_minimum_required(VERSION 3.22.1)

    include($ENV{DEVKIT_LOCATION}/cmake/pluginEntry.cmake)

    set(PROJECT_NAME exampleNode)

set(RESOURCES_FILES myResource.xpm) ```

  1. mel ファイルのリスト(必要な場合)。プロジェクトで複数の mel ファイルを使用する場合は、各ファイルをスペースで区切ります。

    set(MEL_FILES 
        <melFileName1> <melFileName2> <melFileName3>)
    

    例:

    cmake_minimum_required(VERSION 3.22.1)
    
    include($ENV{DEVKIT_LOCATION}/cmake/pluginEntry.cmake)
    
    set(PROJECT_NAME exampleNode)
    
    set(RESOURCES_FILES myResource.xpm)
    
    set(MEL_FILES 
        exampleNode.mel)
  2. mel、および必要に応じてリソース ファイルを含むソース ファイルのリスト。プロジェクトで複数のソース ファイルを使用する場合は、各ファイルをスペースで区切ります。

    set(SOURCE_FILES
        <sourceFileName1> <sourceFileName2> <sourceFileName3>
            ${MEL_FILES}
            ${RESOURCE_FILES})
    

    例:

    cmake_minimum_required(VERSION 3.22.1)
    
    include($ENV{DEVKIT_LOCATION}/cmake/pluginEntry.cmake)
    
    set(PROJECT_NAME exampleNode)
    
    set(RESOURCES_FILES myResource.xpm)
    
    set(MEL_FILES 
        exampleNode.mel)
    
    set(SOURCE_FILES
            exampleNode.cpp
            ${MEL_FILES}
        )
  3. 必要な devkit ライブラリのリスト。ライブラリのリストをスペースで区切ります

    重要: すべてのプラグインとアプリケーションに OpenMaya ライブラリと Foundation ライブラリを含める必要があります。

    set(LIBRARIES
        OpenMaya Foundation <additionalLibrary1> <additionalLibrary2>
        )
    

    例:

    cmake_minimum_required(VERSION 3.22.1)
    
    include($ENV{DEVKIT_LOCATION}/cmake/pluginEntry.cmake)
    
    set(PROJECT_NAME exampleNode)
    
    set(RESOURCES_FILES myResource.xpm)
    
    set(MEL_FILES 
        exampleNode.mel)
    
    set(SOURCE_FILES
            exampleNode.cpp
            ${MEL_FILES}
        )
    
    set(LIBRARIES
        OpenMaya Foundation
        )
  4. find_<package_name> マクロまたは find_package() の呼び出しを使用して追加される、必要なサードパーティ パッケージのリスト。

    find_package(MtoA)
    find_alembic()
    

    例:

      cmake_minimum_required(VERSION 3.22.1)
    
     include($ENV{DEVKIT_LOCATION}/cmake/pluginEntry.cmake)
    
    set(PROJECT_NAME exampleNode)
    
    set(RESOURCES_FILES myResource.xpm)
    
    set(MEL_FILES 
        exampleNode.mel)
    
    set(SOURCE_FILES
            exampleNode.cpp
            ${MEL_FILES}
        )
    
    set(LIBRARIES
        OpenMaya Foundation
        )
    
    find_package(MtoA)
    find_alembic()
  5. 最後は、ビルド関数です。

    プラグインを作成している場合は、build_plugin() を追加します。スタンドアロン アプリケーションを作成する場合は、build_application() を追加します。

    cmake_minimum_required(VERSION 3.22.1)
    
    include($ENV{DEVKIT_LOCATION}/cmake/pluginEntry.cmake)
    
    set(PROJECT_NAME exampleNode)
    
    set(RESOURCES_FILES myResource.xpm)
    
    set(MEL_FILES 
        exampleNode.mel)
    
    set(SOURCE_FILES
            exampleNode.cpp
            ${MEL_FILES}
        )
    
    set(LIBRARIES
        OpenMaya Foundation
        )
    
    find_package(MtoA)
    find_alembic()
    build_plugin()