From 5b08f785f2c60ea68c6e50510abce9047a813af6 Mon Sep 17 00:00:00 2001 From: Michael Sarahan Date: Wed, 6 Apr 2016 13:25:29 -0500 Subject: [PATCH 1/5] add mayavi and vtk --- recipes/mayavi/bld.bat | 8 +++++ recipes/mayavi/build.sh | 5 ++++ recipes/mayavi/meta.yaml | 48 ++++++++++++++++++++++++++++++ recipes/vtk/apple.patch | 10 +++++++ recipes/vtk/bld.bat | 28 ++++++++++++++++++ recipes/vtk/build.sh | 63 ++++++++++++++++++++++++++++++++++++++++ recipes/vtk/meta.yaml | 41 ++++++++++++++++++++++++++ 7 files changed, 203 insertions(+) create mode 100644 recipes/mayavi/bld.bat create mode 100644 recipes/mayavi/build.sh create mode 100644 recipes/mayavi/meta.yaml create mode 100644 recipes/vtk/apple.patch create mode 100644 recipes/vtk/bld.bat create mode 100644 recipes/vtk/build.sh create mode 100644 recipes/vtk/meta.yaml diff --git a/recipes/mayavi/bld.bat b/recipes/mayavi/bld.bat new file mode 100644 index 0000000000000..4a2cf01d5403c --- /dev/null +++ b/recipes/mayavi/bld.bat @@ -0,0 +1,8 @@ +python setup.py install +if errorlevel 1 exit 1 + +move examples %EXAMPLES% +if errorlevel 1 exit 1 + +del %SCRIPTS%\*.exe +if errorlevel 1 exit 1 diff --git a/recipes/mayavi/build.sh b/recipes/mayavi/build.sh new file mode 100644 index 0000000000000..d4ef51633b4f1 --- /dev/null +++ b/recipes/mayavi/build.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +$PYTHON setup.py install + +mv examples $EXAMPLES diff --git a/recipes/mayavi/meta.yaml b/recipes/mayavi/meta.yaml new file mode 100644 index 0000000000000..821fd4becf91f --- /dev/null +++ b/recipes/mayavi/meta.yaml @@ -0,0 +1,48 @@ +{% version = "4.4.4" %} + +package: + name: mayavi + version: {{ version }} + +source: + git_url: https://github.com/enthought/mayavi.git + git_tag: {{ version }} + +build: + entry_points: + - mayavi2 = mayavi.scripts.mayavi2:main + - tvtk_doc = tvtk.tools.tvtk_doc:main + osx_is_app: True + +requirements: + build: + - python + - numpy + - setuptools + - vtk + - traitsui + - apptools + run: + - python + - python.app [osx] + - numpy + - vtk + - traitsui + - apptools + - envisage + - pyqt + - setuptools + +test: + commands: + - mayavi2 --help + imports: + - tvtk + - tvtk.array_ext + - mayavi + +about: + home: https://github.com/enthought/mayavi + license: BSD + license_file: LICENSE.txt + summary: The Mayavi scientific data 3-dimensional visualizers diff --git a/recipes/vtk/apple.patch b/recipes/vtk/apple.patch new file mode 100644 index 0000000000000..7f6c0fd81648b --- /dev/null +++ b/recipes/vtk/apple.patch @@ -0,0 +1,10 @@ +diff -ur a/CMakeLists.txt b/CMakeLists.txt +--- CMakeLists.txt 2015-09-01 15:41:26.000000000 -0600 ++++ CMakeLists.txt 2015-10-20 14:46:28.000000000 -0600 +@@ -599,3 +599,6 @@ + "without manually building the 'VTKData' target.") + endif() + endif() ++if(APPLE) ++ set(EXECUTABLE_FLAG MACOSX_BUNDLE) ++endif(APPLE) diff --git a/recipes/vtk/bld.bat b/recipes/vtk/bld.bat new file mode 100644 index 0000000000000..a69254650aea5 --- /dev/null +++ b/recipes/vtk/bld.bat @@ -0,0 +1,28 @@ +@echo off + +mkdir build +cd build + +set PYLIB=python27.lib + +cmake .. -G "NMake Makefiles" ^ + -Wno-dev ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_PREFIX_PATH=%LIBRARY_PREFIX% ^ + -DCMAKE_INSTALL_RPATH:STRING=%LIBRARY_LIB% ^ + -DCMAKE_INSTALL_NAME_DIR=%LIBRARY_LIB% ^ + -DBUILD_DOCUMENTATION=OFF ^ + -DVTK_HAS_FEENABLEEXCEPT=OFF ^ + -DBUILD_TESTING=OFF ^ + -DBUILD_EXAMPLES=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DVTK_WRAP_PYTHON=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPYTHON_INCLUDE_PATH=%PREFIX%\\include ^ + -DPYTHON_LIBRARY=%PREFIX%\\libs\\%PYLIB% ^ + -DVTK_INSTALL_PYTHON_MODULE_DIR=%PREFIX%\\Lib\\site-packages ^ + -DModule_vtkRenderingMatplotlib=ON + +cmake --build . --target INSTALL --config Release +if errorlevel 1 exit 1 diff --git a/recipes/vtk/build.sh b/recipes/vtk/build.sh new file mode 100644 index 0000000000000..0d664b6246b2f --- /dev/null +++ b/recipes/vtk/build.sh @@ -0,0 +1,63 @@ +#!/bin/bash + +mkdir build +cd build + +if [ `uname` == Linux ]; then + CC=gcc44 + CXX=g++44 + PY_LIB="libpython${PY_VER}.so" + + cmake .. \ + -DCMAKE_C_COMPILER=$CC \ + -DCMAKE_CXX_COMPILER=$CXX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX="${PREFIX}" \ + -DCMAKE_INSTALL_RPATH:STRING="${PREFIX}/lib" \ + -DBUILD_DOCUMENTATION=OFF \ + -DVTK_HAS_FEENABLEEXCEPT=OFF \ + -DBUILD_TESTING=OFF \ + -DBUILD_EXAMPLES=OFF \ + -DBUILD_SHARED_LIBS=ON \ + -DVTK_WRAP_PYTHON=ON \ + -DPYTHON_EXECUTABLE=${PYTHON} \ + -DPYTHON_INCLUDE_PATH=${PREFIX}/include/python${PY_VER} \ + -DPYTHON_LIBRARY=${PREFIX}/lib/${PY_LIB} \ + -DVTK_INSTALL_PYTHON_MODULE_DIR=${SP_DIR} \ + -DModule_vtkRenderingMatplotlib=ON \ + -DVTK_USE_X=ON +fi + +if [ `uname` == Darwin ]; then + CC=cc + CXX=c++ + PY_LIB="libpython${PY_VER}.dylib" + SDK_PATH="/Developer/SDKs/MacOSX10.6.sdk" + + cmake .. \ + -DCMAKE_C_COMPILER=$CC \ + -DCMAKE_CXX_COMPILER=$CXX \ + -DVTK_REQUIRED_OBJCXX_FLAGS='' \ + -DVTK_USE_CARBON=OFF \ + -DVTK_USE_TK=OFF \ + -DIOKit:FILEPATH=${SDK_PATH}/System/Library/Frameworks/IOKit.framework \ + -DVTK_USE_COCOA=ON \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX="$PREFIX" \ + -DCMAKE_INSTALL_RPATH:STRING="$PREFIX/lib" \ + -DBUILD_DOCUMENTATION=OFF \ + -DVTK_HAS_FEENABLEEXCEPT=OFF \ + -DBUILD_TESTING=OFF \ + -DBUILD_EXAMPLES=OFF \ + -DBUILD_SHARED_LIBS=ON \ + -DVTK_WRAP_PYTHON=ON \ + -DPYTHON_EXECUTABLE=${PYTHON} \ + -DPYTHON_INCLUDE_PATH=${PREFIX}/include/python${PY_VER} \ + -DPYTHON_LIBRARY=${PREFIX}/lib/${PY_LIB} \ + -DVTK_INSTALL_PYTHON_MODULE_DIR=${SP_DIR} \ + -DModule_vtkRenderingMatplotlib=ON \ + -DVTK_USE_X=OFF +fi + +make -j${CPU_COUNT} +make install diff --git a/recipes/vtk/meta.yaml b/recipes/vtk/meta.yaml new file mode 100644 index 0000000000000..19b22dfe108f9 --- /dev/null +++ b/recipes/vtk/meta.yaml @@ -0,0 +1,41 @@ +{% set version = "7.0.0" %} +{% set minor_version = ".".join(version.split(".")[:2]) %} + +package: + name: vtk + version: {{ version }} + +source: + url: http://www.vtk.org/files/release/{{ minor_version }}/VTK-{{ version }}.tar.gz + fn: vtk-{{ version }}.tar.gz + #patches: + # - apple.patch [osx] + +requirements: + build: + - cmake + - python + run: + - python + +test: + imports: + - vtk + - vtk.vtkChartsCore + - vtk.vtkCommonCore + - vtk.vtkFiltersCore + - vtk.vtkFiltersGeneric + - vtk.vtkGeovisCore + - vtk.vtkFiltersHybrid + - vtk.vtkIOCore + - vtk.vtkImagingCore + - vtk.vtkInfovisCore + - vtk.vtkRenderingCore + - vtk.vtkViewsCore + - vtk.vtkRenderingVolume + - vtk.vtkInteractionWidgets + +about: + home: http://www.vtk.org/ + license: BSD + summary: VTK is an open-source, freely available software system for 3D computer graphics From ae8756d7012ebb86c77440546d21f4c62fbc8f59 Mon Sep 17 00:00:00 2001 From: Michael Sarahan Date: Wed, 6 Apr 2016 16:25:53 -0500 Subject: [PATCH 2/5] clean up vtk recipe of continuum-specific settings; fix win py3 --- recipes/vtk/bld.bat | 3 ++- recipes/vtk/build.sh | 11 +---------- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/recipes/vtk/bld.bat b/recipes/vtk/bld.bat index a69254650aea5..16460543014da 100644 --- a/recipes/vtk/bld.bat +++ b/recipes/vtk/bld.bat @@ -3,7 +3,8 @@ mkdir build cd build -set PYLIB=python27.lib +:: CONDA_PY is the right way to do this, but we don't have that in a release yet. +set PYLIB=python%PY_VER:.=%.lib cmake .. -G "NMake Makefiles" ^ -Wno-dev ^ diff --git a/recipes/vtk/build.sh b/recipes/vtk/build.sh index 0d664b6246b2f..34b538958f753 100644 --- a/recipes/vtk/build.sh +++ b/recipes/vtk/build.sh @@ -4,13 +4,9 @@ mkdir build cd build if [ `uname` == Linux ]; then - CC=gcc44 - CXX=g++44 PY_LIB="libpython${PY_VER}.so" cmake .. \ - -DCMAKE_C_COMPILER=$CC \ - -DCMAKE_CXX_COMPILER=$CXX \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX="${PREFIX}" \ -DCMAKE_INSTALL_RPATH:STRING="${PREFIX}/lib" \ @@ -29,18 +25,13 @@ if [ `uname` == Linux ]; then fi if [ `uname` == Darwin ]; then - CC=cc - CXX=c++ PY_LIB="libpython${PY_VER}.dylib" - SDK_PATH="/Developer/SDKs/MacOSX10.6.sdk" + MACOSX_DEPLOYMENT_TARGET=10.7 cmake .. \ - -DCMAKE_C_COMPILER=$CC \ - -DCMAKE_CXX_COMPILER=$CXX \ -DVTK_REQUIRED_OBJCXX_FLAGS='' \ -DVTK_USE_CARBON=OFF \ -DVTK_USE_TK=OFF \ - -DIOKit:FILEPATH=${SDK_PATH}/System/Library/Frameworks/IOKit.framework \ -DVTK_USE_COCOA=ON \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX="$PREFIX" \ From bb09c7620eacf33c44ad22d33e0a43b727365dc6 Mon Sep 17 00:00:00 2001 From: Michael Sarahan Date: Wed, 6 Apr 2016 16:32:35 -0500 Subject: [PATCH 3/5] clean up mayavi recipe; add maintainer --- recipes/mayavi/meta.yaml | 11 ++++++++--- recipes/vtk/meta.yaml | 10 ++++++++-- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/recipes/mayavi/meta.yaml b/recipes/mayavi/meta.yaml index 821fd4becf91f..dd4179de8fe37 100644 --- a/recipes/mayavi/meta.yaml +++ b/recipes/mayavi/meta.yaml @@ -5,8 +5,9 @@ package: version: {{ version }} source: - git_url: https://github.com/enthought/mayavi.git - git_tag: {{ version }} + fn: mayavi-{{ version }}.tar.gz + url: https://github.com/enthought/mayavi/archive/{{ version }}.tar.gz + sha256: a6cbbcf3ef6c72970f4e46a52edb18f0f7b00980932ab8c737224314b63eef10 build: entry_points: @@ -24,7 +25,7 @@ requirements: - apptools run: - python - - python.app [osx] + - python.app # [osx] - numpy - vtk - traitsui @@ -46,3 +47,7 @@ about: license: BSD license_file: LICENSE.txt summary: The Mayavi scientific data 3-dimensional visualizers + +extra: + recipe-maintainers: + - msarahan diff --git a/recipes/vtk/meta.yaml b/recipes/vtk/meta.yaml index 19b22dfe108f9..cbc5400149da1 100644 --- a/recipes/vtk/meta.yaml +++ b/recipes/vtk/meta.yaml @@ -8,8 +8,10 @@ package: source: url: http://www.vtk.org/files/release/{{ minor_version }}/VTK-{{ version }}.tar.gz fn: vtk-{{ version }}.tar.gz - #patches: - # - apple.patch [osx] + sha256: 78a990a15ead79cdc752e86b83cfab7dbf5b7ef51ba409db02570dbdd9ec32c3 + patches: + # make the apple bundle executable in CMake file + - apple_executable.patch # [osx] requirements: build: @@ -39,3 +41,7 @@ about: home: http://www.vtk.org/ license: BSD summary: VTK is an open-source, freely available software system for 3D computer graphics + +extra: + recipe-maintainers: + - msarahan From bbb4ffb6c2caf4d7192d0121d0fc177cf2648ef4 Mon Sep 17 00:00:00 2001 From: Michael Sarahan Date: Wed, 6 Apr 2016 16:43:07 -0500 Subject: [PATCH 4/5] rename apple.patch to be more descriptive --- recipes/vtk/{apple.patch => apple_executable.patch} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename recipes/vtk/{apple.patch => apple_executable.patch} (100%) diff --git a/recipes/vtk/apple.patch b/recipes/vtk/apple_executable.patch similarity index 100% rename from recipes/vtk/apple.patch rename to recipes/vtk/apple_executable.patch From c44ccc0502be916ef24952fb8e0d344d526a01ab Mon Sep 17 00:00:00 2001 From: Michael Sarahan Date: Fri, 15 Apr 2016 12:10:45 -0500 Subject: [PATCH 5/5] incorporate mayavi and vtk feedback --- recipes/mayavi/bld.bat | 5 +---- recipes/mayavi/meta.yaml | 2 +- recipes/vtk/bld.bat | 3 ++- recipes/vtk/build.sh | 23 ++++++++++++++--------- recipes/vtk/meta.yaml | 3 +++ 5 files changed, 21 insertions(+), 15 deletions(-) diff --git a/recipes/mayavi/bld.bat b/recipes/mayavi/bld.bat index 4a2cf01d5403c..34a96d48bbc42 100644 --- a/recipes/mayavi/bld.bat +++ b/recipes/mayavi/bld.bat @@ -1,8 +1,5 @@ -python setup.py install +%PYTHON% setup.py install if errorlevel 1 exit 1 move examples %EXAMPLES% if errorlevel 1 exit 1 - -del %SCRIPTS%\*.exe -if errorlevel 1 exit 1 diff --git a/recipes/mayavi/meta.yaml b/recipes/mayavi/meta.yaml index dd4179de8fe37..88f683bf81306 100644 --- a/recipes/mayavi/meta.yaml +++ b/recipes/mayavi/meta.yaml @@ -1,4 +1,4 @@ -{% version = "4.4.4" %} +{% set version = "4.4.4" %} package: name: mayavi diff --git a/recipes/vtk/bld.bat b/recipes/vtk/bld.bat index 16460543014da..a97e3127b1ccb 100644 --- a/recipes/vtk/bld.bat +++ b/recipes/vtk/bld.bat @@ -23,7 +23,8 @@ cmake .. -G "NMake Makefiles" ^ -DPYTHON_INCLUDE_PATH=%PREFIX%\\include ^ -DPYTHON_LIBRARY=%PREFIX%\\libs\\%PYLIB% ^ -DVTK_INSTALL_PYTHON_MODULE_DIR=%PREFIX%\\Lib\\site-packages ^ - -DModule_vtkRenderingMatplotlib=ON + -DModule_vtkRenderingMatplotlib=ON ^ + -DVTK_PYTHON_VERSION=%PY_VER:~0,1% cmake --build . --target INSTALL --config Release if errorlevel 1 exit 1 diff --git a/recipes/vtk/build.sh b/recipes/vtk/build.sh index 34b538958f753..cfecb9afe2536 100644 --- a/recipes/vtk/build.sh +++ b/recipes/vtk/build.sh @@ -4,7 +4,9 @@ mkdir build cd build if [ `uname` == Linux ]; then - PY_LIB="libpython${PY_VER}.so" + # use globs to take into account all possible suffixes: m, u, d + PY_LIB=`ls "${PREFIX}/lib/libpython${PY_VER}"*.so | head -n 1` + PY_INC=`ls -d "${PREFIX}/include/python${PY_VER}"* | head -n 1` cmake .. \ -DCMAKE_BUILD_TYPE=Release \ @@ -17,20 +19,22 @@ if [ `uname` == Linux ]; then -DBUILD_SHARED_LIBS=ON \ -DVTK_WRAP_PYTHON=ON \ -DPYTHON_EXECUTABLE=${PYTHON} \ - -DPYTHON_INCLUDE_PATH=${PREFIX}/include/python${PY_VER} \ - -DPYTHON_LIBRARY=${PREFIX}/lib/${PY_LIB} \ + -DPYTHON_INCLUDE_PATH=${PY_INC} \ + -DPYTHON_LIBRARY=${PY_LIB} \ -DVTK_INSTALL_PYTHON_MODULE_DIR=${SP_DIR} \ -DModule_vtkRenderingMatplotlib=ON \ - -DVTK_USE_X=ON + -DVTK_USE_X=ON \ + -DVTK_PYTHON_VERSION=${PY_VER:0:1} fi if [ `uname` == Darwin ]; then - PY_LIB="libpython${PY_VER}.dylib" + # use globs to take into account all possible suffixes: m, u, d + PY_LIB=`ls "${PREFIX}/lib/libpython${PY_VER}"*.dylib | head -n 1` + PY_INC=`ls -d "${PREFIX}/include/python${PY_VER}"* | head -n 1` MACOSX_DEPLOYMENT_TARGET=10.7 cmake .. \ -DVTK_REQUIRED_OBJCXX_FLAGS='' \ - -DVTK_USE_CARBON=OFF \ -DVTK_USE_TK=OFF \ -DVTK_USE_COCOA=ON \ -DCMAKE_BUILD_TYPE=Release \ @@ -43,11 +47,12 @@ if [ `uname` == Darwin ]; then -DBUILD_SHARED_LIBS=ON \ -DVTK_WRAP_PYTHON=ON \ -DPYTHON_EXECUTABLE=${PYTHON} \ - -DPYTHON_INCLUDE_PATH=${PREFIX}/include/python${PY_VER} \ - -DPYTHON_LIBRARY=${PREFIX}/lib/${PY_LIB} \ + -DPYTHON_INCLUDE_PATH=${PY_INC} \ + -DPYTHON_LIBRARY=${PY_LIB} \ -DVTK_INSTALL_PYTHON_MODULE_DIR=${SP_DIR} \ -DModule_vtkRenderingMatplotlib=ON \ - -DVTK_USE_X=OFF + -DVTK_USE_X=OFF \ + -DVTK_PYTHON_VERSION=${PY_VER:0:1} fi make -j${CPU_COUNT} diff --git a/recipes/vtk/meta.yaml b/recipes/vtk/meta.yaml index cbc5400149da1..658a4d9853c34 100644 --- a/recipes/vtk/meta.yaml +++ b/recipes/vtk/meta.yaml @@ -44,4 +44,7 @@ about: extra: recipe-maintainers: + - ccordoba12 + - grlee77 - msarahan + - patricksnape