Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


doc:devel:vtk

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
doc:devel:vtk [2013/10/02 16:42] papeleuxdoc:devel:vtk [2016/03/30 15:23] – external edit 127.0.0.1
Line 2: Line 2:
  
 memo comment compiler vtk (5.10.1) pour les Libs  memo comment compiler vtk (5.10.1) pour les Libs 
 +
 +
 +===== Windows : Release & Debug / Wrapper vtk-python (r&d) / Luc (version 140109) =====
 +
 +   * Détarer les sources : VTK\vtk-5.10.1
 +   * Créer le répertoire de compilation : VTK\VTKBuild
 +   * Modifier les sources VTK : 
 +     * VTK Debug : ajout du postfix "_d" aux DLL's : modifier "VTK\vtk-5.10.1\CMakeLists.txt ligne 107" 
 +
 +<code>
 +  # Append the library version information to the library target
 +  # properties.  A parent project may set its own properties and/or may
 +  # block this.
 +  IF(NOT VTK_NO_LIBRARY_VERSION)
 +    SET(VTK_LIBRARY_PROPERTIES ${VTK_LIBRARY_PROPERTIES}
 +      VERSION "${VTK_VERSION}"
 +      SOVERSION "${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}"
 +      )    
 +     ENDIF(NOT VTK_NO_LIBRARY_VERSION)
 +
 +  SET(VTK_LIBRARY_PROPERTIES ${VTK_LIBRARY_PROPERTIES} DEBUG_POSTFIX _d )
 +</code>
 + 
 +      * Wrappers Python debug : postfix "_d" aux "pyd" : "VTK\vtk-5.10.1\Cmake\KitCommonPythonWrapBlock.cmake"
 +<code>
 +  # Python extension modules on Windows must have the extension ".pyd"
 +  # instead of ".dll" as of Python 2.5.  Older python versions do support
 +  # this suffix.
 +  IF(WIN32 AND NOT CYGWIN)
 +    SET_TARGET_PROPERTIES(vtk${KIT}Python PROPERTIES SUFFIX ".pyd")
 +    SET_TARGET_PROPERTIES(vtk${KIT}Python PROPERTIES DEBUG_POSTFIX "_d")
 +  ENDIF(WIN32 AND NOT CYGWIN)
 +</code>
 +
 +  * installation des wrappers python_d : modifier VTK\vtk-5.10.1\Wrapping\Python\setup.py.in            
 +
 +lignes 85-100 :
 +<code>
 +  def get_libs():
 +      """Returns a list of libraries to be installed.  """
 +      libs = []
 +
 +      # Select platform-specific components of the module file names.
 +      if os.name == 'posix':
 +          dir = vtk_lib_dir
 +          prefix = 'vtk'
 +          suffix = get_config_var('SO')
 +      else:
 +          dir = vtk_bin_dir.replace('/', '\\')
 +          prefix = 'vtk'
 +          if vtk_build_type == 'Debug':
 +              suffix = '_d.pyd'
 +          else:
 +              suffix = '.pyd'
 +</code>
 +
 +  * patcher vtktclutil.cxx pour utilisation tcltk8.6:
 +http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/sci-libs/vtk/files/vtk-5.10.1-tcl8.6.patch
 +    "/VTK/vtk-5.10.1/Common/vtkTclUtil.cxx"
 +<code>
 +ligne 21 - 24 :
 +  #include <string>
 +  #include <vtksys/SystemTools.hxx>
 +
 +  extern "C"
 +
 +devient 21-30 : 
 +  #include <string>
 +  #include <vtksys/SystemTools.hxx>
 +
 +  #if (TCL_MAJOR_VERSION == 8) && (TCL_MINOR_VERSION < 6)
 +  #define vtkTclGetErrorLine(m) (m->errorLine)
 +  #else
 +  #define vtkTclGetErrorLine(m) (Tcl_GetErrorLine(m))
 +  #endif
 +
 +  extern "C"
 +
 +ligne 488-500 :
 +    if (Tcl_GetVar(arg2->interp,(char *)("errorInfo"),0))
 +      {
 +      vtkGenericWarningMacro("Error returned from vtk/tcl callback:\n" <<
 +                             arg2->command << endl <<
 +                             Tcl_GetVar(arg2->interp,(char *)("errorInfo"),0) <<
 +                             " at line number " << arg2->interp->errorLine);
 +      }
 +    else
 +      {
 +      vtkGenericWarningMacro("Error returned from vtk/tcl callback:\n" <<
 +                             arg2->command << endl <<
 +                             " at line number " << arg2->interp->errorLine);
 +      }
 +      
 +devient 494-506:
 +
 +    if (Tcl_GetVar(arg2->interp,(char *)("errorInfo"),0))
 +      {
 +      vtkGenericWarningMacro("Error returned from vtk/tcl callback:\n" <<
 +                             arg2->command << endl <<
 +                             Tcl_GetVar(arg2->interp,(char *)("errorInfo"),0) <<
 +                             " at line number " << vtkTclGetErrorLine(arg2->interp));
 +      }
 +    else
 +      {
 +      vtkGenericWarningMacro("Error returned from vtk/tcl callback:\n" <<
 +                             arg2->command << endl <<
 +                             " at line number " << vtkTclGetErrorLine(arg2->interp));
 +      }
 + 
 +ligne 721-732 : 
 +    if (Tcl_GetVar(this->Interp,(char *)("errorInfo"),0))
 +      {
 +      vtkGenericWarningMacro("Error returned from vtk/tcl callback:\n" <<
 +                             this->StringCommand << endl <<
 +                             Tcl_GetVar(this->Interp,(char *)("errorInfo"),0) <<
 +                             " at line number " << this->Interp->errorLine);
 +      }
 +    else
 +      {
 +      vtkGenericWarningMacro("Error returned from vtk/tcl callback:\n" <<
 +                             this->StringCommand << endl <<
 +                             " at line number " << this->Interp->errorLine);
 +      }
 +    }
 +      vtkGenericWarningMacro("Error returned from vtk/tcl callback:\n" <<
 +                             this->StringCommand << endl <<
 +                             Tcl_GetVar(this->Interp,(char *)("errorInfo"),0) <<
 +                             " at line number " << this->Interp->errorLine);
 +devient 727-739:
 +    if (Tcl_GetVar(this->Interp,(char *)("errorInfo"),0))
 +      {
 +      vtkGenericWarningMacro("Error returned from vtk/tcl callback:\n" <<
 +                             this->StringCommand << endl <<
 +                             Tcl_GetVar(this->Interp,(char *)("errorInfo"),0) <<
 +                             " at line number " << vtkTclGetErrorLine(this->Interp));
 +      }
 +    else
 +      {
 +      vtkGenericWarningMacro("Error returned from vtk/tcl callback:\n" <<
 +                             this->StringCommand << endl <<
 +                             " at line number " <<  vtkTclGetErrorLine(this->Interp));
 +      }
 +    }            
 +</code>    
 +
 +  * Executer CMake : modifier les options suivante 
 +     * BUILD_SHARED_LIBS : ON
 +     * CMAKE_INSTALL_PREFIX : ''../VTKInstall'' (attention "../" pas "..\")
 +     * CMAKE_CXX_MP_FLAG : ON (permet de compiler en parallele en local)
 +     * VTK_DEBUG_LEAKS : OFF (pour une version à distribuer, peut-être ON pour developpement)
 +     * VTK_USE_GL2PS : ON (advanced option)
 +     * VTK_USE_QT : ON
 +     * VTK_WRAP_PYTHON : ON
 +     * VTK_WRAP_TCL : ON
 +     * Les autres options doivent "suivre" : (qt (definir qmake suffit généralement), python (Include, lib, libdebug),  tcl/tk (include, lib, exe))
 +
 +
 +   * Compiler ALL_BUILD (Debug) (Commencer par debug)
 +   * Installer 
 +   * Compiler ALL_BUILD (Release)
 +   * Installer 
 +
 +<note warning> Attention : certains fichiers debug seront écrasés par leur version release, mais normalement c'est les même ... raison pour laquelle on démarre par la version debug </note>
 +
 +
 +   * Modifier les chemins relatifs des librairies en variables d'environnement : VTK conserve les chemins absolus vers les librairies utilisées lors de la compilation (qt, ...) ce qui est incompatible avec les Libs déplaçables.
 +     * remplacer le lieu d'installation ''E:\Dev64\...'' par ''$ENV{METAFORLIBS}'' dans les fichiers : 
 +       * ''VTK\VTKInstall\lib\vtk-5.10.1\VTKConfig.cmake''
 +       * ''VTK\VTKInstall\lib\vtk-5.10.1\VTKConfigQt.cmake''
 +       * ''VTK\VTKInstall\lib\vtk-5.10.1\VTKTargets-release.cmake''
 +       * ''VTK\VTKInstall\lib\vtk-5.10.1\VTKTargets-debug.cmake''
 +     * idem pour les chemins vers tcl/tk, 
 +       * ''$ENV{METAFORLIBS}/TclTk-8.5.15/...''
 +     * includes de  vtk_freetype,  vtk_libproj4, vtk_dhf5 dans les même fichiers
 +       * ''SET(VTK_FREETYPE_INCLUDE_DIR "$ENV{METAFORLIBS}/Vtk-5.10.1_tcltk85/include/vtk-5.10/vtkfreetype/include")''
 +       * ''SET(VTK_LIBPROJ4_INCLUDE_DIR "$ENV{METAFORLIBS}/Vtk-5.10.1_tcltk85/include/vtk-5.10/vtklibproj4")''
 +       * ''SET(VTK_HDF5_INCLUDE_DIR     "$ENV{METAFORLIBS}/Vtk-5.10.1_tcltk85/include/vtk-5.10/vtkhdf5")''
 +     * enlever les chemins absolu vers "vtkMathConfigure.h" et "vtkConfigure.h" dans 
 +        ''VTK\VTKInstall\lib\vtk-5.10.1\vtkCommonKit.cmake)''
 +   * Copier le répertoire ''VTK\VTKInstall'' dans le répertoire de Libs : ''LibsVS2012\vtk-5.10.1''
 +   * Installer les wrappers python (crée le répertoire LibsVS2012\Python\Lib\site_packages\VTK-5.10.1-py2.6.egg): 
 +       * ouvrir une invite de commande et aller dans ''VTK\VTKBuild\Wrapping\Python'' 
 +       * ''python setup.py install BUILD_TYPE=Release''
 +       * ''python setup.py install BUILD_TYPE=Debug''          
 +       * Vérification: faire un import vtk dans python.exe & dans python_d.exe
 +
 +
  
 ===== Windows : Release & Debug / Wrapper vtk-python (r&d) / Marlène & Luc ===== ===== Windows : Release & Debug / Wrapper vtk-python (r&d) / Marlène & Luc =====
