diff options
| author | Robert Schumacher <roschuma@microsoft.com> | 2017-02-28 06:02:58 -0800 |
|---|---|---|
| committer | Robert Schumacher <roschuma@microsoft.com> | 2017-02-28 06:02:58 -0800 |
| commit | ccf4d5b3c20cbd2622f732e11123db2898d29014 (patch) | |
| tree | c9217d637a96969a0f665db06d44c7e1e18ec99b | |
| parent | a92230f9c8bc1eae1fdf24b49aa49d02ac2c9ad6 (diff) | |
| parent | 3ee7045070ee3de2dc12033a78a94e58aed4ce89 (diff) | |
| download | vcpkg-ccf4d5b3c20cbd2622f732e11123db2898d29014.tar.gz vcpkg-ccf4d5b3c20cbd2622f732e11123db2898d29014.zip | |
Merge pull request #678 from albertziegenhagel/vtk
Add VTK port
| -rw-r--r-- | ports/vtk/CONTROL | 4 | ||||
| -rw-r--r-- | ports/vtk/dont-define-ssize_t.patch | 13 | ||||
| -rw-r--r-- | ports/vtk/netcdf-use-hdf5-definitions.patch | 10 | ||||
| -rw-r--r-- | ports/vtk/portfile.cmake | 90 | ||||
| -rw-r--r-- | ports/vtk/transfer-3rd-party-module-definitions.patch | 26 | ||||
| -rw-r--r-- | ports/vtk/transfer-hdf5-definitions.patch | 10 |
6 files changed, 153 insertions, 0 deletions
diff --git a/ports/vtk/CONTROL b/ports/vtk/CONTROL new file mode 100644 index 000000000..d963451ce --- /dev/null +++ b/ports/vtk/CONTROL @@ -0,0 +1,4 @@ +Source: vtk +Version: 7.1.0 +Description: Software system for 3D computer graphics, image processing, and visualization +Build-Depends: zlib, libpng, tiff, libxml2, jsoncpp, glew, freetype, expat, hdf5, qt5, msmpi diff --git a/ports/vtk/dont-define-ssize_t.patch b/ports/vtk/dont-define-ssize_t.patch new file mode 100644 index 000000000..ba9b5e605 --- /dev/null +++ b/ports/vtk/dont-define-ssize_t.patch @@ -0,0 +1,13 @@ +diff --git a/ThirdParty/netcdf/vtknetcdf/ncconfig.h.in b/ThirdParty/netcdf/vtknetcdf/ncconfig.h.in +index 0a19c41..0d92371 100644 +--- a/ThirdParty/netcdf/vtknetcdf/ncconfig.h.in ++++ b/ThirdParty/netcdf/vtknetcdf/ncconfig.h.in +@@ -110,7 +110,7 @@ + #cmakedefine HAVE_LIBHDF5_HL + + /* Define to `int' if system doesn't define. */ +-#cmakedefine ssize_t @ssize_t@ ++/* #cmakedefine ssize_t @ssize_t@ */ + + /* Define to `int' if system doesn't define. */ + #cmakedefine ptrdiff_t @ptrdiff_t@ diff --git a/ports/vtk/netcdf-use-hdf5-definitions.patch b/ports/vtk/netcdf-use-hdf5-definitions.patch new file mode 100644 index 000000000..a6a3528ca --- /dev/null +++ b/ports/vtk/netcdf-use-hdf5-definitions.patch @@ -0,0 +1,10 @@ +--- a/ThirdParty/netcdf/vtknetcdf/CMakeLists.txt Mon Nov 14 17:59:47 2016 ++++ b/ThirdParty/netcdf/vtknetcdf/CMakeLists.txt Thu Jan 05 21:15:28 2017 +@@ -330,6 +330,7 @@ + ${netcdf_dispatch_SOURCES} + ${netcdf_liblib_SOURCES}) + target_link_libraries(vtkNetCDF ${vtkhdf5_LIBRARIES}) ++target_compile_definitions(vtkNetCDF PRIVATE ${vtkhdf5_DEFINITIONS}) + + if (UNIX) + # link against the math library. diff --git a/ports/vtk/portfile.cmake b/ports/vtk/portfile.cmake new file mode 100644 index 000000000..611023a61 --- /dev/null +++ b/ports/vtk/portfile.cmake @@ -0,0 +1,90 @@ +include(vcpkg_common_functions) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/VTK-7.1.0) +vcpkg_download_distfile(ARCHIVE + URLS "http://www.vtk.org/files/release/7.1/VTK-7.1.0.tar.gz" + FILENAME "VTK-7.1.0.tar.gz" + SHA512 83f0c9291cd2bc517a4bc449ad28a1d77e7ece169e846c7beab0b1140b9ef4b7bad30e3fa6e5a59826a707df78e2e336e07fa8bd30cf7498096ee80feef16534 +) +vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/transfer-3rd-party-module-definitions.patch + ${CMAKE_CURRENT_LIST_DIR}/transfer-hdf5-definitions.patch + ${CMAKE_CURRENT_LIST_DIR}/netcdf-use-hdf5-definitions.patch + ${CMAKE_CURRENT_LIST_DIR}/dont-define-ssize_t.patch +) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + # HACK: The FindHDF5.cmake script does not seem to detect the HDF5_DEFINITIONS correctly + # if HDF5 has been built without the tools (which is the case in the HDF5 port), + # so we set the BUILT_AS_DYNAMIC_LIB=1 flag here explicitly because we know HDF5 + # has been build as dynamic library in the current case. + list(APPEND ADDITIONAL_OPTIONS "-DHDF5_DEFINITIONS=-DH5_BUILT_AS_DYNAMIC_LIB=1") +endif() + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DBUILD_TESTING=OFF + -DBUILD_EXAMPLES=OFF + -DVTK_Group_MPI=ON + -DVTK_Group_Qt=ON + -DVTK_QT_VERSION=5 + -DVTK_BUILD_QT_DESIGNER_PLUGIN=OFF + # -DVTK_WRAP_PYTHON=ON + # -DVTK_PYTHON_VERSION=3 + -DVTK_USE_SYSTEM_EXPAT=ON + -DVTK_USE_SYSTEM_FREETYPE=ON + # -DVTK_USE_SYSTEM_GL2PS=ON + -DVTK_USE_SYSTEM_GLEW=ON + -DVTK_USE_SYSTEM_HDF5=ON + -DVTK_USE_SYSTEM_JSONCPP=ON + # -DVTK_USE_SYSTEM_LIBPROJ4=ON + # -DVTK_USE_SYSTEM_LIBRARIES=ON + -DVTK_USE_SYSTEM_LIBXML2=ON + # -DVTK_USE_SYSTEM_NETCDF=ON + # -DVTK_USE_SYSTEM_OGGTHEORA=ON + -DVTK_USE_SYSTEM_PNG=ON + -DVTK_USE_SYSTEM_TIFF=ON + -DVTK_USE_SYSTEM_ZLIB=ON + -DVTK_INSTALL_DATA_DIR=share/vtk/data + -DVTK_INSTALL_DOC_DIR=share/vtk/doc + -DVTK_INSTALL_PACKAGE_DIR=share/vtk + -DVTK_FORBID_DOWNLOADS=ON + ${ADDITIONAL_OPTIONS} + OPTIONS_RELEASE + -DHDF5_C_LIBRARY=${CURRENT_INSTALLED_DIR}/lib/hdf5.lib + -DHDF5_C_HL_LIBRARY=${CURRENT_INSTALLED_DIR}/lib/hdf5_hl.lib + OPTIONS_DEBUG + -DHDF5_C_LIBRARY=${CURRENT_INSTALLED_DIR}/debug/lib/hdf5_D.lib + -DHDF5_C_HL_LIBRARY=${CURRENT_INSTALLED_DIR}/debug/lib/hdf5_hl_D.lib +) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() + +file(READ ${CURRENT_PACKAGES_DIR}/share/vtk/VTKTargets-release.cmake VTK_TARGETS_RELEASE_MODULE) +string(REPLACE "list\(APPEND _IMPORT_CHECK_FILES_FOR_vtkEncodeString" "#list(APPEND _IMPORT_CHECK_FILES_FOR_vtkEncodeString" VTK_TARGETS_RELEASE_MODULE "${VTK_TARGETS_RELEASE_MODULE}") +string(REPLACE "list\(APPEND _IMPORT_CHECK_FILES_FOR_vtkHashSource" "#list(APPEND _IMPORT_CHECK_FILES_FOR_vtkHashSource" VTK_TARGETS_RELEASE_MODULE "${VTK_TARGETS_RELEASE_MODULE}") +file(WRITE ${CURRENT_PACKAGES_DIR}/share/vtk/VTKTargets-release.cmake "${VTK_TARGETS_RELEASE_MODULE}") + +file(READ ${CURRENT_PACKAGES_DIR}/debug/share/vtk/VTKTargets-debug.cmake VTK_TARGETS_DEBUG_MODULE) +string(REPLACE "\${_IMPORT_PREFIX}" "\${_IMPORT_PREFIX}/debug" VTK_TARGETS_DEBUG_MODULE "${VTK_TARGETS_DEBUG_MODULE}") +string(REPLACE "list\(APPEND _IMPORT_CHECK_FILES_FOR_vtkEncodeString" "#list(APPEND _IMPORT_CHECK_FILES_FOR_vtkEncodeString" VTK_TARGETS_DEBUG_MODULE "${VTK_TARGETS_DEBUG_MODULE}") +string(REPLACE "list\(APPEND _IMPORT_CHECK_FILES_FOR_vtkHashSource" "#list(APPEND _IMPORT_CHECK_FILES_FOR_vtkHashSource" VTK_TARGETS_DEBUG_MODULE "${VTK_TARGETS_DEBUG_MODULE}") +file(WRITE ${CURRENT_PACKAGES_DIR}/share/vtk/VTKTargets-debug.cmake "${VTK_TARGETS_DEBUG_MODULE}") + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/vtkEncodeString-7.1.exe) +file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/vtkHashSource-7.1.exe) +file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/vtkEncodeString-7.1.exe) +file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/vtkHashSource-7.1.exe) + +# Handle copyright +file(COPY ${SOURCE_PATH}/Copyright.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/vtk) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/vtk/Copyright.txt ${CURRENT_PACKAGES_DIR}/share/vtk/copyright) diff --git a/ports/vtk/transfer-3rd-party-module-definitions.patch b/ports/vtk/transfer-3rd-party-module-definitions.patch new file mode 100644 index 000000000..7b402892f --- /dev/null +++ b/ports/vtk/transfer-3rd-party-module-definitions.patch @@ -0,0 +1,26 @@ +--- a/CMake/vtkModuleMacros.cmake Mon Nov 14 17:59:47 2016 ++++ b/CMake/vtkModuleMacros.cmake Thu Jan 05 21:36:06 2017 +@@ -665,6 +665,9 @@ + if(${dep}_LIBRARY_DIRS) + link_directories(${${dep}_LIBRARY_DIRS}) + endif() ++ if(${dep}_DEFINITIONS) ++ target_compile_definitions(${vtk-module} PRIVATE ${${dep}_DEFINITIONS}) ++ endif() + vtk_module_link_libraries(${vtk-module} LINK_PRIVATE ${${dep}_LIBRARIES}) + if(_help_vs7 AND ${dep}_LIBRARIES) + add_dependencies(${vtk-module} ${${dep}_LIBRARIES}) +@@ -870,6 +873,13 @@ + set(vtk${_lower}_LIBRARIES "${${_pkg}_LIBRARIES}") + else() + set(vtk${_lower}_LIBRARIES "${${_upper}_LIBRARIES}") ++ endif() ++ if(${_pkg}_DEFINITIONS) ++ set(vtk${_lower}_DEFINITIONS ${${_pkg}_DEFINITIONS}) ++ elseif(${_upper}_DEFINITIONS) ++ set(vtk${_lower}_DEFINITIONS ${${_upper}_DEFINITIONS}) ++ else() ++ set(vtk${_lower}_DEFINITIONS ${${_upper}_DEFINITIONS}) + endif() + + #a workaround for bad FindHDF5 behavior in which deb or opt can diff --git a/ports/vtk/transfer-hdf5-definitions.patch b/ports/vtk/transfer-hdf5-definitions.patch new file mode 100644 index 000000000..6184fdf7a --- /dev/null +++ b/ports/vtk/transfer-hdf5-definitions.patch @@ -0,0 +1,10 @@ +--- a/ThirdParty/hdf5/module.cmake Mon Nov 14 17:59:47 2016 ++++ b/ThirdParty/hdf5/module.cmake Thu Jan 05 21:23:20 2017 +@@ -5,6 +5,7 @@ + endif() + if(VTK_USE_SYSTEM_HDF5) + set(vtkhdf5_LIBRARIES ${HDF5_LIBRARIES} ${HDF5_HL_LIBRARIES}) ++ set(vtkhdf5_DEFINITIONS ${HDF5_DEFINITIONS}) + endif() + vtk_module(vtkhdf5 + EXCLUDE_FROM_WRAPPING |
