Marko Gulin
Marko Gulin

Reputation: 563

Run PowerShell or Shell script from CMake

I have a (power)shell script that generates a version file used in other source files in the project.

How can I "register" this script to be used with CMake in build time? Here is what I have tried:

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)

Note that ${CMAKE_SOURCE_DIR} and ${CMAKE_BINARY_DIR} are input arguments to the script.

I get the following error:

process_begin: CreateProcess(....) failed.
make (e=193): Error 193

How can I make this work?

Upvotes: 2

Views: 1616

Answers (1)

Robert
Robert

Reputation: 234

Maybe it is too late, but for future:

# find Powershell executable
find_program(POWERSHELL_PATH NAMES powershell)

add_custom_command(
    TARGET "program"
    POST_BUILD
    COMMAND ${POWERSHELL_PATH} "Some Powershell command")

Upvotes: 6

Related Questions