Line 222: Line 409:
        * ''VTK\VTKInstall\lib\vtk-5.10.1\VTKTargets-release.cmake''        * ''VTK\VTKInstall\lib\vtk-5.10.1\VTKTargets-release.cmake''
    * Copier le répertoire ''VTK\VTKInstall'' dans le répertoire de Libs : ''LibsVS2012\vtk-5.10.1''    * Copier le répertoire ''VTK\VTKInstall'' dans le répertoire de Libs : ''LibsVS2012\vtk-5.10.1''
-   * Installer les wrappers python (crée le répertoire LibsVS2012\Python\Lib\site_packages\VTK-5.10.1-py2.6.egg): +   * Installer les wrappers python (crée le répertoire LibsVS2012\Python\Lib\site_packages\VTK-5.10.1-py2.6.egg):  
-          dans ''VTK\VTKBuild\Wrapping\Python'' ouvrir une invite de commande et taper : ''python setup.py install BUILD_TYPE=Release'' +       * ouvrir une invite de commande et aller dans ''VTK\VTKBuild\Wrapping\Python''  
-           +       ''python setup.py install BUILD_TYPE=Release'' 
-Vérification: faire un import vtk dans python+       * ''python setup.py install BUILD_TYPE=Debug''           
 +       * Vérification: faire un import vtk dans python.exe & dans python_d.exe
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki