为Win32平台CMake find_package(PythonInterp 3.7 REQUIRED)

问题描述 投票:0回答:1

我有一些项目应该支持Win32x64平台。有些代码是由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来覆盖这两个平台?

python c++ cmake
1个回答
2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.