我們可以使用EXECUTABLE_OUTPUT_PATH類似於$ {PROJECT_BINARY_DIR}/bin。如何設置SWIG生成的python模塊的輸出路徑。如何在cmake中通過SWIG更改生成的.py文件?
前,得到了下面的CMakeLists.txt
FIND_PACKAGE(SWIG)
IF(SWIG_FOUND)
FIND_PACKAGE(PythonLibs)
IF(PYTHONLIBS_FOUND)
INCLUDE(${SWIG_USE_FILE})
EXECUTE_PROCESS(COMMAND python -c "import sys;print"%s.%s"%sys.version_info[0:2]" OUTPUT_VARIABLE PYTHON_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH})
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
SET(CMAKE_SWIG_FLAGS "")
SET_SOURCE_FILES_PROPERTIES(partio.i PROPERTIES CPLUSPLUS ON)
SET_SOURCE_FILES_PROPERTIES(partio.i PROPERTIES SWIG_FLAGS "-includeall")
SWIG_ADD_MODULE(partio python partio.i)
SWIG_LINK_LIBRARIES(partio ${PYTHON_LIBRARIES} ${ZLIB_LIBRARY} partio)
SET(PYTHON_DEST "lib64/python${PYTHON_VERSION}/site-packages")
INSTALL(TARGETS _partio DESTINATION ${PYTHON_DEST})
INSTALL(FILES ${CMAKE_BINARY_DIR}/${outdir}/src/py/partio.py DESTINATION ${PYTHON_DEST})
ENDIF(PYTHONLIBS_FOUND)
ENDIF(SWIG_FOUND)
無關,但您不需要「IF」顧急性呼吸窘迫綜合徵;您應該能夠將「REQUIRED」參數添加到find_package,例如「find_package(SWIG REQUIRED)」。 – 2011-01-28 00:00:35