从 CMake 运行 PowerShell 或 Shell 脚本

Mar*_*lin 2 cmake

我有一个(power)shell 脚本,可以生成项目中其他源文件中使用的版本文件。

如何“注册”此脚本以在构建时与 CMake 一起使用?这是我尝试过的:

function(version)
    set(SRC version.h)
    set(VERSION_CMD ${CMAKE_SOURCE_DIR}/fw_lib/version/version.ps1)
    ADD_CUSTOM_TARGET(version DEPENDS ${SRC})
    ADD_CUSTOM_COMMAND(
        OUTPUT ${SRC} COMMAND ${VERSION_CMD}
        ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR}
    )
endfunction(version)
Run Code Online (Sandbox Code Playgroud)

请注意,${CMAKE_SOURCE_DIR}${CMAKE_BINARY_DIR}是脚本的输入参数。

我收到以下错误:

process_begin: CreateProcess(....) failed.
make (e=193): Error 193
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

小智 6

也许为时已晚,但对于未来:

# find Powershell executable
find_program(POWERSHELL_PATH NAMES powershell)

add_custom_command(
    TARGET "program"
    POST_BUILD
    COMMAND ${POWERSHELL_PATH} "Some Powershell command")
Run Code Online (Sandbox Code Playgroud)