mirror of
https://github.com/wassname/conan-packages.git
synced 2026-07-04 01:56:46 +08:00
188 lines
10 KiB
Python
188 lines
10 KiB
Python
import os
|
|
from conans import ConanFile, CMake,tools
|
|
|
|
class VTKConan(ConanFile):
|
|
name = "VTK"
|
|
generators = "cmake"
|
|
settings = "os", "compiler", "build_type", "arch"
|
|
options = {"shared": [True, False], "with_qt":[True,False] }
|
|
default_options = "shared=True","with_qt=False"
|
|
url="http://github.com/av3m/conan-vtk.git"
|
|
license="http://www.vtk.org/licensing/"
|
|
short_paths=True
|
|
|
|
|
|
def configure(self):
|
|
if self.options.with_qt == True:
|
|
self.requires("Qt/[>=5.0.0]@%s/%s" %(self.user,self.channel))
|
|
|
|
def system_requirements(self):
|
|
installer= tools.SystemPackageTool(self)
|
|
if tools.os_info.is_linux and tools.os_info.linux_distro in [ "ubuntu" , "debian" ]:
|
|
installer.install("freeglut3-dev")
|
|
installer.install("mesa-common-dev")
|
|
installer.install("mesa-utils-extra")
|
|
installer.install("libgl1-mesa-dev")
|
|
installer.install("libglapi-mesa")
|
|
|
|
def remove_qt_absolute_paths(self):
|
|
qt_lib_path = os.path.join(self.deps_cpp_info["Qt"].rootpath,"lib")
|
|
qt_lib_path = qt_lib_path.replace("\\","/") + "/"
|
|
tools.replace_in_file("_install/lib/cmake/vtk-7.1/VTKTargets.cmake",qt_lib_path,"")
|
|
|
|
|
|
def source(self):
|
|
self.run("git clone --branch v%s --single-branch https://gitlab.kitware.com/vtk/vtk.git vtk" %(self.version) )
|
|
tools.replace_in_file("vtk/CMakeLists.txt","""project(VTK)""","""project(VTK)
|
|
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
|
|
conan_basic_setup()""")
|
|
|
|
def build(self):
|
|
cmake = CMake(self,parallel=True)
|
|
|
|
cmake.definitions["BUILD_TESTING"] = "OFF"
|
|
cmake.definitions["BUILD_EXAMPLES"] = "OFF"
|
|
cmake.definitions["CMAKE_INSTALL_PREFIX"] = "_install"
|
|
|
|
if self.options.shared == False:
|
|
cmake.definitions["BUILD_SHARED_LIBS"] = "OFF"
|
|
else:
|
|
cmake.definitions["BUILD_SHARED_LIBS"] = "ON"
|
|
if self.options.with_qt == True:
|
|
cmake.definitions["VTK_Group_Qt:BOOL"] = "ON"
|
|
cmake.definitions["VTK_BUILD_QT_DESIGNER_PLUGIN:BOOL"] = "ON"
|
|
|
|
if self.settings.build_type == "Debug" and self.settings.compiler == "Visual Studio":
|
|
cmake.definitions["CMAKE_DEBUG_POSTFIX"] = "_d"
|
|
|
|
cmake.configure(source_dir="vtk", build_dir=".")
|
|
cmake.build()
|
|
cmake.install()
|
|
#if self.options.with_qt == True:
|
|
# self.remove_qt_absolute_paths()
|
|
|
|
def package(self):
|
|
self.copy("*", dst=".", src="_install")
|
|
|
|
def package_info(self):
|
|
self.short_version = ".".join(str(self.version).split(".")[0:2])
|
|
LIB_POSTFIX = ""
|
|
if self.settings.build_type == "Debug" and self.settings.compiler == "Visual Studio":
|
|
LIB_POSTFIX = "_d"
|
|
libs = [
|
|
"vtkalglib-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkChartsCore-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkCommonColor-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkCommonComputationalGeometry-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkCommonCore-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkCommonDataModel-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkCommonExecutionModel-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkCommonMath-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkCommonMisc-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkCommonSystem-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkCommonTransforms-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkDICOMParser-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkDomainsChemistry-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkDomainsChemistryOpenGL2-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkexoIIc-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkexpat-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkFiltersAMR-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkFiltersCore-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkFiltersExtraction-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkFiltersFlowPaths-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkFiltersGeneral-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkFiltersGeneric-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkFiltersGeometry-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkFiltersHybrid-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkFiltersHyperTree-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkFiltersImaging-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkFiltersModeling-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkFiltersParallel-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkFiltersParallelImaging-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkFiltersProgrammable-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkFiltersSelection-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkFiltersSMP-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkFiltersSources-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkFiltersStatistics-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkFiltersTexture-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkFiltersVerdict-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkfreetype-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkGeovisCore-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkglew-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkhdf5_hl-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkhdf5-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkImagingColor-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkImagingCore-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkImagingFourier-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkImagingGeneral-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkImagingHybrid-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkImagingMath-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkImagingMorphological-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkImagingSources-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkImagingStatistics-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkImagingStencil-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkInfovisCore-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkInfovisLayout-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkInteractionImage-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkInteractionStyle-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkInteractionWidgets-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkIOAMR-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkIOCore-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkIOEnSight-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkIOExodus-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkIOExport-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkIOGeometry-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkIOImage-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkIOImport-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkIOInfovis-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkIOLegacy-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkIOLSDyna-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkIOMINC-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkIOMovie-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkIONetCDF-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkIOParallel-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkIOParallelXML-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkIOPLY-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkIOSQL-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkIOVideo-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkIOXML-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkIOXMLParser-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkjpeg-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkjsoncpp-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtklibxml2-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkmetaio-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkNetCDF_cxx-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkNetCDF-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkoggtheora-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkParallelCore-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkpng-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkproj4-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkRenderingAnnotation-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkRenderingContext2D-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkRenderingContextOpenGL2-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkRenderingCore-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkRenderingFreeType-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkRenderingImage-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkRenderingLabel-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkRenderingLOD-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkRenderingOpenGL2-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkRenderingVolume-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkRenderingVolumeOpenGL2-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtksqlite-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtksys-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtktiff-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkverdict-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkViewsContext2D-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkViewsCore-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkViewsInfovis-%s" % self.short_version + LIB_POSTFIX,
|
|
"vtkzlib-%s" % self.short_version + LIB_POSTFIX
|
|
]
|
|
if self.options.with_qt:
|
|
libs.append("vtkGUISupportQt-%s" % self.short_version + LIB_POSTFIX)
|
|
libs.append("vtkGUISupportQtSQL-%s" % self.short_version + LIB_POSTFIX)
|
|
self.cpp_info.libs = libs
|
|
self.cpp_info.includedirs = [
|
|
"include/vtk-%s" % self.short_version,
|
|
"include/vtk-%s/vtknetcdf/include" % self.short_version,
|
|
]
|