gpt4 book ai didi

python - Cmake 将 python 编译到构建文件夹中

转载 作者:太空宇宙 更新时间:2023-11-03 15:22:52 25 4
gpt4 key购买 nike

我认为一个例子是证明我的问题的最佳方式:

假设我有一个名为 src 的源目录。该目录有两个文件,一个 CMakeLists.txt 文件和一个名为 blah 的 python 文件。在存放 src 的同一个地方,有一个名为 build 的文件夹。现在,我希望能够运行 cmake 并让它编译我的 python 文件 blah 并将其放入我的构建目录中。目前,我的 CMakeLists.txt 只是使用以下调用将未编译的代码直接复制到我的构建目录中:

CONFIGURE_FILE(${PATH_TO_SOURCE}/blah.py ${PATH_TO_BUILD}/blah.py COPYONLY)

然后我在终端中运行 make 来编译实际文件。这会在我的构建目录中留下未编译的 python 文件,这是不好的。我试过使用 ADD_EXECUTABLES,创建自定义目标并使用 COMMAND,但我的语法必须在某处关闭。任何帮助将不胜感激!

最佳答案

CMake 不支持开箱即用的 Python,AFAIK。因此,您需要编写规则来构建 python 文件,例如:

macro(add_python_target tgt)
foreach(file ${ARGN})
set(OUT ${CMAKE_CURRENT_BINARY_DIR}/${file}.pyo)
list(APPEND OUT_FILES ${OUT})
add_custom_command(OUTPUT ${OUT}
COMMAND <python command you use to byte-compile .py file>)
endforeach()

add_custom_target(${tgt} ALL DEPENDS ${OUT_FILES})
endmacro()

定义好之后,就可以这样使用了:

add_python_target(blabla blah.py)

如果您想进行调整或需要更多信息,请参阅 CMake documentation .

关于python - Cmake 将 python 编译到构建文件夹中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12272832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com