*[[ParaView-Superbuild]] [#a59dbce3]

可視化ソフトウェア[[ParaView:http://www.paraview.org]]のビルド・コンパイルを容易に行うためのParaView-Superbuildについて

[[ParaView-Superbuild:https://gitlab.kitware.com/paraview/paraview-superbuild/]]

をもとに説明します。

**導入 [#ib8a04d0]

ParaView-Superbuild(以下、superbuildと呼ぶ)は、ParaViewおよび、その依存ライブラリをビルドするためのプロジェクトです。ParaView自体は、外部依存ライブラリがビルド・マシン上ですでに利用できる状況であれば、簡単にビルドすることができます。しかし、そうでない場合、ParaViewの外部依存ライブラリのいくつか(例えば、Qt, CGNS, FFMEG等)をビルドするのはうんざりさせられます。また、再頒布用のバイナリを生成するときは、これら依存ライブラリをパッケージ化するのに、余計に気を付ける必要があります。これらの場合をサポートし、余裕ある生活を実現するため、superbuildプロジェクトが誕生しました。

superbuildは主に、ParaView公式バイナリをビルドするために設計されましたが、通常のビルドや様々なスーパーコンピュータシステムへのインストールにも利用されています。

**ソースの取得 [#s975b551]

superbuildのソースコードを取得するためには、[[Git:https://git-scm.com/]]を使用して、クローンを作成します。

  $ git clone --recursive https://gitlab.kitware.com/paraview/paraview-superbuild.git

**ビルド [#u1a41d23]

supberbuildはMakfileやNinja CMakeジェネレータを使用して、ビルドすることができます。XcodeやVisual StudioなどのIDEジェネレータはサポートしていません。

***バージョンを指定したビルド [#aba89f93]

superbuildのバージョン付けはParaViewと同じバージョン付けで、ParaViewの全てのリリースに対応するタグが付いています。例えば、ParaViewのバージョン5.2.0をビルドするときは、ParaViewおよびsuperbuildのタグv5.2.0をcheckoutします。
superbuildのバージョン付けはParaViewと同じバージョン付けで、ParaViewの全てのリリースに対応するタグが付いています。例えば、ParaViewのバージョン5.4.1をビルドするときは、ParaViewおよびsuperbuildのタグv5.4.1をcheckoutします。

現在使用可能なタグは、[[使用可能なタグ:https://gitlab.kitware.com/paraview/paraview-superbuild/tags]]にあります。

superbuildのgitレポジトリから特定のタグをchekoutするためには以下のようにします:

  $ cd paraview-superbuild
  $ git fetch origin # ensure you have the latest state from the main repo
  $ git checkout v5.2.0 # replace `v5.2.0` with tag name of your choice
  $ git checkout v5.4.1 # replace `v5.4.1` with tag name of your choice
  $ git submodule update

checkoutが終了しましたら
  $ rm –rf .git*
  $ rm ?rf .git*
でgit関連のファイルやフォルダを削除します。

superbuildは、選択されたバージョンのParaViewをビルドするときに使用されるルールを全て管理しています。また、使用するsuperbuildのバージョンと異なるバージョンのParaViewをビルドすることも可能です。例えば、v5.2.0のsuperbuildを用いて、最新のマスター(開発版)バージョンのParaViewや個別に作成したbranchをビルドすることができます。これには、まず適切なバージョンのsuperbuildをcheck outし、その後、どのParaViewを使用するかを決めるCMakeの変数を設定します。superbuildがソースパッケージをどのように見つけるかを制御する方法はいくつかあります:
superbuildは、選択されたバージョンのParaViewをビルドするときに使用されるルールを全て管理しています。また、使用するsuperbuildのバージョンと異なるバージョンのParaViewをビルドすることも可能です。例えば、v5.4.1のsuperbuildを用いて、最新のマスター(開発版)バージョンのParaViewや個別に作成したbranchをビルドすることができます。これには、まず適切なバージョンのsuperbuildをcheck outし、その後、どのParaViewを使用するかを決めるCMakeの変数を設定します。superbuildがソースパッケージをどのように見つけるかを制御する方法はいくつかあります:

-ParaViewのソースコードをgitを用いてcheckoutしたい場合(デフォルト)、&color(red,white){paraview_SOURCE_SELECTION};に&color(red,white){git};を設定し、&color(red,white){paraview_GIT_REPOSITORY};にクローンしたいParaViewのgitレポジトリを設定します(デフォルトではParaViewの公式レポジトリが指定れています)。それから、&color(red,white){paraview_GIT_TAG};に特定のタグ名または、選択したレポジトリで利用可能なbranchを指定します。最新の開発版は&color(red,white){master};を、5.2.0のリリース版は5.2.0を、最新の安定リリース版は&color(red,white){release};を使用します。または、特定のParaView commit HSAも指定できます。この設定により、superbuildをビルドすときに、ParaViewのgitレポジトリから自動的に適切なリビジョンをcloneし、checkoutします。
-ParaViewのソースコードをgitを用いてcheckoutしたい場合(デフォルト)、&color(red,white){paraview_SOURCE_SELECTION};に&color(red,white){git};を設定し、&color(red,white){paraview_GIT_REPOSITORY};にクローンしたいParaViewのgitレポジトリを設定します(デフォルトではParaViewの公式レポジトリが指定れています)。それから、&color(red,white){paraview_GIT_TAG};に特定のタグ名または、選択したレポジトリで利用可能なbranchを指定します。最新の開発版は&color(red,white){master};を、5.4.1のリリース版は5.4.1を、最新の安定リリース版は&color(red,white){release};を使用します。または、特定のParaView commit HSAも指定できます。この設定により、superbuildをビルドすときに、ParaViewのgitレポジトリから自動的に適切なリビジョンをcloneし、checkoutします。

-superbuildにParaViewのソースコードをcloneとupdateをさせる代わりに、手動でcheck outし、必要な場合はupdateすることもできます。この設定を使用するためには、&color(red,white){paraview_SOURCE_SELECTION};に&color(red,white){source};を指定し、&color(red,white){paraview_SOURCE_DIR};にParaViewのソースコードのあるディレクトリを指定します。必要となるパッケージをダウンロードさせる方法は、下記の「オフライン・ビルド」を参照ください。

-別の方法として、ParaViewのリリース版のソースコードのtarballを使用する方法があります。このためには、&color(red,white){paraview_SOURCE_SELECTION};に&color(red,white){5.2.0};を指定します。superbuildは、リリースの準備段階でのリリース候補と同様に、最新の安定リリース版を提供します。これは、ParaViewのリリース版をビルドする最もよい方法です。
-別の方法として、ParaViewのリリース版のソースコードのtarballを使用する方法があります。このためには、&color(red,white){paraview_SOURCE_SELECTION};に&color(red,white){5.4.1};を指定します。superbuildは、リリースの準備段階でのリリース候補と同様に、最新の安定リリース版を提供します。これは、ParaViewのリリース版をビルドする最もよい方法です。

''NOTE:'' superbuildのバージョンを5.2以前に変更する場合は、このページの記述は役に立ちません。現在のsuperbuildは5.2に対して、リファクタリングと変更が行われたためです。古いバージョンについての説明は、[[Wiki:https://www.paraview.org/Wiki/index.php?title=ParaView/Superbuild&oldid=59804]]を参照ください。

''NOTE:'' このREADMEは各バージョン毎にアップデートされるので、特定のバージョンをcheckoutした後は、そのバージョンに対応するREADMEを参照ください。

*** プロジェクトと機能 [#v1ea4653]

superbuildは複数のプロジェクトを含んでおり、それらはビルドされるParaViewに異なる機能を付加するために使用されます。ほとんどのプロジェクトは、ダウンロードと最終パッケージへの機能追加を行いますが、ParaView自体の機能を有効にするためのものも少数存在します。

&color(red,white){catalyst};プロジェクトと&color(red,white){paraview};プロジェクトは両立しません(インストールツリーにおいてライブラリが競合します)。これらプロジェクトのうち1つだけを有効にしてください。&color(red,white){catalyst};パッケージはLinuxでのみ利用可能です。

&color(red,white){paraviewsdk};プロジェクトは、ParaViewを開発するのに便利なヘッダーとライブラリを含んだパッケージをビルドします。(今のところ)Linuxでのみ利用可能です。

&color(red,white){paraviewweb};プロジェクトは、ウェブサービスをパッケージに追加します。

&color(red,white){paraviewgettingstartedguide};、&color(red,white){paraviewtutorial};、&color(red,white){paraviewtutorialdata};、&color(red,white){paraviewusersguide};パッケージは、パッケージにドキュメントを追加します。

ParaViewは複数のレンダリングエンジン(&color(red,white){egl};、&color(red,white){mesa};、&color(red,white){osmesa};、&color(red,white){qt5};)をサポートしています。これらは全て、お互いに両立しません。このいずれも選択しない場合は、UIのないParaView(基本的には&color(red,white){pvpython};)がビルドされます。WindowsとmaxOSでは、&color(red,white){qt5};レンダリングのみが利用可能です。

&color(red,white){python};パッケージは、パケージのPythonサポートを有効にするために使用されます。加えて、&color(red,white){matplotlib};と&color(red,white){numpy};パッケージが利用可能です。

以下のパッケージはParaView本体で機能を有効にします:

-&color(red,white){adios};:ADIOSファイルフォーマットの可視化データに対するreaderとwriterを有効にします。

-&color(red,white){boxlib};:boxlib3Dファイルフォーマットのreaderを有効にします。

-&color(red,white){las};:LASファイルフォーマットのreaderを有効にします。

-&color(red,white){cosmotools};:Cosmoファイルフォーマットのreaderおよび、関連するフィルターとアルゴリズムを有効にします。

-&color(red,white){ffmpeg};:macOSとLinuxにたいする動画エンコードライブラリを有効にします。

-&color(red,white){ospray};:Intelのレイ・トレーシングのバックエンドを有効にします。

-&color(red,white){silo};:Siloファイルフォーマットのreaderをサポートします。

-&color(red,white){tbb};:VTKやParaViewの様々なフィルターやアルゴリズムの並列処理の改善をサポートします。

-&color(red,white){visitbridge};:VisItプロジェクトで提供されるファイルフォーマットに対するreaderを有効にします。

-&color(red,white){vortexfinder2};:渦度を可視化、解析するためのツール群を有効にします。

-&color(red,white){vrpn};:バーチャルリアリティをサポートします。

-&color(red,white){vtkm};:VTK-mによるフィルターの加速をサポートします。

-&color(red,white){xdmf3};:HDF5のtopでメタファイルフォーマットをビルドします。

***オフライン・ビルド [#d49bff7f]

superbuidは&color(red,white){download-all};ターゲットがあり、現在設定されたビルドに必要な全てのファイルをネットワークからダウンロードします。デフォルトでは、それらはビルドツリー内の&color(red,white){downloads};に保存されます。このsuperbuildとdownloadsのツリーをネットワークにつながっていないマシンにコピーし、 &color(red,white){superbuild_download_location};変数を使って(あるいはデフォルトの場所において)、このツリーを指定します。

***インストール [#n6500200]

superbuildは&color(red,white){SUPERBUILD_DEFAULT_INSTALL};変数で、テンプレートパッケージを選択することにより、&color(red,white){install};ターゲットをサポートします。デフォルトで利用可能なものは、プラットフォームと選んだプロジェクトによりますが、以下が使用可能な値です:

-&color(red,white){paraview/ZIP};
-&color(red,white){paraview/DragNDrop};
-&color(red,white){paraview/TGZ};
-&color(red,white){catalyst/TGZ};
-&color(red,white){paraviewsdk/TGZ};

CMakeのキャッシュ・エディター(&color(red,white){ccmake};と&color(red,white){cmake-gui};)は、サポートしているオプションをドロップダウンで表示します。

選択したパケージ・ロジックはParaViewと依存ライブラリを、パケージの中に保存するのではなく、&color(red,white){CMAKE_INSTALL_PREFIX};の中にインストールするために使用されます。例えば、&color(red,white){DragNDrop};ジェネレータは、&color(red,white){.app};バンドルを生成しますが、&color(red,white){TGZ};と&color(red,white){ZIP};ジェネレータは、&color(red,white){bin/};と&color(red,white){lib/};などの標準的なディレクトリを使用します。

''注意''

&color(red,white){paraview_SOURCE_SELECTION};で&color(red,white){git};を使用すると、&color(red,white){install};ターゲットを使うと、外部プロジェクトのメカニズムにおける制限やCPackの動作により、ビルドが再び走り出します。これを避けるためには、2つの方法があります:

-&color(red,white){SUPERBUILD_OFFLINE_BUILD};オプションを&color(red,white){ON};に設定し、configure/buildステップとgit updateステップを切り離します。

-最初のビルドで、通常の&color(red,white){make && make install};するのではなく、&color(red,white){install};ターゲットを使用します。

***外部プラグイン [#f942abe1]

superbuildは&color(red,white){paraviewexternalplugins};プロジェクトを使用して、ParaViewに多くのプラグインのビルドをサポートします。例えば、2つの外部プラグイン&color(red,white){a};と&color(red,white){b};をビルドするためには、以下の設定をする必要があります:

-&color(red,white){ENABLE_paraviewexternalplugins:BOOL=ON};:外部プラグインの有効化

-&color(red,white){paraview_PLUGINS_EXTERNAL:STRING=a;b};:ビルドするプラグインのリスト

-&color(red,white){paraview_PLUGIN_a_PATH:PATH=/path/to/plugin/a};:プラグイン&color(red,white){a};のソースコードディレクトリ。これは、ParaViewが拾えるように&color(red,white){plugins.cmake};ファイルを含む必要があります。

-&color(red,white){paraview_PLUGIN_b_PATH:PATH=/path/to/plugin/b};:プラグインが&color(red,white){b};である以外は、上と同様。

***CMakeの変数 [#s42d4f7e]

''スタイル・ガイド''

現在、全てのプロジェクトと設定変数がこのスタイル・ガイドにしたがう訳ではないですが、新しいプロジェクトはこの決まりを使う必要があります。一方、既存のプロジェクトを設定変数は、徐々にこれにしたがうようになるでしょう。

-与えれらたプロジェクト名への参照は、すべて小文字となります。

-変数名内の単語の区切りはアンダースコアを使用します。

-プロジェクトの設定変数は、小文字のプロジェクト名に大文字の設定名が続きます。例えば:
--&color(red,white){mesa_USE_SWR};:(OS)Mesaに対してOpenSWRドライバーを有効

--&color(red,white){ospray_BUILD_ISA};:OSPrayのビルドに対してSIMDアーキテクチャを選択

-プロジェクトにあるprojectname.cmakeファイル内の変数は全て小文字とします。

-複数バージョン:
--プロジェクトの複数バージョンを許すために、&color(red,white){superbuild_set_selectable_source};マクロを使用します。

--ソースの選択バージョンは数値で指定します。つまり、"v"や"V"の接頭辞は使いません。

--プロジェクトがリリースの候補のサイクルにあるときは、利用可能となる追加ソースにはRCを追加します。最終リリースの時に、全てのRCはアップデートリリースに置き換わります。

''ビルド変数''

-&color(red,white){superbuild_download_locatio};(デフォルトは&color(red,white){${CMAKE_BINARY_DIR}/downloads};):ダウンロードしたソースコードを保存する場所で、ビルドディレクトリをクリーンした際に、ダウンロードディレクトリを残すために使用されます。

-&color(red,white){SUPERBUILD_PROJECT_PARALLELISM};(デフォルトは使用可能なプロセッサー数):Makefileジェネレータを使用する際に、下位プロジェクトは&color(red,white){-j};でこの数値を明示的に指定してビルドします。

-&color(red,white){ENABLE_xxx};(デフォルトは&color(red,white){OFF};):選択すると、superbuildの中に&color(red,white){xxx};プロジェクトがビルドされます。プロジェクトの変数の記述は上記を参照ください。プロジェクトの&color(red,white){ENABLE_};フラグは依存するプロジェクトを有効にすると表示されません(例えば、&color(red,white){visitbridge};は&color(red,white){boost};が必要なので、&color(red,white){visitbridge};を有効にすると、&color(red,white){ENABLE_boost};オプションは隠れます。

-&color(red,white){USE_SYSTEM_xxx};(デフォルトは&color(red,white){OFF};):選択すると、superbuild内で&color(red,white){xxx};プロジェクトをビルドする代わりに、すでにシステム内にあるビルド環境を使用します。全てのプロジェクトをサポートしていません(この場合、フラグは利用できません)。

次のフラグは、ParaViewに直接影響します。

-&color(red,white){paraview_SOURCE_SELECTION};(デフォルトは&color(red,white){5.2.0};):ParaView本体で使用するソースコードを指定します。バージョン番号を指定すると、ウェブサイトにある対応するリリースのtarballを使用します。&color(red,white){source};を選択すると、&color(red,white){paraview_SOURCE_DIR};変数で指定したディレクトリにあるParaViewソースコードを使用します。&color(red,white){git};を選択すると、superbuildは&color(red,white){paraview_GIT_REPOSITORY};や&color(red,white){paraview_GIT_TAG};で指定したgitレポジトリからParaViewをcloneしビルドします。デフォルトでは、公式レポジトリにある&color(red,white){master}; branchが使用されます。
-&color(red,white){paraview_SOURCE_SELECTION};(デフォルトは&color(red,white){5.4.1};):ParaView本体で使用するソースコードを指定します。バージョン番号を指定すると、ウェブサイトにある対応するリリースのtarballを使用します。&color(red,white){source};を選択すると、&color(red,white){paraview_SOURCE_DIR};変数で指定したディレクトリにあるParaViewソースコードを使用します。&color(red,white){git};を選択すると、superbuildは&color(red,white){paraview_GIT_REPOSITORY};や&color(red,white){paraview_GIT_TAG};で指定したgitレポジトリからParaViewをcloneしビルドします。デフォルトでは、公式レポジトリにある&color(red,white){master}; branchが使用されます。

''Note:'' &color(red,white){source};を選択すると、ソースツリーを変更してからsuperbuildをビルドしても、ParaViewはリビルドされません。これは、subperbuildが存在しているソースツリーを見ないからです。

-&color(red,white){CMAKE_BUILD_TYPE_paraview};(デフォルトはsuperbuildを同じ):ParaViewはsuperbuildのそれ以外のプロジェクトと異なるビルドタイプをこの変数で指定して、ビルドできます(例えば、&color(red,white){Release};と&color(red,white){RelWithDebInfo};)。

-&color(red,white){PARAVIEW_BUILD_WEB_DOCUMENTATION};(デフォルトは&color(red,white){OFF};):ParaViewのHTMLドキュメントをビルドします。

-&color(red,white){mesa_USE_SWR};(デフォルトは&color(red,white){ON};):&color(red,white){mesa};が有効であれば、Intelのソフトウェア・ラスタライゼイションを有効にします(X86のみ)。

次のフラグはCatalystに影響します:

-&color(red,white){PARAVIEW_CATALYST_EDITION};(デフォルトは&color(red,white){Essentials};):Catalyst版をビルドします(他に、&color(red,white){Extras};と&color(red,white){Rendering-Base};も設定可能です)。

-&color(red,white){PARAVIEW_CATALYST_PYTHON};(デフォルトは&color(red,white){ON};):CatalystのPythonサポートを有効にします。

''パッケージ変数''

-&color(red,white){PARAVIEW_PACKAGE_SUFFIX};(デフォルトは選択されたオプションに依存します):パッケージによって生成される名前に対する接尾辞を指定します。

-&color(red,white){paraview_PLUGINS_AUTOLOAD};:パッケージ化されたParaViewに自動で読み込むプラグインのリストを指定します。

***バッキング [#i9569ea4]

パッケージは&color(red,white){ctest};による&color(red,white){cpack-paraview};テストを使用してビルドされます。全ての利用可能なパッケージをビルドする最も簡単な方法は、&color(red,white){ctest -R cpack};をrunすることです。

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS