2016-04-16 8 views
0

現在のプロジェクトでは、VTKモジュールのサブセットのみが必要です。 no binary installer for WindowsがVTK C++を使用しているので(私はPythonバインディングのインストーラが利用できる唯一のインストーラだと思われます)、ソースからVTKをビルドする必要があります。さらに私はCI(appveyorとtravis)を使用しているので、私はいつも私のレポに向かっているので、VTKを構築する必要があるので、構築時間を最小限に抑えたいと思っています。モジュール付きVTKのサブセットのみを構築する

これらは、私は私のプロジェクトで使用しているヘッダです:Utilities/Maintenance/WhatModulesVTK.pyが、私のプロジェクトをコンパイルするときにまだいくつかのリンカエラーを取得:

<QVTKWidget.h> 
<vtkActor.h> 
<vtkDataArray.h> 
<vtkFloatArray.h> 
<vtkMarchingCubes.h> 
<vtkPointData.h> 
<vtkPolyData.h> 
<vtkPolyDataMapper.h> 
<vtkPolyDataNormals.h> 
<vtkRenderWindow.h> 
<vtkRenderer.h> 
<vtkSmartPointer.h> 
<vtkStructuredPoints.h> 
<vtkType.h> 
<vtkUnsignedCharArray.h> 
<vtkVersion.h> 

私はすでに、スクリプトを使用して、すべての必要なモジュールを決定しようとしました。 QVTKWidgetが正しく組み込まれていないようですが、私はここで間違っているかもしれません。 WhatModulesVTKは私を与える:私はVTK 7.0.0使用して、すでにかなり右ではなく、何のvtkRenderingOpenGLありませんが、唯一のvtkRenderingOpenGL2

All modules referenced in the files: 
find_package(VTK COMPONENTS 
    vtkCommonCore 
    vtkCommonDataModel 
    vtkFiltersCore 
    vtkRenderingCore 
    vtkRenderingOpenGL 
) 

を。私のプロジェクトのcurrentyのための私のCMakeLists.txtは、次のようになります。依存関係としてVTKを使用して

… 
find_package(OpenCV REQUIRED core imgproc calib3d highgui) 
find_package(Boost COMPONENTS filesystem system REQUIRED) 
find_package(VTK 7.0 COMPONENTS vtkCommonCore vtkCommonDataModel vtkFiltersCore 
    vtkRenderingCore vtkRenderingOpenGL2 REQUIRED) 
find_package(Qt5Widgets REQUIRED QUIET) 
… 

、私はこのように事前にそれを構築しています:

$ git clone https://github.com/Kitware/VTK 
$ cd VTK && git checkout tags/v7.0.0 
$ mkdir build && cd build 
$ cmake -DVTK_QT_VERSION:STRING=5 
-DQT_QMAKE_EXECUTABLE:PATH=c:/Qt/5.6/msvc2015_64/bin/qmake.exe 
-DVTK_Group_Qt:BOOL=ON 
# Here should be all needed modules, e.g. -DModule_vtkXXXXX:BOOL=ON 
-DBUILD_SHARED_LIBS:BOOL=ON .. 
$ cmake --build . 

を一般的には正しいこのアプローチですか?私は何のモジュールを注文していないのですか?

何か助けていただければ幸いです。

答えて

0

あなたがビルド時間を最小限に抑えたい場合は最初のデフォルト・グループを無効にします。

-DVTK_Group_StandAlone=OFF -DVTK_Group_Rendering=OFF 

はその後、すべての必要なモジュールをオンにします。

QVTKWidgetはモジュールvtkGUISupportQtの一部ですので、(VTK_Group_Qtの代わりに)-DModule_vtkGUISupportQt=ONを作成する必要があります。

CIの場合、同様のマシン(TravisのUbuntu 14.04など)でVTKをプリコンパイルすることを検討し、パッケージの結果のzipをWebホストにアップロードします。次に、CIジョブで事前ビルドされたパッケージをダウンロード、解凍、キャッシュすることができます。例については、this Travis setupを参照してください。

もう1つの選択肢は、を最近作成したConanパッケージマネージャを使用することです。

関連する問題