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.
122 lines
3.5 KiB
122 lines
3.5 KiB
2 years ago
|
# Handle out-of-source builds correctly.
|
||
|
#
|
||
|
# 1. Create a list of Python files to be installed/copied.
|
||
|
# 2. Copy them to VTK_BINARY_DIR if it is different from VTK_SOURCE_DIR.
|
||
|
# 3. Use Python's compileall to compile the copied files.
|
||
|
#
|
||
|
# *** Step 1 has to be done carefully to avoid missing out files ***
|
||
|
|
||
|
IF(PYTHON_EXECUTABLE AND VTK_WRAP_PYTHON)
|
||
|
SET(CMD ${PYTHON_EXECUTABLE})
|
||
|
|
||
|
# Make the necessary directories.
|
||
|
FOREACH(dir
|
||
|
${VTK_BINARY_DIR}/Utilities/vtkTclTest2Py
|
||
|
)
|
||
|
MAKE_DIRECTORY(${dir})
|
||
|
ENDFOREACH(dir)
|
||
|
|
||
|
# Now create a list of Python files.
|
||
|
# tcl2py testing related files. These are for testing tcl-translated scripts.
|
||
|
SET(VTK_PYTHON_FILES
|
||
|
__init__
|
||
|
vtkTclParser
|
||
|
vtkTclToPyConvertor
|
||
|
backdrop
|
||
|
catch
|
||
|
expr
|
||
|
file
|
||
|
info
|
||
|
mccases
|
||
|
rtImageTest
|
||
|
)
|
||
|
# Done listing of files.
|
||
|
|
||
|
# Now copy these files if necessary.
|
||
|
SET(VTK_PYTHON_SOURCE_FILES)
|
||
|
SET(VTK_PYTHON_OUTPUT_FILES)
|
||
|
FOREACH(file ${VTK_PYTHON_FILES})
|
||
|
SET(src "${VTK_BINARY_DIR}/Utilities/vtkTclTest2Py/${file}.py")
|
||
|
SET(VTK_PYTHON_SOURCE_FILES ${VTK_PYTHON_SOURCE_FILES} ${src})
|
||
|
ENDFOREACH(file)
|
||
|
|
||
|
IF ("${VTK_BINARY_DIR}" MATCHES "^${VTK_SOURCE_DIR}$")
|
||
|
#MESSAGE("In source build -- no need to copy Python files.")
|
||
|
ELSE ("${VTK_BINARY_DIR}" MATCHES "^${VTK_SOURCE_DIR}$")
|
||
|
FOREACH(file ${VTK_PYTHON_FILES})
|
||
|
SET(src "${VTK_SOURCE_DIR}/Utilities/vtkTclTest2Py/${file}.py")
|
||
|
SET(tgt "${VTK_BINARY_DIR}/Utilities/vtkTclTest2Py/${file}.py")
|
||
|
ADD_CUSTOM_COMMAND(DEPENDS ${src}
|
||
|
COMMAND ${CMAKE_COMMAND}
|
||
|
ARGS -E copy ${src} ${tgt}
|
||
|
OUTPUT ${tgt}
|
||
|
COMMENT "source copy")
|
||
|
ENDFOREACH(file)
|
||
|
ENDIF ("${VTK_BINARY_DIR}" MATCHES "^${VTK_SOURCE_DIR}$")
|
||
|
|
||
|
# Byte compile the Python files.
|
||
|
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/compile_all_vtk.py.in
|
||
|
${CMAKE_CURRENT_BINARY_DIR}/compile_all_vtk.py
|
||
|
@ONLY IMMEDIATE)
|
||
|
|
||
|
ADD_CUSTOM_COMMAND(
|
||
|
COMMAND ${CMD}
|
||
|
ARGS -- ${VTK_BINARY_DIR}/Utilities/vtkTclTest2Py/compile_all_vtk.py
|
||
|
-A "${VTK_BINARY_DIR}/Wrapping/Python"
|
||
|
DEPENDS ${VTK_PYTHON_SOURCE_FILES} ${VTK_BINARY_DIR}/Utilities/vtkTclTest2Py/compile_all_vtk.py vtkpython
|
||
|
OUTPUT "${VTK_BINARY_DIR}/Utilities/vtkTclTest2Py/vtk_compile_complete"
|
||
|
)
|
||
|
|
||
|
#ADD_DEPENDENCIES(vtktcltest2py_pyc vtkpython_pyc)
|
||
|
|
||
|
# Create a python module having the list of all VTK Classes.
|
||
|
SET(kits
|
||
|
Common
|
||
|
Filtering
|
||
|
Imaging
|
||
|
Graphics
|
||
|
GenericFiltering
|
||
|
IO)
|
||
|
|
||
|
IF(VTK_USE_RENDERING)
|
||
|
SET(kits ${kits}
|
||
|
Rendering
|
||
|
VolumeRendering
|
||
|
Hybrid
|
||
|
Widgets)
|
||
|
ENDIF(VTK_USE_RENDERING)
|
||
|
IF(VTK_USE_PARALLEL)
|
||
|
SET(kits ${kits}
|
||
|
Parallel)
|
||
|
ENDIF(VTK_USE_PARALLEL)
|
||
|
|
||
|
SET(VTK_CLASSES "\"___list_begins___\"")
|
||
|
|
||
|
MACRO(APPEND_CLASSES varname)
|
||
|
#SET(VTK_CLASSES ${VTK_CLASSES} ${${varname}})
|
||
|
FOREACH (class ${${varname}})
|
||
|
SET(VTK_CLASSES "${VTK_CLASSES},\n\"${class}\"")
|
||
|
ENDFOREACH (class)
|
||
|
ENDMACRO(APPEND_CLASSES)
|
||
|
|
||
|
FOREACH(kit ${kits})
|
||
|
STRING(TOUPPER ${kit} ukit)
|
||
|
INCLUDE(${VTK_BINARY_DIR}/Utilities/vtk${kit}Kit.cmake)
|
||
|
SET(var VTK_${ukit}_CLASSES)
|
||
|
APPEND_CLASSES(${var})
|
||
|
ENDFOREACH(kit)
|
||
|
|
||
|
CONFIGURE_FILE(${VTK_SOURCE_DIR}/Utilities/vtkTclTest2Py/vtkClassList.py.in
|
||
|
${VTK_BINARY_DIR}/Utilities/vtkTclTest2Py/vtkClassList.py
|
||
|
@ONLY)
|
||
|
|
||
|
ADD_CUSTOM_TARGET(vtktcltest2py_pyc ALL echo "..."
|
||
|
DEPENDS
|
||
|
${VTK_BINARY_DIR}/Utilities/vtkTclTest2Py/vtk_compile_complete
|
||
|
${VTK_BINARY_DIR}/Utilities/vtkTclTest2Py/vtkClassList.py
|
||
|
)
|
||
|
|
||
|
ENDIF(PYTHON_EXECUTABLE AND VTK_WRAP_PYTHON)
|
||
|
|
||
|
|