From ffdc98a00d9db191f54f81f19404a27ff93bb712 Mon Sep 17 00:00:00 2001 From: Mario Emmenlauer Date: Wed, 21 Sep 2016 09:37:21 +0200 Subject: [PATCH] mingw-w64-vtk: updated to 7.0.0 --- mingw-w64-vtk/PKGBUILD | 63 ++++++++++-------- mingw-w64-vtk/vtk-mingw-w64.patch | 102 ++++++++++++++++++++++++++++++ 2 files changed, 137 insertions(+), 28 deletions(-) diff --git a/mingw-w64-vtk/PKGBUILD b/mingw-w64-vtk/PKGBUILD index a6a5f133ae..d30a7051c0 100644 --- a/mingw-w64-vtk/PKGBUILD +++ b/mingw-w64-vtk/PKGBUILD @@ -3,8 +3,8 @@ _realname=vtk pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=6.3.0 -pkgrel=2 +pkgver=7.0.0 +pkgrel=1 pkgdesc="A software system for 3D computer graphics, image processing and visualization (mingw-w64)" arch=('any') url="http://www.vtk.org/" @@ -29,20 +29,19 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-boost" "${MINGW_PACKAGE_PREFIX}-libmariadbclient" - "${MINGW_PACKAGE_PREFIX}-postgresql" - "${MINGW_PACKAGE_PREFIX}-python2" - "${MINGW_PACKAGE_PREFIX}-tk") + "${MINGW_PACKAGE_PREFIX}-postgresql") +# "${MINGW_PACKAGE_PREFIX}-python2" +# "${MINGW_PACKAGE_PREFIX}-tk") optdepends=("${MINGW_PACKAGE_PREFIX}-boost: InfovisBoost and InfovisBoostGraphAlgorithms modules" "${MINGW_PACKAGE_PREFIX}-libmariadbclient: interface to MariaDB" - "${MINGW_PACKAGE_PREFIX}-postgresql: interface to PostgreSQL" - "${MINGW_PACKAGE_PREFIX}-python2: Python bindings" - "${MINGW_PACKAGE_PREFIX}-python2-matplotlib: Matplotlib renderer" - "${MINGW_PACKAGE_PREFIX}-tk: TCL bindings, Python Tk widgets") -source=(#${_realname}-${pkgver}.tar.gz::"https://github.com/Kitware/VTK/archive/v${pkgver}.tar.gz" - http://www.vtk.org/files/release/${pkgver%.*}/VTK-${pkgver}.tar.gz + "${MINGW_PACKAGE_PREFIX}-postgresql: interface to PostgreSQL") +# "${MINGW_PACKAGE_PREFIX}-python2: Python bindings" +# "${MINGW_PACKAGE_PREFIX}-python2-matplotlib: Matplotlib renderer" +# "${MINGW_PACKAGE_PREFIX}-tk: TCL bindings, Python Tk widgets") +source=(http://www.vtk.org/files/release/${pkgver%.*}/VTK-${pkgver}.tar.gz "vtk-mingw-w64.patch") -sha256sums=('92a493354c5fa66bea73b5fc014154af5d9f3f6cee8d20a826f4cd5d4b0e8a5e' - 'db3163012fc7d90f6ffd8300a7a306a609e7c69a88a1dcfb9cb5b5df4391e3ad') +sha256sums=('78a990a15ead79cdc752e86b83cfab7dbf5b7ef51ba409db02570dbdd9ec32c3' + '4cd330823de3bd7e3a84f2d326a58d3d992d3b2eb3531ad654beb754bf276e64') prepare() { cd "${srcdir}/${_realname}-${pkgver}" @@ -64,11 +63,12 @@ build() { mkdir -p ${srcdir}/build-${CARCH} && cd ${srcdir}/build-${CARCH} MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=;-DVTK_INSTALL_QT_PLUGIN_DIR=;-DVTK_INSTALL_TCL_DIR=" \ - ${MINGW_PREFIX}/bin/cmake.exe -Wno-dev \ + "${MINGW_PREFIX}/bin/cmake.exe" -Wno-dev \ -G"MSYS Makefiles" \ - -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ - -DVTK_INSTALL_QT_PLUGIN_DIR=${MINGW_PREFIX}/share/qt5/plugins/designer \ - -DVTK_INSTALL_TCL_DIR=${MINGW_PREFIX}/lib/vtk-${pkgver%.*} \ + -DCMAKE_VERBOSE_MAKEFILE=ON \ + -DCMAKE_COLOR_MAKEFILE=OFF \ + -DCMAKE_INSTALL_PREFIX="${MINGW_PREFIX}" \ + -DVTK_INSTALL_QT_PLUGIN_DIR="${MINGW_PREFIX}/share/qt5/plugins/designer" \ -DBUILD_DOCUMENTATION=OFF \ -DBUILD_EXAMPLES=OFF \ -DBUILD_TESTING=OFF \ @@ -78,12 +78,11 @@ build() { -DVTK_Group_Qt=ON \ -DVTK_Group_Rendering=ON \ -DVTK_Group_StandAlone=ON \ - -DVTK_Group_Tk=ON \ + -DVTK_Group_Tk=OFF \ -DVTK_Group_Views=ON \ -DVTK_Group_Web=OFF \ -DVTK_USE_SYSTEM_EXPAT=ON \ -DVTK_USE_SYSTEM_FREETYPE=ON \ - -DVTK_USE_SYSTEM_GL2PS=OFF \ -DVTK_USE_SYSTEM_HDF5=ON \ -DVTK_USE_SYSTEM_JPEG=ON \ -DVTK_USE_SYSTEM_JSONCPP=ON \ @@ -97,23 +96,19 @@ build() { -DVTK_USE_VIDEO_FOR_WINDOWS=ON \ -DModule_vtkIOFFMPEG=ON \ -DModule_vtkIOMySQL=ON \ - -DMYSQL_INCLUDE_DIRECTORIES=${MINGW_PREFIX}/include/mariadb \ - -DMYSQL_LIBRARY=${MINGW_PREFIX}/lib/libmariadb.dll.a \ + -DMYSQL_INCLUDE_DIRECTORIES="${MINGW_PREFIX}/include/mariadb" \ + -DMYSQL_LIBRARY="${MINGW_PREFIX}/lib/libmariadb.dll.a" \ -DModule_vtkInfovisBoost=ON \ -DModule_vtkInfovisBoostGraphAlgorithms=ON \ -DModule_vtkIOODBC=OFF \ -DModule_vtkIOPostgreSQL=ON \ - -DModule_vtkPythonInterpreter=ON \ -DModule_vtkFiltersReebGraph=ON \ -DModule_vtkRenderingFreeTypeFontConfig=ON \ - -DModule_vtkRenderingMatplotlib=ON \ + -DModule_vtkRenderingMatplotlib=OFF \ -DVTK_WRAP_JAVA=OFF \ - -DVTK_WRAP_PYTHON=ON \ - -DVTK_WRAP_TCL=ON \ + -DVTK_WRAP_PYTHON=OFF \ + -DVTK_WRAP_TCL=OFF \ -DVTK_QT_VERSION=5 \ - -DPYTHON_EXECUTABLE=${MINGW_PREFIX}/bin/python2.7.exe \ - -DPYTHON_LIBRARY=${MINGW_PREFIX}/lib/libpython2.7.dll.a \ - -DPYTHON_INCLUDE_DIR=${MINGW_PREFIX}/include/python2.7 \ -DVTK_SMP_IMPLEMENTATION_TYPE=TBB \ -DCMAKE_RC_FLAGS=--use-temp-file \ -DCMAKE_BUILD_TYPE=Release \ @@ -121,6 +116,18 @@ build() { ${_cmakeopts[@]} \ ../${_realname}-${pkgver} +# -DVTK_Group_Tk=ON \ +# -DVTK_INSTALL_TCL_DIR="${MINGW_PREFIX}/lib/vtk-${pkgver%.*}" \ +# -DVTK_WRAP_TCL=ON \ +# +# -DModule_vtkRenderingMatplotlib=ON \ +# -DModule_vtkPythonInterpreter=ON \ +# -DVTK_WRAP_PYTHON=ON \ +# -DPYTHON_EXECUTABLE="${MINGW_PREFIX}/bin/python2.7.exe" \ +# -DPYTHON_LIBRARY="${MINGW_PREFIX}/lib/libpython2.7.dll.a" \ +# -DPYTHON_INCLUDE_DIR="${MINGW_PREFIX}/include/python2.7" \ +# + make } diff --git a/mingw-w64-vtk/vtk-mingw-w64.patch b/mingw-w64-vtk/vtk-mingw-w64.patch index c0d96ff43e..2c319611db 100644 --- a/mingw-w64-vtk/vtk-mingw-w64.patch +++ b/mingw-w64-vtk/vtk-mingw-w64.patch @@ -50,3 +50,105 @@ diff -Naur VTK-6.1.0.a/Filters/General/vtkMultiThreshold.h VTK-6.1.0.b/Filters/G class vtkCell; class vtkCellData; class vtkDataArray; +diff -Naur VTK-7.0.0.a/CMake/vtkCompilerExtras.cmake VTK-7.0.0.b/CMake/vtkCompilerExtras.cmake +--- VTK-7.0.0.a/CMake/vtkCompilerExtras.cmake 2016-01-28 17:17:38.000000000 +0100 ++++ VTK-7.0.0.b/CMake/vtkCompilerExtras.cmake 2016-09-20 19:47:27.073608100 +0200 +@@ -32,7 +32,7 @@ + OUTPUT_VARIABLE _gcc_version_info + ERROR_VARIABLE _gcc_version_info) + +- string (REGEX MATCH "[345]\\.[0-9]\\.[0-9]*" ++ string (REGEX MATCH "[3456]\\.[0-9]\\.[0-9]*" + _gcc_version "${_gcc_version_info}") + if(NOT _gcc_version) + string (REGEX REPLACE ".*\\(GCC\\).*([34]\\.[0-9]).*" "\\1.0" +diff -Naur VTK-7.0.0.a/CMake/GenerateExportHeader.cmake VTK-7.0.0.b/CMake/GenerateExportHeader.cmake +--- VTK-7.0.0.a/CMake/GenerateExportHeader.cmake 2016-01-28 17:17:38.000000000 +0100 ++++ VTK-7.0.0.b/CMake/GenerateExportHeader.cmake 2016-09-20 19:55:00.599841700 +0200 +@@ -166,7 +166,7 @@ + execute_process(COMMAND ${CMAKE_C_COMPILER} ARGS --version + OUTPUT_VARIABLE _gcc_version_info + ERROR_VARIABLE _gcc_version_info) +- string(REGEX MATCH "[345]\\.[0-9]\\.[0-9]*" ++ string(REGEX MATCH "[3456]\\.[0-9]\\.[0-9]*" + _gcc_version "${_gcc_version_info}") + # gcc on mac just reports: "gcc (GCC) 3.3 20030304 ..." without the + # patch level, handle this here: +diff --git a/IO/FFMPEG/vtkFFMPEGWriter.cxx b/IO/FFMPEG/vtkFFMPEGWriter.cxx +index 6fe7b9a..e6d06b7 100644 +--- a/IO/FFMPEG/vtkFFMPEGWriter.cxx ++++ b/IO/FFMPEG/vtkFFMPEGWriter.cxx +@@ -43,6 +43,15 @@ extern "C" { + #if LIBAVCODEC_VERSION_MAJOR < 55 + # define AV_CODEC_ID_MJPEG CODEC_ID_MJPEG + # define AV_CODEC_ID_RAWVIDEO CODEC_ID_RAWVIDEO ++# define AV_PIX_FMT_BGR24 PIX_FMT_BGR24 ++# define AV_PIX_FMT_RGB24 PIX_FMT_RGB24 ++# define AV_PIX_FMT_YUVJ422P PIX_FMT_YUVJ422P ++#endif ++ ++#if LIBAVCODEC_VERSION_MAJOR < 56 || \ ++ LIBAVCODEC_VERSION_MAJOR == 55 && LIBAVCODEC_VERSION_MINOR < 28 || \ ++ LIBAVCODEC_VERSION_MAJOR == 55 && LIBAVCODEC_VERSION_MINOR == 28 && LIBAVCODEC_VERSION_MICRO < 1 ++# define av_frame_alloc avcodec_alloc_frame + #endif + + //--------------------------------------------------------------------------- +@@ -191,11 +200,11 @@ int vtkFFMPEGWriterInternal::Start() + c->height = this->Dim[1]; + if (this->Writer->GetCompression()) + { +- c->pix_fmt = PIX_FMT_YUVJ422P; ++ c->pix_fmt = AV_PIX_FMT_YUVJ422P; + } + else + { +- c->pix_fmt = PIX_FMT_BGR24; ++ c->pix_fmt = AV_PIX_FMT_BGR24; + } + + //to do playback at actual recorded rate, this will need more work see also below +@@ -274,13 +283,13 @@ int vtkFFMPEGWriterInternal::Start() + #endif + + //for the output of the writer's input... +- this->rgbInput = avcodec_alloc_frame(); ++ this->rgbInput = av_frame_alloc(); + if (!this->rgbInput) + { + vtkGenericWarningMacro (<< "Could not make rgbInput avframe." ); + return 0; + } +- int RGBsize = avpicture_get_size(PIX_FMT_RGB24, c->width, c->height); ++ int RGBsize = avpicture_get_size(AV_PIX_FMT_RGB24, c->width, c->height); + unsigned char *rgb = (unsigned char *)av_malloc(sizeof(unsigned char) * RGBsize); + if (!rgb) + { +@@ -288,10 +297,10 @@ int vtkFFMPEGWriterInternal::Start() + return 0; + } + //The rgb buffer should get deleted when this->rgbInput is. +- avpicture_fill((AVPicture *)this->rgbInput, rgb, PIX_FMT_RGB24, c->width, c->height); ++ avpicture_fill((AVPicture *)this->rgbInput, rgb, AV_PIX_FMT_RGB24, c->width, c->height); + + //and for the output to the codec's input. +- this->yuvOutput = avcodec_alloc_frame(); ++ this->yuvOutput = av_frame_alloc(); + if (!this->yuvOutput) + { + vtkGenericWarningMacro (<< "Could not make yuvOutput avframe." ); +@@ -353,12 +362,12 @@ int vtkFFMPEGWriterInternal::Write(vtkImageData *id) + //convert that to YUV for input to the codec + #ifdef VTK_FFMPEG_HAS_IMG_CONVERT + img_convert((AVPicture *)this->yuvOutput, cc->pix_fmt, +- (AVPicture *)this->rgbInput, PIX_FMT_RGB24, ++ (AVPicture *)this->rgbInput, AV_PIX_FMT_RGB24, + cc->width, cc->height); + #else + //convert that to YUV for input to the codec + SwsContext* convert_ctx = sws_getContext( +- cc->width, cc->height, PIX_FMT_RGB24, ++ cc->width, cc->height, AV_PIX_FMT_RGB24, + cc->width, cc->height, cc->pix_fmt, + SWS_BICUBIC, NULL, NULL, NULL); +