cmakelists.txt
来自「DTMK软件开发包,此为开源软件,是一款很好的医学图像开发资源.」· 文本 代码 · 共 194 行
TXT
194 行
###############################################################################
# Create the PyUtils library
SUBDIRS(PyUtils)
SUBDIRS(Tests)
SUBDIRS(itkExtras)
###############################################################################
# Add doxygen support : Experimental
SET(DOXYGEN_MAN_PATH CACHE PATH "Experimental/Python only: Directory in which doxygen-generated man pages for itk classes are or should be placed.")
IF(DOXYGEN_MAN_PATH)
# Configure the make_doxygen_conf.py script.
SET(CONFIG_ITK_PATH)
FOREACH(dir ${ITK_INCLUDE_DIRS})
SET(CONFIG_ITK_PATH "${CONFIG_ITK_PATH}'${dir}',\n")
ENDFOREACH(dir)
SET(CONFIG_WRAP_ITK_DOXYGEN_ROOT "${DOXYGEN_MAN_PATH}")
SET(CONFIG_ITK_SOURCE_DIR "${ITK_SOURCE_DIR}")
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/make_doxygen_config.py.in"
"${CMAKE_CURRENT_BINARY_DIR}/make_doxygen_config.py"
@ONLY IMMEDIATE)
ENDIF(DOXYGEN_MAN_PATH)
###############################################################################
# Configure the path-dependent itkConfig.py
# we specify these directories with relative paths so that the file can be
# bundled up into an install conventiently. Python will take care of turning
# the / path separator into \ on windows if needed.
IF(CMAKE_CONFIGURATION_TYPES)
SET(CONFIG_WRAP_ITK_DATA_ROOT "../../Data")
SET(CONFIG_WRAP_ITK_TEST_ROOT "../../Testing")
SET(CONFIG_PYTHON_CONFIGPY_DIR "../Configuration")
FOREACH(config ${CMAKE_CONFIGURATION_TYPES})
# SWIG-generated libs and *.py files are sent to ${config} subdir
# This assumes that LIBRARY_OUTPUT_PATH is WrapITK_BINARY_DIR/bin (bad!)
# TODO: We need a better way to do this.
SET(CONFIG_PYTHON_SWIGPY_DIR "../../lib/${config}")
SET(CONFIG_PYTHON_SWIGLIB_DIR "../../lib/${config}")
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/itkConfig.py.in"
"${WrapITK_BINARY_DIR}/Python/${config}/itkConfig.py"
@ONLY IMMEDIATE)
ENDFOREACH(config)
ELSE(CMAKE_CONFIGURATION_TYPES)
SET(CONFIG_WRAP_ITK_DATA_ROOT "../Data")
SET(CONFIG_WRAP_ITK_TEST_ROOT "../Testing")
SET(CONFIG_PYTHON_CONFIGPY_DIR "Configuration")
SET(CONFIG_PYTHON_SWIGPY_DIR "../lib")
SET(CONFIG_PYTHON_SWIGLIB_DIR "../lib")
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/itkConfig.py.in"
"${WrapITK_BINARY_DIR}/Python/itkConfig.py"
@ONLY IMMEDIATE)
ENDIF(CMAKE_CONFIGURATION_TYPES)
SET(CONFIG_WRAP_ITK_TEST_ROOT "None")
SET(CONFIG_PYTHON_SWIGLIB_DIR "../lib")
SET(CONFIG_PYTHON_SWIGPY_DIR "../lib")
SET(CONFIG_PYTHON_CONFIGPY_DIR "Configuration")
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/itkConfig.py.in"
"${WrapITK_BINARY_DIR}/Python/InstallOnly/itkConfig.py"
@ONLY IMMEDIATE)
WRAP_ITK_INSTALL(/Python "${WrapITK_BINARY_DIR}/Python/InstallOnly/itkConfig.py")
###############################################################################
# Copy python files for out-of-source builds, and set up install of same.
# Create a list of Python files.
# WrapITK/Python/*.py
SET(ITK_PYTHON_FILES
itk
itkBase
itkTemplate
itkTypes
# itkExtras/__init__
itkLazy
)
# Done listing files.
# Now copy these files if necessary.
IF ("${WrapITK_BINARY_DIR}" MATCHES "^${WrapITK_SOURCE_DIR}$")
# In source build -- no need to copy Python file. Do need to set up the install.
FOREACH(file ${ITK_PYTHON_FILES})
SET(install_tgt "${CMAKE_CURRENT_SOURCE_DIR}/${file}.py")
SET(WRAP_ITK_PYTHON_INSTALL_FILES ${WRAP_ITK_PYTHON_INSTALL_FILES} "${install_tgt}")
ENDFOREACH(file)
ELSE ("${WrapITK_BINARY_DIR}" MATCHES "^${WrapITK_SOURCE_DIR}$")
SET(WRAP_ITK_PYTHON_FILES)
ADD_CUSTOM_TARGET(copy_python_files ALL)
FOREACH(file ${ITK_PYTHON_FILES})
SET(src "${CMAKE_CURRENT_SOURCE_DIR}/${file}.py")
# recall that WRAP_ITK_BUILD_INTDIR expands to nothing if no config types are set,
# or to "CMAKE_CONFIG_INTDIR/" if there are such. Likewise, WRAP_ITK_INSTALL_INTDIR
# expands to ${BUILD_TYPE}/ or nothing.
SET(copy_tgt "${CMAKE_CURRENT_BINARY_DIR}/${WRAP_ITK_BUILD_INTDIR}${file}.py")
SET(WRAP_ITK_PYTHON_FILES ${WRAP_ITK_PYTHON_FILES} "${copy_tgt}")
SET(install_tgt "${CMAKE_CURRENT_BINARY_DIR}/${WRAP_ITK_INSTALL_INTDIR}${file}.py")
SET(WRAP_ITK_PYTHON_INSTALL_FILES ${WRAP_ITK_PYTHON_INSTALL_FILES} "${install_tgt}")
# create the directory to avoid loosing case on windows
FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${WRAP_ITK_INSTALL_INTDIR}${path})
ADD_CUSTOM_COMMAND(SOURCE ${src}
COMMAND ${CMAKE_COMMAND}
ARGS -E copy ${src} ${copy_tgt}
OUTPUTS ${copy_tgt}
TARGET copy_python_files
COMMENT "Copying ${file}.py to build dir.")
ENDFOREACH(file)
# driver command to make the copy happen.
ADD_CUSTOM_COMMAND(
SOURCE copy_python_files
DEPENDS ${WRAP_ITK_PYTHON_FILES}
TARGET copy_python_files)
ENDIF ("${WrapITK_BINARY_DIR}" MATCHES "^${WrapITK_SOURCE_DIR}$")
# Install the package python files.
WRAP_ITK_INSTALL(/Python ${WRAP_ITK_PYTHON_INSTALL_FILES})
###############################################################################
# Configure and install the custom python .pth files
IF(CMAKE_CONFIGURATION_TYPES)
FOREACH(config ${CMAKE_CONFIGURATION_TYPES})
SET(CONFIG_WRAP_ITK_PYTHON_DIR "${CMAKE_CURRENT_BINARY_DIR}/${config}")
# SWIG-generated libs and *.py files are sent to ${config} subdir
# This assumes that LIBRARY_OUTPUT_PATH is WrapITK_BINARY_DIR/bin (bad!)
# TODO: We need a better way to do this.
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/WrapITK.pth.in"
"${CMAKE_CURRENT_BINARY_DIR}/${config}/WrapITK.pth"
@ONLY IMMEDIATE)
ENDFOREACH(config)
ELSE(CMAKE_CONFIGURATION_TYPES)
SET(CONFIG_WRAP_ITK_PYTHON_DIR "${CMAKE_CURRENT_BINARY_DIR}")
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/WrapITK.pth.in"
"${CMAKE_CURRENT_BINARY_DIR}/WrapITK.pth"
@ONLY IMMEDIATE)
ENDIF(CMAKE_CONFIGURATION_TYPES)
SET(CONFIG_WRAP_ITK_PYTHON_DIR "${CMAKE_INSTALL_PREFIX}/${WRAP_ITK_INSTALL_PREFIX}/Python")
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/WrapITK.pth.in"
"${CMAKE_CURRENT_BINARY_DIR}/InstallOnly/WrapITK.pth"
@ONLY IMMEDIATE)
IF(PYTHON_EXECUTABLE)
FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/det_spp.py "try:\n import distutils.sysconfig; print distutils.sysconfig.get_python_lib(1)\nexcept: pass")
EXEC_PROGRAM("${PYTHON_EXECUTABLE}"
ARGS "\"${CMAKE_CURRENT_BINARY_DIR}/det_spp.py\""
OUTPUT_VARIABLE py_spp
)
ENDIF(PYTHON_EXECUTABLE)
STRING(REGEX REPLACE "\\\\" "/" py_spp_nobackslashes "${py_spp}")
SET(PY_SITE_PACKAGES_PATH "${py_spp_nobackslashes}" CACHE PATH "Python site-packages directory to install a .pth file pointing at WrapITK Python modules.")
MARK_AS_ADVANCED(PY_SITE_PACKAGES_PATH)
IF(PY_SITE_PACKAGES_PATH)
INSTALL_AT_ABSOLUTE_PATH(install_wrapitk_compatibility "${PY_SITE_PACKAGES_PATH}" "${CMAKE_CURRENT_BINARY_DIR}/InstallOnly/WrapITK.pth")
ENDIF(PY_SITE_PACKAGES_PATH)
# # compile python files
# SET(PYTHON_MODULES "")
# FOREACH(m ${WRAP_ITK_MODULES})
# SET(PYTHON_MODULES ${PYTHON_MODULES} _${m}Python)
# ENDFOREACH(m)
#
# ADD_CUSTOM_TARGET(PythonCompile ALL
# ${PYTHON_EXECUTABLE}
# ${PY_SITE_PACKAGES_PATH}/../compileall.py -l
# -d "${CMAKE_INSTALL_PREFIX}/${WRAP_ITK_INSTALL_PREFIX}/lib"
# ${WrapITK_BINARY_DIR}/lib
#
# COMMAND ${PYTHON_EXECUTABLE}
# ${PY_SITE_PACKAGES_PATH}/../compileall.py -l
# -d "${CMAKE_INSTALL_PREFIX}/${WRAP_ITK_INSTALL_PREFIX}/Python"
# ${WrapITK_BINARY_DIR}/Python
#
# DEPENDS SwigRuntimePython ${PYTHON_MODULES}
# )
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?