File: setup.py.in

package info (click to toggle)
paraview 3.14.1-6
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 234,468 kB
  • sloc: cpp: 2,166,013; ansic: 801,575; xml: 58,068; tcl: 49,247; python: 43,091; java: 16,625; fortran: 12,224; sh: 11,722; yacc: 5,688; perl: 3,128; makefile: 2,228; lex: 1,311; lisp: 486; asm: 471; pascal: 228
file content (208 lines) | stat: -rwxr-xr-x 7,075 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
#!/usr/bin/env python

"""
setup.py for installing the VTK-Python bindings using distutils.

Created by David Partyka, August 20011.

"""

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
try:
    from setuptools import setup
except ImportError:
    pass
else:
    has_setup_tools = 1

# VTK build configuration settings.
pv_version = "@PARAVIEW_VERSION_MAJOR@.@PARAVIEW_VERSION_MINOR@.@PARAVIEW_VERSION_PATCH@"
pv_lib_dir = "@LIBRARY_OUTPUT_PATH@"
pv_bin_dir = "@EXECUTABLE_OUTPUT_PATH@"
vtk_use_rendering = @VTK_PYTHON_USE_RENDERING@
vtk_use_parallel = @VTK_PYTHON_USE_PARALLEL@
vtk_use_charts = @VTK_PYTHON_USE_CHARTS@
vtk_use_geovis = @VTK_PYTHON_USE_GEOVIS@
vtk_use_infovis = @VTK_PYTHON_USE_INFOVIS@
vtk_use_text_analysis = @VTK_PYTHON_USE_TEXT_ANALYSIS@
vtk_use_views = @VTK_PYTHON_USE_VIEWS@
vtk_use_mpi = @VTK_PYTHON_USE_MPI@
pv_has_configuration_types = @VTK_PYTHON_HAS_CONFIG_TYPES@
vtk_use_sip = @VTK_PYTHON_USE_SIP@
vtk_use_qt = @VTK_PYTHON_USE_QT@


# The build type ('Release', 'Debug' etc.).  If pv_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
pv_build_type = @VTK_PYTHON_BUILD_TYPE@

# Construct the list of kit names to be installed.
vtk_kit_names = ['Common', 'Filtering', 'IO', 'Graphics', 'GenericFiltering', 'Imaging']
pv_kit_names = ['Common', 'ServerManager', 'ServerImplementation', 'ClientServerCore', 'VTKExtensions']
vtk_kit_names2 = []
vtk_kit_names3 = []
if vtk_use_rendering:
    vtk_kit_names.extend(['Rendering', 'VolumeRendering', 'Hybrid', 'Widgets'])
if vtk_use_parallel:
    vtk_kit_names.extend(['Parallel'])
if vtk_use_charts:
    vtk_kit_names.extend(['Charts'])
if vtk_use_geovis:
    vtk_kit_names.extend(['Geovis'])
if vtk_use_infovis:
    vtk_kit_names.extend(['Infovis'])
if vtk_use_text_analysis:
    vtk_kit_names.extend(['TextAnalysis'])
if vtk_use_views:
    vtk_kit_names.extend(['Views'])
if vtk_use_qt:
    vtk_kit_names2.extend(['Qt'])
    vtk_kit_names3.extend(['QVTK'])

# Construct the list of executable names to be installed.
pv_exe_names = ['pvpython']

def get_vtk_libs():
    """Returns a list of vtk libraries to be installed.  """
    libs = []

    # Select platform-specific components of the module file names.
    if os.name == 'posix':
        dir = pv_lib_dir
        prefix = 'vtk'
        suffix = get_config_var('SO')
    else:
        dir = pv_bin_dir.replace('/', '\\')
        prefix = 'vtk'
        suffix = '.pyd'

    # If this build has configuration types append the selected configuration.
    if pv_has_configuration_types:
        dir = os.path.join(dir, pv_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+'Python'+suffix)))
        if vtk_use_sip:
          libs.append(os.path.abspath(os.path.join(dir, 'vtk'+kit+'PythonSIP'+suffix)))

    for kit in vtk_kit_names2:
        libs.append(os.path.abspath(os.path.join(dir, prefix+kit+'Python'+suffix)))

    for kit in vtk_kit_names3:
        libs.append(os.path.abspath(os.path.join(dir, kit+'Python'+suffix)))

    return libs


def get_pv_libs():
    """Returns a list of paraview libraries to be installed.  """
    libs = []

    # Select platform-specific components of the module file names.
    if os.name == 'posix':
        dir = pv_lib_dir
        prefix = 'vtk'
        suffix = get_config_var('SO')
    else:
        dir = pv_bin_dir.replace('/', '\\')
        prefix = 'vtk'
        suffix = '.pyd'

    # If this build has configuration types append the selected configuration.
    if pv_has_configuration_types:
        dir = os.path.join(dir, pv_build_type)

    # Enumerate ths list of module files.
    for kit in pv_kit_names:
        libs.append(os.path.abspath(os.path.join(dir, prefix+'PV'+kit+'Python'+suffix)))

    return libs


def get_scripts():
    """Returns the appropriate pvpython executable that is to be installed."""
    scripts = []

    # Select platform-specific components of the executable file names.
    if os.name == 'posix':
        dir = pv_lib_dir
        suffix = ''
    else:
        dir = pv_bin_dir.replace('/', '\\')
        suffix = '.exe'

    # If this build has configuration types append the selected configuration.
    if pv_has_configuration_types:
        dir = os.path.join(dir, pv_build_type)

    # Enumerate ths list of executable files.
    for exe in pv_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:
            pv_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 pv_has_configuration_types:
        if not pv_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              = "ParaView",
                   version           = pv_version,
                   description       = "ParaView",
                   maintainer        = "ParaView Developers",
                   maintainer_email  = "paraview-developers@paraview.org",
                   license           = "BSD",
                   long_description  = "Data analysis and visualization application",
                   url               = "http://www.paraview.org/",
                   platforms         = ['Any'],
                   cmdclass          = {'install_data': my_install_data},
                   packages          = ['paraview', 'paraview.vtk', 'paraview.demos'],
                   package_dir       = {'' : 'site-packages'},
                   #scripts          = get_scripts(),
                   data_files        = [('paraview', get_pv_libs()), ('paraview/vtk', get_vtk_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)