You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
156 lines
5.3 KiB
156 lines
5.3 KiB
#!/usr/bin/env python
|
|
|
|
"""
|
|
setup.py for installing the VTK-Python bindings using distutils.
|
|
|
|
Created by Prabhu Ramachandran, June 2002.
|
|
|
|
Updated for install with configuration types by Brad King, August 2005.
|
|
|
|
"""
|
|
|
|
import sys
|
|
import string
|
|
import os
|
|
import os.path
|
|
from types import StringType
|
|
from distutils.core import setup
|
|
from distutils.command.install_data import install_data
|
|
from distutils.sysconfig import get_config_var
|
|
|
|
# Support for Python Eggs:
|
|
# http://peak.telecommunity.com/DevCenter/PythonEggs
|
|
# http://peak.telecommunity.com/DevCenter/EasyInstall
|
|
has_setup_tools = 0
|
|
# Uncomment the following two lines if you need to build an Egg.
|
|
# This is commented out by default since the install rule seems
|
|
# broken for setuptools-0.5a13.
|
|
#from setuptools import setup
|
|
#has_setup_tools = 1
|
|
|
|
# VTK build configuration settings.
|
|
vtk_version = "@VTK_MAJOR_VERSION@.@VTK_MINOR_VERSION@.@VTK_BUILD_VERSION@"
|
|
vtk_lib_dir = "@LIBRARY_OUTPUT_PATH@"
|
|
vtk_bin_dir = "@EXECUTABLE_OUTPUT_PATH@"
|
|
vtk_use_rendering = @VTK_PYTHON_USE_RENDERING@
|
|
vtk_use_parallel = @VTK_PYTHON_USE_PARALLEL@
|
|
vtk_use_mpi = @VTK_PYTHON_USE_MPI@
|
|
vtk_has_configuration_types = @VTK_PYTHON_HAS_CONFIG_TYPES@
|
|
|
|
# The build type ('Release', 'Debug' etc.). If vtk_has_configuration_types
|
|
# is true this must be set. It may be set on the command line by something
|
|
# like 'BUILD_TYPE=Release'. For example::
|
|
# python setup.py install --prefix=D:\\Python23 BUILD_TYPE=Release
|
|
vtk_build_type = @VTK_PYTHON_BUILD_TYPE@
|
|
|
|
# Construct the list of kit names to be installed.
|
|
vtk_kit_names = ['Common', 'Filtering', 'IO', 'Graphics',
|
|
'GenericFiltering', 'Imaging']
|
|
if vtk_use_rendering:
|
|
vtk_kit_names.extend(['Rendering', 'VolumeRendering', 'Hybrid', 'Widgets'])
|
|
if vtk_use_parallel:
|
|
vtk_kit_names.extend(['Parallel'])
|
|
|
|
# Construct the list of executable names to be installed.
|
|
vtk_exe_names = ['vtkpython']
|
|
if vtk_use_parallel and vtk_use_mpi:
|
|
vtk_exe_names.extend(['pvtkpython'])
|
|
|
|
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 = 'libvtk'
|
|
suffix = 'Python' + get_config_var('SO')
|
|
else:
|
|
dir = vtk_bin_dir.replace('/', '\\')
|
|
prefix = 'vtk'
|
|
suffix = 'Python.dll'
|
|
|
|
# If this build has configuration types append the selected configuration.
|
|
if vtk_has_configuration_types:
|
|
dir = os.path.join(dir, vtk_build_type)
|
|
|
|
# Enumerate ths list of module files.
|
|
for kit in vtk_kit_names:
|
|
libs.append(os.path.abspath(os.path.join(dir, prefix+kit+suffix)))
|
|
|
|
return libs
|
|
|
|
|
|
def get_scripts():
|
|
"""Returns the appropriate vtkpython executable and pvtkpython
|
|
that is to be installed."""
|
|
scripts = []
|
|
|
|
# Select platform-specific components of the executable file names.
|
|
if os.name == 'posix':
|
|
dir = vtk_lib_dir
|
|
suffix = ''
|
|
else:
|
|
dir = vtk_bin_dir.replace('/', '\\')
|
|
suffix = '.exe'
|
|
|
|
# If this build has configuration types append the selected configuration.
|
|
if vtk_has_configuration_types:
|
|
dir = os.path.join(dir, vtk_build_type)
|
|
|
|
# Enumerate ths list of executable files.
|
|
for exe in vtk_exe_names:
|
|
scripts.append(os.path.abspath(os.path.join(dir, exe+suffix)))
|
|
|
|
return scripts
|
|
|
|
|
|
class my_install_data (install_data):
|
|
def finalize_options (self):
|
|
"""Needed to make this thing work properly."""
|
|
self.set_undefined_options ('install',
|
|
('install_lib', 'install_dir'),
|
|
('root', 'root'),
|
|
('force', 'force'),
|
|
)
|
|
|
|
if __name__ == '__main__':
|
|
# Get the optional build type argument.
|
|
for x in sys.argv[:]:
|
|
if string.find(x, 'BUILD_TYPE') > -1:
|
|
vtk_build_type = string.strip(string.split(x, '=')[1])
|
|
sys.argv.remove(x)
|
|
break
|
|
|
|
# Make sure a build type was specified if it is required.
|
|
if vtk_has_configuration_types:
|
|
if not vtk_build_type:
|
|
raise "ERROR: Must specify BUILD_TYPE=<config-name> on command line."
|
|
|
|
def mk_dict(**kw):
|
|
# Unnecessary in recent Pythons but handy for earlier
|
|
# versions.
|
|
return kw
|
|
|
|
# The options for setup.
|
|
opts = mk_dict(name = "VTK",
|
|
version = vtk_version,
|
|
description = "The Visualization Toolkit",
|
|
maintainer = "VTK Developers",
|
|
maintainer_email = "vtk-developers@vtk.org",
|
|
license = "BSD",
|
|
long_description = "A high level visualization library",
|
|
url = "http://www.vtk.org/",
|
|
platforms = ['Any'],
|
|
cmdclass = {'install_data': my_install_data},
|
|
packages = ['vtk', 'vtk.gtk', 'vtk.qt', 'vtk.tk',
|
|
'vtk.util', 'vtk.wx', 'vtk.test'],
|
|
#scripts = get_scripts(),
|
|
data_files = [('vtk', get_libs())]
|
|
)
|
|
# If setup_tools is available, then add an extra option to disable
|
|
# creation of a ZIP file.
|
|
if has_setup_tools:
|
|
opts['zip_safe'] = 0
|
|
|
|
setup(**opts)
|
|
|