mingw-w64-vtk: updated to 7.0.0

This commit is contained in:
Mario Emmenlauer
2016-09-21 09:37:21 +02:00
parent a87e4b2869
commit ffdc98a00d
2 changed files with 137 additions and 28 deletions

View File

@@ -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
}

View File

@@ -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);