mirror of
https://github.com/OpenFOAM/ThirdParty-6.git
synced 2025-12-08 06:57:43 +00:00
ParaView-5.0.1: Added the source-tree to ThirdParty-dev and patched as described in the README file
Resolves bug-report http://bugs.openfoam.org/view.php?id=2098
This commit is contained in:
94
ParaView-5.0.1/ThirdParty/FreezePython/vtkFreezePython.cmake
vendored
Normal file
94
ParaView-5.0.1/ThirdParty/FreezePython/vtkFreezePython.cmake
vendored
Normal file
@ -0,0 +1,94 @@
|
||||
# Script used to freeze Python
|
||||
# Usage:
|
||||
# cmake
|
||||
# -DOUTPUT_DIRECTORY:PATH="..."
|
||||
# -DPACKAGE_ROOT:PATH="..."
|
||||
# -DPYTHON_EXECUTABLE:FILEPATH="Python executable"
|
||||
# -DOUTPUT_HEADER_PREFIX:STRING"..."
|
||||
# -P vtkFreezePython.cmake
|
||||
# Example:
|
||||
# cmake -DOUTPUT_HEADER_PREFIX:STRING=FrozenPython
|
||||
# -DOUTPUT_DIRECTORY:PATH=/tmp/frozen_paraview
|
||||
# -DPACKAGE_ROOT=/home/utkarsh/Kitware/ParaView3/ParaViewBin/lib/site-packages
|
||||
# -DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/python
|
||||
# -P ThirdParty/FreezePython/vtkFreezePython.cmake
|
||||
|
||||
if (NOT OUTPUT_DIRECTORY)
|
||||
message(FATAL_ERROR "No OUTPUT_DIRECTORY specified.")
|
||||
endif()
|
||||
if (NOT PACKAGE_ROOT)
|
||||
message(FATAL_ERROR "No PACKAGE_ROOT specified.")
|
||||
endif()
|
||||
if (NOT IS_DIRECTORY "${PACKAGE_ROOT}")
|
||||
message(FATAL_ERROR "PACKAGE_ROOT must be a directory.")
|
||||
endif()
|
||||
if (NOT PYTHON_EXECUTABLE)
|
||||
message(FATAL_ERROR "PYTHON_EXECUTABLE must be specified.")
|
||||
endif()
|
||||
if (NOT OUTPUT_HEADER_PREFIX)
|
||||
message(FATAL_ERROR "OUTPUT_HEADER_PREFIX must be specified.")
|
||||
endif()
|
||||
|
||||
# cleanup output directory.
|
||||
message("Removing ${OUTPUT_DIRECTORY}")
|
||||
file(REMOVE_RECURSE "${OUTPUT_DIRECTORY}")
|
||||
file(MAKE_DIRECTORY "${OUTPUT_DIRECTORY}")
|
||||
set(ENV{PYTHONPATH} "${PACKAGE_ROOT}")
|
||||
execute_process(
|
||||
COMMAND ${PYTHON_EXECUTABLE}
|
||||
"${CMAKE_CURRENT_LIST_DIR}/freeze/freeze_paraview.py"
|
||||
-o "${OUTPUT_DIRECTORY}"
|
||||
-X distutils
|
||||
-X locale
|
||||
-X macpath
|
||||
-X matplotlib
|
||||
-X ntpath
|
||||
-X os2emxpath
|
||||
-X popen2
|
||||
-X pydoc
|
||||
-X readline
|
||||
-X setuptools
|
||||
-X _warnings
|
||||
|
||||
-X zope
|
||||
-X twisted
|
||||
-X autobahn
|
||||
|
||||
"${CMAKE_CURRENT_LIST_DIR}/dummy.py"
|
||||
-p "${PACKAGE_ROOT}"
|
||||
WORKING_DIRECTORY "${OUTPUT_DIRECTORY}"
|
||||
RESULT_VARIABLE failed
|
||||
)
|
||||
|
||||
if (failed)
|
||||
message(FATAL_ERROR "freeze_paraview failed (${failed})")
|
||||
endif()
|
||||
|
||||
# Move all *.c files to *.h files.
|
||||
file(GLOB c_files "${OUTPUT_DIRECTORY}/M_*.c")
|
||||
set (include_headers)
|
||||
foreach (c_file IN LISTS c_files)
|
||||
get_filename_component(h_file "${c_file}" NAME_WE)
|
||||
set (h_file "${h_file}.h")
|
||||
set (include_headers "${include_headers}#include \"${h_file}\"\n")
|
||||
configure_file("${c_file}" "${OUTPUT_DIRECTORY}/${h_file}" COPYONLY)
|
||||
file(REMOVE "${c_file}")
|
||||
endforeach()
|
||||
|
||||
# Convert frozen.c to a header file.
|
||||
file(READ "${OUTPUT_DIRECTORY}/frozen.c" frozen_c_txt)
|
||||
string(REGEX REPLACE "extern unsigned char (M[a-zA-Z0-9_]+)\\[\\];"
|
||||
"#include \"\\1.h\""
|
||||
frozen_h_txt "${frozen_c_txt}")
|
||||
string(REGEX REPLACE "main\\([^)]+\\).*{.*}"
|
||||
"${OUTPUT_HEADER_PREFIX}()
|
||||
{
|
||||
PyImport_FrozenModules = _PyImport_FrozenModules;
|
||||
Py_FrozenFlag = 1;
|
||||
Py_NoSiteFlag = 1;
|
||||
return 1;
|
||||
}"
|
||||
frozen_h_txt
|
||||
"${frozen_h_txt}")
|
||||
file(WRITE "${OUTPUT_DIRECTORY}/${OUTPUT_HEADER_PREFIX}.h"
|
||||
"${frozen_h_txt}")
|
||||
Reference in New Issue
Block a user