我有一些项目应该支持Win32
和x64
平台。
一些代码是由python脚本生成的。
该脚本使用python3
功能。
在CMakeLists.txt
中,我有这样的东西:
find_package(PythonInterp REQUIRED)
if (CMAKE_CL_64)
set(MY_APP_PLATFORM "x64")
else()
set(MY_APP_PLATFORM "Win32")
endif()
add_custom_command(TARGET MyApp
PRE_BUILD
COMMAND ${PYTHON_EXECUTABLE} ${MyApp_ROOT}/generator.py -p ${MY_APP_PLATFORM }
WORKING_DIRECTORY ${PATH_GENERATED_SRC}
COMMENT "Generating code..."
VERBATIM
)
非常简单。
现在,当使用x64
的项目时,一切都像灵符一样工作,但是当构建Win32
(cmake必须生成单独的项目)时,cmake
找到python 2.7.2
。 / p>
以这种方式更改CMakeLists.txt
:
find_package(PythonInterp 3.7 REQUIRED)
导致cmake失败的原因。
是否可以解决该问题,还是必须将python脚本更正为python2
兼容?
还是我必须安装32位和64位python3
才能覆盖这两个平台?
答案 0 :(得分:2)
CMake发行版中的CMake模块为FindPython3.cmake
。
这应该有效:
find_package(Python3 COMPONENTS Interpreter)
add_custom_command(TARGET MyApp
PRE_BUILD
COMMAND ${PYTHON3_EXECUTABLE} ${MyApp_ROOT}/generator.py -p ${MY_APP_PLATFORM}
WORKING_DIRECTORY ${PATH_GENERATED_SRC}
COMMENT "Generating code..."
VERBATIM
)
自cmake 3.12
起可用。