################################################################################ # Copy python source tree. ################################################################################ file(GLOB_RECURSE PY_SRC_FILES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/mlir/*.py") add_custom_target(MLIRBindingsPythonSources ALL DEPENDS ${PY_SRC_FILES} ) foreach(PY_SRC_FILE ${PY_SRC_FILES}) set(PY_DEST_FILE "${PROJECT_BINARY_DIR}/python/${PY_SRC_FILE}") get_filename_component(PY_DEST_DIR "${PY_DEST_FILE}" DIRECTORY) file(MAKE_DIRECTORY "${PY_DEST_DIR}") add_custom_command( TARGET MLIRBindingsPythonSources PRE_BUILD COMMENT "Copying python source ${PY_SRC_FILE} -> ${PY_DEST_FILE}" DEPENDS "${PY_SRC_FILE}" BYPRODUCTS "${PY_DEST_FILE}" COMMAND "${CMAKE_COMMAND}" -E create_symlink "${CMAKE_CURRENT_SOURCE_DIR}/${PY_SRC_FILE}" "${PY_DEST_FILE}" ) endforeach() # Note that we copy from the source tree just like for headers because # it will not be polluted with py_cache runtime artifacts (from testing and # such). install( DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/mlir DESTINATION python COMPONENT MLIRBindingsPythonSources FILES_MATCHING PATTERN "*.py" ) if (NOT LLVM_ENABLE_IDE) add_llvm_install_targets( install-MLIRBindingsPythonSources DEPENDS MLIRBindingsPythonSources COMPONENT MLIRBindingsPythonSources) endif() ################################################################################ # Generated sources. ################################################################################ add_subdirectory(mlir/dialects)