我有一些项目应该支持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
。
以这种方式改变CMakeLists.txt
:
find_package(PythonInterp 3.7 REQUIRED)
导致cmake失败。
有没有办法解决它,还是我必须纠正python脚本是qazxsw poi兼容?
或者我必须安装32位和64位的python2
来覆盖这两个平台?
CMake模块是cmake发行版中的python3
。
这应该工作:
FindPython3.cmake
它可以从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
)
开始使用。
3.12