CMakeLists.txt ファイルCMake ツールは、プラグインおよびアプリケーションのプロジェクトを生成する場合に使用します。
プラグインまたはアプリケーションの CMakeLists.txt ファイルには、プロジェクトを生成するために必要なライブラリ、ソース ファイル、およびビルド関数の情報が含まれています。このファイルは、ソース コードや、プラグインにパッケージ化されている任意の mel スクリプトとともに、プラグインまたはアプリケーションのフォルダの最上位に配置されています。
このページでは、CMakeLists.txt ファイルの各部について説明します。
注: devkit のサンプル内にある
CMakeLists.txtファイルを独自に作成するための開始点として使用することができます。
CMakeLists.txt ファイルの構造は、次のとおりです。
最低限必要な CMake のバージョン
cmake_minimum_required(VERSION 2.8)プロジェクト名。
set(PROJECT_NAME <projectName>)たとえば、circleNode CMakeLists.txt ファイルのプロジェクト名セクションは次のようになります。
set(PROJECT_NAME circleNode)pluginEntry.cmake ファイルのパス。この行はすべての CMakeLists.txt ファイルで同一です。
include($ENV{DEVKIT_LOCATION}/cmake/pluginEntry.cmake)必要なリソース ファイルのリスト。
プロジェクトで複数のリソース ファイルを使用している場合は、各ファイルをスペースで区切ります。
set(RESOURCES_FILES myResource.xpm)プロジェクトに mel ファイルも必要な場合は、MEL_FILES セクションでこれらを指定します。
プロジェクトで複数の mel ファイルを使用している場合は、各ファイルをスペースで区切ります。
set(MEL_FILES
<melFileName1> <melFileName2> <melFileName3>)たとえば、circleNode サンプルには mel ファイルが含まれていて、CMakeLists.txt ファイル内に次の行があります。
set(MEL_FILES
circleNode.mel)mel、および必要に応じてリソース ファイルを含むソース ファイルのリスト。
プロジェクトで複数のソース ファイルを使用している場合は、各ファイルをスペースで区切ります。
set(SOURCE_FILES
<sourceFileName1> <sourceFileName2> <sourceFileName3>
${MEL_FILES}
${RESOURCE_FILES})たとえば、circleNode SOURCE_FILES 変数は次のように定義されます。
set(SOURCE_FILES
circleNode.cpp
${MEL_FILES}
)必要な devkit ライブラリのリスト。
プロジェクトで複数のライブラリが必要な場合は、各ライブラリをスペースで区切ります。
必要なライブラリを確認するには、C++ API リファレンスを参照してください。
たとえば、circleNode には OpenMaya および Foundation ライブラリのみが必要です。
set(LIBRARIES
OpenMaya Foundation
)find_package() を使用して追加される、必要なサードパーティ パッケージのリスト。
find_package() は Find<PackageName>.cmake ファイルを使用して、ビルドにパッケージを追加します。これらのファイルは Linux と MacOS の $DEVKIT_LOCATION/cmake/modules/、および Windows の %DEVKIT_LOCATION%¥cmake¥modules に配置されています。パッケージを追加するには、find_package(PackageName) を呼び出します。たとえば、Alembic パッケージを追加するには、FindAlembic.cmake が modules フォルダに存在することを確認してから、CMakeLists.txt ファイルに以下を書き込みます。
find_packaged(Alembic)便宜上、devkit には一般に使用されるパッケージ用のマクロが含まれています。マクロの形式は find_<packageName> です。マクロを呼び出すには、各パッケージの各マクロを独自の行に配置します。たとえば、zlib および alembic パッケージを追加するには、CMakeLists.txt ファイルに次の 2 つの行を追加します。
find_zlib()
find_alembic()マクロは、次のパッケージで使用できます。
find_libxml2)find_opengl)find_zlib)find_tbb)find_alembic)find_arnold)find_directX)find_cg)find_boost)find_D3DX11Effects)このリストにないパッケージがプロジェクトで必要な場合は、このパッケージを検索する cmake スクリプトを作成し、find_package() コマンドで呼び出す必要があります。ガイドに記載されているように、cmake 検索スクリプトは modules フォルダ内で使用します。
最後は、ビルド関数です。
プラグインを作成している場合は、build_plugin() を追加します。スタンドアロン アプリケーションを作成している場合は、build_application() を追加します